Assignment Process Model
Assignment Process Model
Assignment Process Model
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
Advantages:
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
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:
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:
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.
It is use-case driven
It is architecture-centric
It is risk focused
It is iterative and incremental
Advantages:
Disadvantages:
Inception
construction
Release
transition
software increment
production