Nothing Special   »   [go: up one dir, main page]

Assignment Process Model

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 11

PROCESS MODELS

Software Process Models:


A software process model is the abstract representation of a process. It presents a
description of a process from some particular perspective as:
1. Specification:
What is the specification of a software from which we can
understand complete details?
2. Design:
What is the design of the software from which helps in getting
understand of the functionality and coding of the software?
3. Validation:
Tells about the validations of the software.
4. Evolution.
Tells about the evolution of the software.

General Software Process Models:


1. Waterfall model
2. Prototype model.
3. Rapid application development model (RAD).
4. Evolutionary model
5. Incremental model.
6. Iterative model.
7. Spiral model.
Waterfall Model:
The waterfall model is the classical model of software engineering. It is a sequential
model that divides software development into pre-defined phases. Each phase must
be completed before the next phase can begin with no overlap between the phases.
Each phase is designed for performing specific activity during the SDLC phase. It
was introduced in 1970 by Winston Royce. It is also known as irreversible model
because it can never be reversed. This model is one of the oldest models and is
widely used in government projects and in many major companies.
Phases:
1.Requirement Gathering: All possible requirements are captured in product
requirement documents.
2. Analysis Read: the requirement and based on analysis define the schemas,
models and business rules.
3. System Design: Based on analysis design the software architecture.
4. Implementation Development: of the software in the small units with functional
testing.
5. Integration and Testing Integrating: of each unit developed in previous phase and
post integration test the entire system for any faults.
6. Deployment of system: Make the product live on production environment after all
functional and nonfunctional testing completed.
7. Maintenance: Fixing issues and release new version with the issue patches as
required.
Advantages:
1. Easy to use, simple and understandable.
2. Easy to manage as each phase has specific outputs and review process.
3. Clearly-defined stages.
4. Works well for smaller projects where requirements are very clear.
5. Process and output of each phase are clearly mentioned in the document.
Disadvantages:
1.It doesn’t allow much reflection or revision. When the product is in testing phase,
it is very difficult to go back and change something which is left during the
requirement analysis phase.
2. Risk and uncertainty are high.
3. Not advisable for complex and object-oriented projects.
4. Changing requirements can’t be accommodated in any phase.
5. As testing is done at a later phase. So, there is a chance that challenges and risks
at earlier phases are not identified.
Applications:

 Requirements are very well documented, clear and fixed.


 Product definition is stable.
 Technology is understood and is not dynamic.

Communication
project initiation Planning
requirement gathering estimating Modeling
scheduling
analysis Construction
tracking
design Deployment
code
test delivery
support
f eedback

Prototype model:
The prototyping model is applied when detailed information related to input and
output requirements of the system is not available. In this model, it is assumed that
all the requirements may not be known at the start of the development of the
system. It is usually used when a system does not exist or in case of a large and
complex system where there is no manual process to determine the requirements.
This model allows the users to interact and experiment with a working model of the
system known as prototype. At any stage, if the user is not satisfied with the
prototype, it can be discarded and an entirely new system can be developed.
Generally, prototype can be prepared by the approaches listed below.

Advantages:

 Provides a working model to the user early in the process, enabling early
assessment and increasing user's confidence.
 The developer gains experience and insight by developing a prototype there
by resulting in better implementation of requirements.
 The prototyping model serves to clarify requirements, which are not clear,
hence reducing ambiguity and improving communication between the developers
and users.
 There is a great involvement of users in software development. Hence, the
requirements of the users are met to the greatest extent.
 Helps in reducing risks associated with the software.

Disadvantages:

 If the user is not satisfied by the developed prototype, then a new prototype
is developed. This process goes on until a perfect prototype is developed. Thus,
this model is time consuming and expensive.
 The developer loses focus of the real purpose of prototype and hence, may
compromise with the quality of the software.
 Prototyping can lead to false expectations. For example, a situation may be
created where the user believes that the development of the system is finished
when it is not.
 The primary goal of prototyping is speedy development; thus, the system
design can suffer as it is developed in series without considering integration of all
other components.

Quick plan

Communication

Modeling
Quick design

Deployment
Delivery
& Feedback Construction
of
prototype

Rapid Application Development model:


Rapid Application Development is a development model prioritizes rapid prototyping
and quick feedback over long drawn out development and testing cycles. With rapid
application development, developers can make multiple iterations and updates to a
software rapidly without needing to start a development schedule from scratch
each time. RAD is a development model that came into existence once developers
realized the traditional waterfall model of development wasn’t very effective.

Advantages:

 Requirements can be changed at any time

 Encourages and priorities customer feedback

 Reviews are quick

 Development time is drastically reduced

 More productivity with fewer people

 Time between prototypes and iterations is short


Disadvantages:

 Needs strong team collaboration

 Cannot work with large teams

 Needs highly skilled developers

 Needs user requirement throughout the life cycle of the product

 Only suitable for projects which have a small development time

 More complex to manage when compared to other models

Team # n
Mo d e lin g
business modeling
data modeling
process modeling

C o n st ru ct io n
component reuse
Team # 2 automatic code
Communication generation
testing
Modeling
business modeling
dat a modeling
process modeling

Planning
Construction Deployment
Team # 1 component reuse int egrat ion
aut omat ic code
generat ion delivery
Modeling t est ing feedback
business modeling
dat a modeling
process modeling

Construction
component reuse
aut omat ic code
generat ion
t est ing

60 - 90 days

Evolutionary model:
They are basically iterative. Once the requirements are analyzed, they pass through
a series of iterations till the complete software is developed. The evolutionary
models mainly support the programmer to develop the complete version of a
software. After each release, based on the review given by the reviewers, further
iterations are performed. The main two evolutionary models are:
1. Incremental model
2. Spiral model
planning
estimation
scheduling
risk analysis

communication

modeling
analysis
design
start

deployment
construction
delivery code
feedback test Incremental
model:
In incremental model, the project is divided into smaller parts. After requirement
analysis, the iterations start. Each iteration follows the classical waterfall model. In
each iteration, communication, planning, modelling, construction, and delivery are
performed. Here, each iteration is released to the customer as increments. The first
increment contains the basic functionalities of the software, and therefore called
the core product. The software is updated whenever a new feature is to be added
and built on top of the core product. It continues till the complete version of the
product is developed. So, it takes very long period to release a complete software.
Advantages:
1. Simple and easy
2. Each iteration releases a working version of software
3. Promotes maintainability
4. Easily manageable risks
Disadvantages:
1.Less flexible
2. Very long time to release the complete version of software
increment #n
Communic a t ion
Planning
Modeling
analys is C o n s t ru c t i o n
des ign
c ode De p l o y m e n t
t es t d e l i v e ry
fe e dba c k

delivery of
nt h increment
increment # 2

Communic at ion
Planning

Modeling
analys is C o n s t ru c t i o n
des ign c ode De p l o y m e n t
t es t d e l i v e ry
fe e dba c k
delivery of
increment # 1 2nd increment

Communic a t ion
Planning
Modeling
analys is Co n s t ru c t i o n
des ign c ode
delivery of
De p l o y m e n t
t es t d e l i v e ry
fe e dba c k

1st increment

project calendar time

Spiral model:
Spiral model proposed by Barry Boehm [Boe88], is quite similar to incremental
model, but concentrates more on Risk Management. It has four major phases:
planning, risk analysis, engineering, and evaluation. The base spiral involves
requirement gathering and risk assessment i.e. defining the objectives. The
subsequent spirals are built on this base spiral. Next, the process is analyzed for
any risks i.e. risk analysis. Later, the model to develop the software is decided on
and at last, based on the review of the software with the project team and
customer, the next phase is planned. The spiral model is a realistic approach to the
development of large-scale systems and software. It relies on the risk assessment
expert who handles risk management for the success of the software
Advantages:
1.Better risk analysis
2. Well-suited for larger projects
3. Very flexible iv. High user involvement
Disadvantages:
1.Expensive
2. Somewhat complicated model
planning
estimation
scheduling
risk analysis

communication

modeling
analysis
design
start

deployment
construction
delivery
code
feedback test

Iterative model:

Iterative software development is a software development process that is


performed in small steps, during which the obtained intermediate results are
analysed, new requirements are set, and the previous work stages are corrected.
Each of the iterations includes all software development processes: requirements
acquisition and analysis, specification preparation, the implementation itself,
testing, and launch. However, within a single iteration, only a separate component
or version is developed, but not the entire project. The next iteration results either
in a new functionality or an improved existing functionality of the product. The full
set of requirements fixed by the project boundaries becomes implemented after the
final iteration is complete.

Advantages:
1. Quick project launch. You start your project in a shorter time (even if it does
not feature full functionality), and you are already earning money on it.
2. Risk reduction. Issues are identified and resolved during iterations.
3. Flexibility to modifications. If at a certain stage you understand that a
particular function has become a priority, you can start implementing it in the
next iteration without waiting for the entire project to be finished.
4. Efficient feedback. Development teams actively communicate with
customers, creating a product that meets their needs and business goals.
5. Higher quality. An iterative approach allows for creating a more robust
architecture since all errors are fixed during several iterations.
Disadvantages:

1. complex project, deadlines and a budget depend on functional features and


may change throughout the development process.
2. Strong customer involvement in the process. Customers have to actively join
the work on the project and discuss and approve modifications to the project.
Some customers may feel uncomfortable about it, and the habitual waterfall
development model will probably work better for them.
3. Possible problems with the architecture. With no strict requirements and well-
developed global plan, the software product architecture may suffer, and to
bring it back to a reasonable
condition, you may need additional resources.

Unified Process model:


Unified process is a refinement of rational unified process. It is an extensible
framework that can be customized for specific projects.

This process divides the development process into four phases:

 Inception
 Elaboration
 Conception
 Transition
1. Inception - The idea for the project is stated. The development team
determines if the project is worth pursuing and what resources will be needed.
2.Elaboration - The project's architecture and required resources are further
evaluated. Developers consider possible applications of the software and costs
associated with the development.
3.Construction - The project is developed and completed. The software is
designed, written, and tested.
4.Transition - The software is released to the public. Final adjustments or updates
are made based on feedback from end users.

UP has the following major characteristics:

 It is use-case driven
 It is architecture-centric
 It is risk focused
 It is iterative and incremental

Advantages:

 Process details are expressed in general terms, allowing local customization


 Heavy emphasis on documentation (UML)
 Can embrace incremental releases
 Evolutionary approach can lead to clean implementations

Disadvantages:

 Process details are expressed in general terms, providing minimal guidance


and requiring local customization
 Complex
 Heavy documentation can be expensive
Elaboration

Inception

construction
Release
transition
software increment

production

You might also like