W03 L06
-
Upload
ehtisham-zafar-bhatti -
Category
Documents
-
view
215 -
download
0
Transcript of W03 L06
-
8/3/2019 W03 L06
1/31
Software Process
Week 3 Lecture 6
Instructors name: Saliha Zahoor
-
8/3/2019 W03 L06
2/31
-
8/3/2019 W03 L06
3/31
-
8/3/2019 W03 L06
4/31
The incremental
The core product is used by the customers and
as a result of use a plan is developed for the
next increment.
The incremental process model like
prototyping and other evolutionary is iterative
in nature.
-
8/3/2019 W03 L06
5/31
The Incremental Model
-
8/3/2019 W03 L06
6/31
Incremental Model
Functionality produced and delivered in small increments
Focus attention first on essential features and add functionality only if and
when needed
May be hard to add features later
Variant: Incremental implementation only Follow waterfall down to implementation
During requirements analysis and system design
Define useful subsets that can be delivered
Define interfaces that allow adding later smoothly
Different parts implemented, tested, and delivered according to differentpriorities and at different times.
-
8/3/2019 W03 L06
7/31
The incremental model
This is a combination of the linear sequentialmodel and the iterative model.
The problem is broken into increments, and eachincrement is tackled as a linear sequence.
Further increments can either be done after theprevious ones, or can overlap with the previousones.
Incremental delivery focuses on the delivery of anoperational product with each increment.
Early increments are stripped-down versions ofthe final product.
-
8/3/2019 W03 L06
8/31
-
8/3/2019 W03 L06
9/31
Incremental model advantages
Less staffing is required than in a RAD project
Early delivery is guaranteed
Progress of the whole project is not delayed if one of theresources is not available for part of it
-
8/3/2019 W03 L06
10/31
The RAD Model
Rapid Application Development(RAD) is an incremental
software development process model that emphasizes an
extremely short development cycle.
The RAD model is a high speed adaptation of the linear
sequential model in which rapid development is achieved by
using component based construction.
If requirements are well understood and project scope is
constrained the RAD Process enables the team to create a
fully functional system within very short time periods e.g 60to 90 days.
-
8/3/2019 W03 L06
11/31
The RAD Model
A component-based construction approach isused.
To use this approach, the project scope must be
constrained and the requirements should be wellunderstood.
A task that should take no more than ninety daysto complete is modelled, generated and
implemented. There can be several teams working on different
components during this ninety day time-box.
-
8/3/2019 W03 L06
12/31
Iterative Models-RAD
RAD
-
8/3/2019 W03 L06
13/31
The RAD Model Phases
Communication
Modeling
Business Modeling
Data Modeling
Process Modeling
Construction
Application Generation
Testing and Turnover
-
8/3/2019 W03 L06
14/31
RAD Model Phases
Business Modeling: What information drives thebusiness process? What information isgenerated? Who generate it? Where does theinformation go? Who processes it?
Data Modeling: The information flow as part ofthe business modeling phase is refined into set ofdata objects that are needed to support the
business. The characteristics of each object areidentified and the relationship between theseobjects defined.
-
8/3/2019 W03 L06
15/31
The RAD Model Phases
Process Modeling: Process descriptions are created foradding ,modifying , deleting or retrieving a data object.
Application Generation: The RAD process works toreuse existing program components or create reusable
components. Emphasizes the use of preexistingsoftware components and the application of automaticcode generation.
Testing and turnover: Since RAD process emphasisreuse, many of the program components have already
been tested. This reduces overall testing time. Howevernew components must be tested and all interfacesmust be fully exercised.
-
8/3/2019 W03 L06
16/31
The RAD model
90
days
Team 1
Testing &
Turnover
Application
Generation
Business
modelling
Data
modelling
Process
modelling
Team 2
Testing &
Turnover
Application
Generation
Business
modelling
Data
modelling
Process
modelling
Team 3
Testing &
Turnover
Application
Generation
Business
modelling
Data
modelling
Process
modelling
-
8/3/2019 W03 L06
17/31
Problems with RAD
For large, scalable projects, RAD requires sufficient human
resources to create the right number of RAD teams
RAD requires developers and customers who are committed
to the rapid-fire activities necessary to complete a system in
this time frame, or failure will result.
RAD is not suitable for many project types.
-
8/3/2019 W03 L06
18/31
Spiral development
Process is represented as a spiral rather thanas 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
-
8/3/2019 W03 L06
19/31
The spiral model
It explicitly embraces prototyping and an iterativeapproach to software development.Start by developing a small prototype.
Followed by a mini-waterfall process, primarily to gather
requirements.Then, the first prototype is reviewed.
In subsequent loops, the project team performs furtherrequirements, design, implementation and review.
The first thing to do before embarking on each new loopis risk analysis.
Maintenance is simply a type of on-going development.
-
8/3/2019 W03 L06
20/31
-
8/3/2019 W03 L06
21/31
Spiral Model
Precede each phaseby
Alternatives
Risk analysis
Follow each phaseby
Evaluation
Planning of nextphase
-
8/3/2019 W03 L06
22/31
Spiral model detailsSpiral model is divided into a number of framework activities, named as task regions.3-6
task regions. Each task region has its own task sets.
Customer
communication
Construction and release
Engineering
Risk analysis
Planning
Customer
evaluation
-
8/3/2019 W03 L06
23/31
Process iteration
Modern development processes take iteration asfundamental, and try to provide ways ofmanaging, rather than ignoring, the risk
System requirements ALWAYS evolve in thecourse of a project so process iteration whereearlier stages are reworked is always part of theprocess for large systems
Iteration can be applied to any of the genericprocess models
Two (related) approaches Incremental development
Spiral development
-
8/3/2019 W03 L06
24/31
-
8/3/2019 W03 L06
25/31
-
8/3/2019 W03 L06
26/31
Component Based Development
Object oriented technologies provide the technicalframework for a component based process model forsoftware engineering.
This incorporates many of the characteristics of the spiral
model. It is evolutionary in nature, demanding an iterative approach
to the creation of software.
However, it composes applications from pre-packagedsoftware components.
The construction & release activity in Boehms model isreplaced by an Engineering construction and releaseactivity.
-
8/3/2019 W03 L06
27/31
ComponentBased
Development
Identify
candidate
components
Construct
nth
iteration of
system
Put new
component
s in library
Look up
component
s in library
Extract
component
s if available
Build
components
if unavailable
-
8/3/2019 W03 L06
28/31
The Formal Method Model
Encompasses a set of activities that leads to
formal mathematical specification of computer
software
Specify, develop and verify a computer based
system by applying a rigorous mathematical
notation.
-
8/3/2019 W03 L06
29/31
Advantages
Mechanism for eliminating ambiguity,
incompleteness, and inconsistency
Formal methods provide mathematical
analysis for ensuring correct analysis and
design
-
8/3/2019 W03 L06
30/31
Disadvantages
Quiet expensive and time consuming
Extensive Training required
Difficult to communicate for technically
unsophisticated customer
-
8/3/2019 W03 L06
31/31
Methods and tools
There are many methodologies and tools that are available.
The methodology should fit a particular process model that issuited to the task being undertaken, and the tool or set oftools should provide automated force at related parts of the
life cycle.The methodology should include diagrammatic techniques,such
as SSADM for linear sequential systems or Rational UnifiedProcess (RUP) for object-oriented systems.