ProcessModels
-
Upload
rajesh-kanna -
Category
Documents
-
view
215 -
download
0
Transcript of ProcessModels
-
8/10/2019 ProcessModels
1/47
B. Computer Sci. (SE) (Hons.)
CSEB233: Fundamentals
of Software Engineering
ProcessModels
-
8/10/2019 ProcessModels
2/47
Lesson Objectives
Describe the types of process flows
Determine task set for software process activities
Explain software process patterns
Discuss several process assessment and improve-ment frameworks
Analyze prescriptive and specialized software
process models Select a process model for software development
project
-
8/10/2019 ProcessModels
3/47
A Generic Process Model
A software process:
o a collection of work activities, actions, tasks, which
are performed when software is to be created.
A process (model or framework )
o is where these activities, actions, and tasks reside,
and that defines their relationship with the process
and with one another.oAlso known as an abstract representation of a
software process.
-
8/10/2019 ProcessModels
4/47
A Generic Process Model
Shows the technical work hierarchy
o activities encompassing (including)
actions, populated by tasks.
Each action is defined by a set of
tasks that defines:
o the actual workto complete
o
the work productsto produceo the quality assurance filters to apply, and
o the milestonesthat are used to indicate the
project and product progress
-
8/10/2019 ProcessModels
5/47
Process Activities
Framework & Umbrella
Framework activities :o generic activities that are applicable to all software projects, regardless
of their size or complexity
o Include communication; planning; modeling, construction; anddeployment
A process framework involves heavy communication with the customer togather requirements;
this activity establishes a plan for the software engineering work that follows.
It involves creation of models that will assist the developer and the customerto understand the requirements and design them;
it thereby involves construction (code generation and error testing).
It finally provides feedback based on the evaluation.
-
8/10/2019 ProcessModels
6/47
Process Activities
Framework & Umbrella
Umbrella activities:o complementary activities applied throughout a software project and help manage
and control progress, quality, change, and risk.
o Include:
Software Project Tracking and Control (Assess progress and take action to maintain commitment)
Risk Management (Assess risks that will affect outcome and quality)
Software Quality Assurance (Define and conduct activities to ensure software quality)
Formal Technical Reviews (Assess Work products to uncover and rectify defects)
Measurement (Define and collect process, project and product metrics)
Software Configuration Management (Manage effect of change)
Reusability Management (Define criteria and establish mechanisms for reuse)
Work Product (Activities required to create the work products)
-
8/10/2019 ProcessModels
7/47
Process Models
ProcessFlows
-
8/10/2019 ProcessModels
8/47
Process Flow
Describes how the framework activities and the actions and tasks that
occur within each activity are organized with respect to sequence
and time.
The flows:
o Linear: execute the framework activities in sequence.
o Iterative: repeats one or more of the activities before proceeding to the next.
o Evolutionary: execute the activities in a circularmanner.
o Parallel: executes one or more activities with other activities in the same time.
-
8/10/2019 ProcessModels
9/47
Process Flow
-
8/10/2019 ProcessModels
10/47
Process Models
TaskSet
-
8/10/2019 ProcessModels
11/47
Identifying a Task Set
A task set defines the actual work to be done to
accomplish the objectives of a software
engineering action
oA list of the tasks to be accomplished
oA list of the work products to be produced
oA list of the quality assurance filters to be applied
-
8/10/2019 ProcessModels
12/47
Identifying a Task Set
Key Questions in Determining Task Set
Q: What actions are appropriate for aFramework activity, given:
o the nature of the problem to be solved;
o the characteristics of the people doing the work;
and
o the stakeholders of the project?
Q: What work tasks (task set) that these
actionsshould encompass?
Different projects require different task sets
o The tasks should be selected based on problems
and project characteristics.
-
8/10/2019 ProcessModels
13/47
Identifying a Task Set
Example
Nature of the problems and project :o A small software project requested by one person (at a
remote location) with simple, straightforward requirements.
Actions (x):o Communication action: develop requirements
Task set:
o Make contact with stakeholder via telephone.o Discuss requirements and take notes.
o Organize notes into a brief written statement of requirements.
o E-mail to stakeholder for review and approval.
-
8/10/2019 ProcessModels
14/47
Example
1. Customer communication (a processactivity).
2. Analysis (an action).
3. Requirements gathering (a process task).
4. Reviewing a work product (a process task).
5. Design model (a work product).
-
8/10/2019 ProcessModels
15/47
Process Models
ProcessPatterns
-
8/10/2019 ProcessModels
16/47
Process Patterns
A process patterno describes a related process to problem that is
encountered or happened during software engineeringwork,
o identifies the environmentin which the problem has beenencountered, and
o suggests one or more proven solutions to the problem
In more general terms, a process pattern provides atemplateo a consistent method for describing problem solutions
within the context of the software process
-
8/10/2019 ProcessModels
17/47
Process Pattern Types
Task patternso defines a problem with a software engineering
action or work task and relevant to successful softwareengineering practice.
Stage patternso defines a problem with a framework activity for
the process
Phase patternso define the sequence of framework activities that occur
with the process, even when the overall flow of activities isiterative in nature
-
8/10/2019 ProcessModels
18/47
Process Models
ProcessAssessment&
Improvement
-
8/10/2019 ProcessModels
19/47
Process Assessment and
Improvement: Approaches
Standard CMMI Assessment Method forProcess Improvement (SCAMPI):o A standard Used to identify strengths,
weaknesses, and ratings relative to SEICMMI appraisal reference model, which isapplicable to internal process improvement
and external capability determination CMM-Based Appraisal for Internal Process
Improvement (CBA IPI):o A standard provides a diagnostic technique
for assessing the relative maturity of asoftware organization; uses the SEI CMM asthe basis for the assessment [Dun01].
o However, CMM has been retired by SEI sincethe introduction of CMMI group of standards
Capability Maturity Model Integration (CMMI)
Software Engineering Institutes (SEI)
-
8/10/2019 ProcessModels
20/47
Process Assessment and
Improvement: Approaches
SPICE (ISO/IEC15504):
o Standardthat defines a set of requirements for software process assessment.
o The intent of the standard is to assist organizations in developing an objective
evaluation of the efficacy of any defined software process [ISO08]
ISO 9001:2000 for Software:
o A generic standard that applies to any organization that wants to improve the
overall quality of the products, systems, or services that it provides.
o Therefore, the standard is directly applicable to software organizations and
companies [Ant06]
Software Process Improvement and Capability Determination (SPICE)
International Organization for Standardization (ISO)International Electrotechnical Commission (IEC)
-
8/10/2019 ProcessModels
21/47
Tut
In Group of 5 persons; Explain the difference
between Activity, Action, and Task. Provide
example for each of them.
-
8/10/2019 ProcessModels
22/47
Process Models
Prescriptive&Specialized
ProcessModels
-
8/10/2019 ProcessModels
23/47
Prescriptive Process Models
Defines a distinct set of activities, actions, tasks,milestones, and work products that are requiredto engineer high-quality software.
The activities may be linear, incremental, or
evolutionary.
-
8/10/2019 ProcessModels
24/47
Prescriptive Process Models
Waterfall Modelo represents elements of a linear process flow
V
Incremental Model
o combines elements of linear and parallel process flows Evolutionary Model
o follows the evolutionary process flow that combines elementsof linear and iterative process flows
Prototyping
Spiral
Concurrent Modelo combines elements of iterative and parallel process flows
-
8/10/2019 ProcessModels
25/47
Prescriptive Process Models
The Waterfall Model
Represents a linear process flow from communica-tion through deploymentoAlso known as the classic SDLC
The original Waterfall model proposed by WinstonRoyce in 1970 made provision for feedback loopso but many organizations apply this model as if it were
strictly linear
Communication
Planning
Modeling
ConstructionDeployment
analysis
designcode
test
project initiation
requirement gathering estimating
scheduling
tracking
delivery
support
feedback
-
8/10/2019 ProcessModels
26/47
Prescriptive Process Models
An Analysis of Waterfall Model
Characteristics Strengths Weaknesses Applicability
It suggests a
systematic, sequential
approach to SE,
starting from
requirements
specification throughplanning, modeling,
construction, testing,
deployment and
support of the
completed system.
Each major activity is
marked by milestonesand deliverables (i.e.
documents).
Simple and easy to
use/explain to
customers.
The staged
development cycleenforces discipline:
every phase has a
defined start and end
point, and progress
can be conclusively
identified (through
the use of
milestones)
Real projects rarely follow the
linear flow that the model
proposes. Although iteration is
indirectly allowed, changes are
costly, involve significant rework
and can cause confusiontoproject team.
The model requires the customer
to state all requirements
explicitly, which is often very
difficult to achieve.
The working softwarewill not be
available until late in the project,
which can be disastrous for late
discovery of major defects.
Leads to blocking states in
which some project team members
must wait for others to complete
dependent tasks.
When requirements are
well understood and
unlikely to change
radically during system
development (e.g., in a
well-defined enhancementto an existing system).
When software
development
technologies and tools
are well known.
The work tasks in the
project are to proceed to
completion in a linear
manner.
-
8/10/2019 ProcessModels
27/47
Prescriptive Process Models
The V-Model
Variation in representing
the Waterfall model
Illustrates how V&V
actions are associatedwith earlier SE action
There is no fundamental
difference between the
Waterfall model and the
V-model
-
8/10/2019 ProcessModels
28/47
Prescriptive Process Models
The Incremental Model
Rather than deliver the software product as a singledelivery, the development and delivery is broken downinto incrementswith each increment delivering part of therequired functionality.
User requirements are prioritised and the highest priorityrequirements are included in early increments.
Once the development of an increment is started, therequirements are frozen but requirements for laterincrementscan continue to evolve
-
8/10/2019 ProcessModels
29/47
Prescriptive Process Models
The Incremental Modelalittlemoreisaddedeachtime
C o m m u n i c a t i o n
P l a n n i n g
M o d e l i n g
C o n s t r u c t i o n
D e p l o y m e n t
d e l i v e r y
f e e d b a c k
analys is
design code
t e s t
increment # 1
increment # 2
delivery of
1st increment
delivery of
2nd increment
delivery of
nt h increment
increment # n
project calendar time
C o m m u n i c a t i o n
P l a n n i n g
M o d e l i n g
C o n s t r u c t i o n
D e p l o y m e n t
d e l i v e r y
f e e d b a c k
analys is
design code
t e s t
C o m m u n i c a t i o n
P l a n n i n g
M o d e l i n g
C o n s t r u c t i o n
D e p l o y m e n t
d e l i v e r y
f e e d b a c k
analys is
designcode
t e s t
-
8/10/2019 ProcessModels
30/47
After the first increment, a core product is
delivered, which can already be used by the
customer.
Based on customer feedback, a plan is
developed for the next increments, andmodifications are made accordingly.
This process continues, with increments being
delivered until the complete product is
delivered.
Word-processing software developed using the incremental paradigm might deliver
Basic file management,
Editing and document production capabilities in the second increment; Spelling and grammar checking in the third increment; and
Advanced page layout capability in the fourth increment.
It should be noted that the process flow for any increment can incorporate the
prototyping paradigm.
For example?
-
8/10/2019 ProcessModels
31/47
Prescriptive Process Models
The Evolutionary Model: Prototyping
Software prototyping: incomplete versions of the softwareprogram being developed.
Using this process model, a prototype - an early approximation of a finalsoftware product - is built, tested, and then reworked as necessaryo until an acceptable prototype is finally achieved from which the complete
software product is developed
Although it can be implemented as a stand-alone process model, it ismore commonly used as part of other process models
The main purpose of the model is to help better understand what it is tobuilt when requirements are fuzzy and get valuable feedback from theusers early in the project
-
8/10/2019 ProcessModels
32/47
Prescriptive Process Models
The Evolutionary Model: Prototyping
Communication
Quick plan
Construction
of
prototype
Model ing
Quick design
Delivery
& Feedback
Deployment
communication
Quickplan
ModelingQuick design
Constructionof prototype
Deploymentdelivery &feedback
If the prototype was working properly;
???
-
8/10/2019 ProcessModels
33/47
Prescriptive Process Models
The Evolutionary Model: Spiral
A process model that combines the iterative nature of
prototypingwith the systematic aspects of waterfall model.
The spiral model can be thought of as a repeating waterfall model
that emphasizes risk assessment and that is executed in an
incremental fashion.
Each loop/pass through the spiral model consists of risk
assessment and other framework activities from communication
through deployment
-
8/10/2019 ProcessModels
34/47
Prescriptive Process Models
The Evolutionary Model: Spiral
communication
planning
modeling
constructiondeployment
delivery
feedback
start
analysis
design
code
test
estimation
scheduling
risk analysis
Used when requirements are not well understood and risks are high
-
8/10/2019 ProcessModels
35/47
Prescriptive Process Models
The Evolutionary Model: Spiral
Used when requirements are not well understood and risks are high
-
8/10/2019 ProcessModels
36/47
Prescriptive Process Models
The Concurrent Model
A process model that combines the iterative and
parallel elements of any of the prescriptive
process models.
In this model, all SE activities (framework or
umbrella) exist concurrently but assess in
different states
-
8/10/2019 ProcessModels
37/47
Prescriptive Process Models
The Concurrent Model
Under review
Baselined
Done
Under
revision
A wait ing
changes
Under
development
none
Modeling act ivity
represents the state
of a software engineering
activity or task
For exampleearly in a project the customer
communication activity has completed its
first iteration and exists in the awaiting
changes state. The analysis activity
(which existed in the none state while
initial customer communication wascompleted) now makes a transition into
the under development state. If, however,
the customer indicates that changes in
requirements must be made, the analysis
activity moves from the under
development state into the awaitingchanges state.
The concurrent process model defines a
series of events that will trigger
transitions from state to state for each of
the software engineering activities.
-
8/10/2019 ProcessModels
38/47
Specialized Process Models
Specialized Process Models is a combination of both component
based development model (CBD) and formal method model.
Special process models take on many of the characteristics of
one or more of the conventional models.
Specialized models tend to be applied when a narrowly defined
software engineering approach is chosen.
-
8/10/2019 ProcessModels
39/47
Specialized Process Models
Component based software development (CBSD)o the process to apply when reuse is a development objective
Formal methodso emphasizes the mathematical specification of requirements,
which can demonstrate software correctness but are notwidely used.
Aspect-oriented software development (AOSD)o provides a process and methodological approach for defining,
specifying, designing, and constructing aspects
Unified Processo a use-case driven, architecture-centric, iterative and
incrementalsoftware process closely aligned with the UnifiedModeling Language (UML)
-
8/10/2019 ProcessModels
40/47
Specialized Process Models
Agile Processo An iterative approach to requirements specification, construction
and deployment, which support rapid changes to requirements
Personal Process Modelo Emphasizes the need to record and analyze errors made by each
individual, so that he/she can develop a strategy to eliminate them
Team Process Modelo Build self-directed teams that plan and track their work, establish
goals, and own their processes and plans. These can be puresoftware teams or integrated product teams (IPT) of three to about
20 engineerso Show managers how to coach and motivate their teams and how to
help them sustain peak performance
-
8/10/2019 ProcessModels
41/47
Process Models
SelectingaProcessModel
-
8/10/2019 ProcessModels
42/47
Selecting a Process Model
Factors to Consider
The characteristics of the problems to be solvedo Such as complexity of the problem, etc.
o e.g. simple with clear, stable requirements, or complex withchanging, unstable requirements, etc.
The characteristics of the projecto Such as the customers who have requested the product and the
people who will do the work, etc.
o e.g. Uncertain requirements, breakthrough technology
The characteristics of the producto
Such as quality attributes or metric of the product, product domain,etc.
The project environment in which the software team workso Such as political, cultural, language, etc.
-
8/10/2019 ProcessModels
43/47
-
8/10/2019 ProcessModels
44/47
Summary
There are four types of process flows linear, iterative,evolutionary, and parallel.
Software process patterns may suggest one or moreproven solutions to the problem from other projects, which
can be reused in another project There are several process assessment and improvements
frameworks that can be exercised by practitioners
The analyses of prescriptive and specialized softwareprocess models would help select the most appropriateprocess model for a software development project, whichcan be proceeded with the identification of task set for theproject
-
8/10/2019 ProcessModels
45/47
Selecting a Process Model
An Exercise
The Project:o Assume that you are in charge of a project to create a portal
for Selangor.
o This portal would include a homepage with links to a widerange of discounted travel packages to major destinations inSelangor, links to certain featured places like golf courses,shopping complexes and places to eat, links to the detailedmap of Selangor, and links to news and events listing
o It also includes a bulletin board and chat room feature wheretourists (international and local tourists) can exchange
information.o The portal should also provide Automated Teller Machine
(ATM) locator, time zone converter, and currency converter.
-
8/10/2019 ProcessModels
46/47
Selecting a Process Model
An Exercise
Select a software process model that you would
recommend to be implemented in the above
mentioned project
Why is the software process model selected?
-
8/10/2019 ProcessModels
47/47
THE ENDDr.AbdallahAbualkishik
CollegeofInformationTechnology