SWE 205 - Introduction To Software Engineering
SWE 205 - Introduction To Software Engineering
Software Engineering
Lecture 4
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
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.
11
Component Based System
Engineering
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
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
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