|
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 schedulability
| We recommend that you perform schedulability 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 interarrival 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
|
|