UML for Real-Time Overview

This paper explains how the Unified Modeling Language (UML), and powerful modeling constructs originally developed for the modeling of complex real-time systems in the Real-Time Object-Oriented Modeling language (ROOM), have been combined into UML for Real-Time. It is directed at developers of complex real-time software systems (e.g., telecommunications, aerospace, defense, and automatic control applications). Introduction There are unique challenges faced in real-time software development. Every real-time software developer recognizes that the requirement for latency, throughput, reliability, and availability are far more stringent than for general purpose, or business software. For real-time system developers, understanding the impact of design decisions and effectively communicating functionality can be a daunting task. An overriding concern is the architecture of the software. This refers to the essential structural and behavioral framework on which all other aspects of the system depend. To facilitate the design of good architectures, it is extremely useful to capture the proven architectural design patterns of the domain as first-class modeling constructs. UML for RealTime combines UML, role modeling, and ROOM concepts to deliver a complete solution for modeling complex real-time systems. UML, role modeling and ROOM are briefly described below. UML is a general-purpose modeling language for specifying, visualizing, constructing and documenting the artifacts of software systems, as well as for business modeling and other nonsoftware systems. UML has a strong set of general purpose modeling language concepts applicable across domains. Role modeling captures the structural communication patterns between software components. In UML 1.1, collaboration diagrams, which form the basis of structural design patterns, became first class modeling entities. ObjecTime Limited (ObjecTime) was a member of the UML 1.1 definition team and contributed the role modeling capabilities of ROOM to the UML standard. ROOM is a visual modeling language with formal semantics, developed by ObjecTime. It is optimized for specifying, visualizing, documenting, and automating the construction of complex, event-driven, and potentially distributed real-time systems. It incorporates the role modeling concepts discussed in this document that enable the capture of architectural design patterns. UML for Real-Time is a complete real-time modeling standard, co-developed by ObjecTime and Rational Corporation, that combines UML 1.1 modeling concepts, and special modeling constructs and formalisms originally implemented in ObjecTime Developer and defined in the ROOM language. ObjecTime Developer is a software automation tool that provides model execution capabilities, and automatically generates complete code for complex real-time applications from these modeling constructs. UML for Real-Time supports all of the automation capabilities that are available in ObjecTime Developer today. Modeling Perspectives As software systems become increasingly more complex, software architecture, and techniques for capturing it, become increasingly more important. In addition the architecture of these systems