Information Technology Reference
In-Depth Information
separation of responsibilities, and it will delete this instance when the member
leaves the group.
4.6.3
Behaviour: Operations
Apart from the structural aspects, we also need to specify the behaviour
of the elements of a computational specification. UML state machines can be
used to express the internal behaviour of any of the computational elements:
ports, components and realizing classifiers. State machines are used to rep-
resent such behaviour, as has already been illustrated in the enterprise and
information specifications.
UML activity diagrams are often used to express object interactions in
this viewpoint because they provide the kinds of abstraction that we need to
model the different ways in which messages are exchanged between objects.
This is especially true when the interactions are defined in terms of signals
or operations. Alternatively, when messages and interaction protocols are the
focus of design, UML interaction diagrams can be more appropriate.
For example, figure 4.9 shows a sequence diagram expressing the interac-
tions that occur between the components of the computational specification
when a customer requests information about a pending repair order. The
precise way in which the user interacts with the system and the information
that is presented to her is encapsulated in the GUI2User object, and is not
described here. Only the communications that result from those interactions
with the system GUI are shown.
Figure 4.9 shows that, when the user decides to login, the presentation ob-
ject (the GUI2User object) sends a request to login to the appropriate object
in the business logic layer (the LoginFunction). That object consults with the
corresponding database access object to check the username and password for
: User
: GUI2User
: Login
Function
: User
Operations
: Corporation
DataMgmt
: RepairOrder
DataMgmt
1:
login(name=n, pwd=p)
2:
login(name=n, pwd=p)
3:
getId(userName=n, pwd=p)
«CV_EnvironmentContract»
{<1 sec}
4:
{uid<>null}
uid
5:
uid
6:
uid
7:
getRepairOrders()
8:
pendingOrders(u=uid)
9:
getOrders(searchCriteria="user == uid")
10:
rid[]
11:
rid[]
12:
rid[]
loop
13:
getRepairOrderInfo(r=rid)
14:
repairOrderInfo(r=rid)
[0..*]
15:
getOrderDetails(r=rid)
16:
order
17:
order
18:
order
FIGURE 4.9: A computational interaction diagram, showing the steps in the
processing of a query.
 
Search WWH ::




Custom Search