Object-Oriented Analysis

Dr. Jon Pearce
pearce@cs.sjsu.edu

 

 

 

 

 

Table of Contents

Chapter 1:...... Introduction

Chapter 2:...... Basic Concepts of Object-Oriented Modeling

Objects, Classes, and Packages

The Unified Modeling Language

Chapter 3:...... Creating New Classes from Old Classes

Links and Associations

Specialization and Inheritance

Scope and Encapsulation

Example: A Flight Simulator

Chapter 4:...... Polymorphism and Data-Driven Control

Overloading versus Overriding

Data-Driven Programming

Interfaces

Chapter 5:...... Design Principles and Patterns

Chapter 6:...... Aggregation

Chapter 7:...... Reflection

Reflective Modules

Types as Objects

Links as Objects: Association Classes

Persistence

Chapter 8:...... Analysis Patterns

Actors and Roles

Accountability and Affiliation

Quantities

Measurement and Categorization

Accounting and Inventory

Planning and Action

Chapter 9:...... Requirements Modeling

System Specification and Capturing Requirements

Use Case Diagrams

Elaborating Use Cases

Examples

Chapter 10:.... Finite State Machines

Chapter 11:.... Deployment and Testing

Test-Driven Development


References

Bold face references are recommended.

Object Oriented Development

[BOO]                           Grady Booch. Object Oriented Analysis and Design with Applications. Benjamin/Cummings, Redwood City. 1994.

[JAC-1]                         Ivar Jacobson, Magnus Christerson, Patrik Jonsson, and Gunnar Övergaard. Object-Oriented Software Engineering: A Use Case Driven Approach. Addison-Wesley, Reading, MA. 1992.

[JAC-2]                         Ivar Jacobson, Grady Booch, and James Rumbaugh. The Unified Software Development Process.  Addison-Wesley, Reading, MA. 1998.

[KRU]                            Phiippe Kruchten. The Rational Unified Process, an Introduction. Addison-Wesley, Reading, MA. 1998.

[LAR]                           Craig Larman. Applying UML and Patterns. Prentice Hall, Upper Saddle River, NJ. 1998.

[LIB]                             Jesse Liberty. Beginning Object-Oriented Analysis and Design with C++. WROX, Birmingham, UK. 1998.

[OST]                            Bernd Oestereich. Developing Software with UML, Object-Oriented Analysis and Design in Practice. Addison-Wesley, Reading, MA. 1997.

[RUM]                           James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy, and William Lorensen. Object-Oriented Modeling and Design. Prentice Hall, Upper Saddle River, NJ. 1991.

Patterns

[ANTI]                          Brown, Malveau, McCormick, Mowbray. AntiPatterns. Wiley. New York, NY. 1998.

[FOW-2]                       Martin Fowler. Analysis Patterns: Reusable Object Models. Addison-Wesley, Reading, MA. 1997.

[COAD]                        Peter Coad. Object Models: Strategies, Patterns, & Applications. Prentice-Hall, Upper Saddle River, NJ. 1997.

[Go4]                            Erich Gamma, Richard helm, Ralph Johnson, and John Vlissides. Design Patterns, Elements of Reusable Object-Oriented Software. Addison Wesley, Reading, MA. 1995.

[POSA]                         Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, and Michael Stal. Pattern Oriented Software Architecture: A System of Patterns. Wiley. New York, NY. 1998.

[ROG]                           Gregory F. Rogers. Framework-Based Software Development in C++.  Prentice Hall, Upper Saddle River, NJ. 1997.

Platforms

[POPE]                          Alan Pope. The CORBA Reference Guide: Understanding the Common Object Request Broker Architecture. Addison-Wesley, Reading, MA. 1997.

Philosophy

[ALX]                            Christopher Alexander. The Timeless Way of Building. Oxford University Press. New York, NY. 1979.

[GAB]                           Richard P. Gabriel. Patterns of Software: Tales from the Software Community. Oxford Press, New York, NY. 1996.

[LAN]                            Thomas K. Landauer. The Trouble with Computers: Usefulness, Usability, and Productivity. MIT Press, Cambridge, MA. 1995.

[WIN-1]                         Terry Winograd and Fernando Flores. Understanding Computers and Cognition: A New Foundation for Design. Ablex Publishing Corporation. Norwood, NJ. 1986.

[WIN-2]                         Terry Winograd. Bringing Design to Software. Addison Wesley, Reading, MA. 1996.

Software Engineering

[PFL]                             Shari Lawrence Pfleeger. Software Engineering Theory and Practice. Prentice Hall, Upper Saddle River, NJ. 1998.

[SCH]                            Stephen R. Schach. Classical and Object-Oriented Software Engineering, ed. 4. WCB McGraw-Hill, Boston. 1999.

[SHN]                            Ben Shneiderman. Designing the User Interface, Strategies for Effective Human-Computer Interaction , ed. 3. Addison-Wesley, Reading, MA. 1998.

[SOM]                           Ian Sommerville. Software Engineering, ed. 5. Addison-Wesley, Reading, MA. 1996.

UML

[FOW-1]                       Martin Fowler with Kendall Scott. UML Distilled: Applying the Standard Object Modeling Language. (ed. 2). Addison-Wesley, Reading, MA. 1997.

[HAR]                           Paul Harmon and Mark Watson. Understanding UML, The Developer's Guide. Morgan Kaufman, San Francisco. 1997.

[UML-1]                       James Rumbaugh, Ivar Jacobson, and Grady Booch. The Unified Modeling Language Reference Manual. Addison-Wesley, Reading, MA. 1999.

[UML-2]                       Grady Booch, James Rumbaugh, and Ivar Jacobson. The Unified Modeling Language User Guidel. Addison-Wesley, Reading, MA. 1998.

Web Sites

I maintain a list of links at www.mathcs.sjsu.edu/faculty/pearce/ooa.