Homework 1
Unit 3 Software development
Homework 1: Systems analysis methods
1. The software development life cycle is often shown in graphical form as shown below:
Analysis
Maintenance Design
Evaluation Implementation
(a) Why is it shown as a never-ending cycle? [1]
The cycle repeats continuously
(b) Fill in the table to show at which stage each of the following steps occurs.
The first one has been done for you. [5]
Stage
The systems analyst interviews people who will use
1 Analysis
the software
2 A description of how the data will be processed is drawn up Design
3 User and technical documentation is written Evaluation
The user tests the system to make sure it does what it is
4 Evaluation
supposed to do
Users fill in questionnaires about what they think the problems
5 Evaluation
are with the current way of doing things
6 A test plan is drawn up Design
The software is modified to allow a new method of
7 Maintenance
inputting data
8 The systems analyst observes how the current system works Analysis
A new menu item is added to the software because of a
9 Maintenance
change in user requirements over time
A programming language or software package to be used for
10 Design
implementing the system is chosen
11 The software is coded and tested Implementation
1
Homework 1
Unit 3 Software development
2 Mark each of the following statements as TRUE or FALSE. [4]
Statement True or false?
1 The Waterfall software development life cycle uses prototyping False
A prototype can either be a throw-away or can be refined
2 True
through several cycles
3 The Spiral model is suitable for small projects False
A lifecycle model which uses prototypes is more likely to result
4 True
in what the customer actually wants
Pseudocode and flowcharts are used in the Analysis stage of
5 False
the software development life cycle
A model using prototypes is time-consuming because of the
6 process of getting feedback, and is therefore more costly than True
other types of model
The Agile model is developed in rapid incremental cycles, with
7 True
each version building on the previous one
In the Agile model, customers, developers and testers
8 True
frequently interact with each other
3. A software company, TOPS, has been asked to build a large complex website for a rapidly
expanding company, Acme Electronics Ltd. Acme feels they have outgrown their current
website and they want to have a completely new website built, with a new design and much
more functionality. TOPS has been recommended to them because it has a team of very
experienced designers and programmers.
Describe the waterfall and spiral software development models. Discuss the advantages
and disadvantages of each.
State which you would recommend for this project, giving reasons for your answer.
In this question you will be marked on your ability to use good English, to organise
information clearly and to use specialist vocabulary where appropriate. [10]
Waterfall:
Advantages:
The model is simple to understand and use. Each stage is separate and self-contained
with well defined outcomes and written documentation. This makes the project relatively
straightforward
2
Homework 1
Unit 3 Software development
to manage. The model works well for smaller projects where requirements are very well
understood.
Disadvantages:
No working software is produced until late in
the cycle. The user is presented with the finished product and if it is not quite what was
required, it is generally too late to make changes.
This model is suitable when: The requirements are very clear and fixed. There are no
ambiguous requirements.
Spiral:
The four basic steps of analysis, design, implementation (i.e. programming and testing) and
evaluation are followed.
Advantages:
The well-defined steps make the project easy to manage. Software is produced at an early
stage so problems and issues can be identified early. The user gives feedback on each
prototype and any required changes can be made early in the process. Added functionality
can be added during the process. The end result is more likely to be what the
user wants.
Disadvantages: The process of developing prototypes, getting feedback and refining the
prototypes is time-consuming so the finished product takes longer to develop. A system is
more costly to develop because of the time involved. Not suitable for smaller projects.