0% found this document useful (0 votes)
33 views

Lecture 3 - Software Process Models - 2

This document discusses different software process models including software prototyping, the spiral model, and the Rational Unified Process (RUP). It describes key aspects of each model such as how prototyping involves creating incomplete initial versions of software to test concepts and requirements. The spiral model involves gradual refinement through risk-driven iterations represented as loops. RUP is an iterative framework that normally describes the development process from dynamic, static, and practice perspectives involving phases like inception, elaboration, construction, and transition.

Uploaded by

Umer Hanif
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views

Lecture 3 - Software Process Models - 2

This document discusses different software process models including software prototyping, the spiral model, and the Rational Unified Process (RUP). It describes key aspects of each model such as how prototyping involves creating incomplete initial versions of software to test concepts and requirements. The spiral model involves gradual refinement through risk-driven iterations represented as loops. RUP is an iterative framework that normally describes the development process from dynamic, static, and practice perspectives involving phases like inception, elaboration, construction, and transition.

Uploaded by

Umer Hanif
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 27

SE-200 SOFTWARE

ENGINEERING
Software Process Models - 2

Instructor: Asst Prof Mobeena Shahzad

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

■ Rapid, iterative development of the prototype is essential so that costs are


controlled and system stakeholders can experiment with the prototype
early in the software process

■ A prototype can be used in:


– The requirements engineering process to help with requirements
elicitation and validation
– In design processes to explore options and develop a UI design
– In the testing process to run back-to-back tests.
3
Prototyping
Model

4
Benefits of Prototyping

Improved system usability.

A closer match to users’ real needs.

Improved design quality.

Improved maintainability.

Reduced development effort.

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

– Error checking and recovery may not be included in the


prototype

– Focus on functional rather than non-functional


requirements such as reliability and security

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

This model is flexible in design.


It is easy to detect errors.
We can find missing functionality easily.
There is scope of refinement, it means new requirements can be easily accommodated.
It can be reused by the developer for more complicated projects in the future.
It ensures a greater level of customer satisfaction and comfort.
It is ideal for online system.
It helps developers and users both understand the system better.
Integration requirements are very well understood, and deployment channels are decided at a very
early stage.
It can actively involve users in the development phase.
9
Prototyping - Disadvantages

This model is costly.

It has poor documentation because of continuously changing customer requirements.

There may be too much variation in requirements.

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

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.

Risks are explicitly assessed and resolved throughout the process.

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.

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

■ In practice, however, the model is rarely used as published for


practical software development.
– Can be a costly model to use
– Risk analysis requires highly specific expertise
– Doesn’t work well for smaller projects.

16
When to Use Spiral Model?

Long term project


When costs and risk commitment unwise
For medium to high- Users are unsure of
evaluation is because of potential
risk projects their needs
important changes to economic
priorities

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

■ Rational Unified Process (RUP)


– an iterative software development process
framework

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

■ Normally described from 3 perspectives


– A dynamic perspective that shows phases over time;
– A static perspective that shows process activities;
– A practice perspective that suggests good practice.

20
Phases in the Rational Unified Process

21
RUP Phases

Inception Elaboration Construction Transition


Establish the business Develop an System design, Deploy the system in
case for the system. understanding of the programming and its operating
problem domain and testing. environment.
the system
architecture.

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

Each phase is iterative with results developed


In-phase Iteration incrementally.

As shown by the loop in the RUP model, the


Cross-phase iteration whole set of phases may be enacted
incrementally.

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.

Explicitly document customer requirements and


Manage requirements
keep track of changes to these requirements.

Organize the system architecture as a set of


Use component-based architectures
reusable components.

Use graphical UML models to present static and


Visually model software
dynamic views of the software.

Ensure that the software meet’s organizational


Verify software quality
quality standards.

Manage software changes using a change


Control changes to software management system and configuration
management tools. 26
References

– “Software Engineering” by Ian Summerville


■ Chapter 2: Software Processes

– “Software Engineering : A Practitioners Approach” by Roger S. Pressman


■ Chapter 2: Process Models

27

You might also like