Go to main content
Formats
Format
BibTeX
MARCXML
TextMARC
MARC
DublinCore
EndNote
NLM
RefWorks
RIS
Cite
Citation

Linked e-resources

Details

Intro
Preface
Contents
1: What Is Software Design?
1.1 Overview
1.2 The Nature of Software Design
1.3 Software Design in the Context of Software Lifecycles
1.4 Software Design in the Context of Analytical Thinking
1.5 Software Design in the Context of Communication
1.6 Software Design in the Context of Design Formalism
1.7 Summary
References
2: The Paradigm of Object Orientation and Beyond
2.1 Overview
2.2 What Is Object Orientation?
2.2.1 Data Abstraction
2.2.2 Object Types
2.2.3 Inheritance
2.3 The Paradigm of Object-Oriented Design

2.4 Embracing Multi-paradigm Design
2.5 Summary
References
3: Essentials of Object-Oriented Design
3.1 Overview
3.2 Data Type, Data Abstraction, and Type-Safe Practices
3.3 More About Interfaces
3.3.1 Software Sustainability
3.3.2 The Role of Interfaces Through the Lens of Data Structures
3.3.3 Programming to an Interface, Not to an Implementation
3.3.4 Interface Segregation
3.3.5 Section Summary
3.4 Abstract Classes and Design of Type Hierarchies
3.4.1 Use of Abstract Classes
3.4.2 A Case Study
3.4.3 Section Summary
3.5 When to Avoid Inheritance

3.6 Subtyping with Consistent Object Behavior
3.6.1 Representation Invariants
3.6.2 Liskov Substitution Principle
3.6.3 Design by Contract
3.7 Lazy Object Creation Allowing Delayed Decision-Making
3.8 Object-Oriented Design in the Large: Design Principles
3.9 Summary
References
4: Design of Methods
4.1 Overview
4.2 Essential Characteristics of a Method
4.2.1 Procedural Abstraction and Modularity
4.2.2 Design Attributes of a Method
4.3 Cohesion of a Method
4.4 Method Coupling
4.4.1 The Phenomenon of Coupling
4.4.2 Effects of Coupling

4.4.3 Categorization of Coupling
4.5 Module Redesign and Code Refactoring
4.6 Method Specification
4.6.1 The Nature of a Module Specification
4.6.2 Method Specification with Some Formalism
4.7 A Case Study: Overriding ``Equals ??
4.8 Summary
References
5: Design of Objects
5.1 Overview
5.2 The Context and Process
5.3 Essentials of Object Design
5.3.1 Object to Model One Thing
5.3.2 Diverse Object Design Possibilities
5.3.3 Prototyping Object Interaction
5.3.4 Designing Objects Around a Structural Style
5.3.5 More About Object Discovery

5.3.6 Design to Ensure Objects ?Behavioral Correctness
5.4 Design of Control Objects
5.4.1 Highly Centralized vs. Coordinated Controls
5.4.2 Process Control with a Framework
5.4.3 Controls for Event-Driven Systems
5.4.4 Different Control Roles
5.4.5 Objects Are Designed to Control
5.5 Object Cohesion and Coupling
5.5.1 What Are the Issues?
5.5.2 Law of Demeter
5.5.3 Objects with No Overlapping Behavior
5.6 Iterative Design of Objects
5.6.1 Initial Design of Domain Abstractions
5.6.2 Subsequent Design Validation and Refactoring
5.7 Summary

Browse Subjects

Show more subjects...

Statistics

from
to
Export