Object-Oriented Modeling and Design

James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy, William Lorensen

Publisher: Prentice Hall, 1991, 500 pages

ISBN: 0-13-630054-5

Keywords: Programming

Last modified: April 30, 2021, 11:20 p.m.

This book presents an object-oriented approach to software development based on modeling objects from the real world and then using the model to build a language-independent design organized around those objects. Object-oriented modeling and design promote better understanding of requirements, cleaner designs, and more maintainable systems. We describe a set of object-oriented concepts and a language-independent graphical notation, the Object Modeling Techniques, that can be used to analyze problem requirements, design a solution to the problem, and then implement the solution in a programming language or a database. Our approach allows the same concepts and notation to be used throughout the entire software development process. The software developer does not need to translate into a new notation at each development stage as is required by many other methodologies.

    1. Introduction
      1. What Is Object-Oriented?
      2. What Is Object-Oriented Development?
      3. Object-Oriented Themes
      4. Evidence for Usefulness of Object-Oriented Development
      5. Organization of this Book
      • Bibliographic Notes
      • References
      • Exercises
  • Part 1; Modeling Concepts
    1. Modeling as a Design Technique
      1. Modeling 
      2. The Object Modeling Techniques
      3. Chapter Summary
      • Exercises
    2. Object Modeling
      1. Objects and Classes
      2. Links and Associations
      3. Advanced Link and Association Concepts
      4. Generalization and Inheritance
      5. Grouping Constructs
      6. A Sample Object Model
      7. Practical Tips
      8. Chapter Summary
      • Bibliographic Notes
      • References
      • Exercises
    3. Advanced Object Modeling
      1. Aggregation
      2. Abstract Classes
      3. Generalization as Extension and Restriction
      4. Multiple Inheritance
      5. Metadata
      6. Candidate Keys
      7. Constraints
      8. Chapter Summary
      • Bibliographic Notes
      • References
      • Exercises
    4. Dynamic Modeling
      1. Events and States
      2. Operations
      3. Nested State Diagrams
      4. Concurrency
      5. Advanced Dynamic Modeling Concepts
      6. A Sample Dynamic Model
      7. Relation of Object and Dynamic Models
      8. Practical Tips
      9. Chapter Summary
      • Bibliographic Notes
      • References
      • Exercises
    5. Functional Modeling
      1. Functional Models
      2. Data Flow Diagrams
      3. Specifying Operations
      4. Constraints
      5. A Sample Functional Model
      6. Relation of Functional to Object and Dynamic Models
      7. Chapter Summary
      • Bibliographic Notes
      • References
      • Exercises
  • Part 2: Design Methodology
    1. Methodology Preview
      1. OMT as a Software Engineering Methodology
      2. The OMT Methodology
      3. Impact of an Object-Oriented Approach
      4. Chapter Summary
      • Exercises
    2. Analysis
      1. Overview of Analysis
      2. Problem Statement
      3. Automated Teller Machine Example
      4. Object Modeling
      5. Dynamic Modeling
      6. Functional Modeling
      7. Adding Operations
      8. Iterating the Analysis
      9. Chapter Summary
      • Bibliographic Notes
      • References
      • Exercises
    3. System Design
      1. Overview of System Design
      2. Breaking a System into Subsystems
      3. Identifying Concurrency
      4. Allocating Subsystems to Processors and Tasks
      5. Management of Data Stores
      6. Handling Global Resources
      7. Choosing Software Control Implementation
      8. Handling Boundary Conditions
      9. Setting Trade-off Priorities
      10. Common Architectural Frameworks
      11. Architecture of the ATM System
      12. Chapter Summary
      • Bibliographic Notes
      • References
      • Exercises
    4. Object Design
      1. Overview of Object Design
      2. Combining the Three Models
      3. Designing Algorithms
      4. Design Optimization
      5. Implementation of Control
      6. Adjustment of Inheritance
      7. Design of Associations
      8. Object Representation
      9. Physical Packaging
      10. Documenting Design Decisions
      11. Chapter Summary
      • Bibliographic Notes
      • References
      • Exercises
    5. Methodology Summary
      1. Analysis
      2. System Design
      3. Object Design
      4. Chapter Summary
      • Exercises
    6. Comparison of Methodologies
      1. Structured Analysis/Structured Design (SA/SD)
      2. Jackson Structured Development (JSD)
      3. Information Modeling Notations
      4. Object-Oriented Work
      5. Chapter Summary
      • References
      • Exercises
  • Part 3: Implementation
    1. From Design to Implementation
      1. Implementation Using a Programming Language
      2. Implementation Using a Database System
      3. Implementation Outside a Computer
      4. Overview of Part 3
    2. Programming Style
      1. Object-Oriented Style
      2. Reusability
      3. Extensibility
      4. Robustness
      5. Programming-in-the-Large
      6. Chapter Summary
      • Bibliographic Notes
      • References
      • Exercises
    3. Object-Oriented Languages
      1. Translating a Design into an Implementation
      2. Class Definitions
      3. Creating Objects
      4. Calling Operations
      5. Using Inheritance
      6. Implementing Associations
      7. Object-Oriented Language Features
      8. Survey of Object-Oriented Languages
      9. Chapter Summary
      • Bibliographic Notes
      • References
      • Exercises
    4. Non-Object-Oriented Languages
      1. Mapping Object-Oriented Concepts
      2. Translating Classes into Data Structures
      3. Passing Arguments to Methods
      4. Allocating Objects
      5. Implementing Inheritance
      6. Implementing Method Resolution
      7. Implementing Associations
      8. Dealing with Concurrency
      9. Encapsulation
      10. What You Lose
      11. Chapter Summary
      • Bibliographic Notes
      • References
      • Exercises
    5. Relational Databases
      1. General DBMS Concepts
      2. Relational DBMS Concepts
      3. Relational Database Design
      4. Advanced Relational DBMS
      5. Chapter Summary
      • Bibliographic Notes
      • References
      • Exercises
  • Part 4: Applications
    1. Object Diagram Compiler
      1. Background
      2. Problem Statement
      3. Analysis
      4. System Design
      5. Object Design
      6. Implementation
      7. Lessons Learned
      8. Chapter Summary
      • Bibliographic Notes
      • References
      • Exercises
    2. Computer Animation
      1. Background
      2. Problem Statement
      3. Analysis
      4. System Design
      5. Object Design
      6. Implementation
      7. Lessons Learned
      8. Chapter Summary
      • Bibliographic Notes
      • References
      • Exercises
    3. Electric Distribution Design System
      1. Background
      2. Problem Statement
      3. Analysis
      4. System Design
      5. Object Design
      6. Implementation
      7. Lessons Learned
      8. Chapter Summary
      • References
      • Exercises
  • Appendix A: OMT Graphical Notation
  • Appendix B: Glossary
  • Answers to Selected Exercises

Reviews

Object-Oriented Modeling and Design

Reviewed by Roland Buresund

OK ***** (5 out of 10)

Last modified: May 21, 2007, 3:16 a.m.

A try to teach good OO techniques, without falling into any language. It's OK.

Comments

There are currently no comments

New Comment

required

required (not published)

optional

required

captcha

required