Synopses & Reviews
This new work from Watts Humphrey, author of the influential book, Managing the Software Process, broadens his orderly view of software process management, and lays the foundation for a disciplined approach to software engineering. In his earlier book, the author developed concrete methods for managing software development and maintenance. These methods, now commonly practiced in industry, provide programmers and managers with specific steps they can take to evaluate and improve their software capabilities. In this new book, Humphrey scales those methods down to a personal level, helping software engineers develop the skills and habits needed to plan, track, and analyze large, complex projects. Humphrey and others have used material from this book to train professionals and students around the world in a projects-oriented software engineering course. First establishing the need for discipline in software engineering, and the benefits to practitioners of learning how to manage their personal software process, Humphrey then develops a model that they can use to monitor, test, and improve their work. Examples drawn from industry enhance the practical focus of the book, while project exercises give readers the opportunity to practice software process management as they learn it. Features: presents concepts and methods for a disciplined software engineering process; scales down industrial practices for planning, tracking, analysis, and defect management to fit the needs of small-scale program development; and shows how small project disciplines provide a solid base for larger projects.
Designed to help individual programmers develop software more effectively this book presents: concepts and methods for a disciplined software engineering process following the Capability Maturity Model; and scales down industrial practices for planning, tracking, analysis and defect management.
This new work from Watts Humphrey
lays the foundation for a disciplined approach to software engineering. In his previous book, Humphrey developed methods for managing an organization's software process. These methods, now commonly practiced in industry, provide to programmers and managers specific steps they can take to evaluate and to improve their software development and software maintenance capabilities. In Humphrey's new book, he scales those methods down to a more personal level, helping software engineers working on relatively small-scale programs to develop the skills and the habits they will need later in their professional life to plan, track, and analyze large and complex software projects more carefully and more successfully.
Clear examples and samples drawn from industry enhance the practical focus of the book. Exercises in the form of projects give readers the opportunity to practice process management as they learn it, a comprehensive instructor's set includes notes on teaching the course, overhead masters, modifiable assignment kits in Word, and a statistical support package in the form of Excel spreadsheets for the analysis of individual and class data. Features
- Presents concepts and methods for a disciplined software engineering process
- Scales down industrial practices for planning, tracking, analysis, and defect management to for the needs of small-scale program development
- Shows how small project disciplines provide a solid base for larger projects
About the Author
Known as “the father of software quality,” Watts S. Humphrey
is the author of numerous influential books on the software-development process and software process improvement. Humphrey is a fellow of the Software Engineering Institute (SEI) at Carnegie Mellon University, where he founded the Software Process Program and provided the vision and early leadership for the original Capability Maturity Model (CMM). He also is the creator of the Personal Software Process (PSP) and Team Software Process (TSP). Recently, he was awarded the National Medal of Technology—the highest honor given by the president of the United States to America's leading innovators.
Table of Contents
1. The Personal Process Strategy.
The Logic for a Software Engineering Discipline.
What is a Software Process?
Your Personal Responsibilities.
The Personal Software Process (PSP) Strategy.
The Logic for the PSP.
Productivity and the PSP.
2. The Baseline Personal Process.
The Baseline Process.
Why Forms are Helpful.
The PSP Process Elements.
The PSPO Process.
Time Recording Log.
Defect Recording Log.
PSPO Project Plan Summary.
Customizing the Initial Process
3. Planning I: The Planning Process.
Why Make Plans.
What is a Plan.
Contents of a Software Plan.
Planning a Software Project.
Producing a Quality Plan.
4. Planning II: Measuring Software Size.
A Size Measurement Framework.
Establishing a Counting Standard.
Using LOC Counts.
Line of Code Accounting.
5. Planning III: Estimating Software Size.
Popular Estimating Methods.
The PROBE Size Estimating Method.
6. Planning IV: Planning.
Estimating Development Time.
Estimating Task Time.
Combining Multiple Estimates.
Using Multiple Regression.
Earned Value Tracking.
7. Measurement In The Personal Software Process.
Fundamental Process Measures.
General PSP Objectives, Goals, and Questions.
A GQM Example .
The Impact of Data Gathering.
Establishing a Baseline for Your Personal Process.
8. Design and Code Reviews.
What are Reviews?
Why Review Programs.
Separate Design and Code Reviews.
Design Review Principles.
Reviewing before or after You Compile.
The Relationship between Reviews and Inspections.
9. Software Quality Management.
What is Software Quality?.
The Economics of Software Quality.
Developing a Quality Strategy.
Defect Removal Strategies.
Defect Prevention Strategies.
10. Software Design.
The Design Process.
Structuring the Design Process.
The Functional Specification Template.
The State Specification Template.
The Logic Specification Template.
The Operational Scenario Template.
Using Templates in Design
11. Scaling Up The Personal Software Process.
The Stages of Product Size.
Developing Large-scale Programs.
A Potential Problem with Abstractions.
The Development Strategy.
12. Design Verification.
Selecting Verification Methods.
Verifying the Object State Machine.
Verifying Program Correctness.
Comments on Verification Methods.
13. Defining the Software Process.
Why Define Processes.
Software Process Basics.
Defining Process Phases.
Process Development Considerations.
The Process-development Process.
14. Using the Personal Software Process.
Making Personal Commitments.
Using the PSP in an Organization.
The Personal Costs of a PSP.
The Personal Benefits of a PSP.
The Responsible Software Professional.
Your Future in Software Engineering. 0201546108T04062001