23.08.2013 Views

Specification of Reactive Hardware/Software Systems - Electronic ...

Specification of Reactive Hardware/Software Systems - Electronic ...

Specification of Reactive Hardware/Software Systems - Electronic ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

106 Abstraction <strong>of</strong> a Problem Domain<br />

4.13.5 Roles<br />

Objects play roles in a relationship. These roles may be documented at both ends <strong>of</strong> the<br />

relationship symbol. Roles are particularly needed when relations are specified between<br />

objects <strong>of</strong> the same class, or for distinguishing two relationships between the same pair<br />

<strong>of</strong> classes [R 91].<br />

4.13.6 Aggregation<br />

Aggregation is a special sort <strong>of</strong> relationship. Its semantics and symbols have been discussed<br />

in Section 4.6.<br />

4.13.7 Generalisation and Specialisation<br />

Generalisation and specialisation are a special kind <strong>of</strong> relationship. The concepts <strong>of</strong> generalisation<br />

and <strong>of</strong> specialisation in relation with inheritance have been discussed in<br />

Subsection 4.3.3<br />

4.14 Attributes and Variables<br />

4.14.1 Attributes<br />

Objects are abstractions <strong>of</strong> things or concepts that we want to model as separate distinguishable<br />

entities. Objects have properties that characterise them. These properties<br />

fall apart into observable behaviour and descriptive features. Observable behaviour is<br />

visible via the class interface which defines all exported services <strong>of</strong> its objects. The services<br />

perform some form <strong>of</strong> computation, thereby performing a corresponding dynamic<br />

behaviour, which yields, in general, an observable result. The descriptive features have<br />

a more static character. During analysis they are modelled as attributes specified in their<br />

class. The attributes get specific values in object instances <strong>of</strong> that class. The domain <strong>of</strong><br />

values for each attribute must be specified. This is a premise for the later implementation<br />

<strong>of</strong> the methods that implement the services <strong>of</strong> the object. Attribute values are protected<br />

by the object’s interface. Values can only be modified as a result <strong>of</strong> communication via<br />

the object’s interface with other objects.<br />

There are various views on attributes that are interesting to get a more complete understanding.<br />

Coad and Yourdon refer to the Webster’s dictionary (1977) that defines<br />

attributes as ’Any property, quality, or characteristic that can be ascribed to a person or thing.<br />

They refine this definition (for OOA) to ’an attribute is some data (state information) from<br />

which each Object in a Class has its own value’ [CY91a]. This latter definition emphasises<br />

the ’data character’ <strong>of</strong> attributes and also refers to the concept <strong>of</strong> state. Most objectoriented<br />

methods and languages follow this interpretation. As is explained in Section<br />

6.4, we do not define state such that the state space <strong>of</strong> an object is determined by the<br />

product <strong>of</strong> the data domain spaces <strong>of</strong> all its internal data. Some <strong>of</strong> the data is only<br />

for local use and cannot be retrieved via the object interface. This local data does not

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

Saved successfully!

Ooh no, something went wrong!