Monday, 24 March 2014

Software

Software
 
An algorithm is a series of instructions. A program is a coded algorithm. A program is also known as software.
There are 3 types of software:
  • System Software
  • Development Software
  • Applications
Examples of System Software
  • Operating Systems
  • Device Drivers
  • Utilities
  • Servers
Operating Systems
 
Programs that control hardware in a computes and let users work with the computer. The heart of the OS is the kernel. This uses low level languages to make the hardware run.
 
Multitasking
 
Computer Systems can have several programs running at once. They are either:
Running: The program is currently running.
Runnable: The program is ready to be run.
Waiting: The program is waiting in the queue to be run.
 
This is called Multiprogramming, the CPU isn't running all the programs at the same time, it is simply shifting its attention between processes.
A multiprogramming system must ensure that the CPU is being effectively, for the most time as possible. It must try and speed up the process and share recourses fairly between tasks.
 
User Interface
 This provides a platform for the user to interact with the computer, it is the boundary between human and machine. This can integrated into the OS or run on top of it.
 


Command Line
 
 
Development Software
 
Translators translate high level code into machine code so it can be run by the computer. High level code is called source code, machine code is called object code.
  • Compilers : Compiles the whole program into the ram and the runs it. 
  • Interpreters : translates the high level code and executes it straight after, line by line.
  • Assemblers : translated low level language/ assembly language into machine code. They use mnemonics to represent operators, this makes it easier to read. 
Linkers are used to connect sub programs to create a larger program.
 
 
Application Software
Programs that do real world jobs.
Examples
 
Off the shelf software
Advantages: Immediately available, Tested and relatively bug free, wide community of users and support, relatively inexpensive.
Disadvantages: May not meet the exact requirements of the organisation.
 
Bespoke Software
Advantages: Will be specifically written to meet customer needs, Can work with developers to design software and get direct support to modify the program/fix bugs.
Disadvantages: The cost is borne by one customer so it is expensive, Not readily available, No community of users to rely on, Likely to have more faults. Not on-going support.
 
Open source software
Advantages: Software can be adapted to meet individual needs, bugs are often spotted and fixed.
Disadvantages: No body owns the software, No guarantees or support contracts, code may be modified by anyone introducing quality issues.



An IDLE can help a programmer by making it easier for them to write code. It can instantly highlight bits of code according to their purpose. For example, strings could be highlighted in blue. It also detects syntax errors.

Open source software is software that can be adapted and edited by anyone. This means it can be adapted to a persons specific requirements. As anyone can edit it, any bugs or errors can be fixed quickly. However, this also comes with some disadvantages. As the software is not owned by anyone, there are no guarantees or support. So, for example if the code was to go wrong, there would not be any type of formal support available. As the software will be used in a work environment, this could mean that the company would lose out on trade or important information. The quality of the software could also be altered as it is open to anyone.


An Editor is a program that is used to aid the process of a writing a program.