CPSC 333: Introduction to Object-Oriented Analysis

Location: [CPSC 333] [Listing by Topic] [Listing by Date] [Previous Topic] [Next Topic] Introduction to Object-Oriented Analysis


This material was covered during lectures on February 10-12, 1997. Note that the order in which material relating to object-oriented analysis was presented in lectures doesn't necessarily match the order in which it appears on this and the next two pages, particularly closely. An attempt has been made to improve the organization of the material, in these online notes.


Introduction

Object-oriented analysis refers to a method (or, one of several methods) for analysing and specifying system requirements, in a way that will facilitate the development of an object-oriented system. Thus, it specifies requirements in a way that will allow a system to developed as a set of classes and objects that work together by sending messages back and forth, and that promotes software reuse more than would otherwise be possible.

References

The latest edition of Pressman's Software Engineering textbook contains a revised and expanded introduction to object-oriented analysis (sadly, the library probably doesn't yet have this edition of the book):

Roger S. Pressman
Software Engineering: A Practitioner's Approach
Fourth Edition, McGraw-Hill, 1997

There are now quite a few different methods for ``object-oriented analysis'' to choose from, and probably still more to come.

Coad and Yourdon's method has a reputation of being relatively easy to learn and apply. This method will be introduced in the next few lectures.

Peter Coad and Edward Yourdon
Object-Oriented Analysis
Second Edition, Yourdon Press (Prentice Hall), 1991

Rumbaugh et.al's method, ``OMT,'' is also well regarded, and seems to provide more extensive modeling tools than Coad and Yourdon's.

J. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy, and W. Lorensen
Object-Oriented Modeling and Design
Prentice-Hall, 1991

As its title suggests, Booch's book covers more than analysis; however, requirements analysis is discussed.

G. Booch
Object Oriented Design with Applications
Benjamin/Cummings, 1991

You should probably consider Pont's discussion of object-oriented development to be more a ``complement'' or ``supplement'' to what will be covered in lectures, rather than a ``reference:'' Pont includes much more on the implementation of object-oriented designs using C++ than will be covered in class, so it might be probably be useful to look in Pont's book, to see how to take things beyond the point in development that we'll reach in class.

You should note (or be warned), as well, that the method for ``object-oriented development'' presented in the final chapters of Pont's book, doesn't match the kind of ``object-oriented development'' methods referred to in some of the other references (and that will be discussed later on in this course), very closely: The method Pont describes has some characteristics of both an ``object-oriented'' method and a ``function-oriented'' or ``structured'' method - so if you read the final chapters of Pont's book, hoping for a close agreement with the material in these online notes, you'll be disappointed!

M. Pont
Software Engineering with C++ and CASE Tools
Addison-Wesley, 1996

Note that, while we can try to identify and discuss general principles in this course, and hope that they'll be applicable to methods that are yet to be developed, we can't study methods that don't yet exist. ``Object-oriented development'' is still changing rapidly enough so that methods that currently exist may likely have been radically overhauled, or replaced, by the time you've graduated.

For example, Rumbaugh and Booch have been working on a ``unified method'' (and notation) now for some time; some details of this will probably be available over the next year. Since Rumbaugh's and Booch's present methods are each highly regarded now, it won't be surprising if this new method becomes popular, too.

Location: [CPSC 333] [Listing by Topic] [Listing by Date] [Previous Topic] [Next Topic] [Intro to OOA]


Department of Computer Science
University of Calgary

Office: (403) 220-5073
Fax: (403) 284-4707

eberly@cpsc.ucalgary.ca