Chapter 2 Software Process: A Generic View

39
1 Chapter 2 Software Process: A Generic View

description

Chapter 2 Software Process: A Generic View. 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. - PowerPoint PPT Presentation

Transcript of Chapter 2 Software Process: A Generic View

Page 1: Chapter 2 Software Process: A Generic View

1

Chapter 2 Software Process: A Generic View

Page 2: 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

Page 3: Chapter 2 Software Process: A Generic View

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

Page 4: Chapter 2 Software Process: A Generic View

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

Page 5: Chapter 2 Software Process: A Generic View

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

Page 6: Chapter 2 Software Process: A Generic View

6

Software Engineering is aLayered Technology

a “quality” focusa “quality” focus

process modelprocess model

methodsmethods

toolstools

Page 7: Chapter 2 Software Process: A Generic View

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

Page 8: Chapter 2 Software Process: A Generic View

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)

Page 9: Chapter 2 Software Process: A Generic View

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

Page 10: Chapter 2 Software Process: A Generic View

10

A Process Framework

Process frameworkFramework activities

work taskswork productsmilestones & deliverablesQA checkpoints

Umbrella Activities

Page 11: Chapter 2 Software Process: A Generic View

11

Framework Activities

CommunicationPlanningModeling

Analysis of requirementsDesign

ConstructionCode generationTesting

Deployment

Page 12: Chapter 2 Software Process: A Generic View

12

Umbrella Activities

Software project management Formal technical reviews Software quality assurance Software configuration management Document preparation and production Reusability management Measurement Risk management

Page 13: Chapter 2 Software Process: A Generic View

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

Page 14: Chapter 2 Software Process: A Generic View

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

Page 15: Chapter 2 Software Process: A Generic View

15

The CMMI (cont.)

One model, two representations Staged: organizational maturity approach Continuous: process capability approach

Page 16: Chapter 2 Software Process: A Generic View

16

The CMMI (cont.)

Page 17: Chapter 2 Software Process: A Generic View

17

The CMMI (cont.)

5 levels Initial Managed Defined Quantitatively managed Optimized

Page 18: Chapter 2 Software Process: A Generic View

1. Initial

Process: undefined, ad hoc

Result: outcome depends on individuals

Lacking: any reasonable process

Page 19: Chapter 2 Software Process: A Generic View

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

Page 20: Chapter 2 Software Process: A Generic View

3. Defined

2. REPEATABLE Basic project management totrack cost & schedule, repeatable on similar projects

Processdocumented, standardized, tailorable

Resultconsistency

Lacking: predictable outcomes

Page 21: Chapter 2 Software Process: A Generic View

4. Quantitatively managed

3. DEFINED Consistent: Documented, standardized, tailorable

Processdetailed measurement; control

Resultprocess and products with quantified quality predictability

Lacking mechanism for process improvement

Page 22: Chapter 2 Software Process: A Generic View

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.

Page 23: Chapter 2 Software Process: A Generic View

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

Page 24: Chapter 2 Software Process: A Generic View

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

Page 25: Chapter 2 Software Process: A Generic View

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 …

Page 26: Chapter 2 Software Process: A Generic View

26

Process Areas for CMMI

Page 27: Chapter 2 Software Process: A Generic View

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

Page 28: Chapter 2 Software Process: A Generic View

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)

Page 29: Chapter 2 Software Process: A Generic View

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

Page 30: Chapter 2 Software Process: A Generic View

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

Page 31: Chapter 2 Software Process: A Generic View

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/

Page 32: Chapter 2 Software Process: A Generic View

32

Personal Software Process (cont.)

Recommends five framework activities: Planning High-level design High-level design review Development Postmortem

Page 33: Chapter 2 Software Process: A Generic View

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

Page 34: Chapter 2 Software Process: A Generic View

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

Page 35: Chapter 2 Software Process: A Generic View

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.

Page 36: Chapter 2 Software Process: A Generic View

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

Page 37: Chapter 2 Software Process: A Generic View

37

Team Software Process (cont.)

p. 71

Page 38: Chapter 2 Software Process: A Generic View

38

PSP, TSP, and CMMI

Page 39: Chapter 2 Software Process: A Generic View

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!