540 likes | 555 Views
Using the UML Profile for Schedulability, Performance and Time. Bruce Powel Douglass, Ph.D. Chief Evangelist I-Logix, Inc. www.ilogix.com bpd@ilogix.com. About the Author. 20++ years in safety-critical hard-real time systems
E N D
Using the UML Profile for Schedulability, Performance and Time Bruce Powel Douglass, Ph.D. Chief Evangelist I-Logix, Inc. www.ilogix.com bpd@ilogix.com
About the Author • 20++ years in safety-critical hard-real time systems • Mentor, trainer, consultant in real-time and object-oriented systems • Author of • Real-Time UML 2nd Edition: Efficient Objects for Embedded Systems (Addison-Wesley, Dec. 1999) • Doing Hard Time: Developing Real-Time Systems with UML, Objects, Frameworks, and Patterns (Addison-Wesley, 1999) • Advisory Board • Embedded Systems Conference • UML World Conference • Software Development Magazine • UML World Advisory Board • Co-chair of OMG RTAD Work Group
Collaborators • This work is a collaborative development effort by a number of companies and individuals. They include (primary contact, in alphabetical order by company) • Alan Moore (Artisan Software Tools, Inc.) • Bruce Douglass (I-Logix Inc.) • Bran Selic (Rational Software Corporation, Inc.) • Morgan Bjorkander (Telelogic AB) • Mark Gerhardt (Timesys Corporation) • Ben Watson (TriPacific Software)
Agenda • What’s a Profile and Why Do I Care? • Overview of the RT Profile Submission • General Resource Model • Models of Time • Concurrency Model • Schedulability Model • Ongoing Work • Using the Profile • Work ongoing in the OMG
UML Profiles • A UML Profile is a specialized subset of the UML that • Is consistent with the UML specification • May be constrained to omit portions of the UML or constrain how it is used • May include custom or specialized notation • Applies to a vertical market or application domain • Extends or specializes the UML using the “lightweight extension mechanisms” • Stereotypes • Tagged Values • Constraints
The “RT UML” Profile • Submitted in response to an OMG RFP • RFP for a UML Profile for Schedulability, Performance, and Time (OMG document ad/99-03-13). • RFP generated by the Real-Time Analysis and Design Working Group (RTAD) within the OMG • Submitters (in alphabetical order): • Artisan Software Tools, Inc. • I-Logix Inc. • Rational Software Corporation, Inc. • Telelogic AB • Timesys Corporation • TriPacific Software
Goal of the RT Profile Note: The UML is considered to be fully adequate to model real-time and embedded systems. The profile is NOT necessary to make UML applicable to real- time systems. • RFP calls for “proposals for a UML profile that defines standard paradigms of use for modeling of time-, schedulability-, and performance-related aspects of real-time systems” • Define some standard means to capture real-time modeling concerns • Permit exchange of model information between tools, e.g. • Between design automation tools • Between design automation and schedulability tools • Facilitate communication of design intent among engineering staff and other stakeholders
Guiding Principles • Do not change the UML unless absolutely required • Do not limit the way UML is used. • Provide the ability to annotate a UML model to allow for [quantitative] analysis in a standard way. • Do not require a deep understanding of applicable analysis techniques, e.g. • Rate monotonic analysis • Queuing theory
(More) Guiding Principles • Simple analysis should be simple to do. More complex analysis may require more work. • Support, but do not restrict modeling to existing techniques. • E.g. RMA, DMA • Automated tools should be able to influence the UML model. • E.g. update priorities of task threads so that they become schedulable • Support both model analysis and synthesis
Response to the RFP • RFP was issued by the OMG in March, 1999 • A consortium of companies formed to respond to the submission • The response has been adopted by the OMG in 2001
General Approach • Use light-weight extensions to add standard modeling approaches and elements • Stereotypes, e.g. resources • Tagged values, e.g. QoS properties • Divide submission into sub-profiles to allow easier comprehension and usage of relevant parts
RT Profile Structure Technology-specific subprofiles Required by virtually ALL real-time systems
One person’s abstraction is another’s Concretization • Models can always be viewed at multiple levels of abstraction • Analysis may be need to be done at anyor all of these levels of abstraction • There is intrinsic difficulty in maintaining consistency among different levels of abstraction
Abstraction Levels {period = 100ms; Execution time = 10ms; Priority = 3; Deadline = 100ms; } DisplayData Task {Execution time = 3 ms; Deadline = 25ms; } {Execution time = 1.5 ms; Deadline = 20ms; } {Execution time = 1 ms; Deadline = 5 ms; } DisplayData Task Waveform View FilterPolicy draw scroll filter Sensor Waveform Queue acquire {Execution time = 4 ms; Deadline = 40ms; } put get {Execution time = 0.5 ms; Deadline = 5ms; } {Execution time = 0.5 ms; Deadline = 5ms; }
Basic Concepts Of the GRM • Resource: a model element that has some finite properties • reflects some finite physical quantity • may be logical (e.g., buffers) or physical • resources offer services (client-server model) • need to quantify the demand/supply of services • Quality of Service (QoS): limitations on services offered by a resource. • a (usually quantitative) specification of: • the level of service required by a client from a resource or • the level of service offered by a resource to its clients
GRM (Static Form) • A somewhat simplified view of the relations between resources and clients of those resources • Allows general, but not necessarily, detailed quantitative analysis, e.g. • Global RMA
GRM (Dynamic) • Takes into account the dynamic behavior for qualitative analysis • More detailed, permitting more detailed qualitative analysis
GRM (Dynamic) Example {qosActualExecTime = 2ms} {qosActualExecTime = 4ms} 3. filterData 2. acquireData 1. sendData {qosActualExecTime = 7ms} {qosActualExecTime = 1ms} 4. packetizeData 5. transmitPacket {qosActualExecTime = 1ms}
GIGO • Select the appropriate stereotypes and tags of the schedulability model to match the kind of analysis desired • Global RMA • Elements: active objects, resources • Tags: execution time, deadline, period, priority, blocking time, priority ceiling • Detailed RMA • Elements: active objects, resources, actions, events, scenarios, scenario steps, messages • Tags: execution time, deadline, period, priority, blocking time, priority ceiling • Simulation • Depends on particular approach • etc
Model Processing Paradigm UML Model Tool vendor Model Processor Modeler Delivered System Customer
Model Synthesis 1 Modeler designs system to meet requirements using standard stereotypes defined in the profile 2 Modeler annotates model with QoS properties using standard tags defined in the profile depending on the kind of analysis desired, for example • Priority (e.g. SAPriority) • Worst case execution time (e.g. SAWorstCaseExecutionTime) • Period (e.g. SAPeriod) • Blocking (e.g. SABlockingTime) • Deadline (e.g. SADeadline)
Model synthesis 3a Modeler submits QoS annotated model to model processor • This may be written by a schedulability analysis tool vendor and know all the defined stereotypes and tags in the profile 4a Processor munches model • Analyses model for schedulability • Identifies constraint / allocation violations • Suggests changes to QoS annotations to enhance schedulability (may automatically update model) • Marks model as schedulable or not 5a Modeler manipulates model QoS properties or model itself to make it schedulable 6a Repeat as necessary
Model Synthesis 3b Modeler generates application from Model 4b Modeler tests model with test vectors (incl. QoS characteristics) 5b Modeler updates model as necessary 6b Repeat as necessary 7b Modeler delivers system to customer
ROPES Approach to Using RTP Translation Testing Unit Integration Testing Testing Coding Validation Testing Detailed Iterative Design Prototypes Mechanistic Party! Design Requirements Design Analysis Architectural Design Systems Engineering Object Analysis Analysis Test interfaces among components and subsystems Refine object internal details Test functional and QoS Requirements Capture Functional & QoS requirements Refine collaborations by applying design patterns Define architecture using concurrency and other patterns Define high level architecture & HW/SW breakdown Identify semantic “analysis-level” classes to realize Use Case collaborations
ROPES – Requirements Analysis • Use cases organize requirements • Two Approaches • By example • By Specification • Detailed Requirements • Functional requirements • Messages • Sequences of messages • States • Actions and activities • Transitions • Quality of Service • Constraints on any of the above • States
ROPES – Systems Engineering • Optional – depends on scope of project • Defines subsystem architecture (technology independent) • For each subsystem • Define subsystem-level use cases (derived from system use cases) • Functional requirements • QoS requirements • Define inter-subsystem interfaces • Demonstrate adequacy of architecture through execution of elaborated use case scenarios • Make hw/sw decomposition to optimize QoS
ROPES – Object Analysis • For each use case • Identify semantic objects collaborating together to realize the use case • Test adequacy of collaboration by elaborating use case scenarios with collaboration structure and executing them • Use propagation of constraints to decompose use case QoS requirements into performance budgets on operations, messages, states, transitions, actions, etc.
ROPES – Architectural Design • Apply architectural design pattern in each of the 5 areas of architecture • Subsystem and component • Concurrency • Distribution • Safety and Reliability • Deployment
ROPES – Concurrency Architecture • Identify tasks using Task Identification Strategies • Define task synchronization / scheduling mechanisms • For each task • Create an active object • Group appropriate semantic (analysis-level) objects into the active object via composition relation • Add QoS properties (priority, period,etc) • Refine scenarios via elaboration • Test concurrency model via execution of elaborated use case scenarios
ROPES – Mechanistic Design • For each collaboration • Optimize collaboration against QoS by applying mechanistic design patterns
ROPES – Translation • Translate UML model into source level language • Automatically (code-gen) • Manually • Combination • Link in legacy source code and components • Unit test • Functional • Operation performance budgets (QoS constraints on operations, actions, messages, etc)
ROPES – Integration Test • Apply Integration Test plan • This can be started after subsystem architecture and its interfaces are known • Systems Engineering (if present) • Architectural Design • Demonstrates adherence to architectural design • Signature • Preconditions / postconditions • QoS contracts (required QoS vs offered QoS)