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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

16.4 <strong>Object</strong> Oriented Analysis<br />

We shall first consider the <strong>Object</strong> Oriented Analysis Approach (known as OOA) of Coad <strong><strong>an</strong>d</strong> Yourdon<br />

[Coad <strong><strong>an</strong>d</strong> Yourdon 1991]. This is because the identification of objects <strong><strong>an</strong>d</strong> classes is a crucial task in<br />

OO <strong>an</strong>alysis <strong><strong>an</strong>d</strong> de sign, however, m<strong>an</strong>y techniques ignore this issue. For example, both the Booch<br />

method <strong><strong>an</strong>d</strong> OMT do not deal with this issue at all. They indicate that it is a highly creative process<br />

which c<strong>an</strong> be based on the identification of nouns <strong><strong>an</strong>d</strong> verbs in <strong>an</strong> informal verbal description of the<br />

problem domain! A different approach is to use a method such as OOA as the first part of the design<br />

process <strong><strong>an</strong>d</strong> then to use some other OOD method for the later parts of the process.<br />

OOA is aimed at helping designers identify the requirements of their software in detail - rather th<strong>an</strong><br />

how the software should be structured or implemented. It therefore aims to describe the existing<br />

system, how it operates <strong><strong>an</strong>d</strong> how the software system should interact with it. One of the claims of OOA<br />

is that it helps the designer to package the requirements of the system in <strong>an</strong> appropriate m<strong>an</strong>ner (for<br />

object oriented systems?) <strong><strong>an</strong>d</strong> helps to reduce the risk of the software failing to meet the customer’s<br />

requirements. In effect, OOA helps to build the Obj ect (systems) Model which we will look at in more<br />

detail when we look at OMT.<br />

There are five activities within OOA. These act as the framework used to direct the <strong>an</strong>alyst during<br />

the <strong>an</strong>alysis process. They are:<br />

1. Finding classes <strong><strong>an</strong>d</strong> objects. This activity aims to identify the objects (<strong><strong>an</strong>d</strong> the classes of objects)<br />

in the domain.<br />

2. Identifying structures (amongst those classes <strong><strong>an</strong>d</strong> objects). Here structures relate to relationships<br />

such as is a as well as part of.<br />

3. Identifying subjects. In essence subjects indicate related objects.<br />

4. Defining attributes. These are the data elements of the objects.<br />

5. Defining services. These are the active parts of objects <strong><strong>an</strong>d</strong> indicate what the object does.<br />

These are not five steps (as steps implies a sequential ordering to the activities). Instead, as information<br />

becomes available, the <strong>an</strong>alyst performs the appropriate activity. The intention is that the <strong>an</strong>alyst c<strong>an</strong><br />

work in whatever way the domain expert finds easiest for them to express their knowledge. Thus the<br />

<strong>an</strong>alyst may drop down deeper into one activity th<strong>an</strong> the others as the domain expert provides greater<br />

information on that area. Equally, the <strong>an</strong>alyst may jump around between activities identifying classes<br />

one minute <strong><strong>an</strong>d</strong> services the next.<br />

16.5 The Booch method<br />

The Booch method (also known as just Booch <strong><strong>an</strong>d</strong> <strong>Object</strong> Oriented Development or confusingly OOD)<br />

is one of the earliest recognizable object oriented design methods. It was first described in a paper<br />

published in 1986 [Booch 1986] but has becom e widely adopted since the publication of the book<br />

describing the method [Booch 1991] <strong><strong>an</strong>d</strong> the more recent second edition [Booch 1994].<br />

The Booch method provides a step by step guide to the design of <strong>an</strong> object oriented system.<br />

Although Booch's books do dis cuss the <strong>an</strong>alysis phase, they do so in too little detail, compared to the<br />

design phase.<br />

16.5.1 The steps in the Booch method<br />

The major steps in the Booch method are the identification of objects <strong><strong>an</strong>d</strong> their classes, identification of<br />

the sem<strong>an</strong>tics of classes <strong><strong>an</strong>d</strong> ob jects, identification of the relationships between classes <strong><strong>an</strong>d</strong> objects <strong><strong>an</strong>d</strong><br />

the implementation of the classes <strong><strong>an</strong>d</strong> objects. Each of these steps is briefly outlined below:<br />

Identification of classes <strong><strong>an</strong>d</strong> objects . This involves <strong>an</strong>alyzing the problem domain <strong>an</strong> d the system<br />

requirements to identify the set of classes required. This is not trivial <strong><strong>an</strong>d</strong> relies on a suitable<br />

requirements <strong>an</strong>alysis.<br />

Identification of the sem<strong>an</strong>tics of classes <strong><strong>an</strong>d</strong> objects . This step involves identifying the services<br />

offered by <strong>an</strong> objec t as well as those required of <strong>an</strong> object. A service is essentially a function<br />

performed by <strong>an</strong> object (it is therefore during this step that the overall system functionality is<br />

132

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

Saved successfully!

Ooh no, something went wrong!