Lecture 3-4 (Software Process)
Lecture 3-4 (Software Process)
AND
PROCESS MODELS
CONTENTS
• SOFTWARE PROCESSES
• PROCESS MODEL
• A GENERIC PROCESS MODEL
• PROCESS FLOW
• SOFTWARE FRAMEWORK ACTIVITIES
• PROCESS IMPROVEMENT
• SOFTWARE PROCESS MODEL
• SELECTION OF SOFTWARE PROCESS MODEL
SOFTWARE PROCESS
• A structured set of activities required to develop a software system.
• A framework for the activities, actions, and tasks that are required to build
high-quality software.
• It is not equal to software engineering, which also encompasses technologies
that populate the process– technical methods and automated tools
• Many different software processes but all involve:
• Specification – defining what the system should do;
• Design and implementation – defining the organization of the system
and implementing the system;
• Validation – checking that it does what the customer wants;
• Evolution – changing the system in response to changing customer needs.
SOFTWARE PROCESS DESCRIPTIONS
• When we describe and discuss processes, we usually talk about the
activities in these processes such as specifying a data model, designing a
user interface, etc. and the ordering of these activities.
• Process descriptions may also include:
• Products, which are the outcomes of a process activity;
• Roles, which reflect the responsibilities of the people involved in the
process;
• Pre- and post-conditions, which are statements that are true before
and after a process activity has been enacted or a product produced.
SOFTWARE PROCESS MODEL
• This covers everything from the initial commercial idea until the
final de-installation or disassembling of the product after its use.
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
A GENERIC PROCESS MODEL
For example, a small software project requested by one person with simple
requirements, the communication activity might encompass little more than a
phone call 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
CONTD…
• 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.
CONTD…
• 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.
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.
• Stated in more general terms, a process pattern provides you
with a template [amb98]—a consistent method for describing
problem solutions within the context of the software process.
CONTD…
• 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;
• stage pattern – frame activity; and
• phase pattern – sequence of frame.
CONTD…
• INITIAL CONTEXT:
• describe which pattern are applies prior to the initialization of the pattern.
1. what organizational or team-related activities have already occurred?
2. what is the entry state for the process?
3. what software engineering information or project information already exists?
for example, the planning pattern (a stage pattern) requires that
4. customers and software engineers have established a collaborative
communication;
5. successful completion of a number of task patterns [specified] for the
communication pattern has occurred; and
6. the project scope, basic business requirements, and project constraints are
known
CONTD…
• problem.
• the specific problem to be solved by the pattern.
• solution.
• describes how to implement the pattern successfully. this section describes how
the initial state of the process (that exists before the pattern is implemented) is
modified as a consequence of the initiation of the pattern.
• it also describes how software engineering information or project information that
is available before the initiation of the pattern is transformed as a consequence of
the successful execution of the pattern.
CONTD…
• resulting context:
• the condition that will result once the pattern has been successfully
implementers are describe.
• upon completion of the pattern:
1. what organizational or team-related activities must have occurred?
2. what is the exit state for the process?
3. what software engineering information or project information has
been developed?
CONTD…
• 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.
• for example, the stage pattern communication encompasses the task patterns:
projectteam, collaborativeguidelines, scopeisolation, requirementsgathering,
constraintdescription, and scenariocreation.
• Standard cmmi assessment method for process improvement (SCAMPI) — provides a five step process
assessment model that incorporates five phases: initiating, diagnosing, establishing, acting and learning.
• CMM-based appraisal for internal process improvement (CBA IPI)—provides a
diagnostic technique for assessing the relative maturity of a software organization; uses
the sei cmm as the basis for the assessment [dun01]
• spice—the spice (iso/iec15504) standard defines a set of requirements for software
process assessment. 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—a generic standard that applies to any organization that
wants to improve the overall quality of the products, systems, or services that it
provides. therefore, the standard is directly applicable to software organizations and
companies. [ant06]
PERSONAL SOFTWARE
PROCESS (PSP)
• planning. this activity isolates requirements and develops both size and resource
estimates. in addition, a defect estimate (the number of defects projected for the work)
is made. all metrics are recorded on worksheets or templates. finally, development tasks
are identified and a project schedule is created.
• high-level design. external specifications for each component to be constructed are
developed and a component design is created. prototypes are built when uncertainty
exists. all issues are recorded and tracked.
• high-level design review. formal verification methods (chapter 21) are applied to
uncover errors in the design. metrics are maintained for all important tasks and work
results.
• development. the component level design is refined and reviewed. code is generated,
reviewed, compiled, and tested. metrics are maintained for all important tasks and work
results.
• postmortem. using the measures and metrics collected (this is a substantial amount of
data that should be analyzed statistically), the effectiveness of the process 33is
determined. measures and metrics should provide guidance for modifying the process to
improve its effectiveness.
TEAM SOFTWARE PROCESS (TSP)
• Build self-directed teams that plan and track their work, establish goals, and
own their processes and plans. these can be pure software teams or
integrated product teams (ipt) of three to about 20 engineers.
• Show managers how to coach and motivate their teams and how to help
them sustain peak performance.
• Accelerate software process improvement by making CMM level 5 behavior
normal and expected.
• the capability maturity model (cmm), a measure of the effectiveness of a software process.
• Provide improvement guidance to high-maturity organizations.
34
SOFTWARE DEVELOPMENT LIFE CYCLE
(SDLC)
PRESCRIPTIVE PROCESS MODELS
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
42
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
THE INCREMENTAL MODEL
increment #n
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
nth 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 at ion
Planning
Modeling
analys is C o n s t ru c t i o n
des ign c ode
t es t
De p l o y m e n t
d e l i v e ry delivery of
fe e dba c k
1st increment
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
43
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
project calendar time
EVOLUTIONARY MODELS:
PROTOTYPING
Quick plan
Quick
Communication plan
communication
Modeling
Modeling
Quick design
Quick design
Deployment
Deployment
Delivery Construction
delivery &
& Feedback of prototype Construction
feedback Construction
of
of prototype
prototype
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
44
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
EVOLUTIONARY MODELS: THE
SPIRAL
planning
estimation
scheduling
risk analysis
communication
modeling
analysis
design
start
deployment
construction
delivery
code
feedbackA Practitioner’s Approach, 7/e
These slides are designed to accompany Software Engineering: test 45
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
EVOLUTIONARY MODELS: CONCURRENT
none
Modeling activity
Awaiting
changes
Under review
Under
revision
Baselined
Done
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
46
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
STILL OTHER PROCESS
•
MODELS
COMPONENT BASED DEVELOPMENT—THE PROCESS TO APPLY
WHEN REUSE IS A DEVELOPMENT OBJECTIVE
• FORMAL METHODS—EMPHASIZES THE MATHEMATICAL
SPECIFICATION OF REQUIREMENTS
• AOSD—PROVIDES A PROCESS AND METHODOLOGICAL APPROACH
FOR DEFINING, SPECIFYING, DESIGNING, AND CONSTRUCTING
ASPECTS
• UNIFIED PROCESS—A “USE-CASE DRIVEN, ARCHITECTURE-
CENTRIC, ITERATIVE AND INCREMENTAL” SOFTWARE PROCESS
CLOSELY
These slides are designed ALIGNED
to accompany WITH
Software Engineering: THE UNIFIED
A Practitioner’s Approach, 7/e MODELING LANGUAGE (UML)
47
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
THE UNIFIED PROCESS
• WHY A PROCESS?
• SOFTWARE PROJECTS ARE LARGE, COMPLEX,
SOPHISTICATED
• TIME TO MARKET IS KEY
• MANY FACETS INVOLVED IN GETTING TO THE END
• COMMON PROCESS SHOULD
• INTEGRATE THE MANY FACETS
• PROVIDE GUIDANCE TO THE ORDER OF ACTIVITIES
• SPECIFY WHAT ARTIFACTS NEED TO BE
DEVELOPED
• OFFER CRITERIA FOR MONITORING AND 48
MEASURING A PROJECT
THE UNIFIED PROCESS
• COMPONENT BASED - MEANING THE SOFTWARE SYSTEM IS
BUILT AS A SET OF SOFTWARE COMPONENTS
INTERCONNECTED VIA INTERFACES
• USES THE UNIFIED MODELING LANGUAGE (UML)
This is what makes
• USE CASE DRIVEN the Unified process
Unique
• ARCHITECTURE-CENTRIC
• ITERATIVE AND INCREMENTAL
Software
User’s Software
Development
requirements System
Process
50
THE UNIFIED PROCESS
• ARCHITECTURE CENTRIC
• SIMILAR TO ARCHITECTURE FOR
BUILDING A HOUSE
OF USE CASES
THE UNIFIED PROCESS
54
THE UNIFIED PROCESS (UP)
Elaboration
elaboration
Inception
inception
construction
Release
transition
software increment
1.INCEPTION –
• COMMUNICATION AND PLANNING ARE MAIN.
• IDENTIFIES SCOPE OF THE PROJECT USING USE-CASE MODEL
ALLOWING MANAGERS TO ESTIMATE COSTS AND TIME REQUIRED.
• CUSTOMERS REQUIREMENTS ARE IDENTIFIED AND THEN IT
BECOMES EASY TO MAKE A PLAN OF THE PROJECT.
• PROJECT PLAN, PROJECT GOAL, RISKS, USE-CASE MODEL,
PROJECT DESCRIPTION, ARE MADE.
• PROJECT IS CHECKED AGAINST THE MILESTONE CRITERIA AND IF
IT COULDN’T PASS THESE CRITERIA THEN PROJECT CAN BE
EITHER CANCELLED OR REDESIGNED.
56
• ELABORATION –
1.PLANNING AND MODELING ARE MAIN.
2.DETAILED EVALUATION, DEVELOPMENT PLAN IS
CARRIED OUT AND DIMINISH THE RISKS.
3.REVISE OR REDEFINE USE-CASE MODEL (APPROX.
80%), BUSINESS CASE, RISKS.
4.AGAIN, CHECKED AGAINST MILESTONE CRITERIA AND IF
IT COULDN’T PASS THESE CRITERIA THEN AGAIN
PROJECT CAN BE CANCELLED OR REDESIGNED.
5.EXECUTABLE ARCHITECTURE BASELINE.
57
• CONSTRUCTION –
1.PROJECT IS DEVELOPED AND COMPLETED.
2.SYSTEM OR SOURCE CODE IS CREATED AND THEN TESTING
IS DONE.
3.CODING TAKES PLACE.
58
• TRANSITION –
1.FINAL PROJECT IS RELEASED TO PUBLIC.
2.TRANSIT THE PROJECT FROM DEVELOPMENT INTO
PRODUCTION.
3.UPDATE PROJECT DOCUMENTATION.
4.BETA TESTING IS CONDUCTED.
5.DEFECTS ARE REMOVED FROM PROJECT BASED ON
FEEDBACK FROM PUBLIC.
59
THE LIFE OF THE UNIFIED PROCESS
Time
Release 1
A cycle with its phases and its iterations 60
UP PHASES
UP Phases
Inception Elaboration Construction Transition Production
Workflows
Requirements
Analysis
Design
Implementation
Test
Support
Iterations #1 #2 #n-1 #n
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
61
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
UP WORK PRODUCTS
Inception phase
Elaboration phase
Vision document
Initial use-case model
Initial project glossary
Construction phase
Use-case model
Initial business case Supplementary requirements
Initial risk assessment. including non-functional Transition phase
Design model
Project plan, Analysis model Software components
phases and it erations. Soft ware archit ecture Int egrated software Delivered soft ware increment
Business model, Description. increment Beta test reports
if necessary. Executable architectural Test plan and procedure General user feedback
One or more prototypes prototype.
I nc ept i o
Test cases
n Preliminary design model Support documentation
Revised risk list user manuals
Project plan including installation manuals
iteration plan description of current
adapted workflows increment
milestones
technical work products
Preliminary user manual
These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e
62
(McGraw-Hill, 2009). Slides copyright 2009 by Roger Pressman.
SELECTION OF A PROCESS MODEL
64