Slide 1 : Modeling the Process
and Life Cycle MODULE 2 Next Back In this Module, we look at what we mean by a “process”
software development products, processes &
resources
several models of the software development
process
tools & techniques for process modeling
Slide 2 : What is a Process? - Process is a series of steps involving activities
constraints and resources that produce an
intended output of some kind. - in building a software product, process is refer to a
life cycle - software development process is sometimes called
software life cycle - a process is more than a procedure - a process may require design to occur before
coding, many different design may be used
Slide 3 : - Process guides our actions by allowing use
examine, control and improve that comprise the
process. Characteristics of a Process - The process prescribes all of the major process
activities. - The process uses resources, subject to a set of
constraints (such schedule) and produces
intermediate and final product. - The process may be composed that are linked in
some way. The process may be defined as
hierarchy of process, organized so that each sub-
process has its own process models
Slide 4 : - Each process activity has entry and exit criteria, so
that when the activity begins and ends. - The activities are organized in sequence, so that it
is clear when one activity is performed relative to
the other activities. - Every process has a guiding principles that explain
the goals of each activity. - Constraints or controls may apply to an activity,
resource or product.
Slide 5 : Software Development Process Models Reasons for Modeling Process - It forms common understanding of the activities,
resources and constraints involved in software
development. - It helps the development team find
inconsistencies, redundancies and omissions in the
process and in its constituent parts. - It reflects the goals of development such as
building high-quality software, finding faults in
early development and meeting required budget
and schedule constraints.
Slide 6 : - It helps the development team understand where
tailoring is to occur for the special situation.
Slide 7 : The Waterfall Model - The waterfall model is a sequential software
development model (a process for the creation of
software) in which development is seen as flowing
steadily downwards (like a waterfall) through the
phases of software developmet. - Winston W. Royce (1929–1995), present this
model cited in his article published in 1970. - It is very useful in helping the developers lay out
what they need to do. - The biggest problem with the waterfall model is
does not reflect the way the code is really
developed.
Slide 8 : In Royce's original waterfall model, the following phases are followed in order:
Requirements specification
Design
Construction (AKA implementation or coding)
Integration
Testing and debugging (AKA validation)
Installation
Maintenance
Slide 9 : Requirement
Analysis System
Design Coding Program
Design System
Testing Unit &
Integration
Testing Operation &
Maintenance Acceptance
Testing The Waterfall Model
Slide 10 : The software development process in reality.
Slide 11 : The Sashimi Model - The sashimi model (so called because it features
overlapping phases, like the overlapping fish of
Japanese sashimi) was originated by Peter
DeGrace. - also referred as the waterfall model with
overlapping phases or with feedback
Slide 12 : The Waterfall Model with overlapping phases / The Waterfall
Model with feedback Operation &
Maintenance Instructor’s idea about the
Sashimi Model
Slide 13 : The Waterfall Model with Prototyping - Prototyping is a partially developed product that
enables customers and developers to examine
some aspect of the proposed system and decide if
it is suitable or appropriate for the finished
product. - Design prototyping helps developers assess
alternative design strategies and decide which is
the best for a particular project.
Slide 14 : Requirement
Analysis System
Design Coding Program
Design System
Testing Unit &
Integration
Testing Operation &
Maintenance Acceptance
Testing The Waterfall Model Prototyping Verify Validation
Slide 15 : The V-Model - The V-Model (or VEE model) is a systems
development model designed to simplify the
understanding of the complexity associated with
developing systems - a variation of the waterfall model that demonstrate
how the activities are related to analysis and
design - the focus of the V-Model is on activity and
correctness
Slide 16 : The V-Model
Slide 17 : Prototyping Model - It requires investigation to ensure that the
developer, user and customer have a common
understanding both of what is needed and what is
proposed. - it reduce risk and uncertainty in development - The process of prototyping involves the following
steps: 1. Identify basic requirements
2. Develop initial prototype
3. Review
4. Revise and enhancing prototype
Slide 18 : The Prototyping Model.
Slide 19 : The Operational Specification Model - The system requirments are evaluated or executed
in a way that demonstrates the behavior of the
system. - Once the requirements are specified, it can be
enacted using the software package, so that their
implication can be assess before design begins.
Slide 20 : The Operational Specification Model
Slide 21 : The Transformational Model - It tries to reduce the opportunity for error by
eliminating several major development steps. - It uses automated support - Sample transformation can include: (1) changing
the data representation; (2) selecting algorithms;
(3) optimizing; (4) Compiling.
Slide 22 : The Transformational Model
Slide 23 : The Phased Development Model - Cycle time is the time the documents are written
and the time for the system was delivered. - To reduce the cycle time is to use development
phase , where two systems functioning in parallel. - The Operational or Production System being used
by the customer or user - The Development System is the next version that
is being prepared to replace the current production
system.
Slide 24 : The Phased Development Model
Slide 25 : The Incremental Model - The system as specified in the requirements
documents are partitioned into subsystems by
functionality. - The releases are defined by beginning with one
small, functional subsystem and then adding with
each new releases.
Slide 26 : The Iterative Model - It delivers the full system at the very beginning
and it changes the functionality of each subsystem
with each new releases.
Slide 27 :
Slide 28 : The Spiral Model - The spiral model is a software development
process combining elements of both design and
prototyping-in-stages, in an effort to combine
advantages of top-down and bottom-up concepts - also known as the spiral life cycle model - it is a systems development method (SDM) used in
Information technology (IT) - a combination of features of Prototyping Model
and Waterfall Model defined by Barry Boehm (1988) - The spiral model is intended for large, expensive
and complicated projects
Slide 29 : The Spiral Model.
Slide 30 : The Static Model - It depicts the process, showing the inputs are
transformed to outputs. - See… A Toolset for Supporting Static and Dynamic
Model Checking
Slide 31 : The Dynamic Model - It can enact the process, so that the user can see
how intermediate and final products are
transformed over time. - See… A Toolset for Supporting Static and Dynamic
Model Checking
Slide 32 : Other Software Development Models - Model Driven Development - User Experience - Top-Down to Bottom Design - Chaos Model - Evolutionary Prototyping - ICONIX Process - Unified Process - Extreme Programming (XP)