The document outlines various software process models including the waterfall model, evolutionary development, and component-based software engineering, highlighting their phases, advantages, and drawbacks. It emphasizes the importance of accommodating changes in requirements and introduces iterative approaches like incremental delivery and spiral development. Agile principles are also discussed, focusing on customer involvement, incremental delivery, and maintaining simplicity in the development process.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
0 ratings0% found this document useful (0 votes)
8 views18 pages
UNIT 1 SW Process
The document outlines various software process models including the waterfall model, evolutionary development, and component-based software engineering, highlighting their phases, advantages, and drawbacks. It emphasizes the importance of accommodating changes in requirements and introduces iterative approaches like incremental delivery and spiral development. Agile principles are also discussed, focusing on customer involvement, incremental delivery, and maintaining simplicity in the development process.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 18
Software ProcessesThe software process
O A structured set of activities required to develop a
software system
Specification;
Design;
Validation;
Evolution.
OA software process model is an abstract representation of a
process. It presents a description of a process from some
particular perspective.Generic software process models
Gi i ih
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.
There are many variants of these models e.g. formal
development where a waterfall-like process is used but the
specification is a formal specification that is refined through
several stages to an implementable design.Waterfall model
¥
Implementation
and unit testingWaterfall model phases
Requirements analysis and definition
System and software design
Implementation and unit testing
Integration and system testing
Operation and maintenance
The main drawback of the waterfall model is the difficulty of
accommodating change after the process is underway. One phase
has to be complete before moving onto the next phase.
o0H0o0000Waterfall model problems
O Inflexible partitioning of the project into distinct stages makes
it difficult to respond to changing customer requirements.
O Therefore, this model is only appropriate when the
requirements are well-understood and changes will be fairly
limited during the design process.
O Few business systems have stable requirements.
O The waterfall model is mostly used for large systems
engineering projects where a system is developed at several
sites.Evolutionary development
O Exploratory development
H Objectiveis to work with customers and to evolvea final system
from an initial outline specification. Should start with well-
understood requirements and add new features as proposed by the
customer.
O Throw-away prototyping
H Objectiveis to understand the system requirements. Should start
with poorly understood requirements to clarify what is really
needed.Evolutionary development
Concurrent
acti vies
Initial
n
Inter media te
versions
Final
version
‘Outline
description
Development
ValidationEvolutionary development
O Problems
Lack of process visibility:
Systems are often poorly structured;
Special skills(e.g. in languages for rapid prototyping) may be
required.
O Applicability
@ For small or medium-size interactive systems:
™ For parts of large systems (e.g. the user interface):
For short-lifetime systems.Component-based software engineering
O Based on systematic reuse where systems are integrated from
existing components or COTS (Commercial-off-the-shelf)
systems.
O1 Process stages
HB Componentanalysis:
Requirements modification:
™ System design with reuse:
@ Developmentand integration.
O This approach is becoming increasingly used as component
standards have emerged.Reuse-oriented development
‘Requirements Component ‘Requirements
specication sins rrricetonProcess iteration
———{&K;zi—=~«—=—=—=~=~—~—~———________—_llllmCC———“‘“_ =éOSOSCS=s=S=S=S=*=*~*~*~*~™~™*#
O System requirements ALWAYS evolve in the course of a project
so process iteration where earlier stages are reworked is always
part of the process for large systems.
O Iteration can be applied to any of the generic process models.
O Two (related) approaches
Incremental delivery:
MH Spiral development.Incremental delivery
O Rather than deliver the system as a single delivery, the
development and delivery is broken down into increments
with each increment delivering part of the required
functionality.
O User requirements are prioritised and the highest priority
requirements are included in early increments.
O Once the development of an increment is started, the
requirements are frozen though requirements for later
increments can continue to evolve.Incremental development
Define outline
requirements
Develop system
ner ement
“Bssign recpicements ‘Design system
to increments atchitectar
Valida te
meremnent
Integ rate
snerernenl
Validate
system
Final
system
System incompleteIncremental development advantages
rrr
O Customer value can be delivered with each increment so system
functionality is available earlier.
O Early increments act as a prototype to help elicit requirements for
later increments.
O Lower risk of overall project failure.
O The highest priority system services tend to receive the most
testing.Spiral development
rrr
O Process is represented as a spiral rather than as a sequence of
activities with backtracking.
O Each loop in the spiral represents a phase in the process.
O No fixed phases such as specification or design - loops in the
spiral are chosen depending on what is required.
O Risks are explicitly assessed and resolved throughout the process.Spiral model of the software process
ike eaten th,
lentil este eis
Joorcept ot
sae
a tn / Dea
eos
an A
fais
ase ee
a Rceguace, te
ae
em relpe octThe principles of agile methods
Principle
Customer involvement
Incremental delivery
People not process
Embrace change
Maintain simplicity
Description
Customers should be closely involved throughout the
development process. Their role is provide and prioritize new
system requirements and to evaluate the iterations of the
system.
The software is developed in increments with the customer
specifying the requirements to be included in each increment.
The skills of the development team should be recognized and
exploited. Team members should be left to develop their own
ways of working without prescriptive processes.
Expect the system requirements to change and so design the
system to accommodate these changes.
Focus on simplicity in both the software being developed and
in the development process. Wherever possible, actively work
to eliminate complexity from the system.