Transparency Masters for Software Engineering: A Practitioner`s

Chapter 2
Software Process: A
Generic View
1
Quick Look

What is software process


A series of predictable steps that helps you create
a timely, high-quality result.
Who does the process

Software engineers and their managers adapt the
process to their needs and then follow it
2
Quick Look (cont.)

Why is it important


It provides stability, control, and organization to an
activity that can, if left uncontrolled, become quite
chaotic
What are the steps

At a detailed level, the process that you adopt
depends on the software you’re building
3
Quick Look (cont.)

What is the work product


Programs, documents, and data
How do I ensure that I’ve done it right


Employing software process assessment
mechanisms
Indicators

Quality, timeliness, long-term viability
4
Software engineering

Fritz Bauer, 1969


The establishment and use of sound engineering principles
in order to obtain economically software that is reliable and
works efficiently on real machines
IEEE, 1993

The application of a systematic, disciplined, quantifiable
approach to the development, operation, and maintenance
of software; that is, the application of engineering to
software
5
Software Engineering is a
Layered Technology
tools
methods
process model
a “quality” focus
6
Layered Technology (cont.)


Any engineering approach must rest on an
organizational commitment to quality
Software process is the glue that holds the
technology layers together and enables
rational and timely development of computer
software
7
Layered Technology (cont.)

Software engineering methods provide the
technical how-to’s for building software


Communication, requirement analysis, design
modeling, program construction, testing, and support
Software engineering tools provide automated or
semi-automated support for the process and the
methods

CASE (Computer-Aided Software Engineering)
8
A Generic View of Software
Engineering

The work associated with software
engineering can be categorized into three
generic phases



The definition phase focuses on what
The development phase focuses on how
The support phase focuses on change associated
with correction, adaptation, enhancement, and
prevention
9
A Process Framework
Process framework
Framework activities
work tasks
work products
milestones & deliverables
QA checkpoints
Umbrella Activities
10
Framework Activities
Communication
 Planning
 Modeling

Analysis of requirements
 Design


Construction
Code generation
 Testing


Deployment
11
Umbrella Activities








Software project management
Formal technical reviews
Software quality assurance
Software configuration management
Document preparation and production
Reusability management
Measurement
Risk management
12
The Process Model: Adaptability


the framework activities will always be
applied on every project ... BUT
the tasks (and degree of rigor) for each
activity will vary based on:



the type of project (an “entry point” to the
model)
characteristics of the project
common sense judgment; concurrence of the
project team
13
The CMMI



Software Engineering Institute (SEI) at Carnegie
Mellon University
Capability Maturity Model Integration (CMMI) for
determining an organization’s current stat of process
maturity
The CMMI defines each process area in terms of
“specific goals” and the “specific practices” required to
achieve these goals.
Specific goals establish the characteristics that must exist if the
activities implied by a process area are to be effective.
 Specific practices refine a goal into a set of process-related
activities.
http://www.sei.cmu.edu/cmmi

14
The CMMI (cont.)

One model, two representations


Staged: organizational maturity approach
Continuous: process capability approach
15
The CMMI (cont.)
16
The CMMI (cont.)

5 levels





Initial
Managed
Defined
Quantitatively managed
Optimized
17
1. Initial
Process:
undefined,
ad hoc
Result:
outcome depends on individuals
Lacking: any reasonable process
1. INITIAL Process undefined, ad hoc, depends on individuals
2. Managed
Process
tracks documents, cost, schedule,
functionality (after fact)
Result
repeatable only on similar projects
Lacking: complete process
2. REPEATABLE
Basic project management to
track cost & schedule, repeatable on similar projects
3. Defined
Process
documented,
standardized,
tailorable
Result
consistency
Lacking: predictable outcomes
3. DEFINED Consistent: Documented, standardized, tailorable
4. Quantitatively managed
Process
detailed measurement; control
Result
process and products with
quantified quality predictability
Lacking mechanism for process improvement
4. MANAGED
Predictable: process & products measured
5 Optimized
Process
Continual process improvement
through quantitative feedback;
Extensible scope
Innovative ideas and technologies
Graphics reproduced with permission from Corel.
The CMMI (cont.)


The SEI has associated key process areas
(KPAs) with each of the maturity levels
The KPAs describe those software
engineering functions that must be present to
satisfy good practice at a particular level
23
The CMMI (cont.)

Each KPA is described by identifying the following
characteristics






Goals
Commitments
Abilities
Activities
Methods for monitoring implementation
Methods for verifying implementation
24
The CMMI (cont.)


18 KPAs are defined across the maturity model and
mapped into different levels of process maturity
Level 2


Software configuration management, software quality
assurance, software subcontract management, software
project tracking and oversight, software project
management, requirement management
Level 3 …
25
Process Areas for CMMI
26
Process Patterns


Process patterns define a set of activities, actions,
work tasks, work products and/or related behaviors
A template is used to define a pattern

An example process pattern template proposed by Ambler in
1998
Pattern name
Intent
Type
Initial context
Problem
Solution
Resulting context
Related patterns
Known uses/examples
27
Process Patterns (cont.)

Typical examples:
Customer communication (a process activity)
 Analysis (an action)
 Requirements gathering (a process task)
 Reviewing a work product (a process task)
 Design model (a work product)

28
Process Assessment


The process should be assessed to ensure
that it meets a set of basic process criteria that
have been shown to be essential for a
successful software engineering.
Many different assessment options are
available:




SCAMPI
CBA IPI
SPICE (ISO/IEC15504)
ISO 9001:2000

Plan-do-check-act
29
Assessment and Improvement
Software Process
is examined by
identifies
modifications to
identifies capabilities
and risk of
Software Process
Assessment
Software Process
Improvement
leads to
leads to
Capability
Determination
motivates
30
Personal Software Process (PSP)

What is it


Developed by a team leaded by W.S. Humphrey in
1995 at CMU/SEI
PSP is a software engineering methodology by
which an individual software developer can
continuously improve his or her abilities, in particular:
 learn to make accurate predictions of time required
and quality obtained;
 improve the quality of the software produced;
 learn how to evaluate technology and methods.
Source: http://www.ipd.uka.de/PSP/
31
Personal Software Process (cont.)

Recommends five framework activities:





Planning
High-level design
High-level design review
Development
Postmortem
32
Personal Software Process (cont.)


PSP emphasizes the need to record and
analyze the types of errors you make, so you
can develop strategies to eliminate them
PSP represents a disciplined, metrics-based
approach to software engineering
33
PSP Defect Type Standard
Class Description
10
Documentation problem: documents, comments, or messages are
misunderstandable or wrong
FIX: correct the document, the comment, or the message
20
Syntax/Static problem: a defect that can USUALLY be detected by the
compiler (syntax errors, missing declarations etc. Defects that the
compiler has caught only by luck count in other classes!)
FIX: correct syntactic or compiler-findable static semantic defect.
30
Build/Package problem: errors in version control or in change
management
FIX: create or use correct version or correct the change
40
Assignment problem: one-statement defects in data management or
procedure calls (e.g. wrong operand or operator in expression, wrong
object assigned to, assignment missing or duplicated, call to wrong
procedure, call missing)
FIX: correct one statement
34
Team Software Process (TSP)

What is it


TSP provides a defined process framework for
managing, tracking and reporting the team's
progress.
Using TSP, an organization can build selfdirected teams that plan and track their work,
establish goals, and own their processes and
plans.
35
Team Software Process (cont.)

TSP defines the following framework activities:






Launch
High-level design
Implementation
Integration and test
Postmortem
TSP makes a wide variety of scripts, forms,
and standards to guide team members

For example, scripts for project launch
36
Team Software Process (cont.)
p. 71
37
PSP, TSP, and CMMI
38
The Primary Goal of Any Software
Process: High Quality
Remember:
High quality = project timeliness
Why?
Less rework!
39