Software engineering : theory and practice /
Shari Lawrence Pfleeger.
- Upper Saddle River: Prentice Hall, 1998
- 576 p.
CONTENIDO 1 Why Software Engineering? 1 1.1 What Is Software Engineering? 2 1.2 How Successful Have We Been? 5 1.3 What Is Good Software? 8 1.4 Who Does Software Engineering? 14 1.5 A Systems Approach 16 1.6 An Engineering Approach 21 1.7 Members of the Development Team 25 1.8 How Has Software Engineering Changed? 27 2 Modeling the Process and Life-Cycle 44 2.1 The Meaning of Process 44 2.2 Software Process Models 47 2.3 Tools and Techniques for Process Modeling 58 2.4 Practical Process Modeling 66 3 Planning and Managing the Project 76 3.1 Tracking Progress 76 3.2 Project Personnel 89 3.3 Effort Estimation 98 3.4 Risk Management 113 3.5 The Project Plan 118 3.6 Process Models and Project Management 120 4 Capturing the Requirements 135 4.1 The Requirements Process 136 4.2 Types of Requirements 142 4.3 Characteristics of Requirements 145 4.4 How to Express Requirements 147 4.5 Additional Requirements Notations 161 4.6 Prototyping Requirements 169 4.7 Requirements Documentation 171 4.8 Participants in the Requirements Process 174 4.9 Requirements Validation 174 4.10 Measuring Requirements 178 4.11 Choosing a Requirements Specification Technique 180 5 Designing the System 192 5.1 What Is Design? 192 5.2 Decomposition and Modularity 195 5.3 Architectural Styles and Strategies 198 5.4 Issues in Design Creation 206 5.5 Characteristics of Good Design 216 5.6 Techniques for Improving Design 228 5.7 Design Evaluation and Validation 236 5.8 Documenting the Design 245 6 Writing the Programs 254 6.1 Programming Standards and Procedures 254 6.2 Programming Guidelines 257 6.3 Documentation 267 7 Testing the Programs 278 7.1 Software Faults and Failures 278 7.2 Testing Issues 284 7.3 Unit Testing 289 7.4 Integration Testing 303 7.5 Testing Object-Oriented Systems 310 7.6 Test Planning 313 7.7 Automated Testing Tools 315 7.8 When to Stop Testing 318 8 Testing the System 330 8.1 Principles of System Testing 330 8.2 Function Testing 343 8.3 Performance Testing 349 8.4 Reliability, Availability, and Maintainability 351 8.5 Acceptance Testing 360 8.6 Installation Testing 363 8.7 Automated System Testing 363 8.8 Test Documentation 365 8.9 Testing Safety-Critical Systems 374 9 Delivering the System 396 9.1 Training 396 9.2 Documentation 401 10 Maintaining the System 412 10.1 The Changing System 412 10.2 The Nature of Maintenance 420 10.3 Maintenance Problems 423 10.4 Measuring Maintenance Characteristics 431 10.5 Maintenance Techniques and Tools 437 10.6 Software Rejuvenation 444 11 Evaluating Products, Processes, and Resources 456 11.1 Approaches to Evaluation 456 11.2 Selecting an Evaluation Technique 461 11.3 Assessment vs. Prediction 465 11.4 Evaluating Products 471 11.5 Evaluating Processes 487 11.6 Evaluating Resources 502 12 Improving Predictions, Products, Processes, and Resources 512 12.1 Improving Prediction 513 12.2 Improving Products 520 12.3 Improving Processes 524 12.4 Improving Resources 533 12.5 General Improvement Guidelines 536 12.6 The Future of Software Engineering 537 Annotated Bibliography Index 569