S.E 2chapter

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 47

Process Models

4.1 A Generic Process Model


4.2 Prescriptive Process Models: The Waterfall, Incremental model,
Rapid application development Model
4.3 Evolutionary Process Models: Prototyping, Spiral Model
4.4 Concurrent Models
Software Process
It is the road map that will assist to develop the high quality product. This road
map used to develop the quality software

 Software processes are chosen by the software engineers and their team leads to
accomplish the task of software development process
 Software process allows system software development by providing stability and
control over all development activities
 Different software processes can be used to develop different software products ,
depending on what type of software it is
Software Process Models
 A software process model represents the order in which the activities of
software development will be undertaken.
 The models specify the stages and order of a process.

A model will define the following:


 The tasks to be performed
 The input and output of each task
 The pre and post conditions for each task
 The flow and sequence of each task
Factors in choosing a software process

Choosing the right software process model for your project can be difficult.
If you know your requirements well, it will be easier to select a model that best
matches your needs.
You need to keep the following factors in mind when selecting your
software process model
Project requirements
 Before you choose a model, take some time to go through the project
requirements and clarify them alongside your organization’s or team’s
expectations. Will the user need to specify requirements in detail after
each iterative session? Will the requirements change during the
development process?

Project size
Consider the size of the project you will be working on. Larger projects
mean bigger teams, so you’ll need more extensive and elaborate
project management plans.
Project complexity
Complex projects may not have clear requirements. The requirements may
change often, and the cost of delay is high. Ask yourself if the project
requires constant monitoring or feedback from the client.

Cost of delay
Is the project highly time-bound with a huge cost of delay, or are the
timelines flexible?
Customer involvement
Do you need to consult the customers during the process? Does the user
need to participate in all phases?

Project resources
This involves the amount and availability of funds, staff, and other
resources.

Familiarity with technology


This involves the developers’ knowledge and experience with the
project domain, software tools, language, and methods needed for
development.
A generic Process Model
A generic process model is used for major and vast projects. Framework activities
are

1. Communication
2. Planning
3. Modeling
4. Construction
5. deployment

# revision from second chapter


Communication
 Before technical work begins, it is necessary to communicate and
Collaborate with the customers and other stakeholders too
 Intention behind communication is to know and understand exact
Objectives of stakeholders and to collect requirements that assist in
Defining software functions and features
Planning
 Software project plan defines the software engineering work that
Includes description of technical tasks to be conducted, the risks
involved ,required resources ,the work product that needs to be
Created
Modeling
 During the modeling phase, the actual conceptualizing of the
solution is created, that is the detailed software architecture meeting
specific project requirements is created.
 During this phase, the whole structure of the project is built with
the final prototype
Construction
 This activity is a combination of code generation and the testing.
Code generation could be automated or manual.
 Coding is a programming activity that actually converts design of the
Software into executable programs or software. Testing is needed to
remove errors form the code
Deployment
 Deployment is delivering software completely or partially to the
customer.
 Customer uses ,evaluates the product and gives feedback based on
evaluation done
Prescriptive Process Models
The models which have predefined process frameworks are know as prescriptive
models
1. Waterfall Model
Steps of waterfall Model
1) In communication phase the major task done is requirement gathering which
help to find out the exact needs of customer
2) Planning phase includes some major activities like schedule planning, keeping
different processes on track , resource planning and the estimations related to
the project
3) In modelling phase important thing is to analyse the requirements and detailed
design of the software is designed
1) Based on the design of the software the construction and testing is done
2) In the deployment phase the product is actually delivered and support is
given if required
3) Feedback is taken from the customer and can be incorporated in software
during maintenance phase
Waterfall Model
Some of the major advantages of the Waterfall Model are as follows −
1) Simple and easy to understand and use
2) Easy to manage due to the rigidity of the model. Each phase has
specific deliverables and a review process.
3) Phases are processed and completed one at a time.
4) Works well for smaller projects where requirements are very well
understood.
5) Clearly defined stages.
6) Well understood milestones.
7) Easy to arrange tasks.
8) Process and results are well documented
Some of the major disadvantages of the Waterfall Model are as follows −
1) No working software is produced until last phase of the life cycle.
2) High amounts of risk and uncertainty.
3) Not a good model for complex and object-oriented projects.
4) Poor model for long and ongoing projects.
5) Not suitable for the projects where requirements are at a moderate
to high risk of changing. So, risk and uncertainty is high with this
process model.
6) It is difficult to measure progress within stages.
7) Cannot accommodate changing requirements.
8) Adjusting scope during the life cycle can end a project
When to use SDLC Waterfall Model
1) Waterfall model can be used when. Requirements are not
changing frequently
2) Application is not complicated and big
3) Requirement is clear
4) Technology and tools used are not dynamic and is stable
5) Resources are available and trained
2 ) Incremental Model
2. Incremental Model
 The incremental model is a combination of components of the waterfall model
Which are applied in an iterative manner
 The basic idea of this model is to start the process with requirements and
iteratively enhance the requirements until the final software is implemented.
 In this module requirements are divided into multiple standalone modules. and
each module goes through the SDLC steps communication , planning ,
modelling ,construction and deployment , process continues until the complete
system achieved
 Each stage of incremental model adds some functionality to the product and
passes it on to the next stage.
 The first increment is generally known as a core product and is used by the
user for a detailed evaluation.
 This process results in creation of a plan for the next increment. This plan
determines the modifications (features or functions) of the product in order to
accomplish user requirements.
 The iteration process, which includes the delivery of the increments to the user,
continues until the software is completely developed.
 The increments result in operational product, which are assessed in order to
measure the progress of the product.
 useful when staffing is unavailable for a complete implementation, first
increment can be started with available staff once core product is well
received, then additional staff (if required) can be added to implement the next
increment.
 increments can be planned to manage technical risks.
Characteristics of an Incremental module includes
System development is broken down into many mini development projects
Partial systems are successively built to produce a final total system
Highest priority requirement is tackled first
Once the requirement is developed, requirement for that increment are frozen

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
Advantages and Disadvantages of Incremental Model

Advantages Disadvantages
•The software will be generated quickly during the •It requires a good planning designing
software life cycle

•It is flexible and less expensive to change •Problems might cause due to system architecture
requirements and scope as such not all requirements collected up front for
the entire software lifecycle

•Throughout the development stages changes can •Each iteration phase is rigid and does not overlap
be done each other

•This model is less costly compared to others •Rectifying a problem in one unit requires correction
in all the units and consumes a lot of time

•A customer can respond to each building

•Errors are easy to be identified


3 ) Rapid Application Development model
3. RAD Model
 RAD Model’s working process is same as Incremental Model. In this model, all
the work goes in a parallel way.
 RAD model mostly used for small projects which have complete
requirement. RAD customers get something working very quickly and can
provide feedback for the software or the future requirements.
 Since the customer gets early visibility in the software he can provide early
feedback on the design and can decide whether to proceed with the
development or not.
 In rapid application development, structured techniques and prototyping are
especially used to define user’s requirements and to design the final system.
 The development process starts with the development of preliminary data
models and business process models using structured techniques.
 In the next stage, requirements are verified using prototyping, eventually to
refine the data and process models. These stages are repeated iteratively,
Rapid Application Development Model’s phases are:
 Business Modeling
 Data Modeling
 Process Modeling
 Application Modeling
 Testing and Turnover
Business modeling: In this phase business model designed based on
business functions. The development shows the complete picture of
business process functionality.
Data modeling: After the complete business model is used to define
data objects that are needed for the business.
Process modeling: Data objects defined in data modeling are
converted or implement in functionality flow.
Application modeling: In the phase mostly use automated tools to
convert process models into the code and the actual system.
Testing and turnover: All the testing part performed in this phase.
Testers ensure that build is as per the requirement.
When to use RAD:
 Reasonably well-known requirements
 User involved throughout the Life Cycle
 Project can be time-boxed
 Functionality delivered in increments
 High performance not required
 Low technical risks
 System can be modularized
Advantages of Rapid Application Development Model
 Fast application development model as compare to
other Software development models
 Mostly use for small project
 Able to get customer’s feedback
Disadvantages of Rapid Application Development Model
 Required professional developers and
designers
 Phases are depending on each other
 Using Automation tools project cost may be
increased
 Required complete business requirements
before start project
Evolutionary Process Models
 The new software requirements are demanding less time for software
development and huge flexibility in the produced product ,this demands new
method of developing the software that quickly delivers the product.
 There are certain evolutionary models that are based on prescriptive models but
the way of execution and software building is different
 Evolutionary models meet the demands of business and market In the
contemporary era with the quick delivery of the product
 Evolutionary models are iterative type models.
 They allow to develop more complete versions of the software

There are mainly two types of evolutionary models


1. Prototype model
2. Spiral Model
1. Prototype Model
1. Prototype Model
Prototype Model
The prototype model requires that before carrying out the development of
actual software, a working prototype of the system should be built.
A prototype is a toy implementation of the system.
A prototype usually turns out to be a very crude version of the actual system,
possible exhibiting limited functional capabilities, low reliability, and inefficient
performance as compared to actual software.
In many instances, the client only has a general view of what is expected from
the software product. In such a scenario where there is an absence of detailed
information regarding the input to the system, the processing needs, and the
output requirement, the prototyping model may be employed.
Step 1: Requirements gathering and analysis
A prototyping model starts with requirement analysis. In this phase, the
requirements of the system are defined in detail. During the process, the users
of the system are interviewed to know what is their expectation from the
system.

Step 2: Quick design


The second phase is a preliminary design or a quick design.
 In this stage, a simple design of the system is created.
It includes only the important aspects like input and output format of the
software.
It focuses on those aspects which are visible to the user rather than the
detailed plan.
It helps to construct a prototype.
Step 3: Build a Prototype
In this phase, an actual prototype is designed based on the information
gathered from quick design.
 It is a small working model of the required system.

Step 4: Initial user evaluation


 In this stage, the proposed system is presented to the client for an
initial evaluation. It helps to find out the strength and weakness of the
working model. Comment and suggestion are collected from the
customer and provided to the developer.
Step 5: Refining prototype
If the user is not happy with the current prototype, you need to refine the
prototype according to the user's feedback and suggestions.
This phase will not over until all the requirements specified by the user are met.
Once the user is satisfied with the developed prototype.

Step 6: Engineer Product and Maintain


 final system is developed/enginnered based on the approved final prototype.
 Once the final system is developed based on the final prototype, it is thoroughly
tested and deployed to production. The system undergoes routine maintenance
for minimizing downtime and prevent large-scale failures.
Advantages of Prototype Model

Reduce the risk of incorrect user requirements


Good where requirement are changing/uncommitted
Regular visible process aids management
Support early product marketing
Reduce Maintenance cost.
Errors can be detected much earlier as the system is made
side by side.
Disadvantages of Prototype Model

An unstable/badly implemented prototype often becomes the final


product.
Require extensive customer collaboration
Needs committed customer
May be too customer specific, no broad market
Difficult to know how long the project will last.
Special tools & techniques are required to build a prototype.
It is a time-consuming process
Developer as well as customer needs to be agreed upon the discarding of
prototype if needed
2. Spiral Model
Spiral Model
 Spiral model is one of the most important Software Development Life Cycle models, which
provides support for Risk Handling.
 In its diagrammatic representation, it 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.

 Spiral model is a combination of an iterative nature of prototyping and controlled and


systematic aspects of waterfall model
 In spiral model software development takes place in a series of developed releases
 In initial stage iteration , the release or model might be present on paper or may be
prototype
 A spiral model is made up of set of different framework activities made by the software
engineering team.
 Every framework activity represents one section of the spiral path . As the development
process starts, teams performs activities that are indirect by a path around the spiral model
in clockwise direction
 Specification of product starts the route around spiral model
Spiral Model
 After development gets over ,the product is delivered to the customer and .The main factors
cost and schedules are adjusted depending in the feedback received
 The project manager adjusts the number of iterations which are planned earlier for
completing the software
Advantages of spiral Model

It is combination of waterfall model and prototype


It takes many iterations that ensures removal of risks and
errors
Provides better accuracy because of repetition
Dis Advantages of spiral Model

Customers involvement
Expert people are required for the evaluation of risks

You might also like