Session 3 - Process Models
Session 3 - Process Models
Session 3 - Process Models
A Generic Process
Model
Recap for session -2
• Software Engineering Definition - IEEE
• A Layered Technology
• Software Process
• Process framework Activities
• Umbrella Activities
• Software Engineering Practice
• Software Myths
Agenda for session -3
• A Generic Process Model
• Prescriptive Process models
1. Waterfall Model.
2. Incremental Process Model.
3. Evolutionary Process Model.
• Prototyping
• Spiral Model
4. Concurrent model
A Generic Process
Model
Software process
Process framework
Process framework
Umbrella
Umbrella activities
activities
5
Identifying a Task Set
• A task set defines the actual work to be done to
accomplish the objectives of a software engineering
action.
• A list of the task to be accomplished
• A list of the work products to be produced
• A list of the quality assurance filters to be applied
Prescriptive Process
models
Prescriptive Process
models
The name 'prescriptive' is given because the model prescribes a set of
activities, actions, tasks, quality assurance and change the mechanism for
every project.
• Waterfall Model.
• Incremental Process Model.
• Evolutionary Process Model.
• Concurrent model
9
Prescriptive Process models
Waterfall Model
• Oldest software lifecycle model & best understood by
upper management
Communication
Project initiation Planning
Requirement gathering Estimating
Scheduling Modeling
Tracking Analysis Construction
Design Code Deployment
Test Delivery
Support
Feedback
Waterfall Model
Problems
• Real projects rarely follow sequential flow.
• Difficult for customers to state all requirements explicitly and
up front
• Requires customer patience because a working version of the
program doesn't occur until the final phase
• Doesn't support iteration, so changes can cause confusion
and Leads to “blocking states”.
Useful
• Where requirements are fixed and is to proceed to completion
in a linear manner.
12
Cons in Water fall model
• Real projects rarely follow the sequential flow that the
model proposes
21
Incremental Process Model
• It is useful when staffing is unavailable for a complete
implementation.
• Increments can be planned to manage technical risks.
Communication
features
Software functionality and
Planning
Modeling (analysis, design)
Construction (code, test)
Deployment ( delivery, feedback)
• Prototyping
• Spiral Model
27
Evolutionary Process Model
1. Prototyping
• It assists you and stakeholders to better understand what is to
built when requirements are fuzzy.
• Prototyping paradigm
-begins with communication.
- planned quickly and modelling occurs
- quick design focuses on a representation of those aspects of the
software that will be visible to end users.
• It serves as a mechanism for identifying software
requirements.
28
Prototyping
Model(Diagram)
Quick
Planning
Communication
Start
Modeling
Quick
Deployment,
Design
Delivery,
and
Feedback
Construction
Of Prototype
29
Prototyping Model
Problems
• Overall software quality or long-term maintainability is
not considered.
• As a Software Engineer make implementation
compromises in order to get a prototype working
quickly.
Useful
• The customer get feel for the actual system and
developers get to build something immediately
• Key here is all the stakeholders should agree that the
prototype is built to serve as a mechanism for defining
requirements.
Prototyping Model
Advantages of Prototype model:
• Users are actively involved in the development
• Since in this methodology a working model of the
system is provided, the users get a better
understanding of the system being developed.
• Errors can be detected much earlier.
• Quicker user feedback is available leading to better
solutions.
• Missing functionality can be identified easily
• Confusing or difficult functions can be identified
Prototyping Model
Disadvantages of Prototype model:
• Leads to implementing and then repairing way of building systems.
• Practically, this methodology may increase the complexity of the
system as scope of the system may expand beyond original plans.
• Incomplete application may cause application not to be used as the
full system was designed
• Incomplete or inadequate problem analysis.
When to use Prototype model:
• Prototype model should be used when the desired system needs to
have a lot of interaction with the end users.
• Typically, online systems, web interfaces have a very high amount
of interaction with end users, are best suited for Prototype model. It
might take a while for a system to be built that allows ease of use
and needs minimal training for the end user.
Evolutionary Process Model
2. Spiral development
• Originally proposed by Barry Boehm.
• It couples the iterative nature of prototyping with the
controlled and systematic aspects of water fall model.
• Process is represented as a spiral rather than as a
sequence of activities with backtracking.
• Each loop in the spiral represents a phase in the
process.
• No fixed phases such as specification or design - loops
in the spiral are chosen depending on what is required.
• Risks are explicitly assessed and resolved throughout
the process.
33
Spiral model
• It is a realistic approach to the development of large-
scale systems and software.
• The software evolves as the process progresses, the
developer and customer better understand and react
at each evolutionary level.
• It uses prototyping as a risk reduction mechanism.
• It demands considerable risk assessment expertise
and realise on this expertise for success.
34
Spiral Model (Diagram)
Planning
Communication
Start Modeling
Start
Deployment Construction
35
Spiral Model
Advantages of Spiral model:
• High amount of risk analysis hence, avoidance of
Risk is enhanced.
• Good for large and mission-critical projects.
• Strong approval and documentation control.
• Additional Functionality can be added at a later
date.
• Software is produced early in the software life cycle
.
Spiral Model
Disadvantages of Spiral model:
• Can be a costly model to use.
• Risk analysis requires highly specific expertise.
• Project’s success is highly dependent on the risk
analysis phase.
• Doesn’t work well for smaller projects.
Spiral Model
When to use Spiral model:
• When costs and risk evaluation is important
• For medium to high-risk projects
• Long-term project commitment unwise because of
potential changes to economic priorities
• Users are unsure of their needs
• Requirements are complex
Evolutionary development
• Problems
• Do not establish the max. speed of the evolution.
• Systems are often poorly structured;
• Special skills (e.g. in languages for rapid prototyping) may be
required.
• Project management and estimation technique do not fit
completely.
• Applicability
• For small or medium-size interactive systems;
• For parts of large systems (e.g. the user interface);
• For short-lifetime systems.
39
Concurrent Model
• The concurrent development model sometimes called
Concurrent Engineering.
• It allows team to represent iterative and concurrent elements of
any of the process models.
• All software engineering activities exist concurrently but
reside in different states.
• Concurrent modeling defines a series of events that will trigger
transitions from state to state for each of the activities.
• Concurrent modeling is applicable to all types of software
development and provide an accurate picture of the current
state of a project.
40
Concurrent Model cont…
Under
Development
Awaiting Under
Changes Review
Under
Baselined
Revision
Done
Questions:
1. What Classic life cycle model.
2. Disadvantages of Incremental Process Model.
3. Main drawback of Prototyping Model.
4. Speciality in Spiral Model.
5. Need of Process models in Software development.
6. Advantages of Spiral model.
7. Disadvantages of Spiral model.
8. Advantages of Evolutionary model.
9. Disadvantages of Evolutionary model.
10. Specialty of Concurrent model.
11. Difference between Waterfall model and Spiral model.