Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
8 views

Process Model

Uploaded by

Anand Bihari
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

Process Model

Uploaded by

Anand Bihari
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 69

Software Processes and Models

The software process


 A structured set of activities required to develop a
software system.
Many different software processes but all involve: –
 Specification – defining what the system should do;
 Design and implementation – defining the organization of
the system and implementing the system;
 Validation – checking that it does what the customer wants;
 Evolution – changing the system in response to changing
customer needs.
 A software process model is an abstract representation
of a process. It presents a description of a process from
some particular perspective
Software Development Life cycle (SDLC)
 A life cycle model prescribes the different activities that
need to be carried out to develop a software product and
sequencing of these activities.
 Also referred to as Systems Development Life cycle.
 Every software product starts with a request for the
product by the customer.- Production conception.
 The software life cycle can be considered as the business
process for software development and therefore is often
referred to as a Software process. (SLCM).
 Process models – More detailed and precise life cycle
activities.
Different stages in a life cycle model
 After Product conception. The stages are: (Life cycle phase)
 Feasibility study stage
 Requirements analysis and specification.
 Design
 Coding
 Testing and
 Maintenance.
 A SDLC is a series of identifiable stages that a software product
undergoes during its lifetime.
 A SDLC is a descriptive and diagrammatic representation of the
software life cycle.
 A life cycle model maps the different activities performed on a
software product from its beginning to retirement into a set of
life cycle phases.
Software development process models:
 Big-Bang model  Prototype model
 Code-and-fix model  Operational model
 Waterfall model  Transformational model
 V model  Joint application
 Incremental model development (JAD)
 RAD model  Component assembly model
 Agile model  Cleanroom software
 Iterative model engineering model
 Concurrent development
 Spiral model
model
 Win-Win spiral model
Big-Bang model
 Big-Bang is the SDLC(Software Development Life cycle)
model in which no particular process is followed.
 Generally this model is used for small projects in which the
development teams are small. It is specially useful in
academic projects.
 This model is needs a little planning and does not follow
formal development.
 The development of this model begins with the required
money and efforts as an input.
 The output of this model is developed software, that may or
may not be according to the requirements of the customer.
Advantages of Big-Bang model
Big-Bang model is a simple model.
It needs little planning.
It is simple to manage. It needs just a few resources to be
developed.
It is useful for students and new comers.

Disadvantages of Big-Bang model


It is a very high risk model.
This model is not suitable for object oriented and
complex projects.
Big-Bang is poor model for lengthy and in-progress
projects.
Code-and-fix Model
Code-and-fix Model
Code and fix model is one step ahead from the Big-
Bang model.
It identifies the product that must be tested before
release.
The testing team find the bugs then sends the software
back for fixing.
To deliver the fixes developers complete some coding
and send the software again for testing.
This process is repeated till the bugs are found in it, at
an acceptable level.
Advantages of Code-and-fix model
This model is suitable for small projects.
It needs less project planning.

Disadvantages of Code-and-fix model


It is difficult to accommodate changes.
It is not clear what will be delivered and when.
It is difficult to assess quality.
Waterfall Model
Waterfall Model
Waterfall Model
 The waterfall model is the classic model or oldest model
and is known as mother of all the model.
 It is widely used in government projects and many vital
projects in company.
 The waterfall model is also called as 'Linear sequential
model' or 'Classic life cycle model'.
 In this model, each phase is executed completely before the
beginning of the next phase.
 Hence the phases do not overlap in waterfall model.
This model is used for small projects.
In this model, feedback is taken after each phase to ensure that
the project is on the right path.
Testing part starts only after the development is completed.
Phases in waterfall model:
(i) Communication
 The software development starts with the
communication between customer and developer.
(ii) Planning
 It consists of complete estimation, scheduling for project
development.
(iii) Modeling
 Modeling consists of complete requirement analysis and
the design of the project i.e algorithm, flowchart etc.
 The algorithm is the step-by-step solution of the problem
and the flow chart shows a complete flow diagram of a
program.
Phases in waterfall model:
(iv) Construction
 Construction consists of code generation and the testing part.
 Coding part implements the design details using an appropriate
programming language.
 Testing is to check whether the flow of coding is correct or not.
 Testing also checks that the program provides desired output.
(v) Deployment
 Deployment step consists of delivering the product to the
customer and taking feedback from them.
 If the customer wants some corrections or demands for the
additional capabilities, then the change is required for
improvement in the quality of the software.
Advantages of Waterfall model
 The waterfall model is simple and easy to understand, to
implement, and use.
 All the requirements are known at the beginning of the
project, hence it is easy to manage.
 It avoids overlapping of phases because each phase is
completed at once.
 This model works for small projects where the
requirements are easily understood.
 This model is preferred for those projects where the quality
is more important as compared to the cost of the project.
Disadvantages of the Waterfall model
 This model is not good for complex and object oriented projects.
 In this model, the changes are not permitted so it is not fit for
moderate to high risk changes in project.
 It is a poor model for long duration projects.
 The problems with this model are uncovered, until the software
testing.
 The amount of risk is high.
 No feedback path: In classical waterfall model evolution of a
software from one phase to another phase is like a waterfall. It
assumes that no error is ever committed by developers during
any phases. Therefore, it does not incorporate any mechanism for
error correction.
V Model
V model is known as Verification and Validation
model.
This model is an extension of the waterfall model.
 In the life cycle of V-shaped model, processes are
executed sequentially.
Every phase completes its execution before the
execution of next phase begins.
Phases of V-model:
i) Requirements
 The requirements of product are understood from the customers point of
view to know their exact requirement and expectation.
 The acceptance test design planning is completed at requirement stage
because, business requirements are used as an input for acceptance
testing.
ii) System Design
 In system design, high level design of the software is constructed.
 In this phase, we study how the requirements are implemented their
technical use.
iii) Architecture design
 In architecture design, software architecture is created on the basis of
high level design.
 The module relationship and dependencies of module, architectural
diagrams, database tables, technology details are completed in this phase.
Phases of V-model:
iv) Module design
 In module phase, we separately design every module or the software
components.
 Finalize all the methods, classes, interfaces, data types etc.
 Unit tests are designed in module design phase based on the internal
module designs.
 Unit tests are the vital part of any development process. They help to
remove the maximum faults and errors at an early stage.
v) Coding Phase
 The actual code design of module designed in the design phase is
grabbed in the coding phase.
 On the basis of system and architecture requirements, we decide the
best suitable programming language.
 The coding is executed on the basis of coding guidelines and standards.
Advantages of V-model
V-model is easy and simple to use.
Many testing activities i.e planning, test design are
executed in the starting, it saves more time.
Calculation of errors is done at the starting of the project
hence, less chances of error occurred at final phase of
testing.
This model is suitable for small projects where the
requirements are easily understood.
Disadvantages of V-model
V-model is not suitable for large and composite projects.
If the requirements are not constant then this model is
not acceptable.
Incremental Model
 The incremental model combines the elements of waterfall
model and they are applied in an iterative fashion.
 The first increment in this model is generally a core product.
 Each increment builds the product and submits it to the
customer for suggesting any modifications.
 The next increment implements the customer's suggestions
and add additional requirements in the previous increment.
 This process is repeated until the product is completed.
 For example, the word-processing software is developed
using the incremental model.
Phases of Incremental model
i) Communication
 The software development starts with the communication
between customer and developer.
ii) Planning
 It consists of complete estimation, scheduling for project
development.
iii) Modeling
 Modeling consists of complete requirement analysis and the
design of the project like algorithm, flowchart etc.
 The algorithm is a step-by-step solution of the problem and
the flow chart shows a complete flow diagram of a program.
iv) Construction
 Construction consists of code generation and the testing part.
 Coding part implements the design details using an appropriate
programming language.
 Testing is to check whether the flow of coding is correct or not.
 Testing also checks that the program provides desired output.
v) Deployment
 Deployment step consists of delivering the product to the
customer and taking feedback from them.
 If the customer wants some corrections or demands for the
additional capabilities, then the change is required for
improvement in the quality of the software.
Advantages of Incremental model
 This model is flexible because the cost of development is low and
initial product delivery is faster.
 It is easier to test and debug in the smaller iteration.
 The working software is generated quickly in the software life
cycle.
 The customers can respond to its functionalities after every
increment.
Disadvantages of the incremental model
 The cost of the final product may cross the cost initially estimated.
 This model requires a very clear and complete planning.
 The planning of design is required before the whole system is
broken into smaller increments.
 The demands of customer for the additional functionalities after
every increment causes problem in the system architecture.
Types of Incremental model
Staged Delivery Model
Parallel Development Model
Staged Delivery Model
Construction of only one part of the project at a time.
Parallel Development Model
When to use this –
Funding Schedule, Risk, Program Complexity, or need
for early realization of benefits.
When Requirements are known up-front.
When Projects having lengthy developments
schedules.
Projects with new Technology.
Advantages –
Error Reduction (core modules are used by the
customer from the beginning of the phase and then
these are tested thoroughly)
Uses divide and conquer for breakdown of tasks.
Lowers initial delivery cost.
Incremental Resource Deployment.
Disadvantages –
Requires good planning and design.
Total cost is not lower.
Well defined module interfaces are required.
RAD
RAD is a Rapid Application Development model.
Using the RAD model, software product is developed
in a short period of time.
The initial activity starts with the communication
between customer and developer.
Planning depends upon the initial requirements and
then the requirements are divided into groups.
Planning is more important to work together on
different modules.
Phases of RAD Model
 Requirements Planning
 It involves the use of various techniques used in requirements
elicitation like brainstorming, task analysis, form analysis, user
scenarios.
 User Description
 It includes re-examination and validation of the data collected in the
first phase.
 Construction
 It includes the actual use of powerful automated tools to transform
process 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.
Applications
 This model should be used for a system with known
requirements and requiring short development time.
 It is also suitable for projects where requirements can be
modularized and reusable components are also available for
development.
 The model can also be used when already existing system
components can be used in developing a new system with
minimum changes.
 This model can only be used if the teams consist of domain
experts. This is because relevant knowledge and ability to use
powerful techniques is a necessity.
 The model should be chosen when the budget permits the use
of automated tools and techniques required.
Advantages
 Use of reusable components helps to reduce the cycle time
of the project.
 Feedback from the customer is available at initial stages.
 Reduced costs as fewer developers are required.
 Use of powerful development tools results in better quality
products in comparatively shorter time spans.
 The progress and development of the project can be
measured through the various stages.
 It is easier to accommodate changing requirements due to
the short iteration time spans.
Disadvantages
 The use of powerful and efficient tools requires highly skilled
professionals.
 The absence of reusable components can lead to failure of the
project.
 The team leader must work closely with the developers and
customers to close the project in time.
 The systems which cannot be modularized suitably cannot
use this model.
 Customer involvement is required throughout the life cycle.
 It is not meant for small scale projects as for such cases, the
cost of using automated tools and techniques may exceed the
entire budget of the project.
Agile Model
 Agile model is a combination of incremental and iterative process
models.
 This model focuses on the users satisfaction which can be achieved
with quick delivery of the working software product.
 Agile model breaks the product into individual iterations.
 Every iteration includes cross functional teams working on different
areas such as planning, requirements, analysis, design, coding, unit
testing and acceptance testing.
 At the end of an iteration working product shows to the users.
 With every increment, features are incremented and the final
increment hold all the features needed by the customers.
 The iterations in agile process are shorter in duration which can vary
from 2 weeks to 2 months.
Advantages of Agile model
 Customers are satisfied because of quick and continuous
delivery of useful software.
 Regular delivery of working software.
 Face to face interaction between the customers, developers
and testers and it is best form of communication.
 Even the late changes in the requirement can be
incorporated in the software.

Disadvantages of Agile model


 It is totally depends on customer interaction. If the customer
is not clear with their requirements, the development team
can go in the wrong direction.
 Documentation is less, so the transfer of technology to the
new team members is challenging.
Iterative Model
In Iterative model, the large application of software
development is divided into smaller chunks and
smaller parts of software which can be reviewed to
recognize further requirements are implemented. This
process is repeated to generate a new version of the
software in each cycle of a model.
With every iteration, development module goes
through the phases i.e requirement, design,
implementation and testing. These phases are repeated
in iterative model in a sequence.
1) Requirement Phase
 In this phase, the requirements for the software are assembled
and analyzed. Generates a complete and final specification of
requirements.
2) Design Phase
 In this phase, a software solution meets the designed
requirements which can be a new design or an extension of an
earlier design.
3) Implementation and test phase
 In this phase, coding for the software and test the code.
4) Evaluation
 In this phase, software is evaluated, the current requirements
are reviewed and the changes and additions in the
requirements are suggested.
Advantages
Produces working software rapidly and early in the
software life cycle.
This model is easy to test and debug in a smaller
iteration.s
It is less costly to change scope and requirements.
Disadvantages
The system architecture is costly.
 This model is not suitable for smaller projects.
Iterative Waterfall Model
Iterative Waterfall Model
The iterative waterfall model is classical waterfall
model with necessary changes so that it becomes
applicable to practical software development projects.
The main change to the classical waterfall model is in
the form of providing feedback paths from every phase
to its preceding phase.
The feedback paths allows for correction of errors
committed during a phase, as and when these are
detected in a later phase.
 The principle of detecting errors as close to their
points of introduction as possible is known as phase
containment of errors.
Advantages of Iterative Waterfall Model
Feedback Path: In the classical waterfall model, there
are no feedback paths, so there is no mechanism for
error correction. But in iterative waterfall model
feedback path from one phase to its preceding phase
allows correcting the errors that are committed and
these changes are reflected in the later phases.
Simple: Iterative waterfall model is very simple to
understand and use. That’s why it is one of the most
widely used software development models.
Drawbacks of Iterative Waterfall Model
Difficult to incorporate change requests
Incremental delivery not supported
Overlapping of phases not supported
Risk handling not supported
Limited customer interactions
Evolutionary Process Models
Evolutionary models are iterative type models.
They allow to develop more complete versions of the
software.
Following are the evolutionary process models.

1. The prototyping model


2. The spiral model
3. Concurrent development model
Advantages:
In evolutionary model, a user gets a chance to
experiment partially developed system.
It reduces the error because the core modules get tested
thoroughly.
Disadvantages:
Sometimes it is hard to divide the problem into several
versions that would be acceptable to the customer
which can be incrementally implemented and
delivered.
Prototyping Model
Prototype is defined as first or preliminary form using
which other forms are copied or derived.
Prototype model is a set of general objectives for
software.
It does not identify the requirements like detailed
input, output.
It is software working model of limited functionality.
In this model, working programs are quickly produced.
The different phases of Prototyping model are:

1. Communication
In this phase, developer and customer meet and discuss the overall
objectives of the software.

2. Quick design
 Quick design is implemented when requirements are known.
 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.
3. Modeling quick design
 This phase gives the clear idea about the development of software
because the software is now built.
 It allows the developer to better understand the exact requirements.
4. Construction of prototype
The prototype is evaluated by the customer itself.

5. Deployment, delivery, feedback


If the user is not satisfied with current prototype then it
refines according to the requirements of the user.
The process of refining the prototype is repeated until
all the requirements of users are met.
When the users are satisfied with the developed
prototype then the system is developed on the basis of
final prototype.
Advantages of Prototyping Model
Prototype model need not know the detailed input,
output, processes, adaptability of operating system and
full machine interaction.
In the development process of this model users are
actively involved.
The development process is the best platform to
understand the system by the user.
Errors are detected much earlier.
Gives quick user feedback for better solutions.
It identifies the missing functionality easily. It also
identifies the confusing or difficult functions.
Disadvantages of Prototyping Model:
The client involvement is more and it is not always
considered by the developer.
It is a slow process because it takes more time for
development.
Many changes can disturb the rhythm of the
development team.
It is a thrown away prototype when the users are
confused with it.
Spiral Model
The Spiral model
Spiral model is a risk driven process model.
It is used for generating the software projects.
In spiral model, an alternate solution is provided if the
risk is found in the risk analysis, then alternate
solutions are suggested and implemented.
It is a combination of prototype and sequential model
or waterfall model.
In one iteration all activities are done, for large
project's the output is small.
When to use Spiral Methodology?
When project is large
When releases are required to be frequent
When creation of a prototype is applicable
When risk and costs evaluation is important
For medium to high-risk projects
When requirements are unclear and complex
When changes may require at any time
When long term project commitment is not feasible
due to changes in economic priorities.
Advantages of Spiral Model
It reduces high amount of risk.
It is good for large and critical projects.
It gives strong approval and documentation control.
In spiral model, the software is produced early in the
life cycle process.
Disadvantages of Spiral Model
It can be costly to develop a software model.
It is not used for small projects.
Win-Win Spiral Model
 In actual practice, the process of negotiation which simply
means to compromise has to be faced by the customers and
developers.
 When both sides agree, only then successful negotiation
occurs.
 This is called the WIN-WIN situation.
 Customer’s win means –
Obtaining the system that fulfill most of the requirements of
customers.
 Developer’s win means –
Getting the work done by fulfilling the realistic requirements
of customers in a given deadline and achievable budgets.
Activities
 Identification of ‘stakeholders’.
 Determination of stakeholders to make great efforts to achieve or
obtain a win condition.
 Negotiations of stakeholders struggling vigorously for win
condition. Software project team conciliate for a win-win result
with concern. Then determine next level objectives, constraints,
and alternatives.
 Evaluation of the process and product and then analyzing and
resolving or reducing the risks to make it easy.
 Defining the next level of product and process for proper working.
 Validation of process and product definitions is must.
 Reviewing of the product and giving the necessary and important
comments on it.
Concurrent development model
 The concurrent development model is called as concurrent
model.
 The communication activity has completed in the first
iteration and exits in the awaiting changes state.
 The modeling activity completed its initial communication
and then go to the underdevelopment state.
 If the customer specifies the change in the requirement,
then the modeling activity moves from the under
development state into the awaiting change state.
 The concurrent process model activities moving from one
state to another state.
Advantages of the concurrent development model
This model is applicable to all types of software
development processes.
It is easy for understanding and use.
It gives immediate feedback from testing.
It provides an accurate picture of the current state of a
project.
Disadvantages of the concurrent development model
It needs better communication between the team
members. This may not be achieved all the time.
It requires to remember the status of the different
activities.

You might also like