logo资料库

Object-Oriented and Classical Software Engineering, 8th edition.pdf

第1页 / 共688页
第2页 / 共688页
第3页 / 共688页
第4页 / 共688页
第5页 / 共688页
第6页 / 共688页
第7页 / 共688页
第8页 / 共688页
资料共688页,剩余部分请下载后查看
Cover
Title Page
Copyright
Contents
Preface
Chapter 1 The Scope of Software Engineering
Learning Objectives
1.1 Historical Aspects
1.2 Economic Aspects
1.3 Maintenance Aspects
1.3.1 Classical and Modern Views of Maintenance
1.3.2 The Importance of Postdelivery Maintenance
1.4 Requirements, Analysis, and Design Aspects
1.5 Team Development Aspects
1.6 Why There Is No Planning Phase
1.7 Why There Is No Testing Phase
1.8 Why There Is No Documentation Phase
1.9 The Object-Oriented Paradigm
1.10 The Object-Oriented Paradigm in Perspective
1.11 Terminology
1.12 Ethical Issues
Chapter Review
For Further Reading
Key Terms
Problems
References
PART A: SOFTWARE ENGINEERING CONCEPTS
Chapter 2 Software Life-Cycle Models
Learning Objectives
2.1 Software Development in Theory
2.2 Winburg Mini Case Study
2.3 Lessons of the Winburg Mini Case Study
2.4 Teal Tractors Mini Case Study
2.5 Iteration and Incrementation
2.6 Winburg Mini Case Study Revisited
2.7 Risks and Other Aspects of Iteration and Incrementation
2.8 Managing Iteration and Incrementation
2.9 Other Life-Cycle Models
2.10 Comparison of Life-Cycle Models
Chapter Review
For Further Reading
Key Terms
Problems
References
Chapter 3 The Software Process
Learning Objectives
3.1 The Unified Process
3.2 Iteration and Incrementation within the Object-Oriented Paradigm
3.3 The Requirements Workflow
3.4 The Analysis Workflow
3.5 The Design Workflow
3.6 The Implementation Workflow
3.7 The Test Workflow
3.8 Postdelivery Maintenance
3.9 Retirement
3.10 The Phases of the Unified Process
3.11 One- versus Two-Dimensional Life-Cycle Models
3.12 Improving the Software Process
3.13 Capability Maturity Models
3.14 Other Software Process Improvement Initiatives
3.15 Costs and Benefi ts of Software Process Improvement
Chapter Review
For Further Reading
Key Terms
Problems
References
Chapter 4 Teams
Learning Objectives
4.1 Team Organization
4.2 Democratic Team Approach
4.3 Classical Chief Programmer Team Approach
4.4 Beyond Chief Programmer and Democratic Teams
4.5 Synchronize-and-Stabilize Teams
4.6 Teams for Agile Processes
4.7 Open-Source Programming Teams
4.8 People Capability Maturity Model
4.9 Choosing an Appropriate Team Organization
Chapter Review
For Further Reading
Key Terms
Problems
References
Chapter 5 The Tools of the Trade
Learning Objectives
5.1 Stepwise Refinement
5.2 Cost–Benefit Analysis
5.3 Divide-and-Conquer
5.4 Separation of Concerns
5.5 Software Metrics
5.6 CASE
5.7 Taxonomy of CASE
5.8 Scope of CASE
5.9 Software Versions
5.10 Configuration Control
5.11 Build Tools
5.12 Productivity Gains with CASE Technology
Chapter Review
For Further Reading
Key Terms
Problems
References
Chapter 6 Testing
Learning Objectives
6.1 Quality Issues
6.2 Non-Execution-Based Testing
6.3 Execution-Based Testing
6.4 What Should Be Tested?
6.5 Testing versus Correctness Proofs
6.6 Who Should Perform Execution-Based Testing?
6.7 When Testing Stops
Chapter Review
For Further Reading
Key Terms
Problems
References
Chapter 7 From Modules to Objects
Learning Objectives
7.1 What Is a Module?
7.2 Cohesion
7.3 Coupling
7.4 Data Encapsulation
7.5 Abstract Data Types
7.6 Information Hiding
7.7 Objects
7.8 Inheritance, Polymorphism, and Dynamic Binding
7.9 The Object-Oriented Paradigm
Chapter Review
For Further Reading
Key Terms
Problems
References
Chapter 8 Reusability and Portability
Learning Objectives
8.1 Reuse Concepts
8.2 Impediments to Reuse
8.3 Reuse Case Studies
8.4 Objects and Reuse
8.5 Reuse during Design and Implementation
8.6 More on Design Patterns
8.7 Categories of Design Patterns
8.8 Strengths and Weaknesses of Design Patterns
8.9 Reuse and the World Wide Web
8.10 Reuse and Postdelivery Maintenance
8.11 Portability
8.12 Why Portability?
8.13 Techniques for Achieving Portability
Chapter Review
For Further Reading
Key Terms
Problems
References
Chapter 9 Planning and Estimating
Learning Objectives
9.1 Planning and the Software Process
9.2 Estimating Duration and Cost
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
Key Terms
Problems
References
PART B: THE WORKFLOWS OF THE SOFTWARE LIFE CYCLE
Chapter 10 Key Material from Part A
Learning Objective
10.1 Software Development: Theory versus Practice
10.2 Iteration and Incrementation
10.3 The Unified Process
10.4 Workflow Overview
10.5 Teams
10.6 Cost–Benefit Analysis
10.7 Metrics
10.8 CASE
10.9 Versions and Configurations
10.10 Testing Terminology
10.11 Execution-Based and Non-Execution-Based Testing
10.12 Modularity
10.13 Reuse
10.14 Software Project Management Plan
Chapter Review
Key Terms
Problems
Chapter 11 Requirements
Learning Objectives
11.1 Determining What the Client Needs
11.2 Overview of the Requirements Workflow
11.3 Understanding the Domain
11.4 The Business Model
11.5 Initial Requirements
11.6 Initial Understanding of the Domain: The MSG Foundation Case Study
11.7 Initial Business Model: The MSG Foundation Case Study
11.8 Initial Requirements: The MSG Foundation Case Study
11.9 Continuing the Requirements Workflow: The MSG Foundation Case Study
11.10 Revising the Requirements: The MSG Foundation Case Study
11.11 The Test Workflow: The MSG Foundation Case Study
11.12 The Classical Requirements Phase
11.13 Rapid Prototyping
11.14 Human Factors
11.15 Reusing the Rapid Prototype
11.16 CASE Tools for the Requirements Workflow
11.17 Metrics for the Requirements Workflow
11.18 Challenges of the Requirements Workflow
Chapter Review
For Further Reading
Key Terms
Case Study Key Terms
Problems
References
Chapter 12 Classical Analysis
Learning Objectives
12.1 The Specification Document
12.2 Informal Specifications
12.3 Structured Systems Analysis
12.4 Structured Systems Analysis: The MSG Foundation Case Study
12.5 Other Semiformal Techniques
12.6 Entity-Relationship Modeling
12.7 Finite State Machines
12.8 Petri Nets
12.9 Z
12.10 Other Formal Techniques
12.11 Comparison of Classical Analysis Techniques
12.12 Testing during Classical Analysis
12.13 CASE Tools for Classical Analysis
12.14 Metrics for Classical Analysis
12.15 Software Project Management Plan: The MSG Foundation Case Study
12.16 Challenges of Classical Analysis
Chapter Review
For Further Reading
Key Terms
Case Study Key Terms
Problems
References
Chapter 13 Object-Oriented Analysis
Learning Objectives
13.1 The Analysis Workflow
13.2 Extracting the Entity Classes
13.3 Object-Oriented Analysis: The Elevator Problem Case Study
13.4 Functional Modeling: The Elevator Problem Case Study
13.5 Entity Class Modeling: The Elevator Problem Case Study
13.6 Dynamic Modeling: The Elevator Problem Case Study
13.7 The Test Workflow: Object-Oriented Analysis
13.8 Extracting the Boundary and Control Classes
13.9 The Initial Functional Model: The MSG Foundation Case Study
13.10 The Initial Class Diagram: The MSG Foundation Case Study
13.11 The Initial Dynamic Model: The MSG Foundation Case Study
13.12 Revising the Entity Classes: The MSG Foundation Case Study
13.13 Extracting the Boundary Classes: The MSG Foundation Case Study
13.14 Extracting the Control Classes: The MSG Foundation Case Study
13.15 Use-Case Realization: The MSG Foundation Case Study
13.16 Incrementing the Class Diagram: The MSG Foundation Case Study
13.17 The Test Workflow: The MSG Foundation Case Study
13.18 The Specification Document in the Unified Process
13.19 More on Actors and Use Cases
13.20 CASE Tools for the Object-Oriented Analysis Workflow
13.21 Metrics for the Object-Oriented Analysis Workflow
13.22 Challenges of the Object-Oriented Analysis Workflow
Chapter Review
For Further Reading
Key Terms
Problems
References
Chapter 14 Design
Learning Objectives
14.1 Design and Abstraction
14.2 Operation-Oriented Design
14.3 Data Flow Analysis
14.4 Transaction Analysis
14.5 Data-Oriented Design
14.6 Object-Oriented Design
14.7 Object-Oriented Design: The Elevator Problem Case Study
14.8 Object-Oriented Design: The MSG Foundation Case Study
14.9 The Design Workflow
14.10 The Test Workflow: Design
14.11 The Test Workflow: The MSG Foundation Case Study
14.12 Formal Techniques for Detailed Design
14.13 Real-Time Design Techniques
14.14 CASE Tools for Design
14.15 Metrics for Design
14.16 Challenges of the Design Workflow
Chapter Review
For Further Reading
Key Terms
Problems
References
Chapter 15 Implementation
Learning Objectives
15.1 Choice of Programming Language
15.2 Fourth-Generation Languages
15.3 Good Programming Practice
15.4 Coding Standards
15.5 Code Reuse
15.6 Integration
15.7 The Implementation Workflow
15.8 The Implementation Workflow: The MSG Foundation Case Study
15.9 The Test Workflow: Implementation
15.10 Test Case Selection
15.11 Black-Box Unit-Testing Techniques
15.12 Black-Box Test Cases: The MSG Foundation Case Study
15.13 Glass-Box Unit-Testing Techniques
15.14 Code Walkthroughs and Inspections
15.15 Comparison of Unit-Testing Techniques
15.16 Cleanroom
15.17 Potential Problems When Testing Objects
15.18 Management Aspects of Unit Testing
15.19 When to Reimplement Rather than Debug a Code Artifact
15.20 Integration Testing
15.21 Product Testing
15.22 Acceptance Testing
15.23 The Test Workflow: The MSG Foundation Case Study
15.24 CASE Tools for Implementation
15.25 CASE Tools for the Test Workflow
15.26 Metrics for the Implementation Workflow
15.27 Challenges of the Implementation Workflow
Chapter Review
For Further Reading
Key Terms
Problems
References
Chapter 16 Postdelivery Maintenance
Learning Objectives
16.1 Development and Maintenance
16.2 Why Postdelivery Maintenance Is Necessary
16.3 What Is Required of Postdelivery Maintenance Programmers?
16.4 Postdelivery Maintenance Mini Case Study
16.5 Management of Postdelivery Maintenance
16.6 Maintenance of Object-Oriented Software
16.7 Postdelivery Maintenance Skills versus Development Skills
16.8 Reverse Engineering
16.9 Testing during Postdelivery Maintenance
16.10 CASE Tools for Postdelivery Maintenance
16.11 Metrics for Postdelivery Maintenance
16.12 Postdelivery Maintenance: The MSG Foundation Case Study
16.13 Challenges of Postdelivery Maintenance
Chapter Review
For Further Reading
Key Terms
Problems
References
Chapter 17 More on UML
Learning Objectives
17.1 UML Is Not a Methodology
17.2 Class Diagrams
17.3 Notes
17.4 Use-Case Diagrams
17.5 Stereotypes
17.6 Interaction Diagrams
17.7 Statecharts
17.8 Activity Diagrams
17.9 Packages
17.10 Component Diagrams
17.11 Deployment Diagrams
17.12 Review of UML Diagrams
17.13 UML and Iteration
Chapter Review
For Further Reading
Key Terms
Problems
References
Chapter 18 Emerging Technologies
Learning Objectives
18.1 Aspect-Oriented Technology
18.2 Model-Driven Technology
18.3 Component-Based Technology
18.4 Service-Oriented Technology
18.5 Comparison of Service-Oriented and Component-Based Technology
18.6 Social Computing
18.7 Web Engineering
18.8 Cloud Technology
18.9 Web 3.0
18.10 Computer Security
18.11 Model Checking
18.12 Present and Future
Chapter Review
For Further Reading
Key Terms
References
Bibliography
Appendix A: Term Project: Chocoholics Anonymous
Appendix B: Software Engineering Resources
Appendix C: Requirements Workflow: The MSG Foundation Case Study
Appendix D: Structured Systems Analysis: The MSG Foundation Case Study
Appendix E: Analysis Workflow: The MSG Foundation Case Study
Appendix F: Software Project Management Plan: The MSG Foundation Case Study
Appendix G: Design Workflow: The MSG Foundation Case Study
Appendix H: Implementation Workflow: The MSG Foundation Case Study (C++ Version)
Appendix I: Implementation Workflow: The MSG Foundation Case Study (Java Version)
Appendix J: Test Workflow: The MSG Foundation Case Study
Author Index
Subject Index
Object-Oriented and Classical Software Engineering Eighth Edition Stephen R. Schach Vanderbilt University sch76183_FM-i-xx.indd i sch76183_FM-i-xx.indd i 10/06/10 2:36 PM 10/06/10 2:36 PM
OBJECT-ORIENTED AND CLASSICAL SOFTWARE ENGINEERING, EIGHTH EDITION Published by McGraw-Hill, a business unit of The McGraw-Hill Companies, Inc., 1221 Avenue of the Americas, New York, NY 10020. Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Previous editions © 2007, 2005, and 2002. No part of this publication may be reproduced or distributed in any form or by any means, or stored in a database or retrieval system, without the prior written consent of The McGraw-Hill Companies, Inc., including, but not limited to, in any network or other electronic storage or transmission, or broadcast for distance learning. Some ancillaries, including electronic and print components, may not be available to customers outside the United States. This book is printed on acid-free paper. 1 2 3 4 5 6 7 8 9 0 DOC/DOC 1 0 9 8 7 6 5 4 3 2 1 0 ISBN 978-0-07-337618-9 MHID 0-07-337618-3 Vice President & Editor-in-Chief: Marty Lange Publisher: Raghothaman Srinivasan Vice President EDP & Central Publishing Services: Kimberly Meriwether David Development Editor: Lora Neyens Senior Marketing Manager: Curt Reynolds Project Manager: Melissa M. Leick Buyer: Kara Kudronowicz Design Coordinator: Brenda A. Rolwes Cover Designer: Studio Montage, St. Louis, Missouri Cover Image: © Photodisc/Getty Images Compositor: Glyph International Typeface: 10/12 Times Roman Printer: R. R. Donnelley All credits appearing on page or at the end of the book are considered to be an extension of the copyright page. Library of Congress Cataloging-in-Publication Data Schach, Stephen R. Object-oriented and classical software engineering / Stephen R. Schach. — 8th ed. p. cm. ISBN-13: 978-0-07-337618-9 (alk. paper) ISBN-10: 0-07-337618-3 (alk. paper) 1. Software engineering. 2. Object-oriented programming (Computer science) 3. UML (Computer science) 4. C++ (Computer program language) I. Title. QA76.758.S318 2010 005.1’17—dc22 2010020995 www.mhhe.com sch76183_FM-i-xx.indd ii sch76183_FM-i-xx.indd ii 10/06/10 2:36 PM 10/06/10 2:36 PM
To Jackson and Mikaela sch76183_FM-i-xx.indd iii sch76183_FM-i-xx.indd iii 10/06/10 2:36 PM 10/06/10 2:36 PM
The following are registered trademarks: ADF Analyst/Designer Ant Apache Apple AS/400 AT&T Bachman Product Set Bell Laboratories Borland Bugzilla Capability Maturity Model Chrome ClearCase ClearQuest CMM Cocoa Coca-Cola CORBA CppUnit CVS DB2 Eclipse e-Components Emeraude Enterprise JavaBeans eServer Excel Firefox Focus Ford Foundation Class Library FoxBASE GCC Hewlett-Packard IBM IMS/360 Jackpot Source Code Metrics Java JBuilder JUnit Linux Lotus 1-2-3 Lucent Technologies MacApp Macintosh Macintosh Toolbox MacProject Microsoft Motif MS-DOS MVS/360 Natural Netscape New York Times Object C Objective-C ObjectWindows Library 1-800-fl owers.com Oracle Oracle Developer Suite OS/360 OS/370 OS/VS2 Palm Pilot Parasoft Post-It Note PowerBuilder PREfi x PREfast Project PureCoverage PVCS QARun Rational Requisite Pro Rhapsody Rose SBC Communications SilkTest SLAM Software through Pictures Solaris SourceSafe SPARCstation Sun Sun Enterprise Sun Microsystems Sun ONE Studio System Architect Together UNIX VAX Visual Component Library Visual C++ Visual J++ VM/370 VMS Wall Street Journal WebSphere Win32 Windows 95 Windows 2000 Windows NT Word X11 Xrunner XUnit Zip disk ZIP Code z10 sch76183_FM-i-xx.indd iv sch76183_FM-i-xx.indd iv 10/06/10 2:36 PM 10/06/10 2:36 PM
Contents Preface xiii 1 Chapter 1 The Scope of Software Engineering 1.1 1.2 1.3 Learning Objectives Historical Aspects Economic Aspects Maintenance Aspects 1.3.1 2 5 1 6 Classical and Modern Views of Maintenance The Importance of Postdelivery Maintenance 10 9 1.3.2 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11 1.12 16 16 17 12 Requirements, Analysis, and Design Aspects Team Development Aspects 15 Why There Is No Planning Phase Why There Is No Testing Phase Why There Is No Documentation Phase The Object-Oriented Paradigm The Object-Oriented Paradigm in Perspective Terminology Ethical Issues 27 Chapter Review For Further Reading Key Terms Problems References 28 29 30 23 26 18 22 27 PART A SOFTWARE ENGINEERING CONCEPTS 35 Chapter 2 Software Life-Cycle Models 37 2.1 2.2 2.3 Learning Objectives Software Development in Theory Winburg Mini Case Study 38 Lessons of the Winburg Mini Case Study 37 37 3.3 3.4 3.5 3.6 3.7 42 3.8 66 v 2.4 2.5 2.6 2.7 2.8 2.9 2.10 48 Teal Tractors Mini Case Study 42 Iteration and Incrementation 43 Winburg Mini Case Study Revisited 47 Risks and Other Aspects of Iteration and Incrementation Managing Iteration and Incrementation Other Life-Cycle Models 2.9.1 Code-and-Fix Life-Cycle Model 2.9.2 Waterfall Life-Cycle Model 53 2.9.3 Rapid-Prototyping Life-Cycle Model 51 52 52 55 2.9.4 Open-Source Life-Cycle Model 2.9.5 Agile Processes 2.9.6 59 Synchronize-and-Stabilize Life-Cycle Model Spiral Life-Cycle Model 62 56 62 2.9.7 Comparison of Life-Cycle Models Chapter Review 67 For Further Reading Key Terms Problems References 69 69 68 70 Chapter 3 The Software Process 3.1 3.2 74 76 74 76 Learning Objectives The Unifi ed Process Iteration and Incrementation within the Object-Oriented Paradigm The Requirements Workfl ow The Analysis Workfl ow 80 The Design Workfl ow The Implementation Workfl ow The Test Workfl ow 3.7.1 3.7.2 3.7.3 3.7.4 Postdelivery Maintenance Requirements Artifacts 84 Analysis Artifacts Design Artifacts 85 Implementation Artifacts 82 84 84 85 87 78 83 sch76183_FM-i-xx.indd v sch76183_FM-i-xx.indd v 10/06/10 2:36 PM 10/06/10 2:36 PM
vi Contents 3.9 3.10 3.11 3.12 3.13 3.14 3.15 89 92 92 88 88 91 92 The Inception Phase The Elaboration Phase The Construction Phase The Transition Phase Retirement The Phases of the Unifi ed Process 3.10.1 3.10.2 3.10.3 3.10.4 One- versus Two-Dimensional Life-Cycle Models Improving the Software Process Capability Maturity Models Other Software Process Improvement Initiatives Costs and Benefi ts of Software Process Improvement Chapter Review For Further Reading Key Terms Problems References 102 103 101 102 104 95 94 98 99 Chapter 4 107 Teams Learning Objectives 4.1 Team Organization 4.2 Democratic Team Approach 4.2.1 107 107 Analysis of the Democratic Team Approach 110 4.3 4.4 4.5 4.6 4.7 4.8 4.9 113 113 110 Classical Chief Programmer Team Approach 4.3.1 4.3.2 The New York Times Project 112 Impracticality of the Classical Chief Programmer Team Approach Beyond Chief Programmer and Democratic Teams Synchronize-and-Stabilize Teams Teams for Agile Processes 118 Open-Source Programming Teams People Capability Maturity Model Choosing an Appropriate Team Organization Chapter Review For Further Reading Key Terms Problems References 122 122 121 121 122 120 117 118 119 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 109 5.11 5.12 Chapter 5 The Tools of the Trade 5.1 Learning Objectives Stepwise Refi nement 5.1.1 124 124 124 Stepwise Refi nement Mini Case Study 125 130 132 132 Cost–Benefi t Analysis Divide-and-Conquer Separation of Concerns Software Metrics 133 CASE 134 Taxonomy of CASE Scope of CASE Software Versions 141 5.9.1 142 5.9.2 Confi guration Control 5.10.1 Revisions Variations 137 135 141 143 Confi guration Control during Postdelivery Maintenance 145 Baselines Confi guration Control during Development 145 146 5.10.2 5.10.3 146 Build Tools Productivity Gains with CASE Technology 147 Chapter Review For Further Reading Key Terms Problems References 150 150 149 149 151 Chapter 6 Testing 6.1 154 6.2 154 Learning Objectives Quality Issues 155 Software Quality Assurance 6.1.1 6.1.2 Managerial Independence Non-Execution-Based Testing 6.2.1 6.2.2 6.2.3 6.2.4 Walkthroughs Managing Walkthroughs Inspections Comparison of Inspections and Walkthroughs 158 159 161 156 156 157 158 sch76183_FM-i-xx.indd vi sch76183_FM-i-xx.indd vi 10/06/10 2:36 PM 10/06/10 2:36 PM
6.2.5 Strengths and Weaknesses of Reviews Metrics for Inspections 162 164 162 164 165 162 163 Utility Reliability Robustness Performance Correctness 6.2.6 Execution-Based Testing What Should Be Tested? 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 Testing versus Correctness Proofs 6.5.1 6.5.2 6.5.3 167 Example of a Correctness Proof 167 Correctness Proof Mini Case Study 171 Correctness Proofs and Software Engineering 165 166 172 175 176 Who Should Perform Execution-Based Testing? When Testing Stops Chapter Review For Further Reading Key Terms Problems References 177 178 176 177 179 6.3 6.4 6.5 6.6 6.7 183 183 183 187 Chapter 7 From Modules to Objects Learning Objectives 7.1 What Is a Module? 7.2 Cohesion 7.2.1 7.2.2 7.2.3 7.2.4 7.2.5 7.2.6 7.2.7 7.2.8 Coupling 7.3.1 7.3.2 7.3.3 7.3.4 7.3.5 7.3.6 7.3.7 7.3 192 187 189 Coincidental Cohesion Logical Cohesion 188 Temporal Cohesion 189 Procedural Cohesion Communicational Cohesion Functional Cohesion 190 Informational Cohesion Cohesion Example 191 191 190 192 193 195 Content Coupling Common Coupling Control Coupling Stamp Coupling Data Coupling Coupling Example The Importance of Coupling 195 196 197 198 Contents vii 199 Data Encapsulation 7.4.1 Data Encapsulation and Development Data Encapsulation and Maintenance 201 202 7.4.2 215 211 207 209 Abstract Data Types Information Hiding Objects Inheritance, Polymorphism, and Dynamic Binding The Object-Oriented Paradigm Chapter Review For Further Reading Key Terms Problems References 221 221 217 220 221 222 7.4 7.5 7.6 7.7 7.8 7.9 225 Chapter 8 Reusability and Portability 8.1 8.2 8.3 Learning Objectives Reuse Concepts 226 Impediments to Reuse Reuse Case Studies 8.3.1 225 228 229 Raytheon Missile Systems Division European Space Agency 230 232 8.3.2 Objects and Reuse 232 Reuse during Design and Implementation 8.5.1 8.5.2 8.5.3 8.5.4 8.5.5 Design Reuse Application Frameworks Design Patterns 235 236 Software Architecture Component-Based Software Engineering 232 237 231 234 237 238 239 240 241 More on Design Patterns 8.6.1 FLIC Mini Case Study Adapter Design Pattern 8.6.2 Bridge Design Pattern 8.6.3 Iterator Design Pattern 8.6.4 Abstract Factory Design Pattern 8.6.5 Categories of Design Patterns 245 Strengths and Weaknesses of Design Patterns Reuse and the World Wide Web 247 248 241 8.4 8.5 8.6 8.7 8.8 8.9 sch76183_FM-i-xx.indd vii sch76183_FM-i-xx.indd vii 10/06/10 2:36 PM 10/06/10 2:36 PM
分享到:
收藏