29.11.2014 Views

Smalltalk and Object Orientation: an Introduction - Free

Smalltalk and Object Orientation: an Introduction - Free

Smalltalk and Object Orientation: an Introduction - Free

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!