Not muchOOA: Model the problem domain
class_name |
type attribute ... |
[type] method_name [(parameters...)] ... |
consList<T> |
T* data; consList* next; |
consList(T* d, consList<T>* c) data(d), next(c) {} T&* car() {return data;} consList<T>&* cdr() {return next;} listLength(); ... |
class name: | |
class type: (eg: device, property, role, event, ...) | |
class characteristics: (eg: tangible, atomic, concurrent, ...) | |
responsbilities: ... |
collaborators: ... |
Interactive concept map consisting of labeled nodes and arcs that can be attached to nodes. Requirements:
Remember, there are a lot of implicit requirements that aren't stated.
Pressman, R. S. (1997). Software Engineering: A Practitioner's Approach (4th edition). New York, McGraw-Hill. (Chapter 21)
Heavily influenced by structured designCoad, P., North, D. & Mayfield, M. (1995). Object Models: Strategies, Patterns, and Applications, Yourdon Press.
A collection of examplesBooch, G. (1994). Object Oriented Design With Applications, Benjamin/Cummings.
Cox, B. J. (1991). Object-Oriented Programming: An Evolutionary Approach. Reading, Mass, Addison -Wesely.
Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F. & Lorensen, W. (1991). Object-Oriented Modeling and Design. Englewood Cliffs, N.J., Prentice-Hall.
Practical Software Engineering, Department of Computer Science
Rob Kremer