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.

are therefore concurrent <strong><strong>an</strong>d</strong> c<strong>an</strong> be placed in separate execution threads without effecting the operation<br />

of the system.<br />

20.3.1.3 Allocating subsystems to processors <strong><strong>an</strong>d</strong> tasks<br />

Each concurrent package should be allocated to <strong>an</strong> independent process or processor. The system<br />

designer must therefore:<br />

• estimate perform<strong>an</strong>ce needs <strong><strong>an</strong>d</strong> the resources needed to satisfy them,<br />

• choose hardware or software implementations for packages,<br />

• allocate packages to processors to satisfy perform<strong>an</strong>ce needs <strong><strong>an</strong>d</strong> minimize inter processor<br />

communication,<br />

• determine the connectivity of the physical units that implements the packages.<br />

A deployment diagram c<strong>an</strong> be used to illustrate the results of this step.<br />

20.3.1.4 M<strong>an</strong>agement of data stores<br />

The designer must identify appropriate data stores for both internal <strong><strong>an</strong>d</strong> external data. Thi s involves<br />

identifying the complexity of the data, the size of the data, the type of access to the data (single or<br />

multiple users), access times <strong><strong>an</strong>d</strong> portability. Having identified these issues decisions c<strong>an</strong> be made about<br />

whether data c<strong>an</strong> be held in internal memory, on secondary storage devices, whether it should be held in<br />

flat files, relational or object database system.<br />

20.3.1.5 H<strong><strong>an</strong>d</strong>ling access to global resources<br />

The system designer must identify what global resources are required <strong><strong>an</strong>d</strong> how access to them c<strong>an</strong> be<br />

controlled. Global resources include processors, disk drives, disk space, workstations as well as files,<br />

classes <strong><strong>an</strong>d</strong> databases.<br />

20.3.1.6 Choosing the implementation of control in software<br />

The choice of the internal control mech<strong>an</strong>ism used by the system will be mediate d by the facilities<br />

provided by the implementation l<strong>an</strong>guage. For example, Ada supports concurrent tasks whereas<br />

VisualBasic does not. <strong>Smalltalk</strong> <strong><strong>an</strong>d</strong> Java support light weight processes <strong><strong>an</strong>d</strong> therefore c<strong>an</strong> be said to<br />

mimic concurrent systems. The choices available are:<br />

• procedure oriented systems. Such a system represents a procedure calling mech<strong>an</strong>ism in which<br />

the flow of control is passed from one procedure / method to <strong>an</strong>other when the first calls the<br />

second.<br />

• event driven systems . This is the appr oach taken by the dynamic model of the <strong>an</strong>alysis phase.<br />

Essentially operations are triggered off by events which are received by objects. M<strong>an</strong>y window<br />

based interfaces operate in this m<strong>an</strong>ner.<br />

• concurrent systems. In which the system exists in several processe s which execute at the same<br />

time. Some synchronization between the processes may take place at certain times, but for the<br />

majority of the time they are completely separate.<br />

20.3.1.7 H<strong><strong>an</strong>d</strong>ling boundary conditions<br />

There are three primary boundary situations which the designer should consider. These are:<br />

initialization, termination <strong><strong>an</strong>d</strong> failure. Initialization involves setting the system into <strong>an</strong> appropriate,<br />

cle<strong>an</strong>, steady state. Termination involves ensuring the that the system shuts down in <strong>an</strong> appropriate<br />

m<strong>an</strong>ner. Failure involves dealing with unpl<strong>an</strong>ned termination of the system cle<strong>an</strong>ly.<br />

167

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

Saved successfully!

Ooh no, something went wrong!