Organizing Business Knowledge The Mit Process Handbook [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Organizing Business Knowledge The Mit Process Handbook [Electronic resources] - نسخه متنی

Thomas W. Malone, Kevin Crowston, George A. Herman

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
توضیحات
افزودن یادداشت جدید






10.7 Timing Dependencies

Timing dependencies specify constraints on the relative timing of two or more activities. The most widely used members of this dependency family are prerequisite dependencies (A must complete before B starts) and mutual exclusion dependencies (A and B cannot overlap).

Timing dependencies are used in software systems for two purposes:



To specify implicit resource relationships



To specify cooperation relationships among activities that share some resources



Specify Implicit Resource Relationships Implicit resource relationships arise in situations where parts of a resource flow coordination protocol have been hard-coded inside a set of components. Other parts of the protocol might be missing, and explicit coordination might be needed to manage the missing parts only. One example is a set of components for accessing a database. Each of the components contains all the functionality needed in order to access the database built into its code. The name of the database is also embedded in the components and does not appear in their interface. However, none of the components contains any support for sharing the database with other activities. In applications that require concurrent access of the database by all components, designers need to specify and manage an external mutual exclusion dependency among the components.

































Table 10.4: Allen's taxonomy of relationships between time intervals

Relation


Symmetric relation


Pictorial example


X before Y


XXX YYY


X equal Y


XXX

YYY


X meets Y


XXXYYY


X overlaps Y


XXX YYY


X during Y


X equal Y


YYYYYY

XXX


X starts Y


X, Y simstart


XXX

YYYYY


X finishes


Y X, Y simend


XXX

YYYY


Specify Cooperation Relationships Flow dependencies assume that different users of a resource are independent from one another. In many applications, however, users of a resource are cooperating in application-specific ways. Section 10.3 describes an example of such patterns of cooperation. In those cases designers must specify additional dependencies that describe the cooperation among the users. Some of those dependencies could be other resource dependencies. Other could be timing dependencies.

To derive a useful family of timing dependencies we have used the following approach, based on Allen's (1984) taxonomy of time interval relationships. Allen has enumerated all possible relationships between two time intervals (table 10.4). An occurrence of a software activity can be represented by a time interval: [Begin_time, End_time]. Timing dependencies express constraints among activity occurrences. These constraints can be expressed by equivalent constraints between time intervals. Constraints can either require or forbid that a given time interval relationship hold. By enumerating ''required''and ''forbidden''constraints for each of Allen's time interval relationships, we get a list of potentially interesting elementary timing dependencies (table 10.5). These dependencies can be combined to define additional, composite timing relationships. Finally, the resulting set of dependencies can be organized in a specialization hierarchy, as shown in figure 10.18.







































Table 10.5: Deriving timing dependency types from Allen's time interval relationships

Allen's relation


''Relation required'' dependency


''Relation forbidden'' dependency


Comments


X before Y


X prerequisite Y


X prevents Y


X equal Y


Can be expressed as a composite pattern:

X, Y simstart AND X, Y simend


X meets Y


X meets Y


Special case of prerequisite


X overlaps Y


X overlaps Y


X, Y mutex


X during Y


X during Y


X, Y mutex


During can be expressed as a composite pattern:

X overlaps Y AND Y finishes X


X starts Y


X starts Y


X, Y simstart


X, Y simstart


X finishes Y


X finishes Y


X, Y simend


X, Y simend



Figure 10.18: Specialization relationships among timing dependencies

The following paragraphs describe each of the dependencies shown in figure 10.18. For each dependency type, we describe:



The timing constraint it specifies



The dependency design dimensions



The principal ways to manage it



Some situations where it might be useful




10.7.1 Mutual Exclusion Dependencies (X, Y Mutex)


















Description


Mutual exclusion dependencies among a set of activities limit the total number of activities of the set that can be executing at any one time


Design dimensions


Degree of concurrency (maximum number of concurrently executing activities)


Coordination


processes See Raynal (1986)


Typical use


Mutual exclusion dependencies typically arise among competing users who share resources with limited concurrency



10.7.2 Prerequisite Dependencies (X Prereq Y )


















Description


Prerequisite dependencies specify that an activity X must complete execution before another activity Y begins execution


Design dimensions


See section 10.6.3


Coordination processes


See section 10.6.3


Typical use


Prerequisites arise in two general situations:



Between producers and consumers of some resource. A resource must be produced before it can be consumed.



As a special way of managing mutual exclusion dependencies. Mutual exclusion relationships can be managed by ensuring that the activities involved occur in a statically defined sequential order. The ordering can be specified by defining appropriate prerequisite relationships.





10.7.3 Prevention Dependencies (X Prevents Y )


















Description


Prevention dependencies specify that the occurrence of an activity X prevents further occurrences of another activity Y


Design dimensions




In permanent prevention dependencies, an occurrence of X prevents all further occurrences of Y



In temporary prevention dependencies, occurrence of a third activity Z re-enables occurrences of Y




Coordination


processes Prevention relationships are closely related to perishable prerequisites (see section 10.6.3). As shown in figure 10.19, every prevention dependency can be mapped to an equivalent perishable prerequisite.


Typical use


Prevention relationships often arise among competing activities that share some resource, where one of the competing activities X has higher priority, and thus the power to restrict access to (prevent) other competing activities Y



Figure 10.19: Relationships between prevention and perishable prerequisite dependencies


10.7.4 Meets Dependencies (X Meets Y )


















Description


Meets dependencies specify that an activity Y should begin execution after completion of another activity X


Design dimensions


Minimum or maximum delay between the completion of X and the initiation of Y


Coordination processes


Most of the coordination processes for managing lockstep prerequisites can be used to manage this dependency. Delay parameters between X and Y can determine which alternatives are appropriate for each special case (e.g., if Y must start immediately after X completes, direct transfer of control is usually preferable to loose event synchronization).


Typical use


Meets dependencies are a special case of prerequisite and can also be used to describe relationships between producers and users of resources. The explicit specification of maximum delay between the two activities is useful in situations where resources produced have finite lifetimes and must be used within a specified time interval.



10.7.5 Overlap Dependencies (X Overlaps Y )


















Description


Overlap dependencies specify that an activity Y can only begin execution if another activity X is already executing


Design dimensions


None


Coordination processes


This dependency can be managed in two different ways:



Proactively scheduling Y when X starts execution. This is equivalent to decomposing X overlaps Y to Y starts X with specified delay.



Waiting for X to begin execution before allowing Y to start. This is equivalent to defining a perishable prerequisite (enabled by initiation of X, invalidated by completion of X ) between Y and X.




Typical use


Overlap relationships typically imply resource relationships between Y and X. In most cases, during its execution Y produces some resource or state required by X. Overlap dependencies occur most frequently as components of During dependencies.



10.7.6 During Dependencies (X during Y )


















Description


During dependencies specify that an activity X can only execute during the execution of another activity Y


Design dimensions


None


Coordination processes


This dependency is a composite pattern of the following two dependencies:



X overlaps Y,so X can begin execution only if Y is already executing.



Y finishes X. Termination of Y also terminates X.



It can be managed by composing processes for managing its two component dependencies.


Typical use


During dependencies imply that X uses some resource or state generated during Y 's execution. For example, a network client can only execute successfully during execution of the system's network driver.



10.7.7 Starts Dependency (X Starts Y )


















Description


Starts dependencies specify that an activity Y must start execution whenever X starts execution


Design dimensions


Minimum or maximum delay between initiation of the two activities


Coordination processes


Combinations of direct control flow and scheduling can be used to manage this dependency


Typical use


This dependency is often used to describe application-specific patterns of cooperative resource usage or implicit resource dependencies. For example, when starting a word processor program, the printer driver is often initialized as well, in anticipation to the word processor's need for its services.



10.7.8 Simultaneity Dependency (X, Y Simstart)


















Description


Simultaneity dependencies specify that all activities in a set must start execution at the same time


Design dimensions


Minimum and maximum tolerances between the actual time each activity in the specified set begins execution


Coordination processes


Simultaneity dependencies can be transformed into many-to-many prerequisite dependencies and managed as such (see figure 10.20)


Typical use


Simultaneity dependencies are most often used to describe patterns of cooperative resource or mutual resource dependencies



Figure 10.20: A simultaneity dependency can be transformed and managed as a composite prerequisite. Before activities X and Y can begin execution, all four prerequisite activites must occur. Then both X and Y can occur together.


Figure 10.21: Termination of the user-interface also requires termination of the database and graphics servers


10.7.9 Finishes Dependency (X Finishes Y )


















Description


Finishes dependencies specify that completion of an activity X also causes activity Y to terminate execution


Design dimensions


Minimum or maximum delay between completion of X and termination of Y


Coordination processes


Termination of the process that executes Y using machine-specific system primitives


Typical use


This dependency is most often used to specify application termination relationships (figure 10.21)



10.7.10 Simultaneous End Dependency (X, Y Simend)


















Description


Simultaneous end dependencies specify that all activities in a set must terminate if any of them completes execution


Design dimensions


Minimum or maximum tolerances between the actual time each member of the specified set terminates


Coordination processes




Centralized. Each activity in the set sends a signal to a monitor process upon termination. The monitor process terminates all other activities in the set.



Decentralized. Terminating activities generate an event. All participant activities periodically check for that event and terminate themselves if they detect it.




Typical use Speculative concurrency.


Multiple worker activities are jointly or independently working on a problem. All of them terminate if at least one of them arrives at a solution.


/ 185