Software Engglec2
Software Engglec2
Objectives
Exploratory development
Objective is to work with customers and to evolve a final
system from an initial outline specification. Should start
with well-understood requirements and add new features
as proposed by the customer.
Throw-away prototyping
Objective is to understand the system requirements.
Should start with poorly understood requirements to
clarify what is really needed.
Evolutionary development
Evolutionary development
Problems
Lack of process visibility;
Systems are often poorly structured;
Special skills (e.g. in languages for rapid prototyping) may
be required.
Applicability
For small or medium-size interactive systems;
For parts of large systems (e.g. the user interface);
For short-lifetime systems.
Component-based software
engineering
Objective setting
Specific objectives for the phase are identified.
Risk assessment and reduction
Risks are assessed and activities put in place to
reduce the key risks.
Development and validation
A development model for the system is chosen
which can be any of the generic models.
Planning
The project is reviewed and the next phase of
the spiral is planned.
Spiral model of the software process
Risk
anal ysis
Risk
Oper a-
anal ysis
Prototype 3 tional
Prototype 2 pr otoype
Risk
REVIEW anal ysis Proto-
type 1
Requirements plan Simula tions , models , benchmar
ks
Life-cycle plan Concept of
Oper ation S/W
requir ements Product
design Detailed
Requir ement design
Development
plan validation Code
Unit test
Integ ration Design
V&V Integ ration
and test plan
Plan ne xt phase test
Acceptance
Service test Develop , verify
next-le vel pr oduct
4.3. Process activities
Software specification
Software design and implementation
Software validation
Software evolution
Software specification
Architectural design
Abstract specification
Interface design
Component design
Data structure design
Algorithm design
The software design process
Structured methods
Phas e iteration
Inception
Establish the business case for the system.
Elaboration
Develop an understanding of the problem domain and the
system architecture.
Construction
System design, programming and testing.
Transition
Deploy the system in its operating environment.
RUP good practice
Testin g too ls
Debugg in g too ls
Co nfiguratio n
management too ls
Do cumentatio n to ols
Editing to ols
Tools
Support individual process tasks such as design consistency
checking, text editing, etc.
Workbenches
Support a process phase such as specification or design,
Normally include a number of integrated tools.
Environments
Support all or a substantial part of an entire software
process. Normally include several integrated workbenches.
Tools, workbenches, environments
CASE
techn olo g y
M ulti-meth od Sin gle-metho d Gen er al-p urp ose Lan gua ge-specific
wo rk ben ch es wo rk ben ch es wo rk ben ch es wo rk ben ch es
Key points