You are on page 1of 19

Introduction to Software

Engineering

Lecture 3

1
Lecture Objectives
 Software processes and their principle
characteristics.
 Generic software process models
 Waterfall model
 Evolutionary development
 Component based system development

2
What is a software process?
 A set of ordered tasks to produce indented
output of some kind
 Involving activates,
constraints; and
 Resources
 The process of building a software product
 Life cycle - describes the life of the software from
conception through its implementation, delivery,
use and maintenance.

3
Why we need software process?
 Common understanding of the activities,
resources and constraints involved in
software development.
 Creating processes helps
 Find inconsistencies,
 Redundancies; and
 Omissions

4
Generic software process
models
 The waterfall model
 Separate and distinct phases of specification
and development.
 Evolutionary development
 Specification, development and validation are
interleaved.
 Component-based software engineering
 The system is assembled from existing
components.

5
Waterfall Model
Requir ements
definition

System and
software design

Implementa tion
and unit testing

Integ ration and


system testing

Oper ation and


maintenance
6
Waterfall Model
 Inflexible partitioning of the project into
distinct stages
 Makes it difficult to respond to changing
customer requirements.
 Model is only appropriate when the
requirements are well-understood; and
 changes will be fairly limited during the design
process.

Few business systems have stable requirements.


7
Evolutionary development
 Exploratory development
 Objective is to work with customers and to evolve
a final system from an initial outline specification.
 Starts with well-understood requirements and add
new features as proposed by the customer.
 Throw-away prototyping
 Objective is to understand the system
requirements.
 Starts with poorly understood requirements to
clarify what is really needed.

8
Evolutionary Development
Concurr ent
activities

Initial
Specification version

Outline Intermedia te
Development versions
description

Final
Valida tion version

9
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.

10
Component Based System
Engineering
 Systematic reuse where systems are
integrated from existing components or
COTS (Commercial-off-the-shelf)
systems.

This approach is becoming increasingly used


as component standards have emerged.

11
Component Based System
Engineering

Requirements Component Requirements System design


specification analysis modification with reuse

Development System
and integ ration validation

12
Process Iterations
 System requirements ALWAYS evolve in the
course of a project
 Process iteration where earlier stages are
reworked is always part of the process for large
systems.
 Iteration can be applied to any of the generic
process models.
 Two (related) approaches
 Incremental delivery;
 Spiral development.

13
Incremental Delivery
 Rather than deliver the system as a single
delivery,
 Development and delivery is broken down into
increments;
 With each increment delivering part of the
required functionality.
 User requirements are prioritised and the
highest priority requirements are included in
early increments.
14
Incremental Delivery
Define outline Assign requirements Design system
requirements to increments architectur e

Develop system Valida te Integrate Validate


increment increment increment system
Final
system
System incomplete

Requirements are frozen though requirements


for later increments can continue to evolve.
15
Incremental Delivery -
Advantages
 Customer value can be delivered with each
increment so system functionality is available
earlier.
 Early increments act as a prototype to help
elicit requirements for later increments.
 Lower risk of overall project failure.
 The highest priority system services tend to
receive the most testing.

16
Spiral Development
 Process is represented as a spiral
rather than as a sequence of activities
with backtracking.
 Each loop in the spiral represents a
phase in the process.
 No fixed phases such as specification
or design - loops in the spiral are
chosen depending on what is required.

17
Spiral Development Model
Deter mine objecti ves,
Evalua te alterna tives,
alterna tives and
constr aints
(1) Development & Validation Risk
anal ysis
identify, resolv e risks

(2) Plan next phase!!!!! Risk


anal ysis
Risk
Oper a-
anal ysis
Prototype 3 tional
Prototype 2 protoype
Risk
REVIEW anal ysis Proto-
type 1
Requir ements plan Simula tions , models , benchmar ks
Life-cy cle plan Concept of
Oper a tion S/W
requir ements Product
design Detailed

Risks are explicitly assessed


De velopment
plan
Requir ement
valida tion Code
design

and resolved throughout the process.


Integ ra tion Design
V&V
Unit test
Integ ra tion
and test plan
Plan ne xt phase test
Acceptance
Service test De velop , verify
ne xt-le vel pr oduct

18
Key Points
 Software processes are the activities involved in
producing and evolving a software system.
 General activities are specification, design and
implementation, validation and evolution.
 Generic process models describe the organisation
of software processes. For example
 waterfall model,
 evolutionary development; and
 component-based software engineering.
 Iterative process models describe the software
process as a cycle of activities.

19

You might also like