Title: Lecture 3: Software Process Models
1Lecture 3 Software Process Models
- Dr Valentina Plekhanova
- University of Sunderland, UK
http//www.cet.sunderland.ac.uk/cs0vpl/SE-Com185.
htm
2Week 8 24.04.2003-28.03.2003Project Control
Session
- Tutorial Time 10 minutes for each Team
- Students will present project file, particularly
Schedule, plus any project documentation. - Students will describe where they are in the
project and any problems encountered. - During the discussion reviewers will ask to see
evidence of deliverables for any tasks that are
complete to determine whether they have in fact
been done.
3Week 8 24.04.2003-28.03.2003Project Control
Session
- Tutorial Time 10 minutes for each Team
- Students will present project file, particularly
Schedule, plus any project documentation. - Students will describe where they are in the
project and any problems encountered. - During the discussion reviewers will ask to see
evidence of deliverables for any tasks that are
complete to determine whether they have in fact
been done.
4Week 8 24.04.2003-28.03.2003Project Control
Session
- Tutorial Time 10 minutes for each Team
- Students will present project file, particularly
Schedule, plus any project documentation. - Students will describe where they are in the
project and any problems encountered. - During the discussion reviewers will ask to see
evidence of deliverables for any tasks that are
complete to determine whether they have in fact
been done.
5Basic Definitions Process Model
- A representation of a process.
- Some of the key components of a process model are
the activities that must be performed, the agents
that perform the activities, the products that
are produced, and the resources that are needed
for an activity Pankaj K. Garg, Mehdi Jazayeri,
1996. .
6Traditional Definition Boehm, 1988
- The main function of a software development
process model is to establish the order in which
major tasks are performed within a project, and
to establish the transition criteria for
proceeding from one task to the next.
7Goal
- A process model presents desired phases or
activities in a project - ????
8Process Element
- Any component of a process.
- Process elements range from individual process
steps to very large parts of process.
9Process Step
- An atomic action of a process that has no
externally visible substructure.
10Agent
- An actor (human or machine) who performs a
process elements.
11Role
- A coherent set of process elements to be assigned
to an agent as a unit of functional
responsibility. - A single agent can perform multiple roles and a
single role may be performed by multiple agents.
12Artifact
- A product created or modified by the enactment of
a process element.
13Software Process Models Introduction
- What are the common process models for
- developing software?
14Software Process Models
- A process model is a development strategy that
encompasses the process, methods and tools layers
and the generic phases (see Lecture 1). - The process model for a project is selected to
support the nature of the project, the
application domain, tools available, and the
controls and deliverables required.
15Software Process Models
- The process model for a project is selected to
support the nature of the project, the
application domain, tools available, and the
controls and deliverables required. - No agreement on a best process model.
16Software Process Models
- The life cycle history of each software product
is different. - Some products will spend years in the conceptual
stage, other products will be quickly designed
and implemented and some products must be
developed from scratch. - Various models have been designed to undertake
the process.
17Software Process Models
- It is recognised that Process Model
- Describes development strategy encompassing
processes, methods, tools. - Brings order into chaotic activities.
- Assists in controlling and co-ordination of
software projects.
18Software Process Models Benefits
- There are several benefits that have been
suggested for utilising process modelling
Kellner and Hansen, 1989 White, 1992. The main
ones are (but not limited to) - facilitating reasoning and communication about
the process - analysing, studying, controlling and managing the
process - determining ways in which the process may be
improved.
19Some Models or Some Paradigms of Software
Development
- Waterfall
- Document-driven
- Time-Milestone Driven Model
- Evolutionary Prototyping
- Risk-Based Spiral Model
- "Buy Commercial-Off-The-Shelf" Model
- Evolutionary Development
- Risk Reduction/Waterfall
- Incremental Development
20The Linear Sequential Model
- Also called the waterfall model
- or classic life-cycle.
- The waterfall model presents a documentation-drive
n approach Royce, 1970 Boehm, 1981. This
model was developed to provide support for the
developers to produce the necessary documentation.
21Sequential set of phases
- Software Requirements Analysis
- System and Software Design
- Writing the Programs (or coding, program
implementation, code generation) - Testing (unit testing, integration testing,
system testing, acceptance testing) - Maintenance
22The Waterfall Model
Requirements Capture
Requirements Documents
System Analysis
System Specification
System Design Models
System Design
Working Alpha System
System Implementation
Final Release System
System Testing
System Maintenance
23The Waterfall Model Advantages
- The waterfall model allows correction of the
failed tasks. This is represented by the
feedback loops for task performances. - Simple to implement and manage.
- Well used.
24The Waterfall Model Disadvantages
- Real projects are not sequential.
- Can not state requirements completely early.
- Customer does not see system until after testing.
- Development often results in parts of project
being blocked. - Emphasis is on ease of project management.
- Method does not scale up to large projects well.
- Can not ensure that the delivered product
satisfies the customers requirements and the
project proceeds in an essentially fixed sequence
of phases.
25The Prototyping Model
- The prototyping model is often used when some
aspects of the system are not well defined. - Prototyping is focused on a target product
Lantz, 1985 Connell and Shafer, 1989 Gane,
1989. - This model helps to ensure (in comparison with
the waterfall model) the development of delivered
products that satisfy the customers real needs.
26The Prototyping Model
- The general idea is to construct a series of
prototypes to allow users to examine these and
then to indicate what changes they want in the
next one. - It should be pointed out that the prototypes are
usually built using a waterfall model process.
27The Prototyping Model Basic Steps - Requirements
Gathering
- Obtain requirements from customer.
- Identify areas of uncertainty.
- Quick Design and Build
- Quick design of aspects of system visible to
customer. - Quick development of a prototype implementation.
28The Prototyping Model Basic Steps - Customer
Evaluation of Prototype
- Prototype used to refine the requirements of the
system. -
- These basic steps are repeated until requirements
are well defined. - Should discard prototype and build the real
system.
29The Prototyping Model Advantages
- Customer can provide input to system early during
the development of the prototype, and will
usually get a system which does what they
require, and which they want. - Reduces problems in requirements which are the
most expensive to fix.
30The Prototyping ModelDisadvantages
- Customers see a working version early, and unless
they have a basic knowledge of the process, can
not understand why it should be thrown away. - The customer sees the prototype built quickly -
may not understand why the real version takes
so long. - Developer may make implementation decisions to
get the prototype working quickly, and these may
be carried over to the real system.
31The Spiral Model
- The Spiral model is a risk-driven approach
Boehm, 1988. - The primarily goal of this model is to determine
the risks involved in the process of product
development and then to attempt to minimise those
risks. - Spiral model is divided into a number of
framework activities (or task regions).
32The Spiral Model
- The specific character of the spiral model is
that it provides risk analysis before initiating
each life-cycle phase. - This model represents a significant advantage by
the incorporation of risk analysis, multiple
paradigms, managerial and planning issues.
33The Spiral Model
- The spiral model views the development process in
polar coordinates. (!!!) - The plane is divided into four quadrants that
represent different kinds of activities, as
follows - Determination of objectives, alternatives, and
constraints. - Evaluation of alternatives identification and
resolution of risks. - Development activities.
- Review and planning for future cycles.
34The Spiral Model (figure shows a single cycle of
the spiral)
35The Spiral Model
- Specific activities may overlap multiple spirals.
- Also, concurrent spirals may be required to
address varying areas of risk. - The commitment line may involve a decision to
terminate the project or change direction based
on the review results. - Some cycles of the spiral may require months to
complete, while others require only days.
36The Spiral Model
- Each cycle of the model addresses all the
activities between review and commitment events. - Early in the process, cycles may be short as
alternatives in the decision space of the project
are explored. - As risks are resolved, cycles may stretch, with
the development quadrant subsuming several steps
in the waterfall.
37The Spiral Model
- The spiral may be terminated with product
deliveryin which case modification or
maintenance activities are new spiralsor
continue until the product is retired.
38The Spiral Model Advantages
- Matches reality in that requirements change over
the life of a project. - Has advantages of prototyping - customer has
early input into system. - Many adaptations possible.
- Requires consideration of risks at all stages of
the development
39The Spiral Model Disadvantages
- Customers may be concerned about control of the
process in the spiral model. Can lead to
difficulties in contract negotiations. - Requires considerable expertise in risk
assessment. - Has not been as widely used as linear sequential
model (seen as new).
40Summary
- Current software process models differ from each
other by the goals and the different ordering of
project tasks. - Most current software models present only one
aspect that bears upon process development -
namely, to present a description of process
activities for software creation and evolution.
41Summary
- However, software is developed by people within a
complex environment which can be defined by
organisational, social, technical, psychological
and other aspects. - Hence, one of the major reasons for the lack of
process modelling success in practical
applications is that the existing process models
do not represent the human factors and
environment settings in which projects exist.
42Week 4 24.02.03- 28.02.03
- Project Control Session
- Tutorial Time 10 minutes for each Team
- Project Team will present project file Schedule,
any project documentation. - Students will describe where they are in the
project and any problems encountered. - During the discussion reviewers will ask to see
evidence of deliverables for any tasks that are
complete to determine whether they have in fact
been done.