Smalltalk and Object Orientation: an Introduction - Free
Smalltalk and Object Orientation: an Introduction - Free
Smalltalk and Object Orientation: an Introduction - Free
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
devolved amongst the objects). This is <strong>an</strong>other non -trivial step <strong><strong>an</strong>d</strong> may result in modifications<br />
to the classes <strong><strong>an</strong>d</strong> objects identified in the last step.<br />
Identification of the relationships between classes <strong><strong>an</strong>d</strong> objects . This step involves identifying<br />
links between objects as well as inherit<strong>an</strong>ce between classes. As this step may ident ify new<br />
services required of objects, there is usually <strong>an</strong> iteration between this step <strong><strong>an</strong>d</strong> the last step.<br />
Implementation of classes <strong><strong>an</strong>d</strong> objects. This step attempts to consider how the classes <strong><strong>an</strong>d</strong> objects<br />
will be implemented, how attributes will be defined <strong><strong>an</strong>d</strong> services provided. This will involve<br />
consideration of algorithms etc. This process may lead to modifications in the deliverables of all<br />
of the above steps <strong><strong>an</strong>d</strong> may force the designer to return to some or all of the above steps.<br />
During these steps cla ss diagrams, object diagrams, module diagrams, process diagrams, state<br />
tr<strong>an</strong>sition diagrams <strong><strong>an</strong>d</strong> timing diagrams are produced. The class diagrams illustrate the classes in the<br />
system <strong><strong>an</strong>d</strong> their relationships. The object diagrams illustrate the actual object s in the system <strong><strong>an</strong>d</strong> their<br />
relationships. Module diagrams, in turn, package the classes <strong><strong>an</strong>d</strong> objects into modules (these modules<br />
illustrate the influence Ada had on the development of the Booch method [Booch 1987].) Process<br />
diagrams perform a similar funct ion for processes <strong><strong>an</strong>d</strong> processors. The state tr<strong>an</strong>sition diagrams,<br />
together with the timing diagrams, describe the dynamic behavior of the system (while the class, object<br />
<strong><strong>an</strong>d</strong> other diagrams describe the static structure of the system).<br />
It is notable that Bo och recommends <strong>an</strong> incremental <strong><strong>an</strong>d</strong> iterative development of a system through<br />
the refinement of different yet consistent logical <strong><strong>an</strong>d</strong> physical views of that system.<br />
16.5.2 Strengths <strong><strong>an</strong>d</strong> weaknesses<br />
The biggest problem for a designer approaching the Booch method for t he first time is that the plethora<br />
of different notations are supported by a very poorly defined <strong><strong>an</strong>d</strong> loose process (although the revision to<br />
the method described in [Booch 1994] addresses this to some extent). It lacks the step by step guid<strong>an</strong>ce<br />
required. In particular it possesses very few mech<strong>an</strong>isms for determining the system’s requirements.<br />
Thus its main strengths are its (mainly graphical) notations which cover most aspects of the design of <strong>an</strong><br />
object oriented system, whilst its greatest weakness is th e lack of sufficient guid<strong>an</strong>ce in the generation<br />
of these diagrams.<br />
16.6 The <strong>Object</strong> Modeling Technique<br />
The <strong>Object</strong> Modeling Technique [Rumbaugh et al 1991] is <strong>an</strong> OOD method which aims to construct a<br />
series of models which refine the system design, such that the final model is suitable for<br />
implementation. The actual design process is divided into 3 phases:<br />
• the Analysis Phase which attempts to model the problem domain;<br />
• the Design Phase which structures the results of the <strong>an</strong>alysis phase in <strong>an</strong> appropriate m<strong>an</strong>ner;<br />
• the Implementation Phase which takes into account target l<strong>an</strong>guage constructs.<br />
Each of these will be briefly described below.<br />
16.6.1 The Analysis phase<br />
Three types of model are produced by the Analysis p hase; these are the object model, the dynamic<br />
model <strong><strong>an</strong>d</strong> the functional model.<br />
The <strong>Object</strong> Model describes the objects in the domain, their class <strong><strong>an</strong>d</strong> the relationships between the<br />
objects. For example, the obj ect model might represent the fact that a department object possesses a<br />
single m<strong>an</strong>ager (object) but m<strong>an</strong>y employees (objects). The object model therefore represents the static<br />
structure of the domain. The actual notation used is based on <strong>an</strong> extension of t he basic Entity -<br />
Relationship (E-R) notation.<br />
The Dynamic Model expresses what happens in the domain, when it occurs <strong><strong>an</strong>d</strong> what the effect is.<br />
That is, the dynamic model expresses the behavior of the system (although it does not represent how the<br />
behavior is achieved). The formalism used to express the dynamic model is based on a variation of<br />
finite state machines called statecharts . These were developed by Harel [Harel et al 1987, Harel 1988]<br />
133