Slides and notes for a lecture on the ‘models of... engineering’ for the course SEM520.2, Programming

advertisement
Slides and notes for a lecture on the ‘models of software
engineering’ for the course SEM520.2, Programming
Methodology, University of Birmingham, School of Computer
Science.
The Software Lifecycle
Definition: system analysis, feasibility study,
requirements analysis, requirements validation, and
specification;
Planning: software estimation, risk analysis, project
planning, and project management;
Development: architectural design, detailed design,
implementation, testing, validation, and
verification;
Maintenance: defect correction, adaptation,
enhancement, and preventive maintenance.
1
Models of Software Engineering
Linear models
– The waterfall model
– Rapid application development
Prototyping
Evolutionary models
– Incremental development
– The spiral model
Other approaches
2
The waterfall model
system analysis;
requirements analysis;
design;
implementation
testing; and
maintenance.
The model includes feedback from each phase to each of
the preceding phases.
3
Rapid application development (RAD)
RAD has an extremely short development cycle,
achieved by the re-use/assembly of existing software
components.
business modelling;
data modelling;
process modelling;
application generation; and
testing & turnover.
The model assumes the application can be modularised
in a way which allows each major function to be
developed independently.
4
(Throw-away) Prototyping
Prototyping is a technique for identifying user
requirements. Following an initial requirements
gathering phase:
establish prototype objectives;
define prototype functionality;
develop prototype;
evaluate prototype;
refine requirements and loop.
The final prototype is used to develop a requirements
description for use by another model, e.g. waterfall.
5
Incremental development
Starting with the best understood or most important
requirements, a linear model is repeatedly applied to
develop a series of operational systems.
specify increment;
develop increment;
validate increment;
integrate increment;
validate system and loop
The system architecture and all completed increments
are frozen during subsequent development.
6
The spiral model
The spiral model is a ‘meta-model’ which subsumes
both linear and evolutionary models. Each loop of the
spiral is split into four phases
objective setting;
risk analysis;
development & validation; and
planning the next phase.
Development & validation can use different models, e.g.
waterfall, prototyping, for each phase or part of the
system.
7
Other approaches
concurrent development;
formal models;
component assembly model (code reuse);
exploratory programming.
8
Next week’s lecture
Requirements and Specifications
Suggested reading:
Pressman, chapter 11
9
Download