书籍详情
面向对象与经典软件工程:英文版
作者:(美)Stephen R.Schach著
出版社:机械工业出版社
出版时间:2002-08-01
ISBN:9787111108436
定价:¥59.00
购买这本书可以去
内容简介
作者在本书的第5版讨论了该领域最新的话题并针对教学进行了修改。新增加的“如何实现”这部分总结了重要的技巧、新大纲、新要点以及更加具体的案例研究,突出了教学上的改进,增强了实用性。为便于学生阅读,作者将本书分成两个部分:第1部分论述了软件工程的理论基础,第2部分阐述了生命周期的各个阶段。第2部分的主要特性是通过案例研究描述了所用的技巧。在第5版中,作者对连续的案例研究进行了更加详细的说明,以使学生更好地理解如何在实际中应用所学的技巧。给出的研究课题需要学生对案例研究进行修改,使学生能在干中学。
作者简介
暂缺《面向对象与经典软件工程:英文版》作者简介
目录
Preface
PART 1 Introduction to Software Engineering
Chapter 1 The Scope of Software Engineering
1.1 Historical Aspects
1.2 Economic Aspects
1.3 Maintenance Aspects
1.4 Specification and Design Aspects
1.5 Team Programming Aspects
1.6 The Object-Oriented Paradigm
1.7 Terminology
Chapter Review
For Further Reading
Problems
References
Chapter 2 The Software Process
2.1 Client, Developer, and User
2.2 Requirements Phase
2.2.1 Requirements Phase Testing
2.2.2 Requirements Phase Documentation
2.3 Specification Phase
2.3.1 Specification Phase Testing
2.3.2 Specification Phase Documentation
2.4 Design Phase
2.4.1 Design Phase Testing
2.4.2 Design Phase Documentation
2.5 Implementation Phase
2.5.1 Implementation Phase Testing
2.5.2 Implementation Phase Documentation
2.6 Integration Phase
2.6.1 Integration Phase Testing
2.6.2 Integration Phase Documentation
2.7 Maintenance Phase
2.7.1 Maintenance Phase Testing
2.7.2 Maintenance Phase Documentation
2.8 Retirement
2.9 Problems with Software Production: Essence and Accidents
2.9.1 Complexity
2.9.2 Conformity
2.9.3 Changeability
2.9.4 Invisibility
2.9.5 No Si1verBullet?
2.10 Improving the Software Process
2.11 Capability Maturity Models
2.12 Other Software Process Improvement Initiatives
2.13 Costs and Benefits of Software Process Improvement
Chanter Review
For Further Reading
Problems
References
Chapter 3 Software Life-Cycle Models
3.1 Build-and-Fix Model
3.2 Waterfall Model
3.2.1 Analysis of the Waterfall Model
3.3 Rapid Prototyping Model
3.3.1 Integrating the Waterfall and Rapid Prototyping Models
3.4 Incremental Model
3.4.1 Analysis of the Incremental Model
3.5 Extreme Programming
3.6 Synchronize-and-Stabilize Model
3.7 Spiral Model
3.7.1 Analysis of the Spiral Model
3.8 Object-Oriented Life-Cycle Models
3.9 Comparison of Life-Cycle Models
Chapter Review
For Further Reading
Problems
References
Chapter 4 Teams
4.1 Team Organization
4.2 Democratic Team Approach
4.2.1 Analysis of the Democratic Team Approach
4.3 Classical Chief Programmer Team Approach
4.3.1 The New York Times Project
4.3.2 Impracticality of the Classical Chief Programmer Team Approach
4.4 Beyond Chief Programmer and Democratic Teams
4.5 Synchronize-and-Stabilize Teams
4.6 Extreme Programming Teams
Chapter Review
For Further Reading
Problems
References
Chapter 5 The Tools Of the Trade
5.1 Stepwise Refinement
5.1.1 Stepwise Refinement Example
5.2 Cost-Benefit Analysis
5.3 Software Metrics
5.4 CASE
5.5 Taxonomy of CASE
5.6 Scope of CASE
5.7 Software Versions
5.7.1 Revisions
5.7.2 Variations
5.8 Configuration Control
5.8.1 Configuration Control during Product Maintenance
5.8.2 Baselines
5.8.3 Configuration Control during Product Development
5.9 Build Tools
5.10 Productivity Gains with CASE Technology
Chapter Review
For Further Reading
Problems
References
Chapter 6 Testing
6.1 Quality Issues
6.1.1 Software Quality Assurance
6.1.2 Managerial Independence
6.2 Nonexecution-Based Testing
6.2.1 Walkthroughs
6.2.2 Managing Walkthroughs
6.2.3 Inspections
6.2.4 Comparison of Inspections and Walkthroughs
6.2.5 Strengths and Weaknesses of Reviews
6.2.6 Metrics for Inspections
6.3 Execution-Based Testing
6.4 What Should Be Tested?
6.4.1 Utility
6.4.2 Reliability
6.4.3 Robustness
6.4.4 Performance
6.4.5 Correctness
6.5 Testing versus Correctness Proofs
6.5.1 Example of a Correctness Proofs
6.5.2 Correctness Proof Case Study
6.5.3 Correctness Proof and Software Engineering
6.6 Who Should Perform Execution-Based Testing?
6.7 When Testing Stops
Chapter Review
For Further Reading
Problems
References
Chapter 7 From Modules to Objects
7.1 What Is a Module?
7.2 Cohesion
7.2.1 Coincidental Cohesion
7.2.2 Logical Cohesion
7.2.3 Temporal Cohesion
7.2.4 Procedural Cohesion
7.2.5 Communicational Cohesion
7.2.6 Functional Cohesion
7.2.7 Informational Cohesion
7.2.8 Cohesion Example
7.3 Coupling
7.3.1 Content Coupling
7.3.2 Common Coupling
7.3.3 Control Coupling
7.3.4 Stamp Coupling
7.3.5 Data Coupling
7.3.6 Coupling Example
7.3.7 The Importance of Coupling
7.4 Data Encapsulation
7.4.1 Data Encapsulation and Product Development
7.4.2 Data Encapsulation and Product Maintenance
7.5 Abstract Data Types
7.6 Infromation Hiding
7.7 Objects
7.8 Inheritance, Polymorphism, and Dynamic Binding
7.9 Cohesion and Coupling of Objects
7.10 The Object-Oriented Paradigm
Chapter Review
For Further Reading
Problems
References
Chapter 8 Reusability Portability, and Interoperability
8.1 Reuse Concepts
8.2 Impediments to Reuse
8.3 Reuse Case Studies
8.3.1 Raytheon Missi1e Systems Division
8.3.2 Toshiba software Factory
8.3.3 NASA Software
8.3.4 GTE Data Services
8.3.5 Hewlett-Packard
8.3.6 European Space Agency
8.4 Objects and Reuse
8.5 Reuse during the Design and Implementation Phases
8.5.1 Design Reuse
8.5.2 Application Frameworks
8.5.3 Design Patterns
8.5.4 Software Architecture
8.6 Reuse and Maintenance
8.7 Portability
8.7.1 Ware Incompatibilities
8.7.2 Operating Systems Incompatibilities
8.7.3 Numerical Software Incompatibilities
8.7.4 Compiler Incompatibilities
8.8 Why Portability?
8.9 Techniques for Achieving Portability
8.9.1 Portable System Software
8.9.2 Portable Application Software
8.9.3 Portable Data
8.10 Interoperability
8.10.1 COM
8.10.2 CORBA
8.10.3 Comparing COM and CORBA
8.11 Future Trends in Interoperability
Chapter Review For Further Reading
Problems
References
Chapter 9 Planning and Estimating
9.1 Planning and the Software Process
9.2 Estimating Duration and Cost
9.2.1 Metrics for the Size of a Product
9.2.2 Techniques of Cost Estimation
9.2.3 Intermediate COCOMO
9.2.4 COCOMO II
9.2.5 Tracking Duration and Cost Estimates
9.3 Components of a Software Project Management Plan
9.4 software Project Management Plan Framework
9.5 IEEE Software Project Management Plan
9.6 Planning Testing
9.7 Planning Object-Oriented Projects
9.8 Training Requirements
9.9 Documentation Standards
9.10 CASE Tools for Planning and Estimating
9.11 Testing the Software Project Management Plan
Chapter Review
For Further Reading
Problems
References
PART 2 The Phases of the Software Life Cycle
Chapter 1O Requirements Phase
10.1 Requirements Elicitation
10.1.1 Interviews
10.1.2 Scenarios
10.1.3 Other Requirements Elicitation Techniques
10.2 Requirements Analysis
10.3 Rapid Prototyping
10.4 Human Factors
10.5 Rapid Prototyping as a Specification Technique
10.6 Reusing the Rapid Prototype
10.7 Management Implications of the Rapid Prototyping Model
10.8 Experiences with Rapid Prototyping
10.9 Techniques for Requirements Elicitation and Analysis
10.10 Testing during the Requirements Phase
10.11 CASE Tools for the Requirements Phase
10.12 Metrics for the Requirements Phase
10.13 Object-Oriented Requirements?
10.14 Air Gourmet Case Study: Requirements Phase
10.15 Air Gourmet Case Study: Rapid Prototype
10.16 Challenges of the Requirements Phase
Chapter Review
For Further Reading
Problems
References
Chapter 11 Specification Phase
11.1 The Specification Document
11.2 Informal Specifications
11.2.1 Case Study: Text Processing
11.3 Structured Systems Analysis
11.3.1 Sally's Software Shop
11.4 Other Semiformal Techniques
11.5 Entity-Relationship Modeling
11.6 Finite State Machines
11.6.1 Elevator Problem: Finite State Machines
11.7 Petri Nets
11.7.1 Elevator Problem: Petri Nets
11.8 Z
11.8.1 Elevator Problem: Z
11.8.2 Analysis of Z
11.9 Other Formal Techniques
11.10 Comparison of Specification Techniques
11.11 Testing during the Specification Phase
11.12 CASE Tools for the Specification Phase
11.13 Metrics for the Specification Phase
11.14 Air Gourmet Case Study: Structured Systems Analysis
11.15 Air Gourmet Case Study: Software Project Management Plan
11.16 Challenges of the Specification Phase
Chapter Review
For Further Reading
Problems
References
Chapter 12 Object-Oriented Analysis Phase
12.1 Object-Oriented Analysis
12.2 Elevator Problem: Object-Oriented Analysis
12.3 Use-Case Modeling
12.4 Class Modeling
12.4.1 Noun Extraction
12.4.2 CRC Cards
12.5 Dynamic Modeling
12.6 Testing during the Object-Oriented Analysis Phase
12.7 CASE Tools for the Object-Oriented Analysis Phase
12.8 Air Gourmet Case Study: Object-Oriented Analysis
12.9 Challenges of the Object-Oriented Analysis Phase
Chapter Review
For Further Reading
Problems
References
Chapter 13 Design Phase
13.1 Design and Abstraction
13.2 Action-Oriented Design
13.3 Data Flow Analysis
13.3.1 Data Flow Analysis Example
13.3.2 Extensions
13.4 Transaction Analysis
13.5 Data-Oriented Design
13.6 Object-Oriented Design
13.7 Elevator Problem: Object-Oriented Design
13.8 Formal Techniques for Detailed Design
13.9 Real-Time Design Techniques
13.10 Testing during the Design Phase
13.11 CASE Tools for the Design Phase
13.12 Metrics for the Design Phase
13.13 Air Gourmet Case Study: Object-Oriented Design
13.14 Challenges of the Design Phase
Chapter Review
For Further Reading
Problems
References
Chapter 14 Implementation Phase
14.1 Choice of Programming Language
14.2 Fourth-Generation Languages
14.3 Good Programming Practice
14.4 Coding Standards
14.5 Module Reuse
14.6 Module Test Case Selection
14.6.1 Testing to Specifications versus Testing to Code
14.6.2 Feasibility of Testing to Specifications
14.6.3 Feasibility of Testing to Code
14.7 Black-Box Module-Testing Techniques
14.7.1 Equivalence Testing and Boundary Value Analysis
14.7.2 Functional Testing
14.8 Glass-Box Module-Testing Techniques
14.8.1 Structural Testing: Statement, Branch, and Path Coverage
14.8.2 Complexity Metrics
14.9 Code Walkthroughs and Inspections
14.10 Comparison of Module-Testing Techniques
14.11 Cleanroom
14.12 Potential Problems When Testing Objects
14.13 Management Aspects of Module Testing
14.14 When to Rewrite Rather than Debug a Module
14.15 CASE Tools for the Implementation Phase
14.16 Air Gourmet Case Study: Black-Box Test Cases
14.17 Challenges of the Implementation Phase
Chapter Review
For Further Reading
Problems
References
Chapter 15 Implementation and Integration Phase
15.1 Introduction to Implementation and Integration
15.1.1 Top-down Implementation and Integration
15.1.2 Bottom-up Implementation and Integration
15.1.3 Sandwich Implementation and Integration
15.1.4 Implementation and Integration of Object-Oriented Products
15.1.5 Management Issues during the Implementation and Integration Phase
15.2 Testing during the Implementation and Integration Phase
15.3 Integration Testing of Graphical User Interfaces
15.4 Product Testing
15.5 Acceptance Testing
15.6 CASE Tools for the Implementation and Integration Phase
15.6 CASE Tools for the Complete Software Process
15.8 Integrated Environments
15.9 Environments for Business Applications
15.10 Public Tool Infrastructures
15.11 Potential Problems with Environments
15.12 Metrics for the Implementation and Integration Phase
15.13 Air Gourmet Case Study: Implementation and Integration Phase
15.14 Challenges of the Implementation and Integration Phase
Chapter Review
For Further Reading
Problems
References
Chapter 16 Maintenance Phase
16.1 Why Maintenance Is Necessary
16.2 What Is Required of Maintenance Programmers
16.3 Maintenance Case Study
16.4 Management of Maintenance
16.4.1 Fault Reports
16.4.2 Authorizing Changes to the Product
16.4.3 Ensuring Maintainability
16.4.4 Problem of Repeated Maintenance
16.5 Maintenance of Object-Oriented Software
16.6 Maintenance Skills versus Development Skills
16.7 Reverse Engineering
16.8 Testing during the Maintenance Phase
16.9 CASE Tools for the Maintenance Phase
16.10 Metrics for the Maintenance Phase
16.11 Air Gourmet Case Study: Maintenance Phase
16.12 Challenges of the Maintenance Phase
Chapter Review
For Further Reading
Problems
References
Appendix A Broadlands Area Children's Hospital
Appendix B Software Engineering Resources
Appendix C Air Gourmet Case Study: C Rapid Prototype
Appendix D Air Gourmet Case Study: Java Rapid Prototype
Appendix E Air Gourmet Case Study: Structured Systems Analysis
Appendix F Air Gourmet Case Study: Software Project Management Plan
Appendix G Air Gourmet Case Study: Object-Object-Oriented Analysis
Appendix H Air Gourmet Case Study: Design for C++ Implementation
Appendix I Air Gourmet Case Study: Design for Java Implementation
Appendix J Air Gourmet Case Study: Black-Box Test Cases
Appendix K Air Gourmet Case Study: C++ Source Code
Appendix L Air Gourmet Case Study: Java Source Code
Bibliography
Author Index
Subject Index
PART 1 Introduction to Software Engineering
Chapter 1 The Scope of Software Engineering
1.1 Historical Aspects
1.2 Economic Aspects
1.3 Maintenance Aspects
1.4 Specification and Design Aspects
1.5 Team Programming Aspects
1.6 The Object-Oriented Paradigm
1.7 Terminology
Chapter Review
For Further Reading
Problems
References
Chapter 2 The Software Process
2.1 Client, Developer, and User
2.2 Requirements Phase
2.2.1 Requirements Phase Testing
2.2.2 Requirements Phase Documentation
2.3 Specification Phase
2.3.1 Specification Phase Testing
2.3.2 Specification Phase Documentation
2.4 Design Phase
2.4.1 Design Phase Testing
2.4.2 Design Phase Documentation
2.5 Implementation Phase
2.5.1 Implementation Phase Testing
2.5.2 Implementation Phase Documentation
2.6 Integration Phase
2.6.1 Integration Phase Testing
2.6.2 Integration Phase Documentation
2.7 Maintenance Phase
2.7.1 Maintenance Phase Testing
2.7.2 Maintenance Phase Documentation
2.8 Retirement
2.9 Problems with Software Production: Essence and Accidents
2.9.1 Complexity
2.9.2 Conformity
2.9.3 Changeability
2.9.4 Invisibility
2.9.5 No Si1verBullet?
2.10 Improving the Software Process
2.11 Capability Maturity Models
2.12 Other Software Process Improvement Initiatives
2.13 Costs and Benefits of Software Process Improvement
Chanter Review
For Further Reading
Problems
References
Chapter 3 Software Life-Cycle Models
3.1 Build-and-Fix Model
3.2 Waterfall Model
3.2.1 Analysis of the Waterfall Model
3.3 Rapid Prototyping Model
3.3.1 Integrating the Waterfall and Rapid Prototyping Models
3.4 Incremental Model
3.4.1 Analysis of the Incremental Model
3.5 Extreme Programming
3.6 Synchronize-and-Stabilize Model
3.7 Spiral Model
3.7.1 Analysis of the Spiral Model
3.8 Object-Oriented Life-Cycle Models
3.9 Comparison of Life-Cycle Models
Chapter Review
For Further Reading
Problems
References
Chapter 4 Teams
4.1 Team Organization
4.2 Democratic Team Approach
4.2.1 Analysis of the Democratic Team Approach
4.3 Classical Chief Programmer Team Approach
4.3.1 The New York Times Project
4.3.2 Impracticality of the Classical Chief Programmer Team Approach
4.4 Beyond Chief Programmer and Democratic Teams
4.5 Synchronize-and-Stabilize Teams
4.6 Extreme Programming Teams
Chapter Review
For Further Reading
Problems
References
Chapter 5 The Tools Of the Trade
5.1 Stepwise Refinement
5.1.1 Stepwise Refinement Example
5.2 Cost-Benefit Analysis
5.3 Software Metrics
5.4 CASE
5.5 Taxonomy of CASE
5.6 Scope of CASE
5.7 Software Versions
5.7.1 Revisions
5.7.2 Variations
5.8 Configuration Control
5.8.1 Configuration Control during Product Maintenance
5.8.2 Baselines
5.8.3 Configuration Control during Product Development
5.9 Build Tools
5.10 Productivity Gains with CASE Technology
Chapter Review
For Further Reading
Problems
References
Chapter 6 Testing
6.1 Quality Issues
6.1.1 Software Quality Assurance
6.1.2 Managerial Independence
6.2 Nonexecution-Based Testing
6.2.1 Walkthroughs
6.2.2 Managing Walkthroughs
6.2.3 Inspections
6.2.4 Comparison of Inspections and Walkthroughs
6.2.5 Strengths and Weaknesses of Reviews
6.2.6 Metrics for Inspections
6.3 Execution-Based Testing
6.4 What Should Be Tested?
6.4.1 Utility
6.4.2 Reliability
6.4.3 Robustness
6.4.4 Performance
6.4.5 Correctness
6.5 Testing versus Correctness Proofs
6.5.1 Example of a Correctness Proofs
6.5.2 Correctness Proof Case Study
6.5.3 Correctness Proof and Software Engineering
6.6 Who Should Perform Execution-Based Testing?
6.7 When Testing Stops
Chapter Review
For Further Reading
Problems
References
Chapter 7 From Modules to Objects
7.1 What Is a Module?
7.2 Cohesion
7.2.1 Coincidental Cohesion
7.2.2 Logical Cohesion
7.2.3 Temporal Cohesion
7.2.4 Procedural Cohesion
7.2.5 Communicational Cohesion
7.2.6 Functional Cohesion
7.2.7 Informational Cohesion
7.2.8 Cohesion Example
7.3 Coupling
7.3.1 Content Coupling
7.3.2 Common Coupling
7.3.3 Control Coupling
7.3.4 Stamp Coupling
7.3.5 Data Coupling
7.3.6 Coupling Example
7.3.7 The Importance of Coupling
7.4 Data Encapsulation
7.4.1 Data Encapsulation and Product Development
7.4.2 Data Encapsulation and Product Maintenance
7.5 Abstract Data Types
7.6 Infromation Hiding
7.7 Objects
7.8 Inheritance, Polymorphism, and Dynamic Binding
7.9 Cohesion and Coupling of Objects
7.10 The Object-Oriented Paradigm
Chapter Review
For Further Reading
Problems
References
Chapter 8 Reusability Portability, and Interoperability
8.1 Reuse Concepts
8.2 Impediments to Reuse
8.3 Reuse Case Studies
8.3.1 Raytheon Missi1e Systems Division
8.3.2 Toshiba software Factory
8.3.3 NASA Software
8.3.4 GTE Data Services
8.3.5 Hewlett-Packard
8.3.6 European Space Agency
8.4 Objects and Reuse
8.5 Reuse during the Design and Implementation Phases
8.5.1 Design Reuse
8.5.2 Application Frameworks
8.5.3 Design Patterns
8.5.4 Software Architecture
8.6 Reuse and Maintenance
8.7 Portability
8.7.1 Ware Incompatibilities
8.7.2 Operating Systems Incompatibilities
8.7.3 Numerical Software Incompatibilities
8.7.4 Compiler Incompatibilities
8.8 Why Portability?
8.9 Techniques for Achieving Portability
8.9.1 Portable System Software
8.9.2 Portable Application Software
8.9.3 Portable Data
8.10 Interoperability
8.10.1 COM
8.10.2 CORBA
8.10.3 Comparing COM and CORBA
8.11 Future Trends in Interoperability
Chapter Review For Further Reading
Problems
References
Chapter 9 Planning and Estimating
9.1 Planning and the Software Process
9.2 Estimating Duration and Cost
9.2.1 Metrics for the Size of a Product
9.2.2 Techniques of Cost Estimation
9.2.3 Intermediate COCOMO
9.2.4 COCOMO II
9.2.5 Tracking Duration and Cost Estimates
9.3 Components of a Software Project Management Plan
9.4 software Project Management Plan Framework
9.5 IEEE Software Project Management Plan
9.6 Planning Testing
9.7 Planning Object-Oriented Projects
9.8 Training Requirements
9.9 Documentation Standards
9.10 CASE Tools for Planning and Estimating
9.11 Testing the Software Project Management Plan
Chapter Review
For Further Reading
Problems
References
PART 2 The Phases of the Software Life Cycle
Chapter 1O Requirements Phase
10.1 Requirements Elicitation
10.1.1 Interviews
10.1.2 Scenarios
10.1.3 Other Requirements Elicitation Techniques
10.2 Requirements Analysis
10.3 Rapid Prototyping
10.4 Human Factors
10.5 Rapid Prototyping as a Specification Technique
10.6 Reusing the Rapid Prototype
10.7 Management Implications of the Rapid Prototyping Model
10.8 Experiences with Rapid Prototyping
10.9 Techniques for Requirements Elicitation and Analysis
10.10 Testing during the Requirements Phase
10.11 CASE Tools for the Requirements Phase
10.12 Metrics for the Requirements Phase
10.13 Object-Oriented Requirements?
10.14 Air Gourmet Case Study: Requirements Phase
10.15 Air Gourmet Case Study: Rapid Prototype
10.16 Challenges of the Requirements Phase
Chapter Review
For Further Reading
Problems
References
Chapter 11 Specification Phase
11.1 The Specification Document
11.2 Informal Specifications
11.2.1 Case Study: Text Processing
11.3 Structured Systems Analysis
11.3.1 Sally's Software Shop
11.4 Other Semiformal Techniques
11.5 Entity-Relationship Modeling
11.6 Finite State Machines
11.6.1 Elevator Problem: Finite State Machines
11.7 Petri Nets
11.7.1 Elevator Problem: Petri Nets
11.8 Z
11.8.1 Elevator Problem: Z
11.8.2 Analysis of Z
11.9 Other Formal Techniques
11.10 Comparison of Specification Techniques
11.11 Testing during the Specification Phase
11.12 CASE Tools for the Specification Phase
11.13 Metrics for the Specification Phase
11.14 Air Gourmet Case Study: Structured Systems Analysis
11.15 Air Gourmet Case Study: Software Project Management Plan
11.16 Challenges of the Specification Phase
Chapter Review
For Further Reading
Problems
References
Chapter 12 Object-Oriented Analysis Phase
12.1 Object-Oriented Analysis
12.2 Elevator Problem: Object-Oriented Analysis
12.3 Use-Case Modeling
12.4 Class Modeling
12.4.1 Noun Extraction
12.4.2 CRC Cards
12.5 Dynamic Modeling
12.6 Testing during the Object-Oriented Analysis Phase
12.7 CASE Tools for the Object-Oriented Analysis Phase
12.8 Air Gourmet Case Study: Object-Oriented Analysis
12.9 Challenges of the Object-Oriented Analysis Phase
Chapter Review
For Further Reading
Problems
References
Chapter 13 Design Phase
13.1 Design and Abstraction
13.2 Action-Oriented Design
13.3 Data Flow Analysis
13.3.1 Data Flow Analysis Example
13.3.2 Extensions
13.4 Transaction Analysis
13.5 Data-Oriented Design
13.6 Object-Oriented Design
13.7 Elevator Problem: Object-Oriented Design
13.8 Formal Techniques for Detailed Design
13.9 Real-Time Design Techniques
13.10 Testing during the Design Phase
13.11 CASE Tools for the Design Phase
13.12 Metrics for the Design Phase
13.13 Air Gourmet Case Study: Object-Oriented Design
13.14 Challenges of the Design Phase
Chapter Review
For Further Reading
Problems
References
Chapter 14 Implementation Phase
14.1 Choice of Programming Language
14.2 Fourth-Generation Languages
14.3 Good Programming Practice
14.4 Coding Standards
14.5 Module Reuse
14.6 Module Test Case Selection
14.6.1 Testing to Specifications versus Testing to Code
14.6.2 Feasibility of Testing to Specifications
14.6.3 Feasibility of Testing to Code
14.7 Black-Box Module-Testing Techniques
14.7.1 Equivalence Testing and Boundary Value Analysis
14.7.2 Functional Testing
14.8 Glass-Box Module-Testing Techniques
14.8.1 Structural Testing: Statement, Branch, and Path Coverage
14.8.2 Complexity Metrics
14.9 Code Walkthroughs and Inspections
14.10 Comparison of Module-Testing Techniques
14.11 Cleanroom
14.12 Potential Problems When Testing Objects
14.13 Management Aspects of Module Testing
14.14 When to Rewrite Rather than Debug a Module
14.15 CASE Tools for the Implementation Phase
14.16 Air Gourmet Case Study: Black-Box Test Cases
14.17 Challenges of the Implementation Phase
Chapter Review
For Further Reading
Problems
References
Chapter 15 Implementation and Integration Phase
15.1 Introduction to Implementation and Integration
15.1.1 Top-down Implementation and Integration
15.1.2 Bottom-up Implementation and Integration
15.1.3 Sandwich Implementation and Integration
15.1.4 Implementation and Integration of Object-Oriented Products
15.1.5 Management Issues during the Implementation and Integration Phase
15.2 Testing during the Implementation and Integration Phase
15.3 Integration Testing of Graphical User Interfaces
15.4 Product Testing
15.5 Acceptance Testing
15.6 CASE Tools for the Implementation and Integration Phase
15.6 CASE Tools for the Complete Software Process
15.8 Integrated Environments
15.9 Environments for Business Applications
15.10 Public Tool Infrastructures
15.11 Potential Problems with Environments
15.12 Metrics for the Implementation and Integration Phase
15.13 Air Gourmet Case Study: Implementation and Integration Phase
15.14 Challenges of the Implementation and Integration Phase
Chapter Review
For Further Reading
Problems
References
Chapter 16 Maintenance Phase
16.1 Why Maintenance Is Necessary
16.2 What Is Required of Maintenance Programmers
16.3 Maintenance Case Study
16.4 Management of Maintenance
16.4.1 Fault Reports
16.4.2 Authorizing Changes to the Product
16.4.3 Ensuring Maintainability
16.4.4 Problem of Repeated Maintenance
16.5 Maintenance of Object-Oriented Software
16.6 Maintenance Skills versus Development Skills
16.7 Reverse Engineering
16.8 Testing during the Maintenance Phase
16.9 CASE Tools for the Maintenance Phase
16.10 Metrics for the Maintenance Phase
16.11 Air Gourmet Case Study: Maintenance Phase
16.12 Challenges of the Maintenance Phase
Chapter Review
For Further Reading
Problems
References
Appendix A Broadlands Area Children's Hospital
Appendix B Software Engineering Resources
Appendix C Air Gourmet Case Study: C Rapid Prototype
Appendix D Air Gourmet Case Study: Java Rapid Prototype
Appendix E Air Gourmet Case Study: Structured Systems Analysis
Appendix F Air Gourmet Case Study: Software Project Management Plan
Appendix G Air Gourmet Case Study: Object-Object-Oriented Analysis
Appendix H Air Gourmet Case Study: Design for C++ Implementation
Appendix I Air Gourmet Case Study: Design for Java Implementation
Appendix J Air Gourmet Case Study: Black-Box Test Cases
Appendix K Air Gourmet Case Study: C++ Source Code
Appendix L Air Gourmet Case Study: Java Source Code
Bibliography
Author Index
Subject Index
猜您喜欢