Higher Computing The Software Development Process The software

  • Slides: 16
Download presentation
Higher Computing The Software Development Process

Higher Computing The Software Development Process

The software development process ¢ 1. 2. 3. 4. 5. 6. 7. The SDP

The software development process ¢ 1. 2. 3. 4. 5. 6. 7. The SDP has seven stages Analysis Design Implementation Testing Documentation Evaluation Maintenance

Analysis ¢ ¢ ¢ Analysis is the understanding of the problem The conversion of

Analysis ¢ ¢ ¢ Analysis is the understanding of the problem The conversion of a problem outline into a precise software specification The specification has to include l l l Inputs Processes Outputs

Design ¢ Design involves the planning of a solution to the problem using a

Design ¢ Design involves the planning of a solution to the problem using a recognised design methodology ¢ Top down design Structured diagrams l pseudocode l

Implementation ¢ Implementation is changing the program design into instructions that the computer can

Implementation ¢ Implementation is changing the program design into instructions that the computer can understand ¢ It is during the implementation process that internal documentation is added to the program

Testing ¢ Testing is to ensure that a piece of software performs correctly, that

Testing ¢ Testing is to ensure that a piece of software performs correctly, that it meets the software specification ¢ A test plan should be produced so that the testing is systematic and comprehensive

Documentation ¢ All stages of the SDP need documentation ¢ The documentation of a

Documentation ¢ All stages of the SDP need documentation ¢ The documentation of a program includes a user guide and a technical guide

Evaluation ¢ Evaluation involves reviewing the solution against suitable criteria l l l l

Evaluation ¢ Evaluation involves reviewing the solution against suitable criteria l l l l Robustness Reliability Portability Efficiency Maintainability Readability Fitness for purpose User interface

Maintenance Program maintenance involves changing a program, often long after it was first written

Maintenance Program maintenance involves changing a program, often long after it was first written ¢ There are three types of maintenance ¢ Corrective l Adaptive l Perfective l ¢ Good design methodology and documentation will be a big asset

Iteration The software development process is iterative ¢ Iteration is the process of revisiting

Iteration The software development process is iterative ¢ Iteration is the process of revisiting a stage in the software development process to modify it in the light of experience gained at a later stage, for example, after testing or evaluation ¢

Personnel Client ¢ Systems Analyst ¢ Project Manager ¢ Programmer ¢ Independent Test Group

Personnel Client ¢ Systems Analyst ¢ Project Manager ¢ Programmer ¢ Independent Test Group ¢

The Client The client commissions the software ¢ The client will describe the requirements

The Client The client commissions the software ¢ The client will describe the requirements to the systems analyst ¢

Systems Analyst The system analyst communicates with the client at a non-technical level eliciting

Systems Analyst The system analyst communicates with the client at a non-technical level eliciting their needs ¢ The SA must also communicate the client’s need as a technical specification to the software development team ¢

Project Manager Leads the software development team ¢ Responsible for budgets, resources and scheduling

Project Manager Leads the software development team ¢ Responsible for budgets, resources and scheduling ¢ Monitors progress, insures deadlines are met ¢ Liaises with the client/systems analyst ¢

Programmer ¢ Responsible for coding, testing, implementation and maintenance of the software

Programmer ¢ Responsible for coding, testing, implementation and maintenance of the software

Independent Test Group Outsiders whose task is to find errors ¢ Programmers should not

Independent Test Group Outsiders whose task is to find errors ¢ Programmers should not be the only testers of software as they are biased, and testing may be incomplete ¢ ITGs test parts of the software as it is developed (modular) as well as the finished product ¢