Int 2 Computing Software Development The Software Development

  • Slides: 17
Download presentation
Int 2 Computing Software Development The Software Development Process I Power

Int 2 Computing Software Development The Software Development Process I Power

The Software Development Process (SDP) To be a successful programmer takes a logical and

The Software Development Process (SDP) To be a successful programmer takes a logical and reasoned approach to problem solving. Good practice is the result of a series of well -documented stages. Each stage makes an important contribution to the whole development process.

The Seven Stages Analysis. Design. Implementation. Testing. Documentation. Evaluation. Maintenance. Some stages may have

The Seven Stages Analysis. Design. Implementation. Testing. Documentation. Evaluation. Maintenance. Some stages may have to be repeated if the software does not meet the requirements. This mean that the process can be described as an iterative process.

Analysis This stage extracts information from the client and other relevant staff. This may

Analysis This stage extracts information from the client and other relevant staff. This may take many forms: Interviews with clients and staff. Observation of current system. Examination of current paperwork. It is important that the task is fully agreed before the design stage can begin as the Specification is a legal Contract.

Design The design may be either a Pseudocode; A design written in a code

Design The design may be either a Pseudocode; A design written in a code like version of English. Each line of design should relate to one line of code. Or Structured Diagram; A graphical design that can describe the overall structure of the proposed program

Pseudocode - Example 1. 2. 3. 4. Notice the numbering system Display information Get

Pseudocode - Example 1. 2. 3. 4. Notice the numbering system Display information Get details Do calculation Display answer Refine step 2 2. 1 display prompt 2. 2 get value 2. 3 while value out of range 2. 4 display error message 2. 5 get value 2. 6 loop Top level design Simple English words in a familiar program form

Structure Diagram an example: A structure diagram allows the design of a program to

Structure Diagram an example: A structure diagram allows the design of a program to be drawn out in diagrammatic form. Here is an example:

Implementation This stage involves coding the algorithm in a chosen language. To chose a

Implementation This stage involves coding the algorithm in a chosen language. To chose a language we must consider. Type of problem. Hardware and software compatibility. Datatypes available. Features and Constructs available.

Testing To ensure that the implementation is correct the testing should be systematic and

Testing To ensure that the implementation is correct the testing should be systematic and comprehensive. This is normally carried out by an Independent Test Group (ITG). Comprehensive testing should include Normal data; Data within the expected range. Extreme data (Boundary data); Data at the edge of the expected range. Exceptional Data (Out of range data); Data outside the expected range.

Documentation The programmer must also create several documents including: Structured Listing; A formatted printout

Documentation The programmer must also create several documents including: Structured Listing; A formatted printout of the actual code. Test Report; A list of test data with predicted and actual output. User Guide; A set of instructions on how to install and use the software. Technical Guide; Descriptions of any technical requirements. It may also record the development history of previous versions.

Evaluation A report is produced and given to the client that will state whether

Evaluation A report is produced and given to the client that will state whether the software is fit for purpose. If software is to be considered fit for purpose then it must be able to meet all the criteria in the software requirements document.

Evaluation (Cont. ) The software should also be evaluated in terms of: Robustness; The

Evaluation (Cont. ) The software should also be evaluated in terms of: Robustness; The ability to cope with errors when running. E. g. Not crashing. Reliability; The ability to cope with expected data and give correct and predictable results. Portability; The ability to run on a computer system other than the one the software was designed for. E. g. Run on both a PC and a Mac.

Evaluation (Cont. ) Efficiency; Not using too much of the Computers memory or processor

Evaluation (Cont. ) Efficiency; Not using too much of the Computers memory or processor time. Maintainability; The ability to be changed with ease in the future. E. g. • Readability. Using meaningful variable names and sensible comments throughout the program. • Modularity. Using Procedures, functions or Subroutines. • Documented History. Are previous versions of the software documented.

Maintenance Starts when the software is handed over to the client. The three types

Maintenance Starts when the software is handed over to the client. The three types of maintenance are: Corrective; Fixing errors not found during testing. Adaptive; Changing the code to cope with changes made to the environment. Perfective; Adding new features or amendments requested by the client. This is beyond the original specification and will cost the client extra.

Personnel Client: The client commissions the software, describing the scope and boundaries of the

Personnel Client: The client commissions the software, describing the scope and boundaries of the problem to the analyst. Systems Analyst: The systems analyst agrees with the client the detailed specification of the software to be written. This should be completed to the satisfaction of both parties before the design or coding is carried out.

Personnel (Cont. ) Project manager: This individual takes sole responsibility for keeping the project

Personnel (Cont. ) Project manager: This individual takes sole responsibility for keeping the project on track, from the receipt of the software specification until the software is delivered to the client. Programmer: The programmer is responsible, individually or as part of a team, for converting the algorithm into program code.

Personnel (Cont. ) Independent test group: The independent test group (ITG) carries out testing

Personnel (Cont. ) Independent test group: The independent test group (ITG) carries out testing of the software. This may be modular testing and/or component testing, looking at important subsections of the code. It will also entail testing of the finished product.