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.

confirming the users’ needs, their <strong>an</strong>ticipated use, as well as helping to keep them involved in the<br />

development. As the use cases specify the sequences of operations to be performed, the GUI’s c<strong>an</strong> be<br />

made to mimic the desired system behavior. This is a good way of confirming that the use case is<br />

correct. For non-hum<strong>an</strong> interfaces <strong>an</strong>y proposed communications protocols c<strong>an</strong> be defined <strong><strong>an</strong>d</strong> checked<br />

(for example, that the interacting system is capable of sending <strong><strong>an</strong>d</strong> receiving the appropriate<br />

information).<br />

19.3.1.5 Relating the use case model to OMT<br />

The use case model dictates the formation of the models in OMT’s <strong>an</strong>alysis phase as indicated in Figure<br />

19.2. For example,<br />

• it helps identify the primary objects in the object model,<br />

• it helps specify the top level behavior of the system in the dynamic model,<br />

• it helps determine the inputs <strong><strong>an</strong>d</strong> outputs provided by, <strong><strong>an</strong>d</strong> expected by, the actors for the<br />

functional model.<br />

In addition use cases may also have <strong>an</strong> influence on ho w the system will be org<strong>an</strong>ized into subsystems<br />

as they indicate associated behaviors. In the implementation phase the use cases may be used to identify<br />

suitable scenarios <strong><strong>an</strong>d</strong> expected results for integration or system testing.<br />

Use case model<br />

<strong>Object</strong><br />

Model<br />

Dynamic<br />

Model<br />

identifies<br />

specifies<br />

Functional<br />

Model<br />

inputs +<br />

outputs<br />

org<strong>an</strong>izes<br />

Subsystem<br />

Model<br />

realized<br />

by<br />

<strong>Object</strong><br />

Design<br />

tested in<br />

implemented<br />

by<br />

Test<br />

specification<br />

Source<br />

code<br />

Figure 19.2: How the use case model c<strong>an</strong> be used in OMT<br />

19.3.2 <strong>Object</strong> modeling<br />

The first step in requirements <strong>an</strong>alysis phase, of the OMT method, is the construction of the object<br />

model. The object model is essentially com prised of the class <strong><strong>an</strong>d</strong> object diagrams described in the last<br />

chapter. As with BOOCH <strong><strong>an</strong>d</strong> the UML it is the object model which is the core of the OMT<br />

representation. As we have already encountered object models before we will not attempt to explain<br />

what they are other th<strong>an</strong> to state that the object model “shows the static data structure of the real -world<br />

system <strong><strong>an</strong>d</strong> org<strong>an</strong>izes it into workable pieces”.<br />

The information for the object model comes from:<br />

• the problem statement (written in natural l<strong>an</strong>guage according to OMT),<br />

• requirements <strong>an</strong>alysis process such as OOA,<br />

• the domain experts,<br />

• general knowledge of the real world,<br />

• the use case model (if you have constructed one).<br />

An interesting point to note is that OMT claims that object models promote communication betwe<br />

computer professionals <strong><strong>an</strong>d</strong> application-domain experts (what do you think?).<br />

OMT suggests the following steps as being <strong>an</strong> appropriate way in which to construct <strong>an</strong> object<br />

model.<br />

en<br />

1. Identify objects <strong><strong>an</strong>d</strong> classes.<br />

2. Prepare a data dictionary.<br />

3. Identify associations (including aggregations) between objects.<br />

4. Identify attributes of objects <strong><strong>an</strong>d</strong> links.<br />

5. Org<strong>an</strong>ize <strong><strong>an</strong>d</strong> simplify object classes using inherit<strong>an</strong>ce.<br />

157

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

Saved successfully!

Ooh no, something went wrong!