0% found this document useful (0 votes)
8 views46 pages

Software Development Process Models

Uploaded by

insanes2024
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views46 pages

Software Development Process Models

Uploaded by

insanes2024
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Process Models

 Perspective Models: The Waterfall


 Incremental Models: Increment and RAD
 Evolutionary Model: Prototype and Spiral
 Specialized Process Models: Component, Formal Methods, AOSD
 Unified Process Model
Software Development Life Cycle (SDLC)
Phases

2
Process Flow

3
Prescriptive Process Models

4
The Waterfall Model
 Sometimes called the classic life cycle
 Suggests a systematic, sequential (or linear) approach to s/w development
 The oldest paradigm for s/w engineering

 Works best when –


– Requirements of a problem are reasonably well understood
– Well-defined adaptations or enhancements to an existing system must be made
– Requirements are well-defined and reasonably stable
– Technology is understood
– There are no ambiguous requirements
– Ample resources with required expertise are available freely
– The project is short

5
The Waterfall Model Variations in the Waterfall
Model

Basic Model 6
The Waterfall Model - Problems
 Real projects rarely follow the sequential flow
– Accommodates iteration indirectly
– Changes can cause confusion
 It is often difficult for the customer to state all requirements explicitly
– Has difficulty accommodating the natural uncertainty that exists at the beginning of
many projects
 The customer must have patience
– A working version of the program(s) will not be available until late in the project time-
span
– A major blunder, if undetected until the working program is reviewed, can be disastrous
 Leads to “blocking states” for team members

7
Incremental Process Models

8
Incremental Process Models
 Combines elements of the waterfall model applied in an iterative fashion

 Each linear sequence produces deliverable “increments” of the software

 The first increment is often a core product

 The core product is used by the customer (or undergoes detailed


evaluation)

 Based on evaluation results, a plan is developed for the next increment

9
Incremental Process Models
 The incremental process model, like prototyping and other evolutionary
approaches, is iterative in nature
 But unlike prototyping, the incremental model focuses on the delivery of
an operational product with each increment
 Particularly useful when
– Staffing is unavailable
– This model can be used when the requirements of the complete system are clearly
defined and understood.
– Major requirements must be defined; however, some details can evolve with time.
– There is a need to get a product to the market early.
– A new technology is being used
– Resources with needed skill set are not available
– There are some high-risk features and goals.
 Increments can be planned to manage technical risks
10
The RAD Model
 Rapid Application Development is Incremental Process Model

 Emphasizes on short development cycle

 A “high speed” adaptation of the waterfall model

 Uses a component-based construction approach

 May deliver software within a very short time period (e.g. , 60 to 90 days) if
requirements are well understood and project scope is constrained

11
The RAD Model
Team # n
Modeling
business modeling
data modeling
process modeling

Construction
Team # 2 component reuse
Modeling automatic code
Communication business modeling generation
data modeling testing
process modeling
Planning
Construction
Team # 1 component reuse Deployment
automatic code integration
Modeling delivery
business modeling generation
testing feedback
data modeling
process modeling

Construction
component reuse
automatic code
generation
testing

12
60 – 90 days
The RAD Model
 The time constraints imposed on a RAD project demand “scalable scope”
 The application should be modularized and addressed by separate RAD
teams
 Integration is required
 Particularly useful when:
– RAD should be used when there is a need to create a system that can be modularized in
2-3 months of time.
– It should be used if there’s high availability of designers for modeling and the budget is
high enough to afford their cost along with the cost of automated code generating tools.
– RAD SDLC model should be chosen only if resources are available and there is a need to
produce the system in a short span of time (2-3 months).

13
The RAD Model - Drawbacks
 For large, but scalable projects, RAD requires sufficient human resources

 RAD projects will fail if developers and customers are not committed to the
rapid-fire activities

 If a system cannot be properly modularized, building the components


necessary for RAD will be problematic

 RAD may not be appropriate when technical risks are high

14
Evolutionary Process Models
 Software, like all complex systems, evolves over a period of time

 Business and product requirements often change as development


proceeds, making a straight-line path to an end product is unrealistic

 Evolutionary models are iterative

15
Prototyping
 Customer defines general objectives but not sure with detailed input,
processing and output.

 This model assists the software engineer and the customer to better
understand what to be built when requirements are fuzzy.

16
Prototyping
Q u ick p lan

Quick plan
u i t o
Communication

Modeling
Quick design

oy t
Deployment
D e iv y
Delivery Construction
Co st r c i n
e ac
& Feedback of f
r t t pe
prototype

17
Prototyping - Problems

 Customers may press for immediate delivery of working but


inefficient products

 The developer often makes implementation compromises in


order to get a prototype working quickly

18
The Spiral Model
 Couples the iterative nature of prototyping with the controlled and
systematic aspects of the waterfall model

 It is a risk-driven process model generator

 It has two main distinguishing features


– Cyclic approach-a combination of work products and conditions that are attained along the path
of the spiral

• Incrementally growing a system’s degree of definition and implementation while decreasing


its degree of risk
– A set of anchor point milestones
• For ensuring stakeholder commitment to feasible and mutually satisfactory system solution

19
The Spiral Model
Planning
estimation
scheduling
risk analysis

Communication

Modeling
analysis
design
Start

Deployment
delivery
Construction
code
feedback test
20
The Spiral Model
 Unlike other process models that end when software is delivered, the
spiral model can be adapted to apply throughout the life of the computer
s/w

 The circuits around the spiral might represent


– Concept development project
– New Product development project
– Product enhancement project

 The spiral model demands a direct consideration of technical risks at all


stages of the project

21
Particularly useful when

• When costs and risk evaluation is important


• For medium to high-risk projects
• Long-term project commitment unwise because of potential
changes to economic priorities
• Users are unsure of their needs
• Requirements are complex
• New product line
• Significant changes are expected (research and exploration)

22
The Spiral Model - Drawbacks
 It may be difficult to convince customers (particularly in contract
situations) that the evolutionary approach is controllable.

 It demands considerable risk assessment expertise and relies on this


expertise for success.

 If a major risk is not uncovered and managed, problems will undoubtedly


occur.

23
The Concurrent Development Model

 Sometimes called concurrent engineering


 Can be represented schematically as a series of framework activities,
s/w engineering actions and tasks, and their associated states
 Defines a series of events that will trigger transitions from state to state
for each of the s/w engineering activities, actions, or tasks
 Applicable to all types of s/w development
 Defines a network of activities
 Events generated at one point in the process network trigger transitions
among the states

24
The Concurrent
Development Model

25
Weaknesses of Evolutionary Process Models

 Uncertainty in the number of total cycles required


– Most project management and estimation techniques are based on
linear layouts of activities
 Do not establish the maximum speed of the evolution
 Software processes should be focused on flexibility and
extensibility rather than on high quality, which sounds scary
– However, we should prioritize the speed of the development over

zero defects. Why?


26
Specialized Process Models

 Take on many of the characteristics of one or more of the


conventional models
 Tend to be applied when a narrowly defined software
engineering approach is chosen
 Examples:
– Component-Based Development
– The Formal Methods Model
– Aspect-Oriented Software Development

27
Component-Based Development

 Commercial off-the-shelf (COTS) software components can be used

 Components should have well-defined interfaces

 Incorporates many of the characteristics of the spiral model

 Evolutionary in nature

28
Component-Based Development

 Candidate components should be identified first

 Components can be designed as either conventional software


modules or object-oriented classes or packages of classes

29
The Formal Methods Model
 Encompasses a set of activities that leads to formal mathematical
specification of computer software

 Have provision to apply a rigorous, mathematical notation

 Ambiguity, incompleteness, and inconsistency can be discovered and


corrected more easily – not through ad hoc review, but through the
application of mathematical analysis

 Offers the promise of defect-free software

30
The Formal Methods Model – Critical Issues

 The development of formal models is currently quite time-consuming and


expensive

 Extensive training is required

 It is difficult to use the models as a communication mechanism for


technically unsophisticated customers

31
 Benefits of the Formal Process Model:
1. High Assurance:
2. Reduced Errors:
3. Rigorous Documentation:
4. Safety and Regulatory Compliance:

32
Aspect-Oriented Software Development (AOSD)

 Certain “concerns” – customer required properties or areas of technical


interest – span the entire s/w architecture
 Example “concerns”
– Security
– Fault Tolerance
– Task synchronization
– Memory Management
 When concerns cut across multiple system functions, features, and
information, they are often referred to as crosscutting concerns

33
Aspect-Oriented Software Development (AOSD)
 Aspectual requirements define those crosscutting concerns that have
impact across the s/w architecture

 AOSD or AOP (Aspect-Oriented Programming) provides a process and


methodological approach for defining, specifying, designing, and
constructing aspects – “mechanisms beyond subroutines and
inheritance for localizing the expression of a crosscutting concern”

 A distinct aspect-oriented process has not yet matured

 It is likely that AOSD will adopt characteristics of both the spiral and
concurrent process models
34
The Unified Process (UP)
 It is a use-case driven, architecture-centric, iterative and incremental
software process

 UP is an attempt to draw on the best features and characteristics of


conventional s/w process models

 Also implements many of the best principles of agile software


development

 UP is a framework for object-oriented software engineering using UML


(Unified Modeling Language)

35
Phases of the Unified Process
Elaboration

Inception

Construction

Release
Transition
software increment

Production 36
Phases of UP - Inception
 Encompasses both customer communication and planning activities

 Fundamental business requirements are described through a set of


preliminary use-cases
– A use-case describes a sequence of actions that are performed by an actor
(e.g., a person, a machine, another system) as the actor interacts with the
software

 A rough architecture for the system is also proposed

37
Phases of UP - Elaboration
 Encompasses customer communication and modeling activities
 Refines and expands the preliminary use-cases
 Expands the architectural representation to include five different views
of the software
– The use-case model
– The analysis model
– The design model
– The implementation model
– The deployment model
 In some cases, elaboration creates an “executable architectural
baseline” that represents a “first cut” executable system

38
Phases of UP - Construction

 Makes each use-case operational for end-users


 As components are being implemented, unit tests are
designed and executed for each
 Integration activities (component assembly and integration
testing) are conducted
 Use-cases are used to derive a suite of acceptance tests

39
Phases of UP - Transition
 Software is given to end-users for beta testing

 The software team creates the necessary support information –


– User manuals
– Trouble-shooting guides
– Installation procedures

 At the conclusion of the transition phase, the software increment


becomes a usable software release

40
Phases of UP - Production

 Coincides with the deployment activity of the generic process

 The on-going use of the software is monitored

 Support for the operating environment (infrastructure) is


provided

 Defect reports and requests for changes are submitted and


evaluated

41
Unified Process Work Products
 Inception
– Vision document
– Initial use-case model
 Elaboration
– Analysis model, design model
 Construction
– Implementation model, deployment model, test model
 Transition
– Delivered software, beta test reports, general user feedback

42
Distribution of effort…

 How programmers spend their time


– Typing programs 13%
– Searching and Reading programs 16%
– Job communication 32%
– Others 39%
 Programmers spend more time in reading programs than in
writing them.
 Writing programs is a small part of their lives.

43
Defects
 Distribution of error occurrences by phase is
– Req. - 20%
– Design - 30%
– Coding - 50%
 Defects can be injected at any of the major phases.
 Cost of latency: Cost of defect removal increases
exponentially with latency time.

44
Defects…

Cost to fix
Error ( log scale)

Time

 Cheapest way to detect and remove defects


close to where it is injected.
 Hence must check for defects after every
phase.

Sofware Process 45
Factors to be considered for Software
Development
 User Satisfaction
 Time
 Quality factors
 Adaptable for changes
 Risk Management
 Evolution

46

You might also like