Post on 31-Dec-2015
1
The Software Development ProcessSystems analysis
Systems design
Implementation
Testing
Documentation
Evaluation
Maintenance
2
Systems AnalysisWhat 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.
3
Skills and techniques of the Systems Analyst
The systems analyst must
extract the clients needs
document these needs in a formal waycommunicate these to the designers
4
Extracting the Clients Needs
The analyst will also inspect information sources used by the client to keep track of their business.
Extracting 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
From this the Software Specification is created. This is a legal binding document between client and sw company
5
The Requirements Specification is the end result of the
requirements elicitation is a written statement of what the
design team must go on to make
It is extremely important to get this document right. Mistakes made later can be very costly.
6
Documentation
The systems analyst must document the clients needs by drafting formal reports:
requirements specification system specification
7
Design Representations
There are a number of commonly used forms of design representation in common use. Examples include:
structure diagrams pseudocode
8
Structure DiagramA commonly used syntax for structure diagrams is as follows:
A procedure A loop
A decision A single task
9
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
10
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.
11
Pseudocode - Example1. 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
12
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.
13
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.
14
CASE ToolsCASE stands for “Computer Aided Software Engineering”. A CASE TOOL KIT is a set of integrated CASE tools that have been designed to work together and to automate (or provide automated assistance for) the entire software life cycle, including analysis, design, coding and testing. Using such a toolkit speeds up the development process in a number of important ways.
15
Fact FindingAnalysis 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?
16
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 softwareDesign of the detailed logic of the software
17
Implementation
The next stage involves turning the carefully structured design into a working solution.
18
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.
19
Programming LanguagesLanguage Purpose
Algol ScienceCobol BusinessComal EducationBASIC EducationFortran Science and MathsJava multimedia
Pascal EducationProlog Artificial Intelligence
20
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.
21
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.
22
Debugging the SolutionA 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.
23
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.
24
Trace TablesA 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.
25
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:
26
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.
27
Documentation - The Technical Guide
This document should provide information on
how to install the software hardware requirements software requirements
28
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
29
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
30
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.
31
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.
32
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?
33
Maintenance Activities identified as part of
maintenance: corrective (17%) adaptive (18%) Perfective (65%)
17 18
65
0
10
20
30
40
50
60
70
%
34
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 ?