Smalltalk and Object Orientation: an Introduction - Free
Smalltalk and Object Orientation: an Introduction - Free
Smalltalk and Object Orientation: an Introduction - Free
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