Professional Documents
Culture Documents
Disciplined Software Engineering: Lecture #1
Disciplined Software Engineering: Lecture #1
Lecture #1
Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Sponsored by the U.S. Department of Defense
Copyright 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 1
Course
Text A Discipline for Software Engineering Watts S. Humphrey Grading Homework 40% Midterm 30% Final 30%
General
The book will be followed very closely. Class time 50 minute lecture 10 break Office Hours 1 hour before/after class by appointment Email or phone calls are fine GTA Chaoyang Liu
Contact Information
Dr. Tom Potok Potokte@ornl.gov www.csm.ornl.gov/~v8q 574-0834
Schedule
Class Number Date Subject 1 8/26/2001 Introduction 9/2/2001 Labor Day 2 9/9/2001 Planning Overview 3 9/16/2001 Size Estimates 4 9/23/2001 Size Estimates 5 9/30/2001 Schedule Planning 6 10/7/2001 Process Measurement 7 10/14/2001 Design and Code Reviews 8 10/21/2001 Midterm 9 10/28/2001 Software Quality 10 11/4/2001 Design Notation 11 11/11/2001 Design Overview 12 11/18/2001 Scalability and Complexity 13 11/25/2001 Design Verification 14 12/2/2001 Final Review 12/9/2001 Final Lecture 1 No lecture 2 3 4 5 6 7 No lecture 8 9 10 11 12 Review Chapter 1&2 3&4 5 6 7 8 9 Appendix B 10 11 12 Exercise 1A 2A 3A 4A 5A 6A R4 7A 8A 9A 10A R5
Software Engineering
What is it? What is a process?
Course Objectives
To introduce you to a process-based approach to developing software To show you how to measure and analyze your personal software process (PSP) To show you how to use process data to improve your personal performance To show you how to apply these methods to your other tasks
Copyright 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 8
General Information
Prerequisites You must know a programming language. Helpful background familiarity with basic statistics ability to read simple formal notations
Course Overview
Introduction - 1 lecture Planning the process - 4 lectures Defect management - 3 lectures The design process - 2 lectures Scaling up the process - 1 lecture Design verification - 2 lectures Process development - 1 lecture Using the PSP - 1 lecture
Lecture #1 Overview
PSP principles costs and benefits personal software process (PSP) overview
The capability maturity model (CMM) process maturity the CMM and the PSP
The initial PSP0 process
PSP Principles - 1
The quality of a software system is governed by the quality of its worst components. The quality of a software component is governed by the individual who developed it. This is governed by your knowledge discipline commitment
What is this?
Process Examples
Top quarterbacks knows what was his pass completion record for last year. Top sales people know how much money they brought in. Racing teams know how minor changes to their cars will affect performance What do you know about your software development skills?
Copyright 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 15
PSP Principles - 2
As software professionals you should know your own performance. You should measure, track, and analyze your work. You should learn from your performance variations. You should Incorporate these lessons in your personal practices.
Copyright 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 16
What is a PSP?
A personal process for developing software defined steps forms standards A measurement and analyses framework to help you characterize your process A defined procedure to help you to improve your performance
Initial
Poorly defined procedures and controls No management mechanism to to ensure they are followed Heroic efforts by one or two people saves the day. Projects are late, crisis to crisis
Repeatable
Basic project controls Quality problems No framework for orderly improvement Fault data is being collected
Defined
Commitment to software process evaluation and improvement Appropriate software engineering standards and methods are in place Strong qualitative understanding of the process
Managed
Process is quantified Quality and productivity measured for each key task Wide dissemination of process related information Errors can be predicted with acceptable accuracy
Optimizing
Process improvement feed-back and feedforward controls Rigorous defect causal analysis and defect prevention Proactive management
More on CMM
There are 18 key process areas defined by CMM, including Requirements Management, Software Configuration Management Process Change Management Defect Prevention Each key process area has five common features: 1) goals to be achieved; 2) ability to perform; 3) activities performed; 4) measurement and analysis; 5) verification
4 3
Level 3 Peer reviews* Intergroup coordination Software product engineering* Integrated software management* Training program Organization process definition* Organization process focus*
Level 2 Software configuration management Software quality assurance Software subcontract management Software project tracking and oversight* Software project planning* Requirements management
Level 1
S E P G
the Engineers
Copyright 1994 Carnegie Mellon University
PSP Overview - 1
The PSP is introduced in 7 upward compatible steps You write 1 or 2 small programs at each step You gather and analyze data on your work
PSP Overview - 2
PSP3
Cyclic development
PSP2
Code reviews Design reviews
PSP2.1
Design templates
PSP1
Size estimating Test report
PSP1.1
Task planning Schedule planning
PSP0
Current process Time recording Defect recording Defect type standard
PSP0.1
Coding standard Size measurement Process improvement proposal (PIP)
PSP Overview - 3
PSP0 - you establish a measured performance baseline PSP1 - you make size, resource, and schedule plans PSP2 - you practice defect and yield management PSP3 - you scale up PSP methods to larger projects
Copyright 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 34
At Course Conclusion
You will have practiced the key elements of a level 5 industrial process. You will understand which methods are most effective for you. You will do better work. You will have long-term improvement goals.
% of Total Time
25 20 15 10 5 0 1 2 3
14 hours to 3 hours
Ma x Avg Min
10
Program Number
Copyright 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 37
Defects/KLOC
P ro g ra m N u m b e r
Copyright 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 38
Productivity Range
100 90 80 70 60 50 40 30 20 10 0 1 2 3 4 5 6 7 8 9 10
Big drop in defects Big potential increase In productivity
LOC/Hour
Ma x Avg Min
Program Number
Copyright 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 39
Development - develop the product using your current methods Postmortem - complete the project plan summary, with the time spent and defects found and injected in each phase.
Record defects in the defect log and time per phase in the time log.
Copyright 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 43
Actual
To Date
To Date %
Actual
To Date
To Date %
Defects injected and removed - Enter the actual numbers of defects injected and removed in each phase.
Copyright 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 46
Start - Enter the time in minutes when you start a project phase.
Date Program #
Comments
Delta time - Enter the elapsed start to stop time less the interruption time.
60 70 80 90 100
Date Program #
Fix Time Fix Defect
Date Description:
Number
Type
Inject
Remove
Fix Time
Fix Defect
Date Description:
Number
Type
Inject
Remove
Fix Time
Fix Defect
Date Description:
Number
Type
Inject
Remove
Fix Time
Fix Defect
Date Description:
Number
Type
Inject
Remove
Fix Time
Fix Defect
Date Description:
Number
Type
Inject
Remove
Fix Time
Fix Defect
Note - A defect is anything in the program that must be changed for it to be properly developed, enhanced, or used.
Copyright 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 55
Assignment #1
Read preface and chapters 1 and 2 of the text. Use PSP0 to write program 1A. See Appendix D for the program specifications. See Appendix C for the PSP0 definitions and examples. Follow the specifications in Appendix C on the materials to submit and their order and content.
Program 1A
Calculates the standard deviation of a list of numbers. The n numbers are held in a linked list. The standard deviation is calculated as follows:
Std
x
n i1
xavg
n1
i is an index to the numbers, and Xavg is the average value of the numbers.
Copyright 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 59
Suggestions
Keep personal copies of what you turn in Submit your programs on diskettes or to Chaoyang by e-mail. Chaoyang@cs.utk.edu Software must be a windows executable! Please keep accurate track of time.
Some Suggestions - 1
Keep your programs simple. You will learn as much from small programs as from large ones. Keep your reports and standards simple and short. Do not hesitate to copy or build on the PSP materials. Do it right the first time. If you are not sure, find out.
Copyright 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 61
Hours
12 10 8 6 4 2 0 1 2 3 4 5 6 7 8 9 10
Ma x Avg Min
Program Number
Copyright 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 62
Some Suggestions - 2
Software is not a solo business so you do not have to work alone. You must, however, produce your own estimates, designs, and code. You may have others review your work and you may change it as a result. You should note this help in your process report, include the review time you and your associates spend, and log the defects found.
Copyright 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 1 63
1 - The PSP is a defined process to help you do better work. 2 - Once you have completed this course, you will know how to adjust and extend the PSP to meet your future needs. 3 - In using PSP0, your principal objective is to gather and report accurate and complete data on your work.