Software Process, Perspective and
Specialized Process Models
PROCESS MODELS
1. Waterfall Model
• called as the classic life cycle model
• suggests a systematic, sequential approach to software development
• characterized by their linear and sequential nature, where each phase must be
completed before moving on to the next.
• used for developing projects where the requirements are well defined and
reasonably stable, it leads to a linear fashion.
1. Waterfall Model
• Requirement Gathering and analysis − All possible requirements of
the system to be developed are captured in this phase and documented
in a requirement specification document.
• System Design − The requirement specifications from first phase are
studied in this phase and the system design is prepared. This system
design helps in specifying hardware and system requirements and
helps in defining the overall system architecture.
• Implementation − With inputs from the system design, the system is
first developed in small programs called units, which are integrated in
the next phase.
1. Waterfall Model
• Testing − All the units developed in the implementation phase are
integrated into a system after testing of each unit. Post integration the
entire system is tested for any faults and failures.
• Deployment of system − Once the functional and non-functional
testing is done; the product is deployed in the customer environment
or released into the market.
• Maintenance − There are some issues which come up in the client
environment. To fix those issues, patches are released. Also to enhance
the product some better versions are released. Maintenance is done to
deliver these changes in the customer environment.
• Projects based on the waterfall model are well defined, predictable and
have specific documentation. They also have the following
characteristics:
• fixed requirements;
• ample resources;
• an established timeline;
• well-understood technology; and
• unlikely to require significant changes.
Advantages
•Simple and easy to understand
•Phases do not overlap each other
•Maintenance is easy
•Work well for small projects
Drawbacks
• Real projects rarely follow the sequential flow that the model
proposes; Not suitable for long and ongoing projects
• It is often difficult for the customer to state all requirements explicitly.
• The customer must have patience
• Linear nature leads to blocking states
2. Incremental Models
 delivers a series of releases, called increments, that provide progressively more functionality for the
customer as each increment is delivered
 Incremental models construct a partial implementation of a total system and then slowly add increased
functionality
 prioritizes requirements of the system and then implements them in groups.
Incremental Models
• also known as the successive version model or Iterative Enhancement Model.
• Each iteration passes through the requirements, design, coding and testing phases. And
each subsequent release of the system adds function to the previous release until all
designed functionality has been implemented.
• For example,
• word-processing software developed using the incremental paradigm might deliver basic file
management, editing, and document production functions in the first increment;
• more sophisticated editing and document production capabilities in the second increment;
• spelling and grammar checking in the third increment;
• and advanced page layout capability in the fourth increment.
When to use Incremental models?
• Requirements of the system are clearly understood
• When demand for an early release of a product arises
• When software engineering team are not very well skilled or trained
• When high-risk features and goals are involved
• Such methodology is more in use for web application and product
based companies
Types of Incremental Model
• Staged Delivery Model
• Parallel Development Model:
Advantages of incremental model
 The software will be generated quickly during the software life cycle
 It is flexible and less expensive to change requirements and scope
 Throughout the development stages changes can be done
 A customer can respond to each building block
 Errors are easy to be identified
Disadvantages of incremental model
 It requires a good planning designing
 Problems might cause due to system architecture as such not all requirements collected up front for the
entire software lifecycle
 Each iteration phase is rigid and does not overlap each other
 Rectifying a problem in one unit requires correction in all the units and consumes a lot of time
3. RAD (Rapid Application Development) Model
 type of incremental process model in which there is extremely short
development cycle.
 When the requirements are fully understood and the component-based
construction approach is adopted then the RAD model is used.
 Is developed within 60 to 90 days
• Various phases in RAD are Requirements Gathering, Analysis and Planning,
Design, Build or Construction, and finally Deployment.
• A software project can be implemented using this model if the project can be
broken down into small modules where in each module can be assigned
independently to separate teams. These modules can finally be combined to form
the final product.
• Business Modelling: The information flow among business functions is
defined by answering questions like what data drives the business process,
what data is generated, who generates it, where does the information go,
who process it and so on.
• Data Modelling: The data collected from business modeling is refined into
a set of data objects (entities) that are needed to support the business. The
attributes (character of each entity) are identified, and the relation between
these data objects (entities) is defined.
• Process Modelling: The information object defined in the data modeling
phase are transformed to achieve the data flow necessary to implement a
business function. Processing descriptions are created for adding,
modifying, deleting, or retrieving a data object.
Construction – In this phase, refinement of the
prototype and delivery takes place. It includes
the actual use of powerful automated tools to
transform processes and data models into the
final working product. All the required
modifications and enhancements are too done in
this phase.
Cutover – All the interfaces between the
independent modules developed by separate
teams have to be tested properly. The use of
powerfully automated tools and subparts makes
testing easier. This is followed by acceptance
testing by the user.
The process involves building a rapid prototype,
delivering it to the customer, and taking
feedback. After validation by the customer, the
SRS document is developed and the design is
finalized.
Advantages
• Use of reusable components helps to reduce the cycle time of the project.
• Encourages user involvement
• Reduced cost.
• Flexible and adaptable to changes
Disadvantages
• For large scalable projects, RAD requires sufficient human resources to
create the right number of RAD teams.
• It is suitable where technical risls are not high.
• If developers and customers are not committed to the rapid-fire activities,
then project will fail.
• If a system cannot properly be modularized, building the components necessary for
RAD will be problematic.
• The use of powerful and efficient tools requires highly skilled professionals.
• Customer involvement is required throughout the life cycle.
Evolutionary Process Models
• Evolutionary process models are iterative models that produce an
increasingly more complete version of the software with each
iteration.
• Two types of evolutionary approaches are there namely
1. Prototyping
2. Spiral models.
Prototyping Model
• Prototyping Model is a software development model in which prototype is built,
tested, and reworked until an acceptable prototype is achieved.
• It works best in scenarios where the project’s requirements are not known in
detail. It is an iterative, trial and error method which takes place between
developer and client.
Advantages of Prototype Model
• The customer gets to see partial products early in the lifecycle
• The developed prototype can be reused for bigger projects in the future.
• Errors and missing functionalities can be identified much early in the
lifecycle because the users are actively involved.
• The model is very straightforward and does not require skilled experts to
implement.
Disadvantages of Prototype Model
• Prototyping is a slow and time taking process.
• Documentation is poor as the requirements change frequently.
• When the customer evaluates the prototype, there may be much too many
variances in software needs.
• There is a risk of inadequate requirement analysis owing to too much
dependency on the prototype.
Types of Prototyping Models
1. Rapid Throwaway Prototyping- useful method of exploring ideas
and getting customer feedback
2. Evolutionary Prototyping- prototype developed initially is refined
3. Incremental Prototyping- expected outcome is broken into small
prototypes and merged finally
4. Extreme Prototyping- mainly used for web development
Spiral Model
• proposed by Barry Boehm
• the spiral model is an evolutionary software process model that posses
the iterative nature of prototyping with the controlled and systematic
aspects of the waterfall model.
• It provides the potential for rapid development of increasingly more
complete versions of the software
Two main distinguishing features:
• Cyclic approach for incrementally growing a system’s degree of
definition and implementation while decreasing its degree of risk.
• Set of anchor point milestones for ensuring stakeholder commitment
to feasible and mutually satisfactory system solutions.
Spiral Model
• The Spiral Model is a Software Development Life
Cycle (SDLC) model that provides a systematic
and iterative approach to software development.
• In its diagrammatic representation, looks like a
spiral with many loops.
• The exact number of loops of the spiral is
unknown and can vary from project to project.
• Each loop of the spiral is called a Phase of
the software development process.
• The exact number of phases needed to develop the
product can be varied by the project manager
depending upon the project risks.
• It is based on the idea of a spiral, with each
iteration of the spiral representing a complete
software development cycle, from requirements
gathering and analysis to design, implementation,
testing, and maintenance.
Spiral Model
• The Spiral Model is a risk-driven model, meaning that the focus is on managing risk through
multiple iterations of the software development process. It consists of the following phases:
1. Planning : The first phase of the Spiral Model is the planning phase, where the scope of the
project is determined and a plan is created for the next iteration of the spiral.
2. Risk Analysis : In the risk analysis phase, the risks associated with the project are identified
and evaluated.
3. Engineering : In the engineering phase, the software is developed based on the requirements
gathered in the previous iteration.
4. Evaluation : In the evaluation phase, the software is evaluated to determine if it meets the
customer’s requirements and if it is of high quality.
5. Planning : The next iteration of the spiral begins with a new planning phase, based on the
results of the evaluation.
Specialised Process Models
• Specialized process models take on many of the characteristics of one or more of
the traditional models However, these models tend to be applied when a
specialized or narrowly defined software engineering approach is chosen.
• There are 3 types of specialized process models:
1. Component Based Development
2. Formal Methods Model
3. Aspect Oriented Software development
Component Based Development
• Commercial off-the-shelf (COTS) software components, developed by vendors
who offer them as products, provide targeted functionality with well-defined
interfaces that enable the component to be integrated into the software that is to be
built.
• The component-based development model incorporates many of the
characteristics of the spiral model.
• It is evolutionary in nature, demanding an iterative approach to the creation of
software.
• However, the component-based development model constructs applications from
prepackaged software component.
Component Based Development
• Modeling and construction activities begin with the identification of candidate components.
• These components can be designed as either conventional software modules or object
oriented classes or packages of classes.
• Regardless of the technology that is used to create the components, the component-based
development model incorporates the following steps:
1. Available component-based products are researched and evaluated for the
application domain in question.
2. Component integration issues are considered.
3. A software architecture is designed to accommodate the components.
4. Components are integrated into the architecture.
5. Comprehensive testing is conducted to ensure proper functionality

software engineering SOFTWARE PROCESS MODELS.pptx

  • 1.
    Software Process, Perspectiveand Specialized Process Models
  • 2.
  • 3.
    1. Waterfall Model •called as the classic life cycle model • suggests a systematic, sequential approach to software development • characterized by their linear and sequential nature, where each phase must be completed before moving on to the next. • used for developing projects where the requirements are well defined and reasonably stable, it leads to a linear fashion.
  • 4.
    1. Waterfall Model •Requirement Gathering and analysis − All possible requirements of the system to be developed are captured in this phase and documented in a requirement specification document. • System Design − The requirement specifications from first phase are studied in this phase and the system design is prepared. This system design helps in specifying hardware and system requirements and helps in defining the overall system architecture. • Implementation − With inputs from the system design, the system is first developed in small programs called units, which are integrated in the next phase.
  • 5.
    1. Waterfall Model •Testing − All the units developed in the implementation phase are integrated into a system after testing of each unit. Post integration the entire system is tested for any faults and failures. • Deployment of system − Once the functional and non-functional testing is done; the product is deployed in the customer environment or released into the market. • Maintenance − There are some issues which come up in the client environment. To fix those issues, patches are released. Also to enhance the product some better versions are released. Maintenance is done to deliver these changes in the customer environment.
  • 6.
    • Projects basedon the waterfall model are well defined, predictable and have specific documentation. They also have the following characteristics: • fixed requirements; • ample resources; • an established timeline; • well-understood technology; and • unlikely to require significant changes.
  • 7.
    Advantages •Simple and easyto understand •Phases do not overlap each other •Maintenance is easy •Work well for small projects Drawbacks • Real projects rarely follow the sequential flow that the model proposes; Not suitable for long and ongoing projects • It is often difficult for the customer to state all requirements explicitly. • The customer must have patience • Linear nature leads to blocking states
  • 8.
    2. Incremental Models delivers a series of releases, called increments, that provide progressively more functionality for the customer as each increment is delivered  Incremental models construct a partial implementation of a total system and then slowly add increased functionality  prioritizes requirements of the system and then implements them in groups.
  • 9.
    Incremental Models • alsoknown as the successive version model or Iterative Enhancement Model. • Each iteration passes through the requirements, design, coding and testing phases. And each subsequent release of the system adds function to the previous release until all designed functionality has been implemented. • For example, • word-processing software developed using the incremental paradigm might deliver basic file management, editing, and document production functions in the first increment; • more sophisticated editing and document production capabilities in the second increment; • spelling and grammar checking in the third increment; • and advanced page layout capability in the fourth increment.
  • 10.
    When to useIncremental models? • Requirements of the system are clearly understood • When demand for an early release of a product arises • When software engineering team are not very well skilled or trained • When high-risk features and goals are involved • Such methodology is more in use for web application and product based companies
  • 11.
    Types of IncrementalModel • Staged Delivery Model • Parallel Development Model:
  • 12.
    Advantages of incrementalmodel  The software will be generated quickly during the software life cycle  It is flexible and less expensive to change requirements and scope  Throughout the development stages changes can be done  A customer can respond to each building block  Errors are easy to be identified Disadvantages of incremental model  It requires a good planning designing  Problems might cause due to system architecture as such not all requirements collected up front for the entire software lifecycle  Each iteration phase is rigid and does not overlap each other  Rectifying a problem in one unit requires correction in all the units and consumes a lot of time
  • 14.
    3. RAD (RapidApplication Development) Model  type of incremental process model in which there is extremely short development cycle.  When the requirements are fully understood and the component-based construction approach is adopted then the RAD model is used.  Is developed within 60 to 90 days • Various phases in RAD are Requirements Gathering, Analysis and Planning, Design, Build or Construction, and finally Deployment. • A software project can be implemented using this model if the project can be broken down into small modules where in each module can be assigned independently to separate teams. These modules can finally be combined to form the final product.
  • 15.
    • Business Modelling:The information flow among business functions is defined by answering questions like what data drives the business process, what data is generated, who generates it, where does the information go, who process it and so on. • Data Modelling: The data collected from business modeling is refined into a set of data objects (entities) that are needed to support the business. The attributes (character of each entity) are identified, and the relation between these data objects (entities) is defined. • Process Modelling: The information object defined in the data modeling phase are transformed to achieve the data flow necessary to implement a business function. Processing descriptions are created for adding, modifying, deleting, or retrieving a data object.
  • 16.
    Construction – Inthis phase, refinement of the prototype and delivery takes place. It includes the actual use of powerful automated tools to transform processes and data models into the final working product. All the required modifications and enhancements are too done in this phase. Cutover – All the interfaces between the independent modules developed by separate teams have to be tested properly. The use of powerfully automated tools and subparts makes testing easier. This is followed by acceptance testing by the user. The process involves building a rapid prototype, delivering it to the customer, and taking feedback. After validation by the customer, the SRS document is developed and the design is finalized.
  • 17.
    Advantages • Use ofreusable components helps to reduce the cycle time of the project. • Encourages user involvement • Reduced cost. • Flexible and adaptable to changes Disadvantages • For large scalable projects, RAD requires sufficient human resources to create the right number of RAD teams. • It is suitable where technical risls are not high. • If developers and customers are not committed to the rapid-fire activities, then project will fail. • If a system cannot properly be modularized, building the components necessary for RAD will be problematic. • The use of powerful and efficient tools requires highly skilled professionals. • Customer involvement is required throughout the life cycle.
  • 18.
    Evolutionary Process Models •Evolutionary process models are iterative models that produce an increasingly more complete version of the software with each iteration. • Two types of evolutionary approaches are there namely 1. Prototyping 2. Spiral models.
  • 19.
    Prototyping Model • PrototypingModel is a software development model in which prototype is built, tested, and reworked until an acceptable prototype is achieved. • It works best in scenarios where the project’s requirements are not known in detail. It is an iterative, trial and error method which takes place between developer and client.
  • 20.
    Advantages of PrototypeModel • The customer gets to see partial products early in the lifecycle • The developed prototype can be reused for bigger projects in the future. • Errors and missing functionalities can be identified much early in the lifecycle because the users are actively involved. • The model is very straightforward and does not require skilled experts to implement. Disadvantages of Prototype Model • Prototyping is a slow and time taking process. • Documentation is poor as the requirements change frequently. • When the customer evaluates the prototype, there may be much too many variances in software needs. • There is a risk of inadequate requirement analysis owing to too much dependency on the prototype.
  • 21.
    Types of PrototypingModels 1. Rapid Throwaway Prototyping- useful method of exploring ideas and getting customer feedback 2. Evolutionary Prototyping- prototype developed initially is refined 3. Incremental Prototyping- expected outcome is broken into small prototypes and merged finally 4. Extreme Prototyping- mainly used for web development
  • 22.
    Spiral Model • proposedby Barry Boehm • the spiral model is an evolutionary software process model that posses the iterative nature of prototyping with the controlled and systematic aspects of the waterfall model. • It provides the potential for rapid development of increasingly more complete versions of the software Two main distinguishing features: • Cyclic approach for incrementally growing a system’s degree of definition and implementation while decreasing its degree of risk. • Set of anchor point milestones for ensuring stakeholder commitment to feasible and mutually satisfactory system solutions.
  • 23.
    Spiral Model • TheSpiral Model is a Software Development Life Cycle (SDLC) model that provides a systematic and iterative approach to software development. • In its diagrammatic representation, looks like a spiral with many loops. • The exact number of loops of the spiral is unknown and can vary from project to project. • Each loop of the spiral is called a Phase of the software development process. • The exact number of phases needed to develop the product can be varied by the project manager depending upon the project risks. • It is based on the idea of a spiral, with each iteration of the spiral representing a complete software development cycle, from requirements gathering and analysis to design, implementation, testing, and maintenance.
  • 24.
    Spiral Model • TheSpiral Model is a risk-driven model, meaning that the focus is on managing risk through multiple iterations of the software development process. It consists of the following phases: 1. Planning : The first phase of the Spiral Model is the planning phase, where the scope of the project is determined and a plan is created for the next iteration of the spiral. 2. Risk Analysis : In the risk analysis phase, the risks associated with the project are identified and evaluated. 3. Engineering : In the engineering phase, the software is developed based on the requirements gathered in the previous iteration. 4. Evaluation : In the evaluation phase, the software is evaluated to determine if it meets the customer’s requirements and if it is of high quality. 5. Planning : The next iteration of the spiral begins with a new planning phase, based on the results of the evaluation.
  • 25.
    Specialised Process Models •Specialized process models take on many of the characteristics of one or more of the traditional models However, these models tend to be applied when a specialized or narrowly defined software engineering approach is chosen. • There are 3 types of specialized process models: 1. Component Based Development 2. Formal Methods Model 3. Aspect Oriented Software development
  • 26.
    Component Based Development •Commercial off-the-shelf (COTS) software components, developed by vendors who offer them as products, provide targeted functionality with well-defined interfaces that enable the component to be integrated into the software that is to be built. • The component-based development model incorporates many of the characteristics of the spiral model. • It is evolutionary in nature, demanding an iterative approach to the creation of software. • However, the component-based development model constructs applications from prepackaged software component.
  • 27.
    Component Based Development •Modeling and construction activities begin with the identification of candidate components. • These components can be designed as either conventional software modules or object oriented classes or packages of classes. • Regardless of the technology that is used to create the components, the component-based development model incorporates the following steps: 1. Available component-based products are researched and evaluated for the application domain in question. 2. Component integration issues are considered. 3. A software architecture is designed to accommodate the components. 4. Components are integrated into the architecture. 5. Comprehensive testing is conducted to ensure proper functionality