Systems analysis - an introduction
Copyright: t.drewry@csm.uwe.ac.uk


 Software and System Development Life-cycles 

Why learn about Systems Analysis and Design?
The Triangle
depicts the relationship between the Client (Owner of the system), the Users (the eventual operators of the system which is to be introduced) and the Application Development Team, headed by the Analyst

Each corner of the triangle represents possibly conflicting points-of-view and different agendas in respect of the development of a new system. Theoretically (hopefully) the three parties will reach some compromise where they all have an equal say in the final system - shown by the lines meeting in the centre of the triangle. 

The Systems Analyst

As the liaison between users and the programmer team, (s)he must have good communication skills - and understand both the domain of the target organisation and the realm of the programmer team.

Historical perspective

In the 1960s: led to awareness of a 'software crisis', and the need to control and co-ordinate the software development process. (And the famous line: "It can be made cheaply, it can be made quickly and it can be made to a high standard - choose any two.")

The association of software production with the discipline of engineering resulted in use of engineering process models, known within the world of I.T as system development life-cycles. The traditional system development life-cycle (taken from Royce, 1970), is shown below, followed by a description of each stage.

The Traditional Life Cycle

Project Selection
Feasibility Study
Analysis - Requirements Definition
Systems and Software Design
Implementation and Unit Testing
System Testing
Operation and Maintenance
 
Project Selection (Initial strategy) 

Typically a small committee with responsibility for project budgets will decide in principle to go ahead with some project. They will usually:

Feasibility Study
Purpose: To decide whether the proposed system is feasible
usually in terms of economics (since most things are now technically feasible)
To give estimates of:
  • development costs
  • development timescale
  • running costs
Method: Observation; Interviews; Professional judgement.
 
Deliverables:
    • Feasibility Report to sponsor
    • Project Plan
    • Costs and Benefits
    • the go-ahead, or otherwise.
 
Analysis - Requirements Definition
Requirements Analysis   gathers information about what the users want in the new system
- theoretically does not include items in current system - however, information on current system likely to be obtained at the same time
 
Systems Analysis finds out what is done and why it is done
records it all
generates models (diagrams) showing who does what, when (physical model)
refines, adds more detail to requirements analysis
probably uncovers new requirements
generates new diagrams showing just what is done (logical model)
checks analysis with the user
Deliverables:
    • Requirements Report
    • Revised Project Plan
    • Revised Costs and Benefits
Systems and Software Design
System specification states what the new system will do
generates logical diagrams for new system
defines processes at all levels (highest to lowest)
defines all data required
System design e.g.
  • How the new system will fulfil specification
  • Which parts will be done by computer
  • Which parts will be done manually
  • What size/type of computer?
  • Networking and comms?
Deliverables:
    • System/software Specification
    • Database Definition
    • Training Manuals
    • Hardware Specifications (if relevant)
    • Revised Project Plan
    • Revised Costs and Benefits
Implementation and Unit Testing
System development
  • final definition of data structures
  • creation of data storage mechanisms
  • production of all programs
Unit testing development of test platform/procedures (comprehensive test plan and test data)
test each hardware item, each software unit, each clerical procedure and user interface
test any "off the shelf" modules
System Testing
Operation and Maintenance
Implementation 
(introduction
of system)
  • Phased - "a bit at a time"
  • Pilot - introduced first of all in one part of organization
  • Parallel - in parallel with existing system
  • Direct - "big bang" - all at once
Maintenance fixing problems
adding enhancements
keeping system up-to-date.
The ongoing upgrading of the system
-  of fixes to correct bugs not caught at testing time
-  of fixes  to adapt to a changing business environment
Review
  • Costs within budget?
  • Benefits achieved?
  • Performance up to expectations?
  • Room for improvements?
  • Recommendations for the future?

Three types of process model

The traditional life-cycle model (TLC) has been used, and is still being used, as the basis of development process models. Somerville suggests a number of general models (or development process paradigms). Three models which are used (as opposed to being theoretically useful) are:

All the system development lifecycle models fall within the same meta-paradigm; i.e.      Definition - Development - Maintenance


The waterfall model

Iteration within the Waterfall model

A major problem with software design is the need for iteration - typically required for, and a result of, verification and validation (described in Boehm, 1981, quoted by Somerville):

Asking these questions at the end of each development phase may result in a decision to repeat (iterate) the phase and sometimes require a reworking of a previous phase.
Iteration can be included within the waterfall model, but tends to reduce the manageability of a project. To deal with this, a strategy is used whereby a phase is 'frozen' after a specified number of iterations.


Exploratory programming

Some problems with exploratory programming:

However, some classes of system need this approach, particularly where the final system is proposed rather than specified, eg: in the field of Artificial Intelligence; or where there is a general idea that experimenting with a computer program/system could be useful 

Prototyping
A prototype is:
  1. an original or model after which anything is formed;
  2. the first thing or being of its kind;
  3. a pattern, exemplar, or archetype " (Websters 20th C.)
Prototyping in systems development is the process of creating a 'cut-down' version, or part, of a system so that users can: Prototyping helps to identify misunderstandings between 'users' and software developers; and may detect missing (ie: not yet specified) user requirements.

Advantages of prototyping stage:

Possible 'dangers' of prototypes For long-lifetime systems, prototypes should be completely re-implemented

Prototyping is seen sometimes as representing 'unacceptably large proportion of system development costs.' However, see Somerville on relative costs of corrective maintenance. For example: it "was estimated that one US Air Force system cost $30 per instruction to develop and $4000 per instruction to maintain over its lifetime" (Boehm, 1975) (It should be noted that systems typically  contain thousands, if not many hundreds of thousands, of instructions!) 


4GLS

Currently, 4GLs are good tools for prototyping. The 4GL process model is almost identical to the prototyping model.

Software development using a 4GL

Prototyping with 4GLs can be very useful in the requirements analysis and definition stages of large projects which otherwise 'use' a traditional lifecycle process model.

Prototyping as analysis tool

Advantages of using a 4GL in prototyping stage


RAD

A new (in 1997) development strategy called Rapid Applications Development (RAD) is already being used.
RAD makes use of:

RAD has had some successes in producing high quality software - in much less time than, for example, the traditional lifecycle process. 

Further Reading and Bibliography

A very good book to look at is : Software System Development - a gentle introduction, by Carol Britton and Jill Doake, McGraw-Hill, chapters 1, and 2.
Also:
Birrell, N.D. & Ould, M.A, (1986) A Practical Handbook for Software Development, C.U.P.
Fairley, R.E, (1987) Software Engineering Concepts, McGraw-Hill;
Jones, G.W. (1990) Software Engineering, John Wiley & Sons
Parkin, A. (1985) Systems Analysis, Edward Arnold
Somerville,I., (1990) Software Engineering (3rd ed.), Addison Wesley 


Questions
  1. In the 60's, the phrase 'software crisis' was coined to describe the problems people were having with computers and computing. What strategies were adopted to deal with the crisis and were they successful?
  2. Using diagrams to illustrate your answer, describe three models of the system development life-cycle.
  3. If you were advising a chief executive on how to go about developing and introducing a new information system in a large organisation, what advice would you give on the type of system development life-cycle she should propose?
  4. Who or what is a systems analyst and what does his/her job entail?
  5. In this lecture a diagram showing one of the three types of process model is different from the other diagrams, in that a 'flowchart' technique is used. How would the diagram look if it were drawn using the same methodology as the other diagrams? Why do you think the 'flowchart' method was used for that particular process model?
 
Tony's Home Page
Back to Top