37
1 Shawlands Academy Higher Computing Software Development Unit

1 Shawlands Academy Higher Computing Software Development Unit

Embed Size (px)

Citation preview

Page 1: 1 Shawlands Academy Higher Computing Software Development Unit

1

Shawlands AcademyHigher Computing

Software Development Unit

Page 2: 1 Shawlands Academy Higher Computing Software Development Unit

2

Explain Aspects of the Software Development Process

Page 3: 1 Shawlands Academy Higher Computing Software Development Unit

3

The Software Development Process• Analysis• Design• Implementation• Testing• Documentation• Evaluation• Maintenance

Page 4: 1 Shawlands Academy Higher Computing Software Development Unit

4

Remember

A Dance In The Dark Every Monday•Analysis

•Design

•Implementation

•Testing

•Documentation

•Evaluation

•Maintainance

Monday

Page 5: 1 Shawlands Academy Higher Computing Software Development Unit

5

Systems Analysis

What is a systems analyst?– A systems analyst observes,

clarifies and models an existing system to assess its suitability for computerisation. In the process, the analyst could also find ways of improving the system.

– The systems analyst must have a sound technical background. They may once have been programmers.

Page 6: 1 Shawlands Academy Higher Computing Software Development Unit

6

Skills and techniques of the Systems AnalystThe systems analyst must

– extract the clients needs– document these needs in a formal

way– communicate these to the designers

Page 7: 1 Shawlands Academy Higher Computing Software Development Unit

7

Extracting the Clients NeedsExtracting the clients needs is known as requirements elicitation.This is done by:

– interviewing the client’s management personnel

– making observation notes of the client’s business

– The analyst will also inspect information sources used by the client to keep track of their business.

Page 8: 1 Shawlands Academy Higher Computing Software Development Unit

8

The Software Specification• is the end result of the requirements elicitation• is a written statement of what the design team

must go on to make• It forms part of a legally binding contract

between the client and the development team

It is extremely important to get this document right. Mistakes made later can be very costly.

Page 9: 1 Shawlands Academy Higher Computing Software Development Unit

9

Analyst’s Reports

The systems analyst must document the clients needs by drafting formal reports:

– requirements specification– software specification

Page 10: 1 Shawlands Academy Higher Computing Software Development Unit

10

Fact Finding

Analysis is a fact-finding process, and there are five key questions that need to be asked, often repeatedly.

These key questions are: WHO? WHAT? WHERE? WHEN? WHY? Not HOW?

Page 11: 1 Shawlands Academy Higher Computing Software Development Unit

11

Designing the Solution

Once the needs of the user are clearly understood and documented, software development can move onto the next stage, involving the DESIGN of the system. Design of the User InterfaceDesign of the structure of the software•Design of the detailed logic of the software

Page 12: 1 Shawlands Academy Higher Computing Software Development Unit

12

Design Representations

There are a number of commonly used forms of design representation in common use. Examples include:

– structure diagrams– pseudocode

Page 13: 1 Shawlands Academy Higher Computing Software Development Unit

13

Structure DiagramA commonly used syntax for structure diagrams is as follows:

A procedure A loop

A decision A single task

Page 14: 1 Shawlands Academy Higher Computing Software Development Unit

14

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 15: 1 Shawlands Academy Higher Computing Software Development Unit

15

Pseudocode

Pseudocode is another example of a method of describing a program. Simple English words are used to describe the steps of the algorithm and any refinements made.

Page 16: 1 Shawlands Academy Higher Computing Software Development Unit

16

Pseudocode - Example

1. Display information2. Get details3. Do calculation4. Display answer

Refine step 22.1 display prompt2.2 get value2.3 while value out of

range2.4 display

error message2.5 get value2.6 loop

Top level design

Notice the numbering system

Simple English

words in a familiar

program form

Page 17: 1 Shawlands Academy Higher Computing Software Development Unit

17

Hierarchy of Software

• A diagram of the hierarchy of software will – show the relationship between all the

modules of the software– identify modules which contain a call

to other sub modules.

Page 18: 1 Shawlands Academy Higher Computing Software Development Unit

18

An Iterative process

It is important to realise that the software development process is iterative in nature. This means that the problem will be revisited a number of times getting closer and closer to the required solution on each time round.

Page 19: 1 Shawlands Academy Higher Computing Software Development Unit

19

Implementation

The next stage involves turning the carefully structured design into a working solution.

Page 20: 1 Shawlands Academy Higher Computing Software Development Unit

20

Choosing an Environment

Before we can implement a solution we must decide on the programming environment which is most suitable.Languages are generally designed for a specific purpose.

Page 21: 1 Shawlands Academy Higher Computing Software Development Unit

21

Programming LanguagesLanguage Purpose

Algol ScienceCobol BusinessComal EducationBASIC EducationFortran Science and MathsJava multimedia

Pascal EducationProlog Artificial Intelligence

Page 22: 1 Shawlands Academy Higher Computing Software Development Unit

22

Things to Remember...

The code should be modular, - procedures and functions should be used. Library modules should be ‘closed’ so that the variables used in them cannot disturb the code of the rest of the program.

Meaningful variable names should be used. There should be internal commentary,

explaining what each section of the code does. Where a complex algorithm has been implemented, it is helpful to comment on several lines of the code, in addition to a general description of what the module does.

Page 23: 1 Shawlands Academy Higher Computing Software Development Unit

23

Things to Remember (2)

Where parameters are being used in a module, they should be described in the commentary of the module. This is particularly important in library modules.

• Parameter lists should be small and manageable. If a procedure or function requires a set of parameters which is very big, then it is likely that it is performing more than one program function. The original design needs to be revisited, and functionally decomposed.

Page 24: 1 Shawlands Academy Higher Computing Software Development Unit

24

Debugging the Solution - TestingA common technique in trying to debug a piece of software is to conduct a structured walkthrough (step through each line of logic in the code) using a structured listing,

which is simply a formatted display or printout of the code. It is important that the code is written in such a way that helps the above activities.

Page 25: 1 Shawlands Academy Higher Computing Software Development Unit

25

Dry RunsTo complete a dry run the programmer works through a section of program code by hand. This is very useful for locating errors in both syntax and semantics.A trace table will normally be used in this activity.

Page 26: 1 Shawlands Academy Higher Computing Software Development Unit

26

Trace Tables

A trace table is constructed with a column to identify the instruction executed and a column for each variable.

Line no Length Breadth Area1 52 43 204 20

The programmer works through each line of the listing changing the appropriate variables.

Page 27: 1 Shawlands Academy Higher Computing Software Development Unit

27

Test Data

1. “normal” operation of the software, to make sure that there are no unexpected results in ordinary work.

2. the operation limits of the software, to make sure that the boundary conditions identified in the design stage are being handled properly.

3. “exceptions” to the normal operating conditions. This set will show whether or not the software can react to unexpected inputs in an effective way, without crashing.

The expected results from a test data set must be known in advance, so that they can be checked against the actual results. You should include test data to demonstrate the following:

Page 28: 1 Shawlands Academy Higher Computing Software Development Unit

28

Documentation - The User Guide• This document should describe how

to use the software. • Ideally there should also be tutorial

files which can take the user through examples of a piece of work, and allow them to become familiar with the commands, and the various sections of the software.

Page 29: 1 Shawlands Academy Higher Computing Software Development Unit

29

Documentation - The Technical GuideThis document should provide

information on• how to install the software• hardware requirements• software requirements

Page 30: 1 Shawlands Academy Higher Computing Software Development Unit

30

Evaluation• Does the solution meet the user

requirements?– Judge this against a set of criteria

• screen layout• help required• user prompts• fitness for purpose• maintainability• robustness• reliability• portability

Page 31: 1 Shawlands Academy Higher Computing Software Development Unit

31

Some Definitions• Correctness

– A program is correct if it matches the users requirements

• Maintainability– A program will be easily maintained if it

has been written in a way which will make it easy to change. This will include• internal commentary• meaningful variable and procedure names• parameter passing

Page 32: 1 Shawlands Academy Higher Computing Software Development Unit

32

Some Definitions (2)

• Reliability– A program is reliable if it is free from

bugs, ie it must meet the requirements repeatedly under severe testing

• Readability– A program is readable if it is easily

understandable by people other than the original programmer, ie good internal documentation, use of white space, etc.

Page 33: 1 Shawlands Academy Higher Computing Software Development Unit

33

Some Definitions (3)

• Portability– A program is said to be portable if it can be

transferred from one system to another with minimal adaptation

• Efficiency– A program is efficient if it uses the most

appropriate structures for the job. It should run as fast as possible and not use up more system resources than are necessary.

Page 34: 1 Shawlands Academy Higher Computing Software Development Unit

34

Some Definitions (4)

• Robustness– A program is said to be robust if it

does not crash when invalid data is input or unexpected results are generated.

• Fitness for Purpose– Does the program meet the

requirements?

Page 35: 1 Shawlands Academy Higher Computing Software Development Unit

35

Maintenance• Activities identified as part of

maintenance:– corrective (17%)– adaptive (18%)– Perfective (65%)

17 18

65

0

10

20

30

40

50

60

70

%

Page 36: 1 Shawlands Academy Higher Computing Software Development Unit

36

Maintenance Costs• Maintenance is very costly. It is

vital that errors are detected at as early a stage as possible.

0102030405060708090

100

% of total development cost

1970s1980s2030 ?

Page 37: 1 Shawlands Academy Higher Computing Software Development Unit

37

Factors Affecting Maintainability• The application being supported• staff mobility• too many versions• not enough documentation• dependence on external

environment• hardware and software stability