| 作者 |
| 丛书名 |
| 出版社 |
| 原 Mcgraw-Hill |
| ISBN |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 Roger S. Pressman : Software Engineering, A Practitioner Approach, Fourth Edition. Copyright ?1997,1992,1987,1982 by The McGraw-Hill Companies, Inc. All rights reserved. Jointly published by China Machine Press/McGraw-Hill. This edition may be sold in the People Republic of China only. This book cannot be re-exported and is not for sale outside the People Republic of China. |
| 目录 |
| TABLE OF Contents PREFACE PART ONE THE PRODUCT AND THE PROCESS CHAPTER I THE PRODUCT 1.1? EVOLVING ROLE OF SOFTWARE I . I . I An Industry Perspective 1. 1.2 An Aging Software Plant 1. 1.3 Software Competitiveness 1.2 SOFTWARE 1.2.1 Software Characteristics 1.2.2 Software Components 1.2.3 Software Applications 1.3 SOFT-WARE: A CRISIS ON THE HORIZON 1.4 SOFTWARE MYTHS 1.5 SUMMARY REFERENCES PROBLEMS AND POINTS TO PONDER FURTHER READINGS AND INFORMATION SOURCES CHAPTER 2 THE PROCESS 2.1 SOFTWARE ENGINEERING-A LAYERED TECHNOLOGY 2. 1.1 Process, Methods, and Tools 2.1.2 A Generic View of Software Engineering 2.2 THE SOFTWARE PROCESS 2.3 SOFTWARE PROCESS MODELS 2.4 THE LINEAR SEQUENTIAL MODEL 2.5 THE PROTOTYPING MODEL 2.6 THE RAD MODEL 2.7 EVOLUTIONARY SOFTWARE PROCESS MODELS 2.7.1 The Incremental Model 2.7.2 The Spiral Model 2.7.3 The Component Assembly Model 2.7.4 The Concurrent Development Model 2.8 THE FORMAL METHODS MODEL 2.9 FOURTH GENERATION TECHNIQUES 2. 10 PROCESS TECHNOLOGY 2.11 PRODUCT AND PROCESS 2.12 SUMMARY REFERENCES PROBLEMS AND POINTS TO PONDER FURTHER READINGS AND OTHER INFORMATION SOURCES PART TWO MANAGING SOFTWARE PROJECTS CHAPTER 3 PROJECT MANAGEMENT CONCEPTS 3.1 THE MANAGEMENT SPECTRUM 3. 1. 1 People 3.1.2 The Problem 3.1.3 The Process 3.2 PEOPLE 3.2.1 The Players 3.2.2 Team Leaders 3.2.3 The Software Team 3.2.4 Coordination and Communication Issues 3.3 THE PROBLEM 3.3.1 Software Scope 3.3.2 Problem Decomposition 3.4 THE PROCESS 3.4.1 Melding the Problem and the Process 3.4.2 Process Decomposition 3.5 THE PROJECT 3.6 SUMMARY REFERENCES PROBLEMS AND POINTS TO PONDER FURTHER READINGS AND OTHER INFORMATION SOURCES CHAPTER 4 SOFTWARE PROCESS AND PROJECT METRICS 4.1 MEASURES, METRICS, AND INDICATORS 4.2 METRICS IN THE PROCESS AND PROJECT DOMAINS 4.2.1 Process Metrics and Software Process Improvement 4.2.2 Project Metrics 4.3 SOFTWARE, MEASUREMENT 4.3.1 Size-Oriented Metrics 4.3.2 Function-Oriented Metrics 4.3.3 Extended Function Point Metrics 4.4 RECONCILING DIFFERENT METRICS APPROACHES 4.5 METRICS FOR SOFTWARE QUALITY 4.5.1 An Overview of Factors That Affect Quality 4.5.2 Measuring Quality 4.5.3 Defect Removal Efficiency 4.6 INTEGRATING METRICS WITHIN THE SOFTWARE PROCESS 4.7 SUMMARY REFERENCES PROBLEMS AND POINTS TO PONDER FURTHER READINGS AND OTHER INFORMATION SOURCES I CHAPTER 5 SOFTWARE PROJECT PLANNING 5.1 OBSERVATIONS ON ESTIMATING 1 5.2 PROJECT PLANNING OBJ ECTIVES 5.3 SOFTWARE SCOPE 1 5.3.1 Obtaining Information Necessary for Scope 5.3.2 A Scoping Example 5.4 RESOURCES 5.4.1 Human Resources 5.4.2 Reusable Software Resources 5.4.3 Environmental Resources 5.5 SOFTWARE PROJECT ESTIMATION 5.6 DECOMPOSITION TECHNIQUES 5.6.1 Software Sizing 5.6.2 Problem-Based Estimation 5.6.3 An Example of LOC-Based Estimation 5.6.4 An Example of FP-Based Estimation 5.6.5 Process-Based Estimation 5.6.6 An Example of Process-Based Estimation 5.7 EMPIRICAL ESTIMATION MODELS 5.7.1 The Structure of Estimation Models 5.7.2 The COCOMO Model 5.7.3 The Software Equation 5.8 THE MAKE-BUY DECISION 5.8.1 Creating a Decision Tree 5.8.2 Outsourcing 5.9 AUTOMATED ESTIMATION TOOLS 5. 10 SUMMARY REFERENCES PROBLEMS AND POINTS TO PONDER FURTHER READINGS AND OTHER INFORMATION SOURCES CHAPTER 6 RISK MANAGEMENT 6.1 REACTIVE VS. PROACTIVE RISK STRATEGIES 6.2 SOFTWARE RISKS 6.3 RISK IDENTIFICATION 6.3.1 Product Size Risks 6.3.2 Business Impact Risks 6.3.3 Customer-Related Risks 6.3.4 Process Risks 6.3.5 Technology Risk 6.3.6 Development Environment Risks 6.3.7 Risks Associated with Staff Size and Experience 6.3.8 Risk Components and Drivers 6.4 RISK PROJECTION 6.4.1 Developing a Risk Table 6.4.2 Assessing Risk Impact 6.4.3 Risk Assessment 6.5 RISK MITIGATION, MONITORING, AND MANAGEMENT 6.6 SAFETY RISKS AND HAZARDS 6.7 THE RMMM PLAN 6.8 SUMMARY REFERENCES PROBLEMS AND POINTS TO PONDER FURTHER READINGS AND OTHER INFORMATION SOURCES CHAPTER 7 PROJECT SCHEDULING AND TRACKING 7.1 BASIC CONCEPTS 7. 1.1 Comments on “Lateness” 7.1.2 Basic Principles 7.2 THE RELATIONSHIP BETWEEN PEOPLE AND EFFORT 7.2.1 An Example 7.2.2 An Empirical Relationship 7.2.3 -Effort Distribution 7.3 DEFINING A TASK SET FOR THE SOFTWARE PROJECT 7.3.1 Degree of Rigor 7.3.2 Defining Adaptation Criteria 7.3.3 Computing a Task Set Selector Value 7.3.4 Interpreting the TSS Value and Selecting the Task Set 7.4 SELECTING SOFTWARE ENGINEERING TASKS 7.5 REFINEMENT OF MAJOR TASKS 7.6 DEFINING A TASK NETWORK 7.7 SCHEDULING 7.7.1 Timeline Charts 7.7.2 Tracking the Schedule 7.8 THE PROJECT PLAN 7.8 SUMMARY REFERENCES PROBLEMS AND POINTS TO PONDER FURTHER READINGS AND OTHER INFORMATION SOURCES CHAPTER 8 SOFTWARE QUALITY ASSURANCE 8.1 QUALITY CONCEPTS 8. 1.1 Quality 8.1.2 Quality Control 8.1.3 Quality Assurance 8.1.4 Cost of Quality 8.2 THE QUALITY MOVEMENT 8..3 SOFTWARE QUALITY ASSURANCE 8.3.1 Background Issues 8.3.2 SQA Activities 8.4 SOFTWARE REVIEWS 8.4.1 Cost Impact of Software Defects 8.4.2 Defect Amplification and Removal 8.5 FORMAL TECHNICAL REVIEWS 8.5.1 The Review Meeting 8.5.2 Review Reporting and Record Keeping 8.5.3 Review Guidelines 8.6 FORMAL APPROACHES TO SQA 8 . 7 STATISTICAL QUALITY ASSURANCE 8.8 SOFTWARE RELIABILITY 8.8.1 Measures of Reliability and Availability 8.8.2 Software Safety and Hazard Analysis 8.9 THE SQA PLAN 8. 10 THE ISO 9000 QUALITY STANDARDS 8. 10. 1 The ISO Approach to Quality Assurance Systems 8.10.2 The ISO 9001 Standard 8.11 SUMMARY REFERENCES PROBLEMS AND POINTS TO PONDER FURTHER READINGS AND OTHER INFORMATION SOURCES CHAPTER 9 SOFTWARE CONFIGURATION MANAGEMENT 9.1 SOFTWARE CONFIGURATION MANAGEMENT 9. 1.1 Baselines 9.1.2 Software Configuration Items 9.2 THE SCM PROCESS 9.3 IDENTIFICATION OF OBJECTS IN THE SOFTWARE CONFIGURATION 9.4 VERSION CONTROL 9.5 CHANGE CONTROL 9.6 CONFIGURATION AUDIT 9.7 STATUS REPORTING 9.8 SCM STANDARDS 9.9 SUWMARY REFERENCES PROBLEMS AND POINTS TO PONDER FURTHER READINGS AND OTHER INFORMATION SOURCES CHAPTER 10 SYSTEM ENGINEERING 10. 1 COMPUTER-BASED SYSTEMS 10.2 THE SYSTEM ENGINEERING HIERARCHY 10.2.1 System Modeling 10.2.2 Information Engineering: An Overview 10.2.3 Product Engineering: An Overview 10.3 INFORMATION ENGINEERING 10.4 INFORMATION STRATEGY PLANNING 10.4.1 Enterprise Modeling 10.4.2 Business-Level Data Modeling 10.5 BUSINESS AREA ANALYSIS 10.5.1 Process Modeling 10.5.2 Information Flow Modeling 10.6 PRODUCT ENGINEERING 10.6.1 System Analysis 10.6.2 Identification of Need 10.6.3 Feasibility Study 10.6.4 Economic Analysis 10.6.5 Technical Analysis 10.7 MODELING THE SYSTEM ARCHITECTURE 10.8 SYSTEM MODELING AND SIMULATION 10.9 SYSTEM SPECIFICATION 10. 10 SUMMARY REFERENCES PROBLEMS AND POINTS TO PONDER FURTHER READINGS AND OTHER INFORMATION SOURCES CHAPTER 11 ANALYSIS CONCEPTS AND PRINCIPLES 11.1 REQUIREMENTS ANALYSIS 11.2 COMMUNICATION TECHNIQUES 11.2.1 Initiating the Process 11.2.2 Facilitated Application Specification Techniques 11. 2.3 Quality Function Deployment 11.3 ANALYSIS PRINCIPLES 11.3.1 The Information Domain 11.3.2 Modeling 11.3.3 Partitioning 11. 3.4 Essential and Implementation Views 11.4 SOFTWARE PROTOTYPING 11.4.1 Selecting the Prototyping Approach 11.4.2 Prototyping Methods and Tools 11.5 SPECIFICATION 11.5.1 Specification Principles 11.5.2 Representation 11.5.3 The Software Requirements Specification 11.6 SPECIFICATION REVIEW 11.7 SUMMARY REFERENCES PROBLEMS AND POINTS TO PONDER FURTHER READINGS AND OTHER INFORMATION SOURCES CHAPTER 12 ANALYSIS MODELING 12.1 A BRIEF HISTORY 12.2 THE ELEMENTS OF THE ANALYSIS MODEL 12.3 DATA MODELING 12.3.1 Data Objects, Attributes, and Relationships 12.3.2 Cardinality and Modality 12.3.3 Entity-Relationship Diagrams 12.4 FUNCTIONAL MODELING AND INFORMATION FLOW 12.4.1 Data Flow Diagrams 12.4.2 Extensions for Recil-Time Systems 12.4.3 Ward and Mellor Extensions 12.4.4 Hatley and Pirbhai Extensions 12.5 BEHAVIORAL MODELING 12.6 THE MECHANICS OF STRUCTURED ANALYSIS 12.6.1 Creating an Entity-Relationship Diagram 12.6.2 Creating a Data Flow Model 12.6.3 Creating a Control Flow Model 12.6.4 The Control Specification 12.6.5 The Process Specification 12.7 THE DATA DICTIONARY 12.8 AN OVERVIEW OF OTHER CLASSICAL ANALYSIS METHODS 12.8.1 Data Structured Systems Development 12.8.2 Jackson System Development 12.8.3 SADT 12.9 SUMMARY REFERENCES PROBLEMS AND POINTS TO PONDER FURTHER READINGS AND OTHER INFORMATION SOURCES CHAPTER 13 DESIGN CONCEPTS AND PRINCIPLES 13.1 SOFTWARE DESIGN AND SOFTWARE ENGINEERING 13.2 THE DESIGN PROCESS 13.2.1 Design and Software Quality 13.2.2 The Evolution of Software Design 13.3 DESIGN PRINCIPLES 13.4 DESIGN CONCEPTS 13.4.1 Abstraction 13.4.2 Refinement 13.4.3 Modularity 13.4.4 Software Architecture 13.4.5 Control Hierarchy 13.4.6 Structural Partitioning 13.4.7 Data Structure 13.4.8 Software Procedure 13.4.9 Information Hiding 13.5 EFFECTIVE MODULAR DESIGN 13.5.1 Functional Independence 13.5.2 Cohesion 13.5.3 Coupling 13.6 DESIGN HEURISTICS FOR EFFECTIVE MODULARITY 13.7 THE DESIGN MODEL 13.8 DESIGN DOCUMENTATION 13.9 SUMMARY REFERENCES PROBLEMS AND POINTS TO PONDER FURTHER READINGS AND OTHER INFORMATION SOURCES CHAPTER 14 DESIGN METHODS 14.1 DATA DESIGN 14.2 ARCHITECTURAL DESIGN 14.2.1 Contributors 14.2.2 Areas of Application 14.3 THE ARCHITECTURAL DESIGN PROCESS 14.3.1 Transform Flow 14.3.2 Transaction Flow 14.4 TRANSFORM MAPPING 14.4.1 An Example 14.4.2 Design Steps 14.5 TRANSACTION MAPPING 14.5.1 An Example 14.5.2 Design Steps 14.6 DESIGN POSTPROCESSING 14.7 ARCHITECTURAL DESIGN OPTIMIZATION 14.8 INTERFACE DESIGN 14.8.1 Internal and External Interface Design 14.8.2 User Interface Design 14.9 HUMAN-COMPUTER INTERFACE DESIGN 14.9.1 Interface Design Models 14.9.2 Task Analysis and Modeling 14.9.3 Design Issues 14.9.4 Implementation Tools 14.9.5 Design Evaluation 14. 10 INTERFACE DESIGN GUIDELINES 14. 10. 1 General Interaction 14.10.2 Information Display 14.10.3 Data Input 14.11 PROCEDURAL DESIGN 14.11.1 Structured Programming 14.11.2 Graphical Design Notation 14.11.3 Tabular Design Notation 14.11.4 Program Design Language 14.11.5 A PDL Example 14.12 SUMMARY REFERENCES PROBLEMS AND POINTS TO PONDER FURTHER READINGS AND OTHER INFORMATION SOURCES CHAPTER 15 DESIGN FOR REAL-TIME SYSTEMS 15.1 SYSTEM CONSIDERATIONS 15.2 REAL-TIME SYSTEMS 15.2.1 Integration and Performance Issues 15.2.2 Interrupt Handling 15.2.3 Real-Time Data Bases 15.2.4 Real-Time Operating Systems 15.2.5 Real-Time Languages 15.2.6 Task Synchronization and Communication 15.3 ANALYSIS AND SIMULATION OF REAL-TIME SYSTEMS 15.3.1 Mathematical Tools for Real-Time System Analysis 15.3.2 Simulation and Modeling Techniques 15.4 REAL-TIME DESIGN 15.5 SUMMARY REFERENCES PROBLEMS AND POINTS TO PONDER FURTHER READINGS AND OTHER INFORMATION SOURCES CHAPTER 16 SOFTWARE TESTING METHODS 16.1 SOFTWARE TESTING FUNDAMENTALS 16. 1.1 Testing Objectives 16.1.2 Testing Principles 16.1.3 Testability 16.2 TEST CASE DESIGN 16.3 WHITE BOX TESTING 16.4 BASIS PATH TESTING 16.4.1 Flow Graph Notation 16.4.2 Cyclomatic Complexity 16.4.3 Deriving Test Cases 16.4.4 Graph Matrices 16.5 CONTROL STRUCTURE TESTING 16.5.1 Condition Testing 16.5.2 Data Flow Testing 16.5.3 Loop Testing 16.6 BLACK-BOX TESTING 16.6.1 Graph-Based Testing Methods 16.6.2 Equivalence Partitioning 16.6.3 Boundary Value Analysis 16.6.4 Comparison Testing 16.7 TESTING FOR SPECIALIZED ENVIRONMENTS 16.7.1 Testing GUIs 16.7.2 Testing of Client/Server Architectures 16.7.3 Testing Documentation and Help Facilities 16.7.4 Testing for Real-Time Systems 16.8 SUMMARY REFERENCES PROBLEMS AND POINTS TO PONDER FURTHER READINGS AND OTHER INFORMATION SOURCES CHAPTER 17 SOFTWARE TESTING STRATEGIES 17.1 A STRATEGIC APPROACH TO SOFTWARE TESTING 17. 1.1 Verification and Validation 17.1.2 Organizing for Software Testing 17.1.3 A Software Testing Strategy 17.1.4 Criteria for Completion of Testing 17.2 STRATEGIC ISSUES 17.3 UNIT TESTING 17.3.1 Unit Test Considerations 17.3.2 Unit Test Procedures 17.4 INTEGRATION TESTING 17.4.1 Top-Down Integration 17.4.2 Bottom-Up Integration 17.4.3 Regression Testing 17.4.4 Comments on Integration Testing 17.4.5 Integration Test Documentation 17.5 VALIDATION TESTING 17.5.1 Validation Test Criteria 17.5.2 Configuration Review 17.5.3 Alpha and Beta Testing 17.6 SYSTEM TESTING 17.6.1 Recovery Testing 17.6.2 Security Testing 17.6.3 Stress Testing 17.6.4 Performance Testing 17.7 THE ART OF DEBUGGING 17.7.1 The Debugging Process 17.7.2 Psychological Considerations 17.7.3 Debugging Approaches 17.8 SUMMARY REFERENCES PROBLEMS AND POINTS TO PONDER FURTHER READINGS AND OTHER INFORMATION SOURCES CHAPTER 18 TECHNICAL METRICS FOR SOFTWARE 18.1 SOFTWARE QUALITY 181.1 McCall’s Quality Factors 18.1.2 FURPS 18.1.3 The Transition to a Quantitative View 18.2 A FRAMEWORK FOR TECHNICAL SOFTWARE METRICS 18.2.1 The Challenge of Technical Metrics 18.2.2 Measurement Principles 18.2.3 The Attributes of Effective Software Metrics 18.3 METRICS FOR THE ANALYSIS MODEL 18.3.1 Function-Based Metrics 18.3.2 The Bang Metric 18.3.3 Metrics for Specification Quality 18.4 METRICS FOR THE DESIGN MODEL 18.4.1 High-Level Design Metrics 18.4.2 Component-Level Design Metrics 18.4.3 Interface Design Metrics 18.5 METRICS FOR SOURCE CODE 18.6 METRICS FOR TESTING 18.7 METRICS FOR MAINTENANCE 18.8 SUMMARY REFERENCES PROBLEMS AND POINTS TO PONDER FURTHER READINGS AND OTHER INFORMATION SOURCES PART FOUR OBJECT-ORIENTED SOFTWARE ENGINEERING CHAPTER 19 OBJECT-ORIENTED CONCEPTS AND PRINCIPLES 19.1 THE OBJECT-ORIENTED PARADIGM 19.2 OBJECT-ORIENTED CONCEPTS 19.2.1 Classes and Objects 19.2.2 Attributes 19.2.3 Operations , Methods, and Services 19.2.4 Messages 19.2.5 Encapsulation, Inheritance, and Polymorphism 19.3 IDENTIFYING THE ELEMENTS OF AN OBJECT MODEL 19.3.1 Identifying Classes and Objects 19.3.2 Specifying Attributes 19.3.3 Defining Operations 19.3.4 Finalizing the Object Definition 19.4 MANAGEMENT OF OBJECT-ORIENTED SOFTWARE PROJECTS 19.4.1 The Common Process Framework for 00 19.4.2 Object-Oriented Project Metrics and Estimation 19.4.3 An 00 Estimating and Scheduling Approach 19.4.4 Progress for an Object-Oriented Project 19.5 SUMMARY REFERENCES PROBLEMS AND POINTS TO PONDER FURTHER READINGS AND OTHER INFORMATION SOURCES CHAPTER 20 OBJECT-ORIENTED ANALYSIS 20.1 OBJECT-ORIENTED ANALYSIS 20. 1.1 Conventional vs. 00 Approaches 20.1.2 The OOA Landscape 20.2 DOMAIN ANALYSIS 20.2.1 Reuse and Domain Analysis 20.2.2 The Domain Analysis Process 20.3 GENERIC COMPONENTS OF THE 00 ANALYSIS MODEL 20.4 THE OOA PROCESS 20.4.1 Use Cases 20.4.2 Class-Responsibility-Collaborator Modeling 20.4.3 Defining Structures and Hierarchies 20.4.4 Defining Subjects and Subsystems 20.5 THE OBJECT-RELATIONSHIP MODEL 20.6 THE OBJECT-BEHAVIOR MODEL 20.6.1 Event Identification with Use Cases 20.6.2 State Representations 20.7 SUMMARY REFERENCES PROBLEMS AND POINTS TO PONDER FURTHER READINGS AND OTHER INFORMATION SOURCES CHAPTER 21 OBJECT-ORIENTED DESIGN 21.1 DESIGN FOR OBJECT-ORIENTED SYSTEMS 2 1. 1. 1 Conventional vs. 00 Approaches 21.1.2 Design Issues 21.1.3 The OOD Landscape 21.2 THE GENERIC COMPONENTS OF THE 00 DESIGN MODEL 21.3 THE SYSTEM DESIGN PROCESS 21.3.1 Partitioning the Analysis Model 21.3.2 Concurrency and Subsystem Allocation 21.3.3 The Task Management Component 21.3.4 The Data Management Component 21.3.5 The Resource Management Component 21.3.6 The Human-Computer Interface Component 21.3.7 Inter-Subsystem Communication 21.4 THE OBJECT DESIGN PROCESS 21.4.1 Object Descriptions 21.4.2 Designing Algorithms and Data Structures 21.4.3 Program Components and Interfaces 21.5 DESIGN PATTE R N S 21.5.1 Describing a Design Pattern 21.5.2 Using Patterns in Design 21.6 OBJECT-ORIENTED PROGRAMMING 21.7 SUMMARY REFERENCES PROBLEMS.AND POINTS TO PONDER FURTHER READINGS AND OTHER INFORMATION SOURCES CHAPTER 22 OBJECT-ORIENTED TESTING 22.1 BROADENING THE VIEW OF TESTING 22.2 TESTING OOA AND OOD MODELS 22.2.1 Correctness of OOA and OOD Models 22.2.2 Consistency of OOA and OOD Models 22.3 OBJECT-ORIENTED TESTING STRATEGIES 22.3.1 Unit Testing in the 00 Context 22.3.2 Integration Testing in the 00 Context 22.3.3 Validation Testing in an 00 Context 22.4 TEST CASE DESIGN FOR 00 SOFTWARE 22.4.1 The Test Case Design Implications of 00 Concepts 22.4.2 Applicability of Conventional Test Case Design Methods 22.4.3 Fault-Based Testing 22.4.4 The Impact of 00 Programming on Testing 22.4.5 Test Cases and the Class Hierarchy 22.4.6 Scenario-Based Test Design 22.4.7 Testing Surface Structure and Deep Structure 22.5 TESTING METHODS APPLICABLE AT THE CLASS LEVEL 22.5.1 Random Testing for 00 Classes 22.5.2 Partition Testing at the Class Level 22.6 INTERCLASS TEST CASE DESIGN 22.6.1 Multiple Class Testing 22.6.2 Tests Derived from Behavior Models 22.7 SUMMRY REFERENCES PROBLEMS AND POINTS TO PONDER FURTHER READINGS AND OTHER INFORMATION SOURCES CHAPTER 23 TECHNICAL METRICS FOR OBJECT-ORIENTED SYSTEMS 23.1 THE INTENT OF OBJECT-ORIENTED METRICS 23.2 THE DISTINGUISHING CHARACTERISTICS 23.2.1 Localization 23.2.2 ‘Encapsulation 23.2.3 Information hiding, 23.2.4 Inheritance 23.2.5 Abstraction 23.3 METRICS FOR THE 00 DESIGN MODEL 23.4 CLASS-ORIENTED METRICS, 23.4.1 The CK Metrics Suite 23.4.2 Metrics Proposed by Lorenz and Kidd 23.5 OPERATION-ORIENTED METRICS 23.6 METRICS FOR OBJECT-ORIENTED TESTING 23.7 METRICS FOR OBJECT-ORIENTED PROJECTS 23.8 SUMM ARY REFERENCES PROBLEMS AND POINTS TO PONDER FURTHER READINGS AND OTHER INFORMAT 1ON SOURCES CHAPTER 24 FORMAL METHODS 24.1 BASIC CONCEPTS 24. 1. 1 Deficiencies of Less Formal Approaches 24.1.2 Mathematics in Software Development 24.1.3 Formal Methods Concepts 24.2 MATHEMATICAL PRELIMINARIES 24.2.1 Sets and Constructive Specification 24.2.2 Set.Operators 24.2.3 Logic Operators 24.3 APPLYING MATHEMATICAL NOTATION FOR FORMAL SPECIFICATION 24.4 FORMAL SPECIFICATION LANGUAGES 24.5 USING ZTO REPRESENT AN EXAMPLE SOFTWARE COMPONENT 24.6 THE TEN COMMANDMENTS OF FORMAL METHODS 24.7 FORMAL METHODS-THE ROAD AHEAD 24.8 SUMMARY REFERENCES PROBLEMS AND POINTS TO PONDER FURTHER READINGS AND OTHER INFORMATION SOURCES CHAPTER 25 CLEANROOM SOFTWARE ENGINEERING 25.1 THE CLEANROOM APPROACH 25. ].1 The Cleanroom Strategy 25.1.2 What Makes Cleanroom Different? 25.2 FUNCTIONAL SPECIFICATION 25.2.1 Black-Box Specification 25.2.2 State-Box Specification 25.2.3 Clear-Box Specification 25.3 DESIGN REFINEMENT AND VERIFICATION 25.3.1 Design Refinement and Verification 25.3.2 Advantages of Design Verification 25.4 CLEANROOM TESTING 25.4.1 Statistical Use Testing 25.4.2 C-ertification 25.5 SUMMARY REFERENCES PROBLEMS AND POINTS TO PONDER FURTHER READINGS AND OTHER INFORMATION SOURCES CHAPTER 26 SOFTWARE REUSE 26.1 MANAGEMENT ISSUES 26. ].1 Roadblocks to Reuse 26-1.2 A Hardware Analogy 26.1.3 Some Suggestions for Establishing an Approach to Reuse 26.2 THE REUSE PROCESS 26.2.1 Reusable Artifacts 26.2.2 A Process Model 26.3 DOMAIN ENGINEERING 26.3.1 The Domain Analysis Process 26.3.2 Characterization Functions 26.3.3 Structural Modeling and Structure Points 26.4 BUILDING REUSABLE COMPONENTS 26.4.1 Analysis and Design for Reuse 26.4.2 Construction Methods 26.4.3 Component-Based Development 26.5 CLASSIFYING AND RETRIEVING COMPONENTS 26.5.1 Describing Reusable Components 26.5.2 The Reuse Environment 26.6 ECONOMICS OF SOFTWARE REUSE 26.6.1 Impact on Quality, Productivity, and Cost 26.6.2 Cost Analysis Using Structure Points 26.6.3 Reuse Metrics 26.7 SUMMARY REFERENCES PROBLEMS AND POINTS TO PONDER FURTHER READINGS AND OTHER INFORMATION SOURCES CHAPTER 27 REENGINEERING 27.1 BUSINESS PROCESS REENGINEERING 27.1.1 Business Processes 27.1.2 Principles of Business Process Reengineering 27.1.3 A BPR Model 27.1.4 Words of Warning 27.2 SOFTWARE REENGINEERING 27.2.1 Software Maintenance 27.2.2 A Software Reengineering Process Model 27.3 REVERSE ENGINEERING 27.3.1 Reverse Engineering to Understand Processing 27.3.2 Reverse Engineering to Understand Data 27.3.3 Reverse Engineering User Interfaces 27.4 RESTRUCTURING 27.4.1 Code Restructuring 27.4.2 Data Restructuring 27.5 FORWARD ENGINEERING 27.5.1 Forward Engineering for Client/Server Architectures 27.5.2 Forward Engineering for Object-Oriented Architectures 27.5.3 Forward Engineering User Interfaces 27.6 THE ECONOMICS OF REENGINEERING 27.7 SUMMARY REFERENCES PROBLEMS AND POINTS TO PONDER FURTHER READINGS AND OTHER INFORMATION SOURCES CHAPTER 28 CLIENT/SERVER SOFTWARE ENGINEERING 28.1 THE STRUCTURE OF CLIENT/SERVER SYSTEMS 28.1.1 Software Components for C/S Systems 28.1.2 The Distribution of Software Components 28.1.3 Guidelines for Distributing Application Components 28.1.4 Linking C/S Software Components 28-1.5 Middleware and Object Request Broker Architectures 28.2 SOFTWARE ENGINEERING FOR C/S SYSTEMS 28.3 ANALYSIS MODELING ISSUES 28.4 DESIGN FOR C/S SYSTEMS 28.4.1 Conventional Design Approaches 28.4.2 Database Design 28.4.3 An Overview of a Design Approach 28-4.4 Process Design Iteration 28.5 TESTING ISSUES 28.5.1 Overall C/S Testing Strategy 28.5.2 C/S Testing Tactics 28.6 SUMMARY REFERENCES PROBLEMS AND POINTS TO PONDER FURTHER READINGS AND OTHER INFORMATION SOURCES CHAPTER 29 COMPUTER-AIDED SOFTWARE ENGINEERING 29.1 WHAT IS CASE? 29.2 BUILDING BLOCKS FOR CASE 29.3 A TAXONOMY OF CASE TOOLS 29.4 INTEGRATED CASE ENVIRONMENTS 29.5 THE INTEGRATION ARCHITECTURE 29.6 THE CASE REPOSITORY 29.6.1 The Role of the Repository in I-CASE 29.6.2 Features and Content 29.7 SUMMARY REFERENCES PROBLEMS AND POINTS TO PONDER FURTHER READINGS AND OTHER INFORMATION SOURCES CHAPTER 30 THE ROAD AHEAD 30.1 THE IMPORTANCE OF SOFTWARE-REVISITED 30.2 THE SCOPE OF CHANGE 30.3 PEOPLE AND THE WAY THEY BUILD SYSTEMS 30.4 THE “NEW” SOFTWARE PROCESS 30.5 NEW MODES FOR REPRESENTING INFORMATION 30.6 TECHNOLOGY AS A DRIVER 30.7 A CONCLUDING COMMENT REFERENCES PROBLEMS AND POINTS TO PONDER FURTHER READINGS AND OTHER INFORMATION SOURCES INDEX |