This book detailed the different methods of attacking software design and introduces UML diagrams, statecharts, and organization. A wonderful book for those who will be working in the field dealing with the structure and methods that real business' use for software design.
Object-Oriented and Classical Software Engineering
β Scribed by Stephen Schach
- Publisher
- McGraw-Hill Education
- Year
- 2010
- Tongue
- English
- Leaves
- 688
- Series
- Irwin Computer Science
- Edition
- 8
- Category
- Library
No coin nor oath required. For personal study only.
β¦ Synopsis
Building on seven strong editions, the eighth edition maintains the organization and approach for which Object-Oriented and Classical Software Engineering is known while making significant improvements and additions to content as well as problems and projects. The revisions for the eighth edition make the text easier to use in a one-semester course.
Integrating case studies to show the object oriented approach to software engineering, Object-Oriented and Classical Software Engineering, 8/e presents an excellent introduction to software engineering fundamentals, covering both traditional and object-oriented techniques.
While maintaining a unique organization with Part I covering underlying software engineering theory, and Part II presenting the more practical life cycle, the eighth edition includes significant revision to problems, new content, as well as a new chapter to enable instructors to better-utilize the book in a one-semester course. Complementing this well-balanced approach is the straightforward, student-friendly writing style, through which difficult concepts are presented in a clear, understandable manner.
β¦ Table of Contents
Title
Contents
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
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.9.1 Code-and-Fix Life-Cycle Model
2.9.2 Waterfall Life-Cycle Model
2.9.3 Rapid-Prototyping Life-Cycle Model
2.9.4 Open-Source Life-Cycle Model
2.9.5 Agile Processes
2.9.6 Synchronize-and-Stabilize Life-Cycle Model
2.9.7 Spiral Life-Cycle Model
2.10 Comparison of Life-Cycle Models
Chapter Review
For Further Reading
Key Terms
Problems
References
3 The Software Process
Learning Objectives
3.1 The Unifi ed Process
3.2 Iteration and Incrementation within the Object-Oriented Paradigm
3.3 The Requirements Workfl ow
3.4 The Analysis Workfl ow
3.5 The Design Workfl ow
3.6 The Implementation Workfl ow
3.7 The Test Workfl ow
3.7.1 Requirements Artifacts
3.7.2 Analysis Artifacts
3.7.3 Design Artifacts
3.7.4 Implementation Artifacts
3.8 Postdelivery Maintenance
3.9 Retirement
3.10 The Phases of the Unifi ed Process
3.10.1 The Inception Phase
3.10.2 The Elaboration Phase
3.10.3 The Construction Phase
3.10.4 The Transition Phase
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
4 Teams
Learning Objectives
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 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
5 The Tools of the Trade
Learning Objectives
5.1 Stepwise Refi nement
5.1.1 Stepwise Refi nement Mini Case Study
5.2 CostβBenefi t 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.9.1 Revisions
5.9.2 Variations
5.10 Confi guration Control
5.10.1 Confi guration Control during Postdelivery Maintenance
5.10.2 Baselines
5.10.3 Confi guration Control during Development
5.11 Build Tools
5.12 Productivity Gains with CASE Technology
Chapter Review
For Further Reading
Key Terms
Problems
References
6 Testing
Learning Objectives
6.1 Quality Issues
6.1.1 Software Quality Assurance
6.1.2 Managerial Independence
6.2 Non-Execution-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 Proof
6.5.2 Correctness Proof Mini Case Study
6.5.3 Correctness Proofs and Software Engineering
6.6 Who Should Perform Execution-Based Testing?
6.7 When Testing Stops
Chapter Review
For Further Reading
Key Terms
Problems
References
7 From Modules to Objects
Learning Objectives
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 Development
7.4.2 Data Encapsulation and Maintenance
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
8 Reusability and Portability
Learning Objectives
8.1 Reuse Concepts
8.2 Impediments to Reuse
8.3 Reuse Case Studies
8.3.1 Raytheon Missile Systems Division
8.3.2 European Space Agency
8.4 Objects and Reuse
8.5 Reuse during Design and Implementation
8.5.1 Design Reuse
8.5.2 Application Frameworks
8.5.3 Design Patterns
8.5.4 Software Architecture
8.5.5 Component-Based Software Engineering
8.6 More on Design Patterns
8.6.1 FLIC Mini Case Study
8.6.2 Adapter Design Pattern
8.6.3 Bridge Design Pattern
8.6.4 Iterator Design Pattern
8.6.5 Abstract Factory Design Pattern
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.11.1 Hardware Incompatibilities
8.11.2 Operating System Incompatibilities
8.11.3 Numerical Software Incompatibilities
8.11.4 Compiler Incompatibilities
8.12 Why Portability?
8.13 Techniques for Achieving Portability
8.13.1 Portable System Software
8.13.2 Portable Application Software
8.13.3 Portable Data
8.13.4 Model-Driven Architecture
Chapter Review
For Further Reading
Key Terms
Problems
References
9 Planning and Estimating
Learning Objectives
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
Key Terms
Problems
References
PART B THE WORKFLOWS OF THE SOFTWARE LIFE CYCLE
10 Key Material from Part A
Learning Objective
10.1 Software Development: Theory versus Practice
10.2 Iteration and Incrementation
10.3 The Unifi ed Process
10.4 Workfl ow Overview
10.5 Teams
10.6 CostβBenefi t Analysis
10.7 Metrics
10.8 CASE
10.9 Versions and Confi gurations
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
11 Requirements
Learning Objectives
11.1 Determining What the Client Needs
11.2 Overview of the Requirements Workfl ow
11.3 Understanding the Domain
11.4 The Business Model
11.4.1 Interviewing
11.4.2 Other Techniques
11.4.3 Use Cases
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 Workfl ow: 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 Workfl ow
11.17 Metrics for the Requirements Workfl ow
11.18 Challenges of the Requirements Workfl ow
Chapter Review
For Further Reading
Key Terms
Case Study Key Terms
Problems
References
12 Classical Analysis
Learning Objectives
12.1 The Specifi cation Document
12.2 Informal Specifi cations
12.2.1 Correctness Proof Mini Case Study Redux
12.3 Structured Systems Analysis
12.3.1 Sallyβs Software Shop Mini Case Study
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.7.1 Finite State Machines: The Elevator Problem Case Study
12.8 Petri Nets
12.8.1 Petri Nets: The Elevator Problem Case Study
12.9 Z
12.9.1 Z: The Elevator Problem Case Study
12.9.2 Analysis of 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
13 Object-Oriented Analysis
Learning Objectives
13.1 The Analysis Workfl ow
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.5.1 Noun Extraction
13.5.2 CRC Cards
13.6 Dynamic Modeling: The Elevator Problem Case Study
13.7 The Test Workfl ow: 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.15.1 Estimate Funds Available for Week Use Case
13.15.2 Manage an Asset Use Case
13.15.3 Update Estimated Annual Operating Expenses Use Case
13.15.4 Produce a Report Use Case
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 Unifi ed Process
13.19 More on Actors and Use Cases
13.20 CASE Tools for the Object-Oriented Analysis Workfl ow
13.21 Metrics for the Object-Oriented Analysis Workfl ow
13.22 Challenges of the Object-Oriented Analysis Workfl ow
Chapter Review
For Further Reading
Key Terms
Problems
References
14 Design
Learning Objectives
14.1 Design and Abstraction
14.2 Operation-Oriented Design
14.3 Data Flow Analysis
14.3.1 Mini Case Study Word Counting
14.3.2 Data Flow Analysis Extensions
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 Workfl ow
14.10 The Test Workfl ow: 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 Workfl ow
Chapter Review
For Further Reading
Key Terms
Problems
References
15 Implementation
Learning Objectives
15.1 Choice of Programming Language
15.2 Fourth-Generation Languages
15.3 Good Programming Practice
15.3.1 Use of Consistent and Meaningful Variable Names
15.3.2 The Issue of Self-Documenting Code
15.3.3 Use of Parameters
15.3.4 Code Layout for Increased Readability
15.3.5 Nested if Statements
15.4 Coding Standards
15.5 Code Reuse
15.6 Integration
15.6.1 Top-down Integration
15.6.2 Bottom-up Integration
15.6.3 Sandwich Integration
15.6.4 Integration of Object-Oriented Products
15.6.5 Management of Integration
15.7 The Implementation Workfl ow
15.8 The Implementation Workfl ow: The MSG Foundation Case Study
15.9 The Test Workfl ow: Implementation
15.10 Test Case Selection
15.10.1 Testing to Specifi cations versus Testing to Code
15.10.2 Feasibility of Testing to Specifi cations
15.10.3 Feasibility of Testing to Code
15.11 Black-Box Unit-Testing Techniques
15.11.1 Equivalence Testing and Boundary Value Analysis
15.11.2 Functional Testing
15.12 Black-Box Test Cases: The MSG Foundation Case Study
15.13 Glass-Box Unit-Testing Techniques
15.13.1 Structural Testing: Statement, Branch, and Path Coverage
15.13.2 Complexity Metrics
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.24.1 CASE Tools for the Complete Software Process
15.24.2 Integrated Development Environments
15.24.3 Environments for Business Applications
15.24.4 Public Tool Infrastructures
15.24.5 Potential Problems with Environments
15.25 CASE Tools for the Test Workfl ow
15.26 Metrics for the Implementation Workfl ow
15.27 Challenges of the Implementation Workfl ow
Chapter Review
For Further Reading
Key Terms
Problems
References
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.5.1 Defect Reports
16.5.2 Authorizing Changes to the Product
16.5.3 Ensuring Maintainability
16.5.4 Problem of Repeated 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
17 More on UML
Learning Objectives
17.1 UML Is Not a Methodology
17.2 Class Diagrams
17.2.1 Aggregation
17.2.2 Multiplicity
17.2.3 Composition
17.2.4 Generalization
17.2.5 Association
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
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
π SIMILAR VOLUMES
Classical and Object-Oriented Software Engineering, 7/E presents an excellent introduction to software engineering fundamentals, covering both traditional and object-oriented techniques. The coverage of both Agile processes and Open Source Software has been considerably expanded. In addition, the Os
Building on seven strong editions, the eighth edition maintains the organization and approach for which Object-Oriented and Classical Software Engineering is known while making significant improvements and additions to content as well as problems and projects. The revisions for the eighth edition ma
Classical and Object-Oriented Software Engineering, 6/e is designed for an introductory software engineering course. This book provides an excellent introduction to software engineering fundamentals, covering both traditional and object-oriented techniques.Schach's unique organization and style make
"This is the International Edition. The content is in English, same as US version but different cover. Please DO NOT buy if you can not accept this difference. Ship from Shanghai China, please allow about 3 weeks on the way to US or Europe. Message me if you have any questions."
Integrating case studies to show the object oriented approach to software engineering, Object-Oriented and Classical Software Engineering, 8/e presents an excellent introduction to software engineering fundamentals, covering both traditional and object-oriented techniques.While maintaining a unique