The object-oriented analysis process conforms to the basic analysis concepts and principles Although the terminology, notation, and activi...
The object-oriented analysis process conforms to the basic analysis concepts and principles Although the terminology, notation, and activities differ from conventional methods, OOA (at its kernel) addresses the same underlying objectives. Rumbaugh et al. [RUM91] discuss this when they state:
Analysis . . . is concerned with devising a precise, concise, understandable, and correct model of the real world. . . . The purpose of object-oriented analysis is to model the real world so that it can be understood. To do this, you must examine requirements, analyze their implications, and restate them rigorously.
To develop a “precise, concise, understandable, and correct model of the real world,” a software engineer must select a notation that implements a set of generic components of an OO analysis model. Monarchi and Puhr define a set of generic representational components that appear in all OO analysis models.6 Static components are structural in nature and indicate characteristics that hold throughout the operational life of an application. These characteristics distinguish one object from other objects. Dynamic components focus on control and are sensitive to timing and event processing. They define how one object interacts with other objects over time.
The following components are identified :
Static view of semantic classes.Requirements are assessed and classes are extracted (and represented) as part of the analysis model. These classes persist throughout the life of the application and are derived based on the semantics of the customer requirements.
Static view of attributes. Every class must be explicitly described. The attributes associated with the class provide a description of the class, as well as a first indication of the operations that are relevant to the class.
Static view of relationships. Objects are “connected” to one another in a variety of ways. The analysis model must represent these relationships so that operations (that affect these connections) can be identified and the design of a messaging approach can be accomplished.
Static view of behaviors. The relationships just noted define a set of behaviors that accommodate the usage scenario (use-cases) of the system. These behaviors are implemented by defining a sequence of operations that achieve them.
Dynamic view of communication. Objects must communicate with one another and do so based on a series of events that cause transition from one state of a system to another
Dynamic view of control and time. The nature and timing of events that cause transitions among states must be described.
De Champeaux, Lea, and Faure define a slightly different view of OOA representations. Static and dynamic components are identified for object internals and for interobject representations. A dynamic view of object internals can be characterized as an object life history; that is, the states of the object change over time as various operations are performed on its attributes.