1、Software EngineeringA PRACTITIONERS APPROACHMcGraw-Hill Series in Computer ScienceSenior Consulting EditorC. L. Liu, National Tsing HuaUniversityConsulting EditorAllen B. Tucker, BowdoinCollegeFundamentals of Computingand ProgrammingComputer Organization andArchitectureSystems and LanguagesTheoretic
2、al FoundationsSoftware Engineering andDatabasesArtificial IntelligenceNetworks, Parallel andDistributed ComputingGraphics and VisualizationThe MIT Electrical andComputer Science SeriesSoftware Engineering andDatabasesAtzeni, Ceri, Paraborschi, and Torlone, Database Systems, 1/eMitchell, Machine Lear
3、ning, 1/eMusa, Iannino, and Okumoto, Software Reliability, 1/ePressman, SoftwareEngineering: A BeginnersGuide, 1/ePressman, SoftwareEngineering: A PractionersGuide, 5/eRamakrishnan/Gehrke,Database ManagementSystems, 2/eSchach, Classical and Object-Oriented SoftwareEngineering with UML and C+, 4/eSch
4、ach, Classical and Object-Oriented SoftwareEngineering with UML andJava, 1/eSoftware EngineeringA PRACTITIONERS APPROACHFIFTH EDITIONRoger S. Pressman, Ph.D.Boston Burr Ridge, IL Dubuque, IA Madison, WINew York San Francisco St. LouisBangkok Bogot Caracas Lisbon London Madrid Mexico CityMilan New De
5、lhi Seoul Singapore Sydney Taipei TorontoSOFTWARE ENGINEERINGPublished by McGraw-Hill, an imprint of The McGraw-Hill Companies, Inc. 1221 Avenue of theAmericas, New York, NY, 10020. Copyright/2001, 1997, 1992, 1987, 1982, by The McGraw-Hill Com-panies, Inc. All rights reserved. No part of this publi
6、cation may be reproduced or distributed in anyform or by any means, or stored in a database or retrieval system, without the prior written consentof The McGraw-Hill Companies, Inc., including, but not limited to, in any network or other electronicstorage or transmission, or broadcast for distance le
7、arning.This book is printed on acid-free paper.1 2 3 4 5 6 7 8 9 0 DOC/DOC 0 9 8 7 6 5 4 3 2 1 0ISBN 0073655783Publisher: Thomas CassonExecutive editor: Betsy JonesDevelopmental editor: Emily GrayMarketing manager: John WannemacherProject manager: Karen J. NelsonProduction supervisor: Heather Burbri
8、dgeCoordinator freelance design: Keith McPhersonSupplement coordinator: Rose RangeNew media: Christopher StylesCover design: Rhiannon ErwinCover illustrator: Joseph GiliansCompositor: Carlisle Communications, Ltd.Typeface: 8.5/13.5 LeawoodPrinter: R. R. Donnelley Making Software Engi-neering Happen
9、(Prentice-Hall), the first book to address the critical management problemsassociated with software process improvement; and Software Shock (Dorset House), a treat-ment that focuses on software and its impact on business and society. Dr. Pressman is onthe Editorial Boards of IEEE Software and the Cu
10、tter IT Journal, and for many years, waseditor of the “Manager” column in IEEE Software.Dr. Pressman is a well-known speaker, keynoting a number of major industry confer-ences. He has presented tutorials at the International Conference on Software Engineer-ing and at many other industry meetings. He
11、 is a member of the ACM, IEEE, and Tau BetaPi, Phi Kappa Phi, Eta Kappa Nu, and Pi Tau Sigma.ABOUT THE AUTHORviiPreface xxvPART ONE The Product and the Process 1CHAPTER 1 The Product 3CHAPTER 2 The Process 19PART TWO Managing Software Projects 53CHAPTER 3 Project Management Concepts 55CHAPTER 4 Soft
12、ware Process and Project Metrics 79CHAPTER 5 Software Project Planning 113CHAPTER 6 Risk Analysis and Management 145CHAPTER 7 Project Scheduling and Tracking 165CHAPTER 8 Software Quality Assurance 193CHAPTER 9 Software Configuration Management 225PART THREE Conventional Methods for Software Enginee
13、ring 243CHAPTER 10 System Engineering 245CHAPTER 11 Analysis Concepts and Principles 271CHAPTER 12 Analysis Modeling 299CHAPTER 13 Design Concepts and Principles 335CHAPTER 14 Architectural Design 365CHAPTER 15 User Interface Design 401CHAPTER 16 Component-Level Design 423CHAPTER 17 Software Testing
14、 Techniques 437CHAPTER 18 Software Testing Strategies 477CHAPTER 19 Technical Metrics for Software 507PART FOUR Object-Oriented Software Engineering 539CHAPTER 20 Object-Oriented Concepts and Principles 541CHAPTER 21 Object-Oriented Analysis 571CHAPTER 22 Object-Oriented Design 603CONTENTS AT A GLAN
15、CECONTENTS AT A GLANCEviiiCHAPTER 23 Object-Oriented Testing 631CHAPTER 24 Technical Metrics for Object-Oriented Systems 653PART FIVE Advanced Topics in Software Engineering 671CHAPTER 25 Formal Methods 673CHAPTER 26 Cleanroom Software Engineering 699CHAPTER 27 Component-Based Software Engineering 7
16、21CHAPTER 28 Client/Server Software Engineering 747CHAPTER 29 Web Engineering 769CHAPTER 30 Reengineering 799CHAPTER 31 Computer-Aided Software Engineering 825CHAPTER 32 The Road Ahead 845ixPART ONETHE PRODUCT AND THE PROCESS 1CHAPTER 1 THE PRODUCT 31.1 The Evolving Role of Software 41.2 Software 61
17、.2.1 Software Characteristics 61.2.2 Software Applications 91.3 Software: A Crisis on the Horizon? 111.4 Software Myths 121.5 Summary 15REFERENCES 15PROBLEMS AND POINTS TO PONDER 16FURTHER READINGS AND INFORMATION SOURCES 17CHAPTER 2 THE PROCESS 192.1 Software Engineering: A Layered Technology 202.1
18、.1 Process, Methods, and Tools 202.1.2 A Generic View of Software Engineering 212.2 The Software Process 232.3 Software Process Models 262.4 The Linear Sequential Model 282.5 The Prototyping Model 302.6 The RAD Model 322.7 Evolutionary Software Process Models 342.7.1 The Incremental Model 352.7.2 Th
19、e Spiral Model 362.7.3 The WINWIN Spiral Model 382.7.4 The Concurrent Development Model 402.8 Component-Based Development 422.9 The Formal Methods Model 432.10 Fourth Generation Techniques 442.11 Process Technology 462.12 Product and Process 462.13 Summary 47REFERENCES 47PROBLEMS AND POINTS TO PONDE
20、R 49FURTHER READINGS AND INFORMATION SOURCES 50TABLE OF CONTENTSCONTENTSxPART TWOMANAGING SOFTWARE PROJECTS 53CHAPTER 3 PROJECT MANAGEMENT CONCEPTS 553.1 The Management Spectrum 563.1.1 The People 563.1.2 The Product 573.1.2 The Process 573.1.3 The Project 573.2 People 583.2.1 The Players 583.2.2 Te
21、am Leaders 593.2.3 The Software Team 603.2.4 Coordination and Communication Issues 653.3 The Product 673.3.1 Software Scope 673.3.2 Problem Decomposition 673.4 The Process 683.4.1 Melding the Product and the Process 693.4.2 Process Decomposition 703.5 The Project 713.6 The W5HH Principle 733.7 Criti
22、cal Practices 743.8 Summary 74REFERENCES 75PROBLEMS AND POINTS TO PONDER 76FURTHER READINGS AND INFORMATION SOURCES 77CHAPTER 4 SOFTWARE PROCESS AND PROJECT METRICS 794.1 Measures, Metrics, and Indicators 804.2 Metrics in the Process and Project Domains 814.2.1 Process Metrics and Software Process I
23、mprovement 824.2.2 Project Metrics 864.3 Software Measurement 874.3.1 Size-Oriented Metrics 884.3.2 Function-Oriented Metrics 894.3.3 Extended Function Point Metrics 914.4 Reconciling Different Metrics Approaches 944.5 Metrics for Software Quality 954.5.1 An Overview of Factors That Affect Quality 9
24、54.5.2 Measuring Quality 964.5.3 Defect Removal Efficiency 984.6 Integrating Metrics Within the Software Engineering Process 984.6.1 Arguments for Software Metrics 994.6.2 Establishing a Baseline 1004.6.3 Metrics Collection, Computation, and Evaluation 1004.7 Managing Variation: Statistical Quality Control 1004.8 Metrics for Small Organizations 1044.9 Establishing a Software Metrics Program 1054.10 Summary 107REFERENCES 107