a uml profile for modeling complex a uml profile for
play

A UML Profile for Modeling Complex A UML Profile for Modeling - PowerPoint PPT Presentation

A UML Profile for Modeling Complex A UML Profile for Modeling Complex Real-Time Architectures Real-Time Architectures Bran Selic Bran Selic Rational Software Inc. Rational Software Inc. bselic@rational.com bselic@rational.com Overview


  1. A UML Profile for Modeling Complex A UML Profile for Modeling Complex Real-Time Architectures Real-Time Architectures Bran Selic Bran Selic Rational Software Inc. Rational Software Inc. bselic@rational.com bselic@rational.com

  2. Overview Overview ! Complex real-time systems ! Complex real-time systems ! Requirements for modeling real-time system ! Requirements for modeling real-time system architectures architectures ! Architectural modeling constructs in UML ! Architectural modeling constructs in UML ! Summary ! Summary

  3. Complex Real-Time Systems Complex Real-Time Systems ! Complex real-time systems characterized by: ! Complex real-time systems characterized by: " extreme dependability (reliability, availability) " extreme dependability (reliability, availability) " diverse and feature-rich functionality " diverse and feature-rich functionality " continuous feature upgrades (evolutionary requirements) " continuous feature upgrades (evolutionary requirements) " physical distribution " physical distribution ! Encountered mostly in telecom (e-business ! Encountered mostly in telecom (e-business infrastructure and internet access devices), defense, infrastructure and internet access devices), defense, aerospace, and industrial control aerospace, and industrial control

  4. Modeling Requirements for Complex Systems Modeling Requirements for Complex Systems ! This complexity requires focussed modeling support in ! This complexity requires focussed modeling support in at least the following areas: at least the following areas: " Timeliness and performance modeling " Timeliness and performance modeling " Time-aware communication models " Time-aware communication models " Concurrency management " Concurrency management " Resource modeling " Resource modeling " Distributed system modeling " Distributed system modeling " Fault tolerance (detection, treatment, analysis, recovery) " Fault tolerance (detection, treatment, analysis, recovery) " Architectural modeling " Architectural modeling

  5. (Run-Time) Architecture (Run-Time) Architecture ! An abstract view of a system that identifies only the ! An abstract view of a system that identifies only the important elements and relationships important elements and relationships ! We will focus only on run-time architectures: ! We will focus only on run-time architectures: The run-time organization of significant software The run-time organization of significant software components interacting through interfaces, those components interacting through interfaces, those components being composed of successively smaller components being composed of successively smaller components and interfaces components and interfaces

  6. Why Architecture is Important Why Architecture is Important ! Enables communication between stakeholders ! Enables communication between stakeholders " exposes how individual requirements are handled " exposes how individual requirements are handled ! Drives system construction ! Drives system construction " decomposition into units of responsibility and parallel " decomposition into units of responsibility and parallel development development ! Determines a system’s capacity for evolutionary growth ! Determines a system’s capacity for evolutionary growth A A A A X X A A X X A A X A X Mediator Mediator Mediator Mediator Mediator Mediator B B B B C C C C B B C C B B C C B C

  7. Example Real-Time Architecture Spec Example Real-Time Architecture Spec ! Example telecom system architecture ! Example telecom system architecture Structure Structure Structure Channel1 Channel1 Channel1 TerminalA TerminalB TerminalA TerminalB TerminalA TerminalB Application Layer Application Layer Channel2 Channel2 Channel2 Services Layer Services Layer Behavior Behavior

  8. Basic Run-Time Architectural Patterns Basic Run-Time Architectural Patterns ! Peer-to-peer communication: ! Peer-to-peer communication: PartA PartB PartA PartB PartA PartB ! Containment: ! Containment: Container Container Container Container Container Container Part Part Part Part Part Part Part Part Part composition (existence dependency) aggregation (information hiding) composition (existence dependency) aggregation (information hiding) composition (existence dependency) aggregation (information hiding) ! Layering ! Layering Layer N+1 Layer N+1 Layer N+1 Layer N Layer N Layer N

  9. Architectural Component Design Architectural Component Design Library Library Library System1 System1 System1 Channel1 Channel1 Channel1 Terminal Terminal Terminal TerminalA TerminalB TerminalA TerminalB TerminalA TerminalB Channel2 Channel2 Channel2 Channel Channel Channel System2 System2 System2 Terminal Terminal Terminal Tester Tester Terminal Terminal Tester Terminal TerminalA TerminalA TerminalA Tester Tester Tester

  10. Refining Architectures (Reuse) Refining Architectures (Reuse) Channel1 Channel1 Channel1 TerminalA TerminalB TerminalA TerminalB TerminalA TerminalB Channel1 Channel1 Channel1 TerminalA TerminalB TerminalA TerminalB TerminalA TerminalB Channel2 Channel2 Channel2

  11. The Fate of Architectures: Architectural Decay The Fate of Architectures: Architectural Decay ! The gradual deterioration of an architecture through ! The gradual deterioration of an architecture through seemingly “minor” incremental changes seemingly “minor” incremental changes ring road ring road ring road Lab Building Lab Building

  12. Preserving Architectures Preserving Architectures ! To ensure visibility and enforcement of architectural ! To ensure visibility and enforcement of architectural intent intent " the architectural specification must be an integral part of the " the architectural specification must be an integral part of the final implementation final implementation " not as documentation, but as part of the actual " not as documentation, but as part of the actual implementation implementation ! This requires automated translation of the architectural ! This requires automated translation of the architectural spec into the implementation language spec into the implementation language " automated translation is key since any manual intervention " automated translation is key since any manual intervention breaks enforcement capabilities breaks enforcement capabilities " an architectural definition language (ADL) " an architectural definition language (ADL)

  13. Capsules: Architectural Objects Capsules: Architectural Objects ! A special kind of active object ! A special kind of active object Encapsulation Encapsulation Encapsulation shell shell shell Ports Ports Ports

  14. Capsules: Internal Behavior Capsules: Internal Behavior ! Optional hierarchical state machine (event handler with ! Optional hierarchical state machine (event handler with run-to-completion semantics) run-to-completion semantics) transitionS1toS2: transitionS1toS2: {int x; {int x; x = 0; x = 0; p2.send(s1); p2.send(s1); p3.send(s2); p3.send(s2); … … S1 S1 S1 }; }; S2 S2 S3

  15. Capsules: UML Modeling Capsules: UML Modeling ! Stereotype of Class concept («capsule») with ! Stereotype of Class concept («capsule») with specialized (executable) semantics specialized (executable) semantics ! Class diagram representation: ! Class diagram representation: «capsule» «capsule» «capsule» CapsuleClassX CapsuleClassX CapsuleClassX #counter : int int #counter : #counter : int #x : char #x : char #x : char ports ports ports +portB + portB : ProtocolA::master : ProtocolA::master +portB : ProtocolA::master +portC portC : ProtocolB : ProtocolB + +portC : ProtocolB

  16. Protocols: Reusable Behavior Patterns Protocols: Reusable Behavior Patterns ! Interaction contracts between capsules ! Interaction contracts between capsules " e.g., operator-assisted call " e.g., operator-assisted call Caller Caller Operator Operator Callee Callee Caller Operator Callee call call call ack ack ack number number number call call call ack ack ack transfer transfer transfer talk talk talk time time time

  17. Protocol Specifications Protocol Specifications ! A collaboration that may be required on multiple ! A collaboration that may be required on multiple occasions and situations occasions and situations Alice Bob Alice Bob Alice Bob caller OperatorAssisted callee caller OperatorAssisted callee OperatorAssisted caller callee Call Call Call protocol state machine protocol state machine protocol state machine significant sequences significant sequences significant sequences operator operator operator caller caller operator operator callee callee initial initial Charlie Dexter Charlie Dexter Charlie Dexter connecting connecting connected connected

Recommend


More recommend