Abstract
UML is the standard visual object modeling language
which may be very useful as a system design communication language.
However, UML as a real-time modeling language has limitations. It
basically provides a lot of syntax, but not enough semantics. The
UML Profile for Schedulability, Performance and Time, extends the
notation and semantics for the real-time domain. It is supposed
to overcome the limitations which are related to and provide suitability
for modeling real-time systems. Since we are mainly concerned with
the problem of real-time operating system scheduling, the article
discusses the ability of UML and its profile to determine the schedulability
of a planned piece of software.
1 INTRODUCTION
In real-time systems, the correctness of a computation depends
not only on obtaining the right result, but also upon providing
the result on time. Because of performance constraints, typically
the design of real-time software is addressed jointly by hardware
and software components and it is also supported by the features
of the operating system. The operating system selected for those
applications could be a real-time operating system (RTOS), specifically
designed to schedule real-time tasks. In the last few years, real-time
processing seems to be the essential part of a operating system,
and the scheduler could be considered the most important component
of a real-time system. This way, designing this kind of systems
may be considered one of the most interesting tasks that a software
engineer can perform.
Object-oriented modeling is naturally fitted for
capturing various characteristics and requirements of systems. However,
the current object-oriented techniques do not provide the tools
and proper services in order to design all the characteristics of
real-time systems, particularly those concerning constraints (timing
constraints, resource constraints...) and non-functional requirements
(QoS, security requirements...). The Unified Modeling Language (UML)
is an industry standard which provides notation for describing object
oriented models. The language represents a collection of the best
engineering practices that have proven successful in the modeling
of large and complex systems [UML03]. Nowadays, UML is commonly
used as a description language and is more complete than other languages
in its support for modeling complex systems, being also suitable
for modeling real-time systems [Bj?rkander03], [Douglass98], [Gomaa00].
UML has been also used in a large number of time-critical and resource-critical
systems [UMLSPT03]. Despite its real-time capabilities [Douglass98b],
[Jigorea00], [Küster01], [Selic98], UML has some limitations as
well, because it lacks in notations and semantics to represent several
aspects that are of particular concern to real-time system developers
[Bichler02], [Lavazza01]. However, it has mechanisms for improving
the design phase through its extensibility capabilities: the UML
profile mechanism provides a way of specializing the concepts defined
in the UML standard. The UML Profile for Schedulability, Performance,
and Time was submitted in response to a Request for Proposal (RFP)
to define a common, standard way in which timeliness and related
properties could be specified. The Schedulability Modeling is a
sub-profile, which is intended as a general base for supporting
a wide variety of known and future schedulability analysis methods
[UMLSPT03]. In order to asses UML validity and limitations for modeling
real-time systems, in this article, we provide a concrete periodic
task scheduling example in a RTOS. Our goal is to determine how
useful UML designing real-time task schedulability is [Cottet02].
2 REAL-TIME SCHEDULING
Real-time developers are often most concerned with meeting specific
time deadlines for tasks. The difficulty in using an operating system
for real-time programming is that it must be able to guarantee that
the worst-case response time to give control to a process which
needs attention is short enough for the process to handle events
on time. If the worst-case response time of the process is greater
than its deadline, then the scheduling is not feasible. One strategy
to ensure efficient response time is to prioritize processes so
that more important processes always receive processor attention
if they need it.
The scheduler is the part of the operating system
that responds to the requests sent by programs, interrupts and gives
control of the processor to those processes. It is the component
that implements the scheduling algorithms and can also stand alone
to act as a centerpiece to a program that requires moderation among
many different concurrent tasks. In this working-mode, each task
that a program must accomplish is written so that it can be called
by the scheduler as necessary. Tasks can be ranked in priority,
allowing the scheduler to hand control of the processor to each
process in turn.
The major factors that affect real-time system
schedulability include [Saiedian04]:
- The event occurrence pattern, whether the event
is periodic or aperiodic.
- Each event deadline, whether the deadline is
less than, equal or greater than its period.
- Task interaction, whether tasks need to synchronize
with each other or not.
Due to the necessity of considering the schedulability
analysis as early as possible in software development, its integration
with the industry UML standard (schedulability analysis can be integrated
with object-oriented design) and its schedulability extension (UML
Profile for Schedulability, Performance, and Time) is a very important
issue, because it may allow to detect unfeasible real-time architectures
at an early stage of development, preventing costly design mistakes,
accelerating development schedules and allowing developers to verify
the real-time performance of the design throughout the software
lifecycle [Martins03].
Real-time task model
A real-time application is specified by means of a set of tasks.
Real-time tasks are the basic executable entities that are scheduled;
they may be periodic or aperiodic, and have hard (late data are
bad data) or soft (late data may still be good data) real-time constraints.
A task model is defined by its main timing parameters [Cottet02],
[Liu73] (see Figure 1). The quality of scheduling depends on the
exactness of these parameters, so their determination is an important
aspect of real-time design.
- r, task release time, i.e. the triggering time
of the task execution request.
- C, task worst-case computation time, when the
processor is fully allocated to it.
- D, task relative deadline, i.e. the maximum
acceptable delay for its processing.
- T, task period (valid only for periodic tasks).
- When the task has hard real-time constraints,
the relative deadline allows computation of the absolute deadline
d = r + D. Transgression of the absolute deadline causes a timing
fault.
Also, when tasks are allowed to access shared resources,
their access needs to be controlled in order to maintain data consistency.
Figure 1. Real-time task model
Fixed-priority algorithm:
Rate Monotonic
A scheduling algorithm is a set of rules that determine the task
to be executed at a particular moment [Liu73]. In schedulability
analysis, thread priorities are of primary concern. Basic on-line
algorithms are designed with a simple rule that assigns priorities
according to the temporal parameters shown in the previous subsection.
If the considered parameter has a fixed value, i.e., request rate
or deadline, the algorithm is static because the priority is fixed.
The priorities are assigned to tasks before execution and do not
change over time. A basic algorithm with fixed-priority assignment
is Rate Monotonic (RM) [Liu73]: given a set of periodic tasks, assigning
the priorities according to the RM algorithm means that tasks with
shorter periods (higher request rates) get higher priorities. RM
scheduling is preemptive, i.e., a task can be preempted by a task
with higher priority. Research has shown that this algorithm solves
many of the issues in real-time systems, including predictable real-time
industrial computing systems [Saiedian04].
Priority inversion
In most real-time systems, the tasks are not independent, they
synchronize with one another in a mutually exclusive manner to share
a resource. In preemptive scheduling, that is driven by fixed priority
and where critical resources are protected by a mutual exclusion
mechanism, the priority inversion phenomenon can occur [Cottet02].
Priority inversion is the phenomenon that causes
a high priority task to be delayed indefinitely while awaiting a
resource that has been held by a low priority task. The low priority
task is often unable to run due to the presence of an unrelated
medium priority task. In the situation that results, one finds that
the high priority task is effectively denied the CPU because of
the lower medium priority task.
In order to prevent the priority inversion phenomenon,
the priority inheritance protocol can be applied. The basic idea
is to dynamically change the priority of some tasks. So a task ti,
which is using a critical resource inside a critical section, gets
the priority of any task tj waiting for this resource whenever the
priority of task tj is higher than that of task ti.
3 REAL-TIME UML
UML is a language for expressing the constructs and the relationships
of complex systems. UML helps in describing and designing software
systems, particularly software systems built using the object-oriented
style [Fowler03]. Although UML is mainly intended for general-purpose
modeling, it may be also used for real-time systems modeling [Douglass04].
The OMG has adopted a standard way to capture timeliness, performance,
and schedulability properties of real-time systems: UML Profile
for Schedulability, Performance, and Time. This profile has increased
the interest on using UML and object-oriented technology to model
and implement real-time systems [Saiedian04]. The profile does not
invent any new techniques, but offers the possibility to exchange
timeliness properties between UML modeling tools and schedulability
analysis tools. Since the major tools available in the market place
are all based on the RM analysis, and the team who developed the
profile had experience and expertise predominantly with RM analysis,
the specification is basically biased towards this algorithm.
The UML Profile for Schedulability, Performance,
and Time uses stereotypes, tagged values, and constraints with specific
names. Although the UML Profile for Schedulability, Performance,
and Time predefines a number of stereotypes, tagged values and constraints,
the user is free to add more, whenever it clarifies of simplifies
the analysis and design models.
The stereotypes may extend one or more classes
through extensions as part of the profile, and enables the use of
domain specific terminology or notation. Stereotypes may clarify
the model to domain experts trying to construct or understand the
system. However, stereotypes are more useful when they contain special
values that apply to that kind of stereotype: tagged values.
A tagged value is a property name-value pair and
provides the definition of the kind of information added to the
stereotype.
A constraint is a user-defined rule or rule of
correctness. We use constraints to express restrictions that make
sense in our particular domain.
UML dynamic modeling
UML dynamic modeling addresses the dynamic aspects of the system.
The dynamic model, also referred to as behavioral model, describes
how objects interact with each other. For our purpose, UML allows
to model the traces of interactions among many objects working together
and provide the important information required for schedulability
analysis, which is captured in sequence or timing diagrams. We can
use sequence diagrams and timing diagrams to describe scenarios
that have timing requirements.
Sequence diagrams emphasize message sequence, so
the next message in time is the message following the current one
on the diagram. Time goes down the page, but usually linearity is
no implied; that is, further down implies later in time, but the
same distance at different places in the diagram does not imply
the same amount of time. Also, messages on sequence diagrams are
only partially ordered, so in many cases the relative timing between
messages is not specified. Sequence diagrams support concurrent
semantics, which means that the relative ordering of some messages
is not specified; we would expect that, if one event (such as sending
or receiving a message) is marked below another one in the diagram,
then the second one comes after the first one in absolute time,
but this is true only if both events belong to the same lifeline,
not if they belong to different lifelines; therefore, when messages
begin on different lifelines, we cannot know which one is first
in time; and, if messages terminate on different lifelines, we cannot
assume that they are received in the same sequence as they are depicted,
even when they are sent in that particular sequence.
Timing diagrams were not included in UML 1.x.,
even though electrical engineers have used timing diagrams for a
long time in the design of electronic state machines. A timing diagram
is a simple representation with time along the horizontal axis and
object state or attribute value along the vertical axis. However,
timing diagrams are different from statecharts, even though we can
see the change in state of the different lifelines, because statecharts
specify all the reactive behavior of the classifier it is specifying,
but not a particular scenario. In UML 2.0, they are used to show
interactions when a primary purpose of the diagram is to reason
about time. Since timing diagrams are shown against a common clock
(depicted with the time ruler on the diagram), messages on timing
diagram are fully ordered.
Run-to-completion
semantics
UML defines a run-to-completion semantics for event consumption,
which imposes that no other event is dequeued before the processing
of the previous event is fully completed. Events are consumed one
by one. That means that the object will not accept new incoming
events until the previous one has been fully consumed.
4 CASE STUDY: TASK
SET SCHEDULING SHARING A CRITICAL RESOURCE
The main objective of this article is to check the capabilities
of UML for task scheduling in a RTOS. We have to determine if the
proposed task set is schedulable or not using UML models. We therefore
analyze the schedulability of an example application with the following
characteristics:
- Task set composed of three dependent periodic
tasks ,
and .
- Tasks
and share a critical
resource.
- A task in a critical section can be preempted
by a higher priority task which does not need the same resource.
- Deadlines are equal to periods.
- Preemptive fixed priority scheduling algorithm
considered: Rate Monotonic (RM). We use descending priority values
to indicate higher priority.
In order to describe in more detail this task
set and the critical sections of task ?1 and ?3, we add new parameters
that specify the three components of
- :
:task duration before entering the critical section.
- :critical
section duration.
- :task
duration after the critical section.
Then, we have the computation time=++
, so the task set is described by the classical parameters given
in Table 1
Table 1. Case study: a task set sharing
a critical resource
According to the RM algorithm, where tasks with
shorter periods get higher priorities, task receives the highest
priority and task the lowest one.
For simplicity, we have been considered UML run-to-completion
semantics for each event consumption.
The schedule obtained under the RM algorithm is
illustrated in Figures 2 and 3 using a UML 2.0 sequence diagram
and a UML 2.0 timing diagram, respectively.
Figure 2. Sequence diagram showing the
example task set accordingly to the RM scheduling
Analyzing the sequence diagram, we can stereotype
this diagram as <<SAsituation>> to use it in the context
of schedulability analysis, representing a real-time situation.
In UML 2.0, the notation for an interaction in
a sequence diagram is a solid-outline rectangle (a rectangular frame).
The five sided box at the upper left hand corner names the sequence
diagram: keyword sd followed by the interaction name, “RM Scheduling”1.
Each lifeline in the diagram represents an individual
participant in the scenario:
- s1:Scheduler. The stereotype <<SAscheduler>>
of the UML Profile for Schedulability, Performance, and Time (schedulability
modeling) represents a scheduler, in this context, a kind of resource
broker2 for a execution engine (in our domain, a processor) that
is responsible for processing acquisition requests from clients
of the service and, based on the appropriate access control policy
for that service, it dispenses access to the service. If a service
instance is busy, then the reply may remain pending until access
is possible. Shortly, the scheduler determines a schedule that
allocates a set of scheduling jobs to its set of execution engines.
The tag “SAschedulingPolicy” represents the set of rules for assigning
processor time to a set of scheduling jobs (in our model, ‘RateMonotonic’).
The class Scheduler has been designated as active where its instance
(s1) has its own thread of control and can initiate control activity.
The active objects are shown with the new notation in UML 2.0:
class box with an additional vertical bar on either side, instead
of the thick border.
- r1:Resource. The stereotype <<SAresource>>
of the UML Profile for Schedulability, Performance, and Time (schedulability
modeling) represents a kind of protected resource (e.g., a semaphore)
that is accessed during the execution of a scheduling job. It
may be shared by multiple concurrent actions and must be protected
by a locking mechanism. The tag “SAaccessControl” represents the
access control policy for handling requests from scheduling jobs
(in our model, ‘PriorityInheritance’).
- ,
, : Task. The
stereotype <<SAschedRes>> of the UML Profile for Schedulability,
Performance, and Time (schedulability modeling) represents a unit
of concurrent execution (in our domain, a task), which is capable
of executing a single scenario concurrently with other concurrent
units. The class Task has been designated as active where each
of its instances (,
and ) has its
own thread of control and can initiate control activity.
In the general resource modeling of the UML Profile
for Schedulability, Performance, and Time, an action is defined
as a kind of scenario. Therefore, we use the stereotype <<SAaction>>
of this profile (schedulability modeling) to characterize the behavior
of each task in our model (we had to add some tags that there were
not present in the <<SAaction>> stereotype of the schedulability
model):
- SAblocking, representing the length of time
that the task is blocked waiting for the resource.
- SAduration (we have added this tag), representing
the total duration of the action (assignment of processor to task).
- SAperiod (we have added this tag, only for periodic
tasks), representing the task period.
- SApreempted representing the length of time
that the task is preempted, when runnable, because the processor
is allocated to a higher priority task which is ready to run.
- SApriority, representing the priority of the
task from the scheduling perspective.
- SAready, representing the length of time since
the task awakes (beginning of a period).
- SArelDeadline, representing the desired time
by which the action should be complete.
- SArelease, representing the triggering time
of the task execution request.
- SAusedResource, representing the list of resources
that the task uses, and time specifications (this is our interpretation,
because the profile does not explain how we can represent it):
((resourceName1,durationBCS,durationCS,durationACS), (resourceName2,durationBCS,durationCS,durationACS),...,
(resourceNameN,durationBCS,durationCS,durationACS)), where durationBCS
is the task duration before entering the critical section, durationCS
is the critical section duration, and durationACS is the task
duration after the critical section.
- SAworstCase, representing the task worst-case
computation time, i.e., the longest period of time required for
an action to complete its execution, including all the overheads
(blocking, delay, preemption, etc.).
We use the new metaclass in UML 2.0, TimeObservationAction,
to know when a task awakes. A time observation action is an action
that, when executed, returns the current value of time in the context
in which it is executing. It is depicted with the keyword “now”.
A time observation action lets us determine the absolute deadline
that each task has to meet, shown in the diagram with time constraints.
We use also the new metaclass in UML 2.0, StateInvariant,
to show the different states associated to each lifeline as restrictions.
A state invariant is a constraint on the state of a lifeline, and
this constraint is evaluated during runtime. If the constraint is
true the trace is a valid trace. It is a possible way to show the
state value of a lifeline in the sequence diagram. For instance,
the state of the resource r1 has to be “Busy” if we want to release
it.
Finally, we use notes to display the textual information
that we want to emphasize. It is assumed that the task set is schedulable
because there is not any element indicating a timing fault (i.e.,
the tasks do not miss their deadlines), but it is difficult to check
by simple inspection of the diagram.
Figure 3 illustrates the timing diagram for the
proposed scheduling. We have represented a longer period of time
than in sequence diagram spanning over several scheduling cycles.
Figure 3. Timing diagram showing the example task set accodingly
to the RM scheduling
Again, we stereotype the diagram <<SAsituation>>
to use it in our context of schedulability analysis. The notation
of the rectangular frame and the five sided box is the same as in
the previous sequence diagram, but now we have different elements
in the model. We generate the diagram with four lifelines: the resource
(r1) and the three tasks (,
, ). In this case,
we ignore the scheduler (s1), because it is not necessary for understanding
the scheduling. Since we can show the change in state of the different
lifelines over linear time, then we can understand what is happening
and there is no need to show the message passing.
Task states used in the timing diagram are explained
in Table 2. The resource lifeline has two simple states, idle or
busy. The timing diagrams let us see how the states change over
time for each lifeline and it is very useful in scheduling. Therefore,
we do not need to use the metaclass StateInvariant as a restriction
in lifelines to know the state value at a particular time.
The time axis is linear so it clarifies absolute
timing of events, state changes and relative timing between the
different lifelines. Therefore, we do not need to use notes indicating
when a task awakes (when the state of a task changes to “Ready”),
and we do not need the stereotype <<SAaction>> representing
the length of time in different actions as in the sequence diagram,
because we can use the time axis to know it (we only use the stereotype
<<SAaction>> to characterize the task set parameters).
We use notes to emphasize some aspects of the schedule,
for instance, when taskis
blocked due to priority inheritance.
Once more, we use the metaclass TimeObservationAction
to control when a task awakes, and we use this time value to set
the constraints (task deadlines). Now, since we have the time along
the horizontal axis, we can check the scheduling and see that the
schedule is feasible or not.
State |
Description |
Dormant |
The task is set up. |
Ready |
The task awakes. |
Preempted |
When running, the task is preempted. |
Delayed |
The task is waiting for a signal or a resource.
|
Running |
Assignment of processor to task. |
Table 2. Task states
For our purpose, the timing diagram view is probably
more adequate than the sequence diagram view, but the last one offers
another point of view which is quite interesting as well. It is
therefore better to use the two diagrams in order to have both views.
However, even after having modeled and understood the schedule with
the two diagrams, we can not assure that the schedule is feasible,
i.e., the two diagrams themselves are not sufficient for deciding
if the task set is schedulable or not: we do not know if we will
have enough resources to perform the schedule (available processor,
memory space...), and we should apply the mathematical feasibility
model [Cottet02] to the diagrams. Since, in our case study, the
tasks are not independent, then we have to consider a task set sharing
resources. Thus, we have to calculate the worst-case response time
for each task by including the blocking delay (assessment of a task
response time): the utilization factor of the processor has to be
low enough to let the task set to be scheduled, whatever the blocking
time due to the shared resources
5 CONCLUSIONS
UML is intended to be a well-defined language which can be productively
used with a wide range of different systems. UML 2.0 represents
the biggest change that has happened yet to the UML. The new version
is an incremental improvement to the UML 1.x standards, improving
the clarity of the UML for capturing architectures and improving
its scalability. UML and the profiles provide a mechanism to model
specific features of some domains, and although the user is free
to add notation to UML diagrams through the profiles, it would be
very important that those contributions be part of the standard
in order to enable the exchange of models between the different
modeling tools. In this way, any developer could take advantage
of it.
With respect to real-time systems, UML 2.0 has
introduced options to manage the complexity of interactions and,
relating to time, the new type of diagram, timing diagram, provides
an expressive way to detail change in value or state of the different
classifiers and attributes. UML and the UML profile for Schedulability,
Performance, and Time allow models where information related to
time aspects may be annotated. Thus, software engineers may be able
to specify and design their real-time systems with UML models which
could be the formal description of the system, so that the different
models could be analyzed in order to assure that they accomplish
all the properties needed in the system.
Timing diagrams and sequence diagrams are the two
kinds of interaction diagram more adequate to model task scheduling.
Thus, we recommend to use both diagrams when analyzing schedulability.
A timing diagram is similar to a sequence diagram in that they both
show scenarios of collaborations, but they are not the same at all.
Although timing diagrams do not show any information beyond that
available in annotated sequence diagrams, the absolute timing of
events, state changes and the relative timing among the lifelines
is clearer and more readable than on sequence diagrams, even when
explicit timing constraints are added.
Since deadlines are of critical importance, as
opposed to message sequence, we think that perhaps it is therefore
better to use timing diagrams instead of sequence diagrams. However,
each diagram provides different points of view to the same scenario
and both could be very useful.
However, although the resulting models are quite
complete and facilitate communication and understanding, the diagrams
themselves are not sufficient to indicate if we have a feasible
schedule. We would need to apply the mathematical feasibility model
to the UML diagrams.
Also, as we mentioned before, since the UML profile
for Schedulability, Performance, and Time is clearly biased towards
rate monotonic analysis, it would be interesting to extend the specification
to comprise cyclic scheduling. Static cyclic scheduling is easier
to implement and will be sometimes more efficient than fixed priority
scheduling, for instance, for control related tasks with strict
requirements on small timing variations: reaching the same performance
level with fixed priority scheduling may require higher sampling
rates or more sophisticated control algorithms. Event handling could
be another example where static cyclic scheduling should be recommended
[Lonn99], [Drapper99].
Footnote:
1 The notation within this rectangular frame comes
in several forms depending on the specific diagram: sequence diagram,
communication diagram (which was known as collaboration diagram
in UML 1.x), interaction overview diagram (new in UML 2.0) and timing
diagram (new in UML 2.0)
2 A broker is an instance of a run-time entity
responsible for controlling access to the exclusive services of
a resource.
REFERENCES
[Bichler02] L. Bichler, A. Radermacher, A. Schür John Smith: “Evaluating
UML Extensions for Modeling Real-Time Systems”, In Proceedings of
the 7th IEEE International Workshop on Object-Oriented Real-Time
Dependable Systems (WORDS 2002). Los Alamitos, CA, USA, IEEE Computer
Society 2002, pp. 271-8 Conference Paper.
[Bj?rkander03] M. Bj?rkander, C. Kobryn: “Architecting
Systems with UML 2.0”. IEEE Computer Society, IEEE Software. 2003.
[Cottet02] F. Cottet, J. Delacroix, C. Kaiser,
Z. Mammeri: “Scheduling in real-time systems”. John Wiley &
Sons. 2002.
[Douglass98] B. P. Douglass: “Real-Time UML.Developing
Efficient Objects for Embedded Systems”. Addison-Wesley. 1998.
[Douglass98b] B. P. Douglass: “Designing Real-Time
Systems with UML”. Embedded Systems Programming. 1998.
[Douglass04] B. P. Douglass: “Real Time UML. Advances
in The UML For Real-Time Systems”. Addison-Wesley. Third Edition.
2004.
[Drapper99] D. Draper, A. K. Jónsson, D. P. Clements,
D. Joslin: “Cyclic Scheduling”. In Proceedings of the Sixteenth
International Joint Conference on Artificial Intelligence. Morgan
Kaufmann Publishers Inc. 1999, pp. 1016-1021. San Francisco CA,
USA.
[Fowler03] M. Fowler: “UML Distilled. A Brief Guide
to the Standard Object Modeling Language”. Addison-Wesley. Third
Edition. 2003.
[Gomaa00] H. Gomaa: “Designing Concurrent, Distributed,
and Real-Time Applications with UML”. Addison-Wesley. 2000.
[Jigorea00] R. Jigorea, S. Manolache, P. Eles,
Z. Peng: “Modelling of Real-Time Embedded Systems in an Object-Oriented
Design Environment with UML”. 2nd ARTES Graduate Student Conference.
Chalmers University of Technology, G?teborg (Sweden). March 2000.
[Küster01] J. M. Küster, J. Stroop: “Consistent
Design of Embedded Real-Time Systems with UML-RT”. 4th IEEE International
Symposium on Object Oriented Real-Time Distributing Computing ISORC
2001. Los Alamitos, CA, USA, IEEE Computer Society 2001, pp. 31-40
Conference Paper.
[Lavazza01] L. Lavazza, G. Quaroni, M. Venturelli:
“Combining UML and Formal Notations for Modelling Real-Time Systems”.
Software Engineering Notes, vol. 26, no. 5, pp. 196-206, September
2001.
[Liu73] C. L. Liu, J. W. Layland: “Scheduling Algorithms
for Multiprogramming in a Hard Real-Time Environment”. Journal of
the ACM, vol. 20, no. 1, pp. 46-61, January 1973.
[Lonn99] H. Lonn, J. Axelsson: “A Comparison of
Fixed-Priority and Static Cyclic Scheduling for Distributed Automotive
Control Applications”. In Proceedings of the 11th Euromicro Conference
on Real-Time Systems (ECRT99). York, England. 1999.
[Martins03] P. Martins: “Integrating Real-Time
UML Models with Schedulability Analysis”. White Paper in Tri Pacific
Software Products 2003.
[Saiedian04] H. Saiedian, S. Raguraman: “Using
UML-Based Rate Monotonic Analysis to Predict Schedulability”. IEEE
Computer Society, vol. 37, no. 10, pp. 56-63, October 2004.
[Selic98] B. Selic, J. Rumbaugh: “Using UML for
Modeling Complex Real-Time Systems”. White Paper, published by ObjecTime
Limited, 340 March Rd., Kamata, Astario, Canada. 1998.
[UML03] UML 2.0 Superstructure Specification. August
2003, ptc/03-08-02. Unified Modeling Language Infrastructure Specification,
September 2003, ptc/03-09-15. http://www.omg.org/.
[UMLSPT03] UMLTM Profile for Schedulability, Performance,
and Time Specification. January 2005, version 1.1, formal/05-01-02.
http://www.omg.org/.
About the authors
Maria
Cruz Valiente is a PhD researcher and teaching assistant in the
Department of Informatics at the Carlos III University of Madrid.
Her research in Information Engineering Group is focused on domain
analysis and modeling, and modeling methods in software engineering.
Gonzalo
Genova is an Associate Professor of Software Engineering in the
Department of Informatics at the Carlos III University of Madrid.
His main research subjects, within the Information Engineering Group
and in close cooperation with The Reuse Company, is modeling and
modeling languages in software engineering, as well as requirements
engineering.
Dr. Jesus
Carretero is a professor in the Department of Informatics at the
Carlos III University of Madrid. His research interests include
parallel and distributed systems and real time systems.
Cite this article as follows: Maricruz Valiente,
Gonzalo Genova, Jesus Carretero: “UML 2.0 Notation for Modeling
Real-Time Task Scheduling”, in Journal of Object Technology, vol.
5, no 4, May-June 2005, pp. 91-105 http://www.jot.fm/issues/issue_2006_05/article2
|