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.

4.2 Objects 59<br />

An object can mean the thing it represents or the concept <strong>of</strong> object. The actual meaning<br />

must become clear from the context. This can be further clarified with an example.<br />

What do we mean with ’the properties <strong>of</strong> objects’. It can mean two things. Firstly, an<br />

object models an entity from a problem domain. Such an entity has various properties<br />

which are modelled by the object. Therefore the object is said to have those properties.<br />

Secondly, an object is a concept that has the power to describe entities from a problem<br />

domain. An object has this power because the concept <strong>of</strong> object is constructed properly.<br />

The properties <strong>of</strong> the concept <strong>of</strong> object must be such that an object in a system model<br />

can adequately represent all relevant properties <strong>of</strong> the thing (entity or object) it models.<br />

4.2.2 Definition<br />

The common use <strong>of</strong> the term object is to refer to a thing, a commodity, an article, a matter,<br />

a manifestation, a something, a recipient or a target. These common meanings show<br />

that the notion <strong>of</strong> object is suitable to refer to many things in a problem domain. Coad<br />

and Yourdon refer to Webster’s dictionary (1977) to define an object: ’A person or thing<br />

to which action, thought, or feeling is directed. Anything visible or tangible; a material product<br />

or substance’ [CY91a].<br />

For system analysis we define an object to be a model <strong>of</strong> a concept, or <strong>of</strong> an entity<br />

from a problem domain. It is characterised by its externally observable behaviour and<br />

its internal state. This definition matches with definitions from the world <strong>of</strong> s<strong>of</strong>tware<br />

engineering, because it is kept abstract and general. The semantics <strong>of</strong> objects are language<br />

or method dependent. Properties such as internal concurrency, message passing,<br />

persistence, and degree <strong>of</strong> encapsulation, determine the semantics. These, and other<br />

properties, will be described later.<br />

4.2.3 Alternative Definitions<br />

For a better understanding <strong>of</strong> the concept <strong>of</strong> object, alternative definitions add various<br />

aspects:<br />

1. Rumbaugh et al. [R 91] describe an object as ’a concept, abstraction, or thing with<br />

crisp boundaries and meaning for the application.’ They distinguish two sorts. Concrete<br />

objects refer to physical things. Conceptual objects refer to a policy to do<br />

something.<br />

2. Coad and Yourdon [CY91a, CY91b] describe an object as ’an abstraction <strong>of</strong> something<br />

in the problem domain (or its implementation) reflecting the capabilities <strong>of</strong> a system to keep<br />

information about it, interact with it, or both.’ A second definition they give is: ’an<br />

encapsulation <strong>of</strong> attribute values and their exclusive services.’ A third is: ’a run-time<br />

instance <strong>of</strong> some processing and values, defined by a static description called a ’class’.’<br />

3. Jacobson [J 92] defines an object as ’an entity able to save a state (information) and<br />

which <strong>of</strong>fers a number <strong>of</strong> operations (behaviour) to examine or affect this state.’

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

Saved successfully!

Ooh no, something went wrong!