software development process there are seven stages to the software development process. each stage...

51
Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated with them. Analysis Desig n Implementation Testin g Documentation Evaluation Maintenance A Dance In The Dark Every Monday

Upload: brenda-porter

Post on 14-Dec-2015

223 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Software Development Process

There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated with them.

Analysis

Design

Implementation

Testing

Documentation

Evaluation

Maintenance

A

Dance

In

The

Dark

Every

Monday

Page 2: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Analysis Stage

Requirements of the system are identified and clarified.

Systems Analyst (unlikely to be the programmer)

Acts as the intermediary between the client and the software department. Will work for the software department/house.

Would interview the client to discuss the problem and take observation notes within the workplace.

ClientRepresents the company who require a new or updated system. Works for the company.

Page 3: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Analysis Stage cont….

Stage involves:

• Interview client and employees to discuss client needs. Clear picture of what needs done. (Questionnaire can be carried out)

• Observe the workplace to view current system in operation. Day to day running.

Notes can be made of what tasks people carry out in their role as part of the system

• Produce a report detailing the clients specific needs (Software Specification)

Page 4: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Software Specification

Document produced at the analysis stage which has the status of a legal contract between the client and the software company.

Software Specification is the result of examining the existing system, clearly identifying the needs of the client.

• Clear description of exactly what the software has to do to meet the needs of the client.

• Timescale, budget

• Legal document

Page 5: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Design Stage

Once the software specification is precise the design stage can begin.

Program design is the process of planning the solution. The interface, structure and detailed logic of the software are designed. (pseudocode)

Design of the program is very important.

Time spent on the design stage can reduce the chance of errors appearing later on in the solution.

Page 6: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Design of Interface (HCI)

• Ease of data entry for user – think about users computer skills e.g children or elderly

• Help and instructions screens (online help)

• Appropriate feedback on actions performed (meaningful error messages)

Will not accept user-friendly GUI

Page 7: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Design Methodology

Programmers can take a different approach to the design of the solution:

• Modular design

• Jackson Structure Design

• Object Oriented Design

Page 8: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Modular Design

Method of organising a large computer program into sub programs. Breaking the program up into smaller parts.

Each part (module) are constructed so that they can be designed, coded and maintained independently.

Forms of Module design:

• Top-Down Design (Stepwise Refinements)

• Bottom-up Design

Page 9: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Top Down Design (Stepwise refinement)

Involves looking at the whole problem (top) and breaking it down into smaller, easier to solve, sub-problems.

Sub problems can then be broken down into smaller tasks until the sub tasks are very simple (stepwise refinement)

When stepwise refinement is complete, then the programmer can create the algorithm.

Page 10: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Bottom up Design

Begin with the lowest level of detail and work upwards.

Sometimes better to work this way by writing the sub program and module first.

Works well with object orientated

programs

Page 11: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Advantages of using modularity

• Improves readability of the program

• Aids Maintenance

• Splits the problem into more manageable sections which can be easily allocated amongst the programming team.

Page 12: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Design Notation

A way of representing the program using different designs. Common design notations include:

• Flow Charts

• Structure Diagrams

• Pseudocode *

Page 13: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Flow Charts

Use diagrams made up of differently symbols connected with arrows to show a graphical breakdown of each step required.

In general, they are read from top to bottom.

AdvantageShaped boxes show constructs (sequence, selection and repetition) easily

ProblemComplex programs can become unreadable.

Difficult to represent multiple decisions.

start

ask for length

take in length

ask for breadth

take in breadth

make area = length x breadth

display area

stop

Page 14: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Structure Diagrams Use differently shaped boxes to show the various sub-problems within the program in a hierarchy structure. In general they are read from left to right.

ask for length

Calculate Area of Rectangle

get dimensions calculate area display area

take in length

ask for breadth

take in breadth

make area = length x breadth

display area

AdvantagesUses linked boxes showing hierarchy. Useful for showing overall structure and data flow.

ProblemCan become complicated as each shape represents a different step.

Page 15: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

PseudocodeA step by step detailed solution of the problem using English words.

Main Steps1. Get dimensions2. Calculate area3. Display area

Step 1 1.1 ask user to enter length

1.2 take in length1.3 ask user to enter breadth1.4 take in breadth

Step 22.1 make area equal to length multiplied by breadth

Step 33.1 display message and area

Advantages

Useful when using visual basic, because it fits in neatly with the structure of the code. The main steps in the algorithm relates to the main program.

Page 16: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Documentation ProducedProgram design (algorithm) in an appropriate design notation and the design of the user interface.

Personnel Involved

System analyst and the project manager

The project manager is the person within the software company who overseas the whole project. Makes sure the correct personnel are involved and communicates with the client.

Page 17: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Implementation

Once the design stage is complete, the programmer is ready to implement the program.

Implementation is changing the program design into a set of instructions that the computer can understand and the production of internal documentation.

Page 18: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Guidelines (Handout)

• Program should be modular (broken down into procedures and functions).

• Meaningful variable names should be used.

• Internal commentary should be used to explain the function of the code throughout the program listing.

• Procedures and functions should not be too large and complicated.

• Pre-written module libraries should be used to save time in writing and testing of code.

Page 19: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Internal Commentary (readable)

Useful if you, or someone else, has to look back at a program. Good internal commentary will help the programs maintainability.

Helps understand what each lines, procedure or function is suppose to do.

Page 20: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Choosing a suitable language

There a wide choice of programming languages available.

There are several factors that should be considered when choosing which programming language to use to implement the solution to the problem.

Algorithm Programming Code

Page 21: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Factors

Type of data that the language has to support. E.g. numbers, text, graphics or sound.

Arithmetic and logical operations that are required, and whether the language has to support these e.g. string operations to create substrings, join string together and so on.

The platform environment in which the program will operate. (Mac or Windows?)

Speed of execution if the software is important, then a language that gives a fast response time will need to be chosen.

Skills of the programming team must be considered - experience

Page 22: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

At this stage the programmer or a team of programmers are involved and use the design to produce software which is; (Look closer under the evaluation stage)

Correct/fit for purpose – the software matches the original specification.

Maintainable – Any changes or updates to the software can be made without difficulty.

Reliable – the software is free from design and coding bugs and produces the expected results for all test data.

Readable – another person should be able to read and understand the coding. The use of meaningful variable names and internal commentary makes this easier.

Portable – the ability of software to be used on a computer other than that for which it was originally designed.

Efficient – the software does not require excessive resources, such as memory or backing storage space, in order to run.

Robust – the ability of software to cope with unexpected events without crashing.

Page 23: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Documentation ProducedProgram Code using a programming language, such as, visual basic. The programming code will have internal documentation.

Benefit

Internal documentation explains the purpose of the each line of code. Ease for upgrades and maintenance.

Personnel Involved

Project manager and programmer.

Programmers

Design and write the program code, working from the software specification.

Page 24: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Testing Stage

Testing makes sure the program actually solves he problem it is supposed to and can show the presence of errors.

Testing the program means you have to run the program to see weather or not it behaves as expected.

Testing should be both systematic and comprehensive.

Systematic Testing

Means that your testing should follow a plan. Involves a progression through testing subroutines to test the whole system.

This testing should be fully documented.

Page 25: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Types of testing (Systematic)

Acceptance Testing (Beta testing)Once tested by the developers, it is tested by the clients in the situation in which it will be used to make sure the program is fit for purpose.

Formal process, documented in which users use the new system, verify that it works correctly under operational conditions, and note any errors that need fixed.

Page 26: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Comprehensive Testing

Test the program as thoroughly and completely using a full range of input data (test data).

Using Test Data (Comprehensive Testing)

Test data is chosen to test that the software can cope with as many cases as possible. Normal, boundary and exceptional data should be used to test the software.

Page 27: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Test Data

Test data must cover all possible conditions.

Expected results must be known in advance.

Normal Data Boundary Data (Extreme)

Exceptional Data

Data which is within the limits that your program should be able to deal with

Data which lies on the boundaries at each end. The program should accept this data.

Data which is invalid outside the normal range.

Page 28: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Recap

SystematicTesting should follow a plan and not just be random..

ComprehensiveTest the program with test data. Making sure you test every part of the program with all types of data. This is also known as exhaustive testing.

Page 29: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Example Test Data

Write a program that will take in three whole numbers and calculate the average. Numbers entered must be between 0 and 30.

Normal test dataInput Expected Output10, 25, 17 17.3

Within the limits that the program should be able to deal with.

Extreme (boundary) test data

Input Expected Output

0, 1, 30 10.7

Data which is at the ends of the acceptable range of data. On the limits or boundaries.

Page 30: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Exceptional Test Data

Input Expected Output-1 Out of range31 Out of range0.3 Not a whole numberEnter text Not an integer

Data which is invalid. Well written programs should be able to detect any exceptions, warn the user of the error, and give them another chance to enter data.

This is done by input validation.

Page 31: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Types of Errors

• Execution with run-time errors• Compilation with syntax errors• Logical Errors

Page 32: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Execution/Run-time Errors

Errors which show up during program execution

• Overflow- something becomes to large to be processed accurately.

• Rounded- numbers are rounded up (+0.01)

• Truncation- numbers are rounded down (+0.01)

• Division by zero – instructed to divide by zero, which will generate an error and crash the program.

Page 33: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Compilation/syntax errors

Error which is detected during the process of compilation of the program.

• Linkage errors (linking sub programs (modules) – sub program (modules) not present)

• Syntax errors rules of the program language are broken

Misspelling of language keywords e.g. PRNT “Hello”

Missing inverted commas Picdisplay.print “Hello

A For….Next loop with a For but no Next.

Page 34: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Logical Errors

Mistakes in the design of the program. Program does not do what it is suppose to do. (produce wrong result)

Example

Code could be written to add two numbers instead of multiplying them, or subtract two numbers the wrong way round.

Area = Length + Breadth

Page 35: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Detecting Errors ManuallyTechniques used to locate and remove errors.

Dry RunInvolves stepping through the program instructions and manually working out on paper how the program variables are updated. It is a pencil and paper exercise.

Usually carried out on a small part of the program (such as a procedure)

Structured Walkthrough

Involves following through the logic of the instructions line by line using a structured listing of code.

What is a structured Listing?

Page 36: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Structured Listing

A formatted printout of the programming code. The formatting should make the program readable.

Features of a structured List:

• Indentations to show structure of program• Blank lines between code• Capitalised Words• Bold/colour keywords• Line numbers• Internal commentary• Modular coding• Meaningful variable names

Advantage

See at a glance where each of the program control structures begins and ends.

More likely to spot mistakes.

Page 37: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Techniques used to locate errors using the software development language

Many software environments have built in features to help programmers check for bugs which cause errors.

Trace FacilityAllows programmer to follow the path through the program at the same time as it is being run.

Goes through program one line at a time.

Allows user to watch how variables are updated.

Page 38: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Documentation ProducedSets of test data and test report.

Documentation may help to identify areas where testing was inadequate.

Personnel Involved

Independent test group (ITG)

Independent Test Group

Set in order to test software. Not associated with the software company or the programmer.

• Examine code

• Document tests

• Re-test software

• Document errors found

• Repeat all tests on the corrected code

Page 39: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Documentation

Users will need to be able to read and learn about the new system. The documentation should include:

• User Guide

• Technical guide

User Guide

Guide on how to use the actual software. This guide will be written by the programmer.

• Getting started notes

• Tutorial guide (online Tutorial )

• Manual on how to use program

This may be supplied on a separate CD-ROM.

Page 40: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Technical Guide

Explanation on how to install the software. Again this will be prepared by the programmer.

Includes:

• Installation Requirements (type of OS, amount of RAM and backing storage)

• Hardware requirements (speakers, scanner)

• Explain how to edit or make changes to software.

• Troubleshooting Guide

Dual Platform

Software which is capable of being installed on two completely different platforms, e.g. windows and Mac.

Additional Documentation

License agreement

Page 41: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Documentation ProducedUser Guide and technical guide

Personnel Involved

Client, system analyst and programmer

Page 42: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Evaluation

Involves reviewing the solution against suitable criteria.

Important to evaluate it in terms of whether or not the original requirements have been met.

The software is evaluated by judging it against a set of criteria:

Robust

Reliability

Portability

Efficiency

Maintainability

Readability

Correct/Fit for purpose

User Interface

Page 43: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Documentation ProducedProject report (Evaluation)

Page 44: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Maintenance

Changing the program, often some time after it has been written. Creators of software systems often establish help desks, so users can obtain advice about the software.

Once the product has been delivered to the company the clients will pick up on errors which were missed during the intense testing.

Types of Maintenance:

• Corrective Maintenance

• Adaptive Maintenance

• Perfective Maintenance

Page 45: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Corrective Maintenance

Is concerned with errors that escaped detection during testing but which occur during actual use of the program.

These errors will be removed by the development team.

Page 46: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Adaptive Maintenance

Is necessary when the program's environment changes. It allows the authors to provide a program which responds to changes in the operating environment.

For example:

a change of operating system could require changes in the program (Windows to Vista)

Or

a new printer might call for a new printer driver to be added to the program.

Involves adaptation as a result of change in software or hardware. – remember to give examples.

Page 47: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Perfective maintenance

Occurs in response to requests from the user to enhance the performance of the program. This may be due to changes in the requirements or new legislation.

Clients will not incur costs for corrective maintenance, since the developers have met the legally binding contract stated in the software specification.

Any adaptive or perfective maintenance involves change to the system outside the requirements, and of course the client must pay for both these maintenance activities.

Page 48: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Typical Questions

There are three different types of maintenance which can be carried out on a piece of software once it is distributed. Name and describe each type.

Software development companies spend most of their time in maintaining existing software rather than develop new systems. Therefore it is very important to produce software that is relatively easy to maintain.

The following factors will affect how easy it is to maintain a system:

• Staff mobility

• Poor Documentation

• Modularity

• Programming Language used (Low Level/high Level)

Page 49: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Maintainability

Don't confuse maintenance with maintainability.

Maintainability

Software that has been written using meaningful variable and procedure names.

Makes use of comment lines.

Fully documented.

Written in modular design using local rather and global variables.

Why? This allows the programmers at a later date to modify and update the program.

Page 50: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Documentation ProducedMaintenance report.

Personnel Involved

Programmer and client are essential at this stage.

Page 51: Software Development Process There are seven stages to the software development process. Each stage has a key task, personnel and documentation associated

Iterative Nature of the Development Process

Iteration = repetition or doing something over again.

The software development process can be repetitive, especially in the early stages.

Repeat early stages until software meets specification.

REPEATAnalysis – re-interview client to gather more infoDesign ImplementationTestingDocumentationEvaluation

UNTIL your software meets the specification