Make a new Active class for each task
Active classes are the fundamental unit of concurrency in the UML. We recommend you create new classes here rather than
make classes from your analysis model active. This makes for an easier migration to the concurrency architecture. |
Identify Tasks
Using the task identification strategies, define which tasks should be created. |
Analyze concurrency architecture for scheduleability
We recommend that you perform scheduleability analysis on your concurrency architecture to ensure that even under conditions
not tested, you can be guaranteed that all deadlines can be met. |
Apply resource sharing patterns
The resource patterns are applied with model refactoring to integrate them into the system design. |
Identify synchronization points
Synchronization points are points in different task action sequences when they must interact with other tasks. |
Apply scheduling patterns
The scheduling patterns are applied to integrate them into the system design. |
Select resource sharing patterns
A resource sharing pattern focuses on a technical means for sharing a resource so as to maintain its integrity while
simultaneously optimizing its client's usage. |
Test model with tasks in place
The testing of the elaborated model should focus on two aspects. First, the addition of the concurrency elements should not
break existing functionality. Secondly, the desired optimizations should be achieved. |
Identify shared resources
Resources are typically passive elements that are constrained in some way. When resources are shared, care must be taken to
ensure their integrity. |
Select scheduling patterns
There are many ways to schedule tasks. See the associated guidance. |
Apply synchronization patterns
The synchronization patterns are applied with model refactoring to integrate them into the system design. |
Select synchronization patterns
There are many synchronization strategies and patterns that can be applied. For more information, see the referenced
material. |
Refine each task
This includes:
-
Specifying the tasks properties, such as:
-
Priority
-
Worst case execution time
-
Blocking time
-
Deadline
-
Period
-
Jitter
-
Minimum inter-arrival time
-
Maximum burst length
-
Adding "passive" objects into the «active» class as parts
-
Refactor the collaboration to include the «active» classes
-
Refine scenarios to include «active» classes
|
|