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.

for representing dynamic behavior in real-time avionic control systems. Essentially statecharts indicate<br />

the states of the system, the tr<strong>an</strong>sitions between states, their sequence <strong><strong>an</strong>d</strong> the events which cause the<br />

state ch<strong>an</strong>ge.<br />

The Functional Model describes how system functions are performed. To do this it uses data flow<br />

diagrams (DFD). These illustrate the sources <strong><strong>an</strong>d</strong> sinks of data as well as the data being exch<strong>an</strong>ged.<br />

They contain no sequencing information or control structures.<br />

The relationshi p between these three models is import<strong>an</strong>t as each model adds to the designer's<br />

underst<strong><strong>an</strong>d</strong>ing of the domain. Essentially the relationships are:<br />

• The object model defines the objects which hold the state variables referenced in the dynamic<br />

model <strong><strong>an</strong>d</strong> are the sources <strong><strong>an</strong>d</strong> sinks referenced in the functional model.<br />

• The dynamic model indicates when the behavior in the functional model occurs <strong><strong>an</strong>d</strong> what<br />

triggered it.<br />

• The functional model explains why <strong>an</strong> event tr<strong>an</strong>sition leads from one state to <strong>an</strong>other in the<br />

dynamic model.<br />

The construction of these models is not sequential, with ch<strong>an</strong>ges to <strong>an</strong>y one of the models having a<br />

knock on effect in the other models. Typically, the designer will start with the object model, then<br />

consider the dynamic <strong><strong>an</strong>d</strong> finally the functional, but the process is iterative.<br />

The actual <strong>an</strong>alysis process is described in considerable detail <strong><strong>an</strong>d</strong> is supported by step by step<br />

guid<strong>an</strong>ce. This ensures that the developer knows what to do at <strong>an</strong>y time to adv<strong>an</strong>ce the three models.<br />

16.6.2 The Design phase<br />

The Design phase of OMT builds upon the models produced during the <strong>an</strong>alysis phase by breaking them<br />

down into subsystems <strong><strong>an</strong>d</strong> by identifying appropriate algorithms for methods. These two steps are<br />

performed during the system design <strong><strong>an</strong>d</strong> object design steps.<br />

• The syste m design breaks the system down into subsystems <strong><strong>an</strong>d</strong> determines the overall<br />

architecture to be used.<br />

• The object design decides on the algorithms to be used for the methods. The methods<br />

themselves are identified by <strong>an</strong>alyzing the three <strong>an</strong>alysis models for each class etc.<br />

Each of these steps possess some guidelines for their respective tasks, however, far less support is<br />

provided for the designer th<strong>an</strong> in the <strong>an</strong>alysis phase. For example, systematic guid<strong>an</strong>ce for the<br />

identification of subsystems is missing. In stead the issues involved are discussed such as resource<br />

m<strong>an</strong>agement, batch versus interactive modes etc. This me<strong>an</strong>s that identifying where to start, how to<br />

proceed <strong><strong>an</strong>d</strong> what to do next c<strong>an</strong> be difficult.<br />

16.6.3 The Implementation phase<br />

The implementation phase rep resents the process of codifying the system <strong><strong>an</strong>d</strong> object designs into the<br />

target l<strong>an</strong>guage. This phase does provide some very useful guid<strong>an</strong>ce on how to implement features used<br />

in the model-based design process used, but is again lacking in the step by step g uid<strong>an</strong>ce which would<br />

be so useful for those new to object orientation.<br />

16.6.4 Strengths <strong><strong>an</strong>d</strong> weaknesses<br />

OMTs’ greatest strength is the level of step by step support which it provides during the <strong>an</strong>alysis phase.<br />

However it is much weaker in its guid<strong>an</strong>ce during the de sign <strong><strong>an</strong>d</strong> implementation phases providing<br />

general guid<strong>an</strong>ce (<strong><strong>an</strong>d</strong> some heuristics).<br />

16.7 The <strong>Object</strong>ory method<br />

The <strong>Object</strong>ory method [Jacobson 1991] possesses three phases each of which produce a set of models.<br />

The three phas es are: the Requirements phase, the Analysis phase <strong><strong>an</strong>d</strong> the Construction phase. The<br />

134

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

Saved successfully!

Ooh no, something went wrong!