se-280 dr. mark l. hornick 1 in software engineering, we sometimes distinguish between...

19
SE-280 Dr. Mark L. Hornick 1 In software engineering, we sometimes distinguish between "practice" and "process". By "practice", we mean "what" software engineers do (e.g., analyze requirements, create architectural and detailed designs, implement, verify). By "process", we mean "how" software engineers do their work (e.g., plan, organize, measure, make and meet commitments, ensure quality, control, improve, adapt).

Upload: daisy-knight

Post on 29-Dec-2015

215 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: SE-280 Dr. Mark L. Hornick 1 In software engineering, we sometimes distinguish between "practice" and "process". By "practice", we mean "what" software

1SE-280Dr. Mark L. Hornick

In software engineering, we sometimes distinguish between "practice" and "process".

By "practice", we mean "what" software engineers do (e.g., analyze

requirements, create architectural and detailed designs, implement, verify).

By "process", we mean "how" software engineers do their work (e.g., plan, organize,

measure, make and meet commitments, ensure quality, control, improve, adapt).

Page 2: SE-280 Dr. Mark L. Hornick 1 In software engineering, we sometimes distinguish between "practice" and "process". By "practice", we mean "what" software

What do software engineering managers say they most want from software developers and teams?

Page 3: SE-280 Dr. Mark L. Hornick 1 In software engineering, we sometimes distinguish between "practice" and "process". By "practice", we mean "what" software

What do software engineering managers say they most want from software developers and teams?

Predictability

Quality

Page 4: SE-280 Dr. Mark L. Hornick 1 In software engineering, we sometimes distinguish between "practice" and "process". By "practice", we mean "what" software

4SE-280Dr. Mark L. Hornick

If I were to give you a requirements specification for a medium-sized program, could you tell me in advance . . .

. . . how long it would take you to write the program?

. . . how many defects you would inject during its development?

. . . how many defects will remain when it is completed?

Page 5: SE-280 Dr. Mark L. Hornick 1 In software engineering, we sometimes distinguish between "practice" and "process". By "practice", we mean "what" software

Who are these people?

Page 6: SE-280 Dr. Mark L. Hornick 1 In software engineering, we sometimes distinguish between "practice" and "process". By "practice", we mean "what" software

6SE-280Dr. Mark L. Hornick

Why do we need a Process?

Many developers do not know how to estimate

Management sets aggressive goals

Marketing makes promises to customers

Page 7: SE-280 Dr. Mark L. Hornick 1 In software engineering, we sometimes distinguish between "practice" and "process". By "practice", we mean "what" software

7SE-280Dr. Mark L. Hornick

Why do we need a Process?

Many organizations today cannot meet commitments with repeatability Project A completes without any problems Project B is a disaster

Late Incomplete Not tested

Too many times, the result is Cancelled projects Management over-reaction

Page 8: SE-280 Dr. Mark L. Hornick 1 In software engineering, we sometimes distinguish between "practice" and "process". By "practice", we mean "what" software

What is your current software development process? What is good and bad about it?[Group exercise]

Page 9: SE-280 Dr. Mark L. Hornick 1 In software engineering, we sometimes distinguish between "practice" and "process". By "practice", we mean "what" software

9SE-280Dr. Mark L. Hornick

In this course, you will gain experience in using a defined software process and measuring your own performance.

The Personal Software Process (PSP) is designed to allow individual software engineers to improve their own work.

The Team Software Process (TSP) builds on the PSP to help self-directed software engineering teams to deliver high-quality

products on predictable schedules.

Page 10: SE-280 Dr. Mark L. Hornick 1 In software engineering, we sometimes distinguish between "practice" and "process". By "practice", we mean "what" software

10SE-280Dr. Mark L. Hornick

The PSP and TSP were developed by Watts Humphrey at the Software Engineering Institute (SEI).

In 2005, Humphrey was awarded the National Medal of

Technology for his work in software process

improvement.

Page 11: SE-280 Dr. Mark L. Hornick 1 In software engineering, we sometimes distinguish between "practice" and "process". By "practice", we mean "what" software

11SE-280Dr. Mark L. Hornick

Industry experience shows that the TSP can help teams achieve high levels of quality.

7.5

6.24

4.73

2.28

1.05

0.060

1

2

3

4

5

6

7

8

Level 1 Level 2 Level 3 Level 4 Level 5 TSP

Defects/KLOC

Total Delivered Defects/KLOC

N. Davis and J. Mullaney, The Team Software Process (TSP) in Practice: A Summary of Recent Results, Technical Report CMU/SEI-2003-TR-014, www.sei.cmu.edu/publications/.

Page 12: SE-280 Dr. Mark L. Hornick 1 In software engineering, we sometimes distinguish between "practice" and "process". By "practice", we mean "what" software

12SE-280Dr. Mark L. Hornick

[Source: AIS]

Schedule Deviation Individual Value Control Chart - Commercial Systems

-150-100

-500

50100150

200250

300350

01/8801/89

01/9001/91

01/9201/93

01/9401/95

01/9601/97

01/98

Date of Project Start

% D

ev

iati

on

Individual Data Points Mean Upper Natural Process Limit

Lower Natural Process Limit One Standard Deviation

CMM introduced

TSP introduced

By increasing predictability, the TSP helps teams to function more effectively.

Page 13: SE-280 Dr. Mark L. Hornick 1 In software engineering, we sometimes distinguish between "practice" and "process". By "practice", we mean "what" software

13SE-280Dr. Mark L. Hornick

Data from PSP training courses show similar results for practicing software engineers and MSOE SE students.

Total Defect Density (SEI)

0.0

20.0

40.0

60.0

80.0

100.0

120.0

140.0

160.0

180.0

200.0

1A 2A 3A 4A 5A 6A 7A 8A 9A 10A

Program

Def

ects

/KL

OC Max

75pct

Avg

25pct

Min

SEI: 810 engineers MSOE: 83 sophomore students

Total Defect Density (MSOE)

0.0

20.0

40.0

60.0

80.0

100.0

120.0

140.0

160.0

180.0

200.0

1A 2A 3A 4A 5A 6A 7A 8A 9A 10A

Program

Def

ects

/KL

OC Max

75pct

Avg

25pct

Min

Page 14: SE-280 Dr. Mark L. Hornick 1 In software engineering, we sometimes distinguish between "practice" and "process". By "practice", we mean "what" software

14SE-280Dr. Mark L. Hornick

Yield is a measure of the percentage of defects removed by a specified point in the process.

Yield Before Compile (SEI)

0.0

10.0

20.0

30.0

40.0

50.0

60.0

70.0

80.0

90.0

100.0

1A 2A 3A 4A 5A 6A 7A 8A 9A 10A

Program

Yie

ld (

%)

Max

75pct

Avg

25pct

Min

Yield Before Compile (MSOE)

0.0

10.0

20.0

30.0

40.0

50.0

60.0

70.0

80.0

90.0

100.0

1A 2A 3A 4A 5A 6A 7A 8A 9A 10A

Program

Yie

ld (

%)

Max

75pct

Avg

25pct

Min

SEI: 810 engineers MSOE: 83 sophomore students

Page 15: SE-280 Dr. Mark L. Hornick 1 In software engineering, we sometimes distinguish between "practice" and "process". By "practice", we mean "what" software

15SE-280Dr. Mark L. Hornick

Testing time is a major cost in commercial software development; PSP course data shows a reduction in test time.

Test TIme % (SEI)

0.0

5.0

10.0

15.0

20.0

25.0

30.0

35.0

40.0

1A 2A 3A 4A 5A 6A 7A 8A 9A 10A

Program

Tes

t T

Ime

%

Max

75pct

Avg

25pct

Min

Test TIme % (MSOE)

0.0

5.0

10.0

15.0

20.0

25.0

30.0

35.0

40.0

1A 2A 3A 4A 5A 6A 7A 8A 9A 10A

Program

Tes

t T

ime

%

Max

75pct

Avg

25pct

Min

SEI: 810 engineers MSOE: 83 sophomore students

Page 16: SE-280 Dr. Mark L. Hornick 1 In software engineering, we sometimes distinguish between "practice" and "process". By "practice", we mean "what" software

16SE-280Dr. Mark L. Hornick

Even with additional PSP planning and quality activities, overall productivity remains nearly constant.

Productivity (MSOE)

0.0

10.0

20.0

30.0

40.0

50.0

60.0

1A 2A 3A 4A 5A 6A 7A 8A 9A 10A

Program

LO

C/H

ou

r

Max

75pct

Avg

25pct

Min

Productivity (SEI)

0.0

10.0

20.0

30.0

40.0

50.0

60.0

1A 2A 3A 4A 5A 6A 7A 8A 9A 10A

Program

LO

C/H

ou

r

Max

75pct

Avg

25pct

Min

SEI: 810 engineers MSOE: 83 sophomore students

Page 17: SE-280 Dr. Mark L. Hornick 1 In software engineering, we sometimes distinguish between "practice" and "process". By "practice", we mean "what" software

17SE-280Dr. Mark L. Hornick

You can improve your own performance as a software engineer using disciplined methods, but it does take some effort.

MSOE sports photos courtesy of Dr. Eric Durant

Page 18: SE-280 Dr. Mark L. Hornick 1 In software engineering, we sometimes distinguish between "practice" and "process". By "practice", we mean "what" software

18SE-280Dr. Mark L. Hornick

Please complete the following assignment before the start of the next class.

Read textbook pages 1-34. Download the Process Support Tool from

the course website Log into SVN to verify that you are set up

correctly https://emerald.msoe.edu/svn/se280-<your-name> Ask right away if you have problems or questions

about SVN Bring your notebook computers to class

Page 19: SE-280 Dr. Mark L. Hornick 1 In software engineering, we sometimes distinguish between "practice" and "process". By "practice", we mean "what" software

19SE-280Dr. Mark L. Hornick

Here are a few references on SE process, PSP, and TSP.

W. Humphrey, PSP – A Self-Improvement Process for Software Engineers, A-W, 2005

W. Humphrey, Introduction to the Team Software Process, A-W, 2000 W. Humphrey, Winning with Software: An Executive Strategy, A-W, 2002 N. Davis & J. Mullaney, The Team Software Process in Practice: A

Summary of Recent Results, SEI, 2003 SEI/CMU-2003-TR-014 (www.sei.cmu.edu)

D. Suri and M. Sebern, “Incorporating software process in an undergraduate software engineering curriculum: challenges and rewards”, Proceedings of CSEE&T’04, 2004

M. Sebern, “The software development laboratory: incorporating industrial practice in an academic environment”, Proceedings of CSEE&T’05, 2005