Lecture 3 - Software Process Models - 2
Lecture 3 - Software Process Models - 2
ENGINEERING
Software Process Models - 2
BESE 28 (A,B,C)
1
Software ■ Software Prototyping
Process Models – creating prototypes, i.e., incomplete versions of the
software program being developed.
2
Software Prototyping
■ A prototype is an initial version of a system used to demonstrate
concepts, try out design options, and find out about the problem and
its possible solutions
4
Benefits of Prototyping
Improved maintainability.
5
The Process of Prototype Development
6
Prototype Development
■ May involve leaving out functionality
– Prototype should focus on areas of the product that are not
well-understood
7
Throw-away Prototypes
■ Prototypes should be discarded after development as they are not a good
basis for a production system:
– It may be impossible to tune the system to meet non-functional
requirements
– Prototypes are normally undocumented
– The prototype structure is usually degraded through rapid change
– The prototype probably will not meet normal organizational quality
standards
8
Prototyping - Advantages
Customers sometimes demand the actual product to be delivered soon after seeing an early
prototype.
Customers may not be satisfied or interested in the product after seeing the initial prototype.
10
When to use Prototyping?
Prototype model should be used when the desired system needs to have a lot of
interaction with the end users.
Typically, online systems, web interfaces have a very high amount of interaction with end
users, are best suited for prototype model. It might take a while for a system to be built
that allows ease of use and needs minimal training for the end user.
Prototyping ensures that the end users constantly work with the system and provide a
feedback which is incorporated in the prototype to result in a useable system. They are
excellent for designing good human computer interface systems.
11
Software ■ Software Prototyping
Process Models – Creating prototypes, i.e., incomplete versions of the
software program being developed.
■ Spiral Model
– gradual releases and refinement of a product
through each phase of the spiral
12
Boehm’s Spiral Model
No fixed phases such as specification or design - loops in the spiral are chosen
depending on what is required.
13
Boehm’s Spiral Model Of The Software Process
planning
estimation
scheduling
risk analysis
communication
modeling
analysis
design
start
deployment
construction
delivery
code
feedback test
14
Spiral Model Sectors
■ Objective setting
– Specific objectives for the phase are identified.
■ Planning
– The project is reviewed, and the next phase of the spiral
is planned. 15
Spiral Model Usage
■ Spiral model has been very influential in helping people think
about iteration in software processes and introducing the risk-
driven approach to development.
16
When to Use Spiral Model?
Significant changes
Requirements are are expected
New product line
complex (research and
exploration)
17
Spiral Model – Advantages and Disadvantages
Advantages
Allows the use of prototyping
Client can see the system early on
Changes in requirements can be made easily
Disadvantages
Management is more complex
Should not be used for small projects
This method requires a lot of documentation
18
Software ■ Software Prototyping
Process Models – Creating prototypes, i.e., incomplete versions of the
software program being developed.
■ Spiral Model
– gradual releases and refinement of a product
through each phase of the spiral
19
The Rational Unified Process
(RUP)
■ The Rational Unified Process (RUP) is an iterative software
development process framework created by the Rational
Software Corporation, a division of IBM since 2003
20
Phases in the Rational Unified Process
21
RUP Phases
22
Phases in the Rational Unified Process
UP Phases
Ince pt ion Elaborat ion Cons t ruct ion Trans it ion Product ion
Workflows
Requirements
Analysis
Design
Implementation
Test
Support
Iterations #1 #2 #n-1 #n
23
RUP Iteration
24
Static Workflows In The Rational Unified Process
Workflow Description
Business Modelling The business processes are modelled using business use cases.
Requirements Actors who interact with the system are identified and use cases are developed to model the
system requirements.
Analysis And Design A design model is created and documented using architectural models, component models,
object models and sequence models.
Implementation The components in the system are implemented and structured into implementation sub-
systems. Automatic code generation from design models helps accelerate this process.
Testing Testing is an iterative process that is carried out in conjunction with implementation. System
testing follows the completion of the implementation.
Deployment A product release is created, distributed to users and installed in their workplace.
Configuration And This supporting workflow manages changes to the system
Change Management
Project Management This supporting workflow manages the system development
Environment This workflow is concerned with making appropriate software tools available to the software
development team.
25
RUP Good Practice
Plan increments based on customer priorities and
Develop software iteratively
deliver highest priority increments first.
27