Using UML for Modeling Complex Real Time System Architectures Bran Selic VP Advanced Technology ObjecTime Limited bran@objectime.com
Overview The Unified Modeling Language (UML) Complex real-time systems Requirements for modeling architectures of complex RT systems Approach and method Architectural modeling constructs Summary
The Unified Modeling Language A general purpose OO modeling language combines a number of proven methods OMT (Rumbaugh) UML 1.4 Mar. 1999 UML 0.9 1996 Booch UML 1.1 Nov. 1997 OOSE (Jacobson) Catalysis ROOM etc.
What is (in) the UML Standard? Semi-formal semantic meta-model defines basic modeling concepts object, class, etc. includes well-formedness rules expressed as formal constraints in Object Constraint Language (OCL) Graphical notation for modeling concepts 8 different diagram types Two predefined domain extensions
The UML Meta-Model–Example GeneralizeableElement isRoot:Boolean isLeaf:Boolean isAbstract:Boolean (Meta)class Generalization association Feature visibility:{public, protected, private} * Classifier Compostion association Class isActive:Boolean not self.isAbstract implies self.allOperations->forAll(op | self.allMethods->exists(m | m.specification includes (op))) OCL constraint
The Unified Modeling Language (UML) Complex real-time systems Requirements for modeling architectures of complex RT systems Approach and method Architectural modeling constructs Summary
General Real-Time Systems A system that maintains a continuous timely interaction with its environment environment Real-Time System (state) inputs outputs outputs = f (inputs, state)
Complex Real-Time Systems Complex real-time systems characterized by: extreme dependability (reliability, availability) diverse and feature-rich functionality continuous feature upgrades (evolutionary requirements) physical distribution Encountered mostly in telecommunications, defense, aerospace, and industrial control
Modeling Requirements for Complex RT Systems This complexity requires focussed modeling support in at least the following areas: Architectural modeling Timeliness and performance modeling Time-aware communication models Concurrency management Resource modeling Distributed system modeling Fault-tolerance techniques
The Unified Modeling Language (UML) Complex real-time systems Requirements for modeling architectures of complex RT systems Approach and method Architectural modeling constructs Summary
Real-Time Software Architectures The organization of significant software components interacting through interfaces, those components being composed of successively smaller components and interfaces It is the key to success in: the initial construction of a system system evolution
Architectures and Evolution Two functionally equivalent initial architectures: A C B A C B X A C B Mediator X Mediator
Real-Time Architectural Specifications Example telecom system architecture TerminalA TerminalB Channel1 Channel2 Structure Application Layer Services Layer Behavior
Architectural Component Design Library System1 Channel1 Terminal TerminalA TerminalB Channel2 Channel System2 Terminal Tester TerminalA Terminal Tester
Refining Architectures (Reuse) TerminalA TerminalB Channel1 TerminalA TerminalB Channel1 Channel2
Summary: Requirements for Architectural Modeling The ability to model and enforce: large-grain (architectural) components and their interfaces structural compositions of architectural components dynamic interaction patterns between architectural components refinement of architectures
The Unified Modeling Language (UML) Complex real-time systems Requirements for modeling architectures of complex RT systems Approach and method Architectural modeling constructs Summary
Business Modeling Library Real-Time Modeling Library (UML-RT) Approach and Method The necessary architectural modeling capabilities can be found in ROOM Express the architectural modeling concepts of ROOM using standard UML Domain-specific library of UML “macros” Business Modeling Library Real-Time Modeling Library (UML-RT) ... UML Modeling Concepts
UML Extensibility Mechanisms Stereotypes, constraints, tagged values Constraint (OCL) Class isActive:Boolean not self.isAbstract implies self.allOperations->forAll(op | self.allMethods->exists(m | m.specification includes (op))) stereotype Capsule <“ports” > required tag
Real-Time Object-Oriented Modeling (ROOM) Domain-specific (real-time) concepts dynamic high-level structures reactive behavior (ROOMcharts) Executable (formal) models Full automatic code generation Field proven in a large number (>100) of large-scale industrial projects Tool support available (ObjecTime Limited and Rational Software)
Phasing Basic modeling capabilities (UML 1.1) structural pattern modeling (collaboration diagrams) state machine modeling Real-time specific constructs architectural modeling (March ‘98) other constructs (-June ‘99) collaboration: ObjecTime & Rational OMG standardization (1999/2000) RT analysis and design WG
The Unified Modeling Language (UML) Complex real-time systems Requirements for modeling architectures of complex RT systems Approach and method Architectural modeling constructs Summary
Capsules: Architectural Objects Active objects Encapsulation shell Ports
Capsules: Behavior Optional hierarchical state machine (signal handler with run-to-completion semantics) transitionS1toS2: {int x; x = 0; p2.send(s1); p3.send(s2); … }; S1 S2 S3 S1 S2
Capsules: UML Modeling Stereotype of Class concept («capsule») with specialized (executable) semantics Class diagram representation: «capsule» CapsuleClassX #counter : int #x : char +portB : ProtocolA::master #portC : ProtocolB ports
Protocols: Contractual Behavior Patterns Interaction contracts between capsules e.g., operator-assisted call Caller Operator Callee time call ack number call ack transfer talk
OperatorAssisted Call Protocol Specifications A special form of collaboration OperatorAssisted Call Alice Bob caller callee initial connected connecting protocol state machine operator caller operator callee significant sequences Dexter Charlie
Protocol Roles Specifies one party in a protocol OperatorRole caller operator callee significant sequences signal source call caller number ack callee Incoming signals OperatorRole signal target call callee transfer caller ack Outgoing signals initial connected connecting role state machine
Extended OperatorRole Protocol Refinement Using inheritance signal source call caller number ack callee Incoming signals signal source call caller number ack callee Incoming signals target transfer Outgoing signals OperatorRole reply caller signal target call callee transfer caller ack Outgoing signals Extended OperatorRole query caller
Protocols: UML Modeling Collaboration stereotype: «protocol» Classifier Role stereotype: «protocolRole» 1 «protocolRole» caller «protocol» OperatorAssisted Call ack transfer incoming 1 1 call number talk outgoing «protocolRole» operator «protocolRole» callee
Ports: Boundary Objects Fully isolate a capsule’s implementation from its environment (in both directions) Environment Capsule S1 S2 Created and destroyed along with their capsule
«capsule» CapsuleClassX Ports and Protocols Each port realizes a single protocol role (type) Multiple ports with same type possible «capsule» CapsuleClassX +portA : ProtocolA::master #portB : ProtocolB +portC : ProtocolB~ ports
Ports: Collaboration Diagram Notation «capsule» anX:CapsuleClassX portA : ProtocolA::master «port» portA:ProtocolA::master 1 portC : ProtocolB~ Shorthand notation for capsule instances iconified form
«capsule» receiver : Fax Combining Capsules Using connectors «capsule» sender : Fax remote : FaxProt «capsule» receiver : Fax remote : FaxProt Connector Connectors model communication channels Each connector supports a single protocol Static typing rules apply (compatible protocols) Modeled as association classes in UML
«capsule» receiver:Fax Composition: Structural Patterns as (Reusable) Dynamic Components Relay port sendCtrl : Control receiveCtrl : Control «capsule» sender:Fax remote:FaxProt c : Control «capsule» receiver:Fax Remote:FaxProt c : Control FaxCall The composite is also a first-class object!
Composite Capsule Semantics Architectural assertion mechanism: the static elements of the internal structure of a composite capsule are automatically created (and destroyed) along with the capsule applies recursively down to the innermost leaf capsule level only explicitly prescribed architectural structures can be instantiated This also significantly reduces the complexity of the model since all the code used to establish these structures is eliminated
«capsule» receiver:Fax End Ports: Where Structure and Behavior Meet Ports directly connected to the state machine Implementation End Port Public End Port c : SystemControl «capsule» sender:Fax c : Control «capsule» receiver:Fax initial connected connecting capsule state machine senderCtrl : Control~ receiveCtrl : Control~
Decomposition: Class Diagram View Alternative representation More abstract «capsule» Fax 1 sender «capsule» FaxCall 1 receiver
The Unified Modeling Language (UML) Complex real-time systems Requirements for modeling architectures of complex RT systems Approach and method Architectural modeling constructs Summary
Summary (1) Complex real-time systems phenomena require specialized modeling support The ROOM language has industry-proven support for modeling complex real-time architectures The benefits of both UML and ROOM are gained by expressing the ROOM constructs as UML stereotypes UML-RT : a UML extension for the complex real-time domain
Summary (2) Only four UML stereotypes are sufficient (include formally defined constraints that ensure consistency/executability) Stereotype UML Metaclass «protocol» Collaboration «protocolRole» ClassifierRole «port» Class «capsule» Class supplemented by an optional custom notation
Bibliography Real-time architectural modeling whitepaper by B. Selic and J. Rumbaugh: http://www.objectime.com OMG’s UML 1.1 standard http://www.rational.com ROOM B. Selic, G. Gullekson, and P. Ward, “Real-Time Object-Oriented Modeling”, John Wiley & Sons, NY, 1994.