Lesson-2-Process Model
Lesson-2-Process Model
Lesson-2-Process Model
Process Models
Abdus Sattar
Assistant Professor
Department of Computer Science and Engineering
Daffodil International University
Email: abdus.cse@diu.edu.bd
Topics Covered
Software Process
Process Model
A generic Process Model
Software Framework Activities
Software Process Model
Selection of Process Model
2
Definition of Software Process
Software Process:
o A framework for the activities, actions, and tasks that
are required to build high-quality software.
o SP defines the approach that is taken as software is
engineered.
o Is not equal to software engineering, which also
encompasses technologies that populate the process–
technical methods and automated tools.
Process Model :
o A Process Model describes the sequence of phases for
the entire lifetime of a product. Therefore it is sometimes
also called Product Life Cycle.
o This covers everything from the initial commercial idea
until the final de-installation or disassembling of the
product after its use. 3
What / who / why is Process
Models?
What: Go through a series of predictable steps--- a road map that
helps you create a timely, high-quality results.
Who: Software engineers and their managers, clients also. People
adapt the process to their needs and follow it.
Why: Provides stability, control, and organization to an activity that
can if left uncontrolled, become quite chaotic. However, modern
software engineering approaches must be agile and demand ONLY
those activities, controls and work products that are appropriate.
What Work products: Programs, documents, and data
What are the steps: The process you adopt depends on the software
that you are building. One process might be good for aircraft avionic
system, while an entirely different process would be used for
website creation.
How to ensure right: A number of software process assessment
mechanisms that enable us to determine the maturity of the software
process. However, the quality, timeliness and long-term viability of 4
the software are the best indicators of the efficacy of the process you
use.
A Generic Process Model
As we discussed before, a generic process framework for
software engineering defines five framework activities-
communication, planning, modeling, construction, and
deployment.
In addition, a set of umbrella activities- project tracking and
control, risk management, quality assurance, configuration
management, technical reviews, and others are applied
throughout the process.
5
A Generic Process Model
• Communication : This activity involves heavy communication with
customers and other stakeholders in order to gather requirements
and other related activities.
• Planning : Here a plan to be followed will be created which will
describe the technical tasks to be conducted, risks, required
resources, work schedule etc.
• Modeling : A model will be created to better understand the
requirements and design to achieve these requirements.
• Construction : Here the code will be generated and tested.
• Deployment : Here, a complete or partially complete version of the
software is represented to the customers to evaluate and they give
feedbacks based on the evaluation.
6
A Generic
Process
Model
7
Framework Activities
Process
Flow
8
Process Flow
Process
Flow
9
Process Flow
Linear process flow executes each of the five activities in
sequence.
An iterative process flow repeats one or more of the activities
before proceeding to the next.
An evolutionary process flow executes the activities in a
circular manner. Each circuit leads to a more complete
version of the software.
A parallel process flow executes one or more activities in
parallel with other activities ( modeling for one aspect of the
software in parallel with construction of another aspect of the
software.
10
Identifying a Task Set
For example, a small software project requested by one person
with simple requirements, the communication activity might
encompass little more than a phone all with the stakeholder.
Therefore, the only necessary action is phone conversation, the
work tasks of this action are:
1. Make contact with stakeholder via telephone.
2. Discuss requirements and take notes.
3. Organize notes into a brief written statement of
requirements.
4. E-mail to stakeholder for review and approval.
11
Example of a Task Set for Small
Project
The task sets for Requirements gathering action for a
simple project may include:
1. Make a list of stakeholders for the project.
2. Invite all stakeholders to an informal meeting.
3. Ask each stakeholder to make a list of features
and functions required.
4. Discuss requirements and build a final list.
5. Prioritize requirements.
6. Note areas of uncertainty.
12
Example of a Task Set for
a big project
The task sets for Requirements gathering action for a big project may
include:
1. Make a list of stakeholders for the project.
2. Interview each stakeholders separately to determine overall wants and
needs.
3. Build a preliminary list of functions and features based on stakeholder
input.
4. Schedule a series of facilitated application specification meetings.
5. Conduct meetings.
6. Produce informal user scenarios as part of each meeting.
7. Refine user scenarios based on stakeholder feedback.
8. Build a revised list of stakeholder requirements.
9. Use quality function deployment techniques to prioritize requirements.
10. Package requirements so that they can be delivered incrementally. 13
11. Note constraints and restrictions that will be placed on the system.
12. Discuss methods for validating the system.
Process Patterns
A process pattern
describes a process-related problem that is
encountered during software engineering work,
identifies the environment in which the problem
has been encountered, and
suggests one or more proven solutions to the
problem.
14
Process Patterns
Template for describing a process pattern:
Pattern Name:
The pattern name is given a meaningful name that describe its
function within software process.
Example: Customer-Communication
Intent:
The objective of this pattern is describe briefly.
Example: Intent of the communication customer to connection
establish with customer.
Type:
The pattern type is specified.
Three types:
Task Pattern - action or work task
15
Stage Pattern – frame activity.
Phase Pattern – sequence of frame.
Process Patterns (Cont…)
Initial Context:
Describe which pattern are applies
Prior to the initialization of the pattern.
Resulting Context:
The condition that will result once the pattern has been successfully
implementers are describe.
Related Pattern:
A list of process pattern that are directly related to this one are
provided as a hierarchy on in some other diagrammatic form.
16
Software Process Model
18
Waterfall Model (Cont..)
19
Waterfall Model (Cont..)
The sequential phases in Waterfall model are:
Requirement Gathering and analysis: All possible requirements of the system to be
developed are captured in this phase and documented in a requirement specification
doc.
System Design: The requirement specifications from first phase are studied in this
phase and system design is prepared. System Design helps in specifying hardware
and system requirements and also helps in defining overall system architecture.
Implementation: With inputs from system design, the system is first developed in
small programs called units, which are integrated in the next phase. Each unit is
developed and tested for its functionality which is referred to as Unit Testing.
Integration and Testing: All the units developed in the implementation phase are
integrated into a system after testing of each unit. Post integration the entire system is
tested for any faults and failures.
Deployment of system: Once the functional and non functional testing is done, the
product is deployed in the customer environment or released into the market.
Maintenance: There are some issues which come up in the client environment. To 20
fix those issues patches are released. Also to enhance the product some better
versions are released. Maintenance is done to deliver these changes in the customer
environment.
Waterfall Model (Cont..)
Problems:
Real projects rarely follow the sequential flow that the
model proposes. Although the linear model can
accommodate iteration, it does so indirectly. As a result,
changes can cause confusion as the project team proceeds.
It is often difficult for the customer to state all requirements
explicitly. The waterfall model requires this and has
difficulty accommodating the natural uncertainty that exists
at the beginning of many projects.
The customer must have patience. A working version of the
program(s) will not be available until late in the project time
span. A major blunder, if undetected until the working 21
program is reviewed, can be disastrous.
Waterfall Model (Cont..)
Problems:
Rarely linear, iteration needed.
Hard to state all requirements explicitly. Blocking state.
Code will not be released until very late.
23
The V-Model(Cont..)
Team first moves down the left side of the V to refine the
problem requirements. Once code is generated, the team
moves up the right side of the V, performing a series of tests
that validate each of the models created as the team moved
down the left side.
25
The Incremental Model
26
The Incremental Model(Cont..)
The incremental model combines element of waterfall model
applied in an iterative fashion.
The incremental model applies linear sequence like as calendar
time progresses. Each linear sequence.
For Example:-
Word processing software development using the incremental
paradigm.
Basic file management, editing, document production function in
the first increment.
More sophisticated editing, and document production capabilities in
the second increment.
Spelling and grammar checking in the third increment.
Advance page layout capability in the fourth. 27
The Spiral Model
28
The Spiral Model(Cont..)
30
Concurrent Models
31
Concurrent Model(Cont..)
33
Unified Process Model
34
The Unified Process (UP)
35
The Unified Process (UP)
36
Selection of a Life Cycle Model
37
Selection of a Life Cycle Model
38
Based On Characteristics Of
Requirements
39
Based On Status Of
Development Team
40
Based On User’s Participation
41
References:
1. Software Engineering A practitioner’s
Approach
by Roger S. Pressman, 7th edition, McGraw Hill, 2010.
2. Software Engineering by Ian Sommerville,
9th edition, Addison-Wesley, 2011
3. Software Engineering Practices
Mohamed Sami, https://melsatar.blog/2012/03/15/software-development-
life-cycle-models-and-methodologies/
42