UML 2.0 Notation for Modeling Real Time Task
Scheduling
Maria Cruz Valiente, Gonzalo Genova and Jesus
Carretero,
Carlos III University of Madrid |
 |
REFEREED ARTICLE

PDF Version |
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
.
- Tasks
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 ( )
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 task is 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
|