1
Chapter 2 Software Process: A Generic View
2
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
3
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
4
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
5
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
6
Software Engineering is aLayered Technology
a “quality” focusa “quality” focus
process modelprocess model
methodsmethods
toolstools
7
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
8
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)
9
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
10
A Process Framework
Process frameworkFramework activities
work taskswork productsmilestones & deliverablesQA checkpoints
Umbrella Activities
11
Framework Activities
CommunicationPlanningModeling
Analysis of requirementsDesign
ConstructionCode generationTesting
Deployment
12
Umbrella Activities
Software project management Formal technical reviews Software quality assurance Software configuration management Document preparation and production Reusability management Measurement Risk management
13
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
14
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
15
The CMMI (cont.)
One model, two representations Staged: organizational maturity approach Continuous: process capability approach
16
The CMMI (cont.)
17
The CMMI (cont.)
5 levels Initial Managed Defined Quantitatively managed Optimized
1. Initial
Process: undefined, ad hoc
Result: outcome depends on individuals
Lacking: any reasonable process
2. Managed
1. INITIAL Process undefined, ad hoc, depends on individuals
Processtracks documents, cost, schedule, functionality (after fact)
Resultrepeatable only on similar projects
Lacking: complete process
3. Defined
2. REPEATABLE Basic project management totrack cost & schedule, repeatable on similar projects
Processdocumented, standardized, tailorable
Resultconsistency
Lacking: predictable outcomes
4. Quantitatively managed
3. DEFINED Consistent: Documented, standardized, tailorable
Processdetailed measurement; control
Resultprocess and products with quantified quality predictability
Lacking mechanism for process improvement
5 Optimized
4. MANAGED Predictable: process & products measured
ProcessContinual process improvement
through quantitative feedback; Extensible scopeInnovative ideas and technologies
Graphics reproduced with permission from Corel.
23
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
24
The CMMI (cont.)
Each KPA is described by identifying the following characteristics Goals Commitments Abilities Activities Methods for monitoring implementation Methods for verifying implementation
25
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 …
26
Process Areas for CMMI
27
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
1998Pattern nameIntentTypeInitial contextProblemSolutionResulting contextRelated patternsKnown uses/examples
28
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)
29
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
30
Assessment and Improvement
Software Process
Software Process Assessment
is examined by identifies capabilitiesand risk of
identifiesmodifications to
Software Process Improvement
Capability Determination
leads to leads to
motivates
31
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/
32
Personal Software Process (cont.)
Recommends five framework activities: Planning High-level design High-level design review Development Postmortem
33
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
34
PSP Defect Type StandardClass Description
10 Documentation problem: documents, comments, or messages are misunderstandable or wrongFIX: 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 managementFIX: 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
35
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 self-directed teams that plan and track their work, establish goals, and own their processes and plans.
36
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
37
Team Software Process (cont.)
p. 71
38
PSP, TSP, and CMMI
39
The Primary Goal of Any Software Process: High Quality
Remember:Remember:
High quality = project timelinessHigh quality = project timeliness
Why?Why?
Less rework!Less rework!
Top Related