ebook img

Introduction to the Personal Software Process(sm) PDF

306 Pages·1996·1.53 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Introduction to the Personal Software Process(sm)

Introduction to the Personal Software ProcessSM Watts S. Humphrey CARNEGIE MELLON UNIVERSITY An imprint of Addison Wesley Longman, Inc. Reading, Massachusetts • Harlow, England • Menlo Park, California Berkeley, California • Don Mills, Ontario • Sydney Bonn • Amsterdam • Tokyo • Mexico City The SEI Series in Software Engineering The Personal Software Process and PSP are service marks of Carnegie Mellon University. Library of Congress Cataloging–in–Publication Data Humphrey, Watts S., 1927– Introduction to the personal software process / by Watts S. Humphrey. p. cm. — (SEI series in software engineering) Includes bibliographical references and index. ISBN 0–201–54809–7 1. Software engineering. I. Title. II. Series. QA76.758.H858 1997 005.1’068’4—dc20 96–31726 CIP The programs and applications presented in this book have been included for their instruc- tional value. They have been tested with care but are not guaranteed for any particular pur- pose. The publisher does not offer any warranties or representations, nor does it accept any liabilities with respect to the programs or applications. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and Addison-Wesley was aware of the trademark claim, the designations have been printed in caps or initial caps. Access the latest information about Addison-Wesley books from the World Wide Web: www.awprofessional.com. Copyright © 1997 by Addison Wesley Longman, Inc. All rights reserved. The forms and tables in this book or electronic copies thereof may be copied, used, or modified by owners of this book or users of the materials it contains. No other part of this publication may be reproduced, stored in a retrieval system, or transmit- ted, in any form or by any means, electronic, mechanical, photocopying, recording, or oth- erwise, without the prior written permission of the publisher. Printed in the United States of America. Text printed on recycled and acid-free paper. ISBN 0-201-54809-7 1819202122 CRS 11 10 09 08 07 Eighteenth printing, August 2007 FOR BARBARA My love, my life, my wife This page intentionally left blank FACULTY FOREWORD We used a draft version of this book to teach process principles in the first year Computer Science program at Embry-Riddle Aeronautical University. The book provides a subset of the Personal Software Process (PSP)SMelements and activi- ties that a freshman can easily assimilate with the more traditional first-year pro- gramming topics. The book also provides the motivation and a structure for introducing students to disciplined personal practices. We have enjoyed using this book and feel it is helping our students to become competent software profes- sionals. For some years we have been trying to provide our students with realistic software engineering experiences. We have had moderate success with introduc- ing software engineering theory and practice early in the curriculum and adding team projects to some upper division courses. Unfortunately, we have found that when students work on these projects, they do not understand time management, scheduling, and quality management. As industry has found, the ability of engi- neering teams to develop quality software products efficiently and effectively greatly depends on the ability of the individual engineers. On reflection, the stu- dents’ problems with time and quality management are not surprising since we had not provided courses that show students how to plan and manage their work. We thus decided to try introducing process concepts at the beginning of the un- dergraduate curriculum. We felt that beginning college students could best learn and benefit from time management practices, so we started by introducing this book’s Chapter 1 through Chapter 10 materials in CS1. Although all students entering our CS1 course had SMPersonal Software Process and PSP are service marks of Carnegie Mellon University. v vi Faculty Foreword some programming experience, they were not yet ready for a formally defined software development process. They first needed exposure to the problems of modern software development before they could truly comprehend the roles and practices of software engineers. After finishing CS1 and completing their first college semester, students were ready for a more disciplined way to develop programs. We then introduced the PSP process in CS2, using the materials in Chapters 11 thorough 20. Here, the stu- dents planned each of their programming projects. Following the defined PSP practices, they used their own historical data to estimate size, effort, and quality (defect projection). They also collected and recorded actual data for each project on a summary report form. After a year of experience, we have found that the approach of introducing process activities to beginning computer science students can work. What we mean by “can work” is that students can learn how to use the process outlined in the book. They do, eventually, see the value of recording effort, size, and quality data, and they can use these data in planning projects and analyzing their personal effectiveness. Collecting data on their own work gives them a quantitative basis for estimating. They regularly perform structured reviews and they learn to follow de- fined development phases in their work (e.g., planning, design, coding, compil- ing, testing, and postmortem). We also feel that delaying the introduction of PSP for another semester (or year) would allow sloppy and undisciplined programming practices to become more entrenched and would make the students more resistant to change. The PSP has helped the students understand the importance of a disciplined approach to developing software. It also provides a more rigorous foundation for later introducing more advanced individual and team topics. For the most part, stu- dent data are accurate, but one must be careful to analyze and reject suspicious data. Unfortunately, the students did not become better at scheduling their work. Many still put off assignments until near their due date—a perennial beginning programmer problem. Not surprisingly, we discovered that the success of the PSP approach was highly dependent upon our ability to motivate students to learn and practice these concepts. We used the ideas and arguments in this book to encourage a positive view of process methods. We found that providing the class with regular feedback and analysis of class data stimulated students’ interest in looking more closely at their personal data. Inviting industry professionals to discuss their process experi- ences with the class was also very helpful. There were some problems at first in teaching the new courses. Initially, we did not sufficiently integrate the PSP materials with the rest of the CS1 and CS2 courses. The students thus had trouble relating the time management activities to their programming work. We also failed to provide sufficient feedback of class ag- gregate data. Faculty Foreword vii An interesting and beneficial side effect of the PSP is the large supply of data available to the teacher. In CS1 we get weekly activity reports on how students spend their time in the course. In CS2 we get a PSP summary on each program- ming project that provides size, effort, and defect data. These data often provoke discussion about the methods taught in the course and how they affect programmer productivity and program quality. The PSP provides a quantitative basis for de- tailed analysis and discussion of such questions. We are continuing to teach the PSP in the freshman year of our program. We also require students who have completed CS1 and CS2 to use the PSP in the Data Structures and Algorithms course that follows CS2. We believe this will better pre- pare them for the more complex team projects they will face in their junior and se- nior years. We also plan to guide students in extending and enhancing the PSP for their subsequent courses. We have found this book helpful in introducing our students to professional software disciplines and hope that other students and teachers using this book will experience similar benefits. Thomas B. Hilburn, Aboalfazl Salimi, Massood Towhidnejad Embry-Riddle Aeronautical University This page intentionally left blank STUDENT FOREWORD After we finished the PSP course in our freshman year, a couple of the faculty at Embry-Riddle Aeronautical University asked if we would like to collaborate on writing a foreword to the finished textbook. We agreed. Since we were not sure how to write a foreword, they suggested that we merely answer some questions. Here are the questions and our answers: 1. What type of tasks did you do in the PSP course? We kept track of all the time we spent on programming assignments and pro- jects. There was a lot of paperwork to keep track of. We also kept track of program size and defects and used the data we collected to estimate time, size, and defects on future projects. 2. How did it work? How did this material fit with the material in the other freshman courses? It fit well into the course work, and having an estimate helped provide confi- dence in what you were doing. At the beginning it looks like the PSP work is a hindrance to the other course work, but once you get to the end of the course, you realize that these activities ac- tually help you complete your work. You go through the course and keep asking yourself, “Why am I doing this?,” but later you start to see that having an estimate of what it is going to take you to complete a program actually helps you. It is very important not to fudge the data (times) because then the data you collect are not as helpful. ix

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.