I Power Higher Computing Software Development The Software Development Process.

21
I Power Higher Computing Software Development The Software Development Process

Transcript of I Power Higher Computing Software Development The Software Development Process.

Page 1: I Power Higher Computing Software Development The Software Development Process.

I Power

Higher Computing

Software Development

The Software Development Process

Page 2: I Power Higher Computing Software Development The Software Development Process.

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.

Page 3: I Power Higher Computing Software Development The Software Development Process.

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.

Page 4: I Power Higher Computing Software Development The Software Development Process.

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.

Page 5: I Power Higher Computing Software Development The Software Development Process.

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.

OrStructured Diagram; A graphical design that can describe the overall structure of the proposed program

Page 6: I Power Higher Computing Software Development The Software Development Process.

Pseudocode - Example

1. Display information

2. Get details

3. Do calculation

4. Display answer Top level design

Notice the numbering system

Simple English

words in a familiar

program form

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

Page 7: I Power Higher Computing Software Development The Software Development Process.

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

Tax payment

Get details IF earns > 30000

High rate payable

Low rate payable

Display amount to be paid

YESNO

Page 8: I Power Higher Computing Software Development The Software Development Process.

Top-Down Design

Both of these design methodologies are examples of top-down design.

This is where a task is broken down into smaller and smaller parts until the sub-tasks are very simple to solve.

Page 9: I Power Higher Computing Software Development The Software Development Process.

Bottom-up design

Another design methodology is Bottom-up design.

This is where a designer looks at problems already solved and puts these together to solve the desired problem.

Some of these small solutions may have to be adapted to solve the desired problem.

Page 10: I Power Higher Computing Software Development The Software Development Process.

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.

Page 11: I Power Higher Computing Software Development The Software Development Process.

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.Boundary data; Data at the edge of the expected range.Out of range data; Data outside the expected range.

Page 12: I Power Higher Computing Software Development The Software Development Process.

DocumentationThe 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.

Page 13: I Power Higher Computing Software Development The Software Development Process.

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.

Page 14: I Power Higher Computing Software Development The Software Development Process.

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.

Page 15: I Power Higher Computing Software Development The Software Development Process.

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.

Page 16: I Power Higher Computing Software Development The Software Development Process.

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.

Page 17: I Power Higher Computing Software Development The Software Development Process.

SummaryName of Stage

Key Task Personnel Documentation

Analysis To define the extent of the software task to be carried out.

Client

Systems Analyst

Software Specification

Design To design a method of solving the problem.

Systems Analyst Project Manager

Algorithm

Implem-entation

To write a code in a chosen programming language.

Project Manager

Programmer

Program Code

Testing To test that the program matches the specification.

Independent Test Group (ITG)

Set of test data and test reports.

Page 18: I Power Higher Computing Software Development The Software Development Process.

Summary (Cont.)Name of Stage

Key Task Personnel Documentation

Docume-ntation

To produce documentation to be distributed with the software.

Client, system analyst and programmer

User guide and technical guide

Evaluati-on

To report upon quality of the software according to the given criteria.

Produce Report

Mainten-ance

To make changes to the software after it has been handed over to the client.

Programmer and Client. Others may be required depending on extent of changes.

Maintenance Report

Page 19: I Power Higher Computing Software Development The Software Development Process.

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.

Page 20: I Power Higher Computing Software Development The Software Development Process.

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.

Page 21: I Power Higher Computing Software Development The Software Development Process.

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.