Systems Analysis and design - What's wanted
Systems Development - Building and Programming
Systems Implementation and review - Testing and training
In the 1960's there were a large number of grand scale projects which came to a disastrous end due to being delivered late, over budget and not working. The reason for this was a chaotic development process e.g. Sid goes ill and no one knows what he has been programming!
As a consequence of this, structured methods have been developed. This is where engineering principles have been applied to the development process (hence the term `software engineering') breaking the whole process up into a series of clearly defined tasks, producing specific deliverables.
Set Aims Aims
Facts about old system. Requirements of new system
System Analyse Requirements spec. (User requirements)
Detailed system spec.
System prototype Complete Prototype of running system
A logical model has no physical constraints. (I.e. who does what where? etc.)
A logical model IS processes and data which uses processes.
The Development Process in Detail
* Systems Flowchart
(shows the physical relationships between parts of the computer system)
* DFD - Data Flow Diagram
(shows the flow of Data within the system)
* Program Flowchart
(shows the flow of logic within a program/module. This is another way of describing an algorithm)
* EAR Model - Entity, Attribute, Relationship model.
(Used to show the relationship between stored data in the data model analysed in data analysis)
* Gantt Chart
(Used to plan out a large project)
A Mail Order Batch Process Flowchart
A Video Club Transaction Flowchart
Note the differences between the Transaction and Batch Processing Charts:
The transaction data is keyed in directly and is not collected together firstly
There is no sorting involved
There is no new master file produced, the master file is updated instead i.e. the master file is random not serial
There is no Transaction file
This is a communications link for long distance updates
Why good programming methods are important
Good programming methods should feature well-structured coding, where the program is divided up into modules, and each module has a clear, well-defined purpose. The importance of this is:
To enable large projects to be delivered on time and within budget.
To facilitate and hence minimize the cost of future updates and debugging
To allow a team to work on the project - modular programming enables the task to be divided up amongst several different programmers, so that the programming can be written more quickly
To allow the manager to monitor and co-ordinate the project - to see how each module is progressing, to...