The Problems and Promise of UML 2.0 Structures for SCA John Hogg CTO, Zeligsoft 2004-09-15 Version 1.4.

Slides:



Advertisements
Similar presentations
1 Software Communications Architecture and Related Specifications Overview Kevin Richardson 09 April 2006.
Advertisements

UML an overview.
1 CIS224 Software Projects: Software Engineering and Research Methods Lecture 9 Object, Package, Component and Deployment Diagrams (Based on Fowler, 2004,
ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall A.1.
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
COMPONENT DIAGRAM in UML 2.0 Veronica Carrega
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Modeling Notations.
MDA > Model Driven Architecture > Orçun Dayıbaş > December, 2006 > METU, Ankara.
Object-Oriented Analysis and Design
C OMPONENT & D EPLOYMENT D IAGRAMS Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn.
Kari R. Schougaard, PhD Stud. Værktøjer og Teknikker, 2006 UNIVERSITY OF AARHUS Department of Computer Science Unified Modeling Language Visual language.
CS 432 Object-Oriented Analysis and Design
1 © Wolfgang Pelz UML UML Unified Modeling Language.
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
Chapter 10 Class and Method Design
OMG Meeting, Helsinki Model Driven Architecture An Alternative Implementation Approach Werner Froidevaux
Course Instructor: Aisha Azeem
PRJ566: PROJECT PLANNING AND MANAGEMENT Class Diagrams.
An Introduction to Rational Rose Real-Time
UML and Object Oriented Concepts
Executable UML The Models are the Code - Executable UML CS387 Paul Krause.
An Introduction to Software Architecture
1 Tools for Commercial Component Assembly Francis Bordeleau, Zeligsoft/Carleton University Mark Vigder, National Research Council Canada.
Introduction to MDA (Model Driven Architecture) CYT.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix A Object-Oriented.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Unified Modeling Language, Version 2.0
Smith’s Aerospace © P. Bailey & K. Vander Linden, 2005 Architecture: Component and Deployment Diagrams Patrick Bailey Keith Vander Linden Calvin College.
Component frameworks Roy Kensmil. Historical trens in software development. ABSTRACT INTERACTIONS COMPONENT BUS COMPONENT GLUE THIRD-PARTY BINDING.
UML What Is the UML? The Unified Modeling Language (UML) is the successor to the wave of object- oriented analysis and design (OOA&D) methods.
XASTRO-2 Overview Presentation CCSDS SAWG Athens Meeting 12 th April 2005.
Real Time Systems Modeling Structure in UML (Part I)
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
CBSE 2014 Modeling Components with UML. Bibliography Modelling components in UML – Main text: Kim Hamilton, Russell Miles, Learning UML 2.0, OReilly,
TAL7011 – Lecture 4 UML for Architecture Modeling.
XASTRO Metamodel. CCSDS SAWG2 Presentation Outline XASTRO-1 Metamodel XASTRO-2 Metamodel Alignment with Model Driven Architecture.
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
Part VII: Design Continuous
CSCI-383 Object-Oriented Programming & Design Lecture 10.
Source Mastering UML with Rational Rose 2002 Information System Engineering Introduction to UML.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
COMPONENT DIAGRAM in UML 2.0 Veronica Carrega. PLAN OF TALK  Introduction about components  Components and component diagrams in uml 2.0  Case study.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Source Mastering UML with Rational Rose 2002 Information System Engineering Introduction to UML.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
CSCI 3428: Software Engineering Tami Meredith UML Unified Modeling Language.
MiniDraw Introducing a Framework... and a few patterns.
Object-Oriented Software Engineering Practical Software Development using UML and Java Modelling with Classes.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix A Object-Oriented Analysis and Design A.1.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
COMPONENT & DEPLOYMENT DIAGRAMS
Object-Oriented Analysis and Design
Systems Analysis and Design With UML 2
Applying Domain-Specific Modeling Languages to Develop DRE Systems
System models October 5, 2005.
CBSE 2014 Modeling Components with UML
Object Oriented Analysis and Design Using the UML
Chapter 20 Object-Oriented Analysis and Design
More Model Elements.
Appendix A Object-Oriented Analysis and Design
UML profiles.
An Introduction to Software Architecture
Appendix A Object-Oriented Analysis and Design
Presentation transcript:

The Problems and Promise of UML 2.0 Structures for SCA John Hogg CTO, Zeligsoft Version 1.4

2 Scalability Through Hierarchical Decomposition Many large systems have flat deployments However, virtually every large problem is made tractable using hierarchical decomposition Some advantages: Understandability, maintainability Composability, reusability, reconfigurability Avoidance of development conflicts/bottlenecks Strangely, SCA profiles aren’t hierarchical—or are they? Hardware Operating System Waveform Hardware Operating System Component Core framework Component

3 The Plot SCA structures are role models—not class models and not object models Powerful abstraction and reuse require hierarchical structures The SCA can support these today—if the right transformations are applied Work at the PIM level, not the PSM level

4 UML 2.0 (MDA) (Infrastructure, Structures, HL Sequence Diagrams, Activities…) ROOM, OORAM, Fusion… How We Got Here: A Brief Genealogy Simula Smalltalk Booch OMT Jacobson 1997 UML 1.1 (OMG standard) 199* UML 1.3 (extensibility) UML 1.4 (action semantics) UML 1.5 (Bug fixes) CCM (CORBA Component Model) SCA Concepts UML history from an SCA viewpoint CCM precedes UML 2.0. SCA concepts come from CCM Component Models and Ports Class models

5 Structure Models: Representing Architecture “Architecture” is who speaks to whom and what they say Basis of SCA assembly diagrams Concepts from UML 2.0 “classes with structure” Based on “role modelling” of ROOM, OORAM, UML-RT / buyer : Person / seller : Person / buyer : Person / seller : Person

6 System 2 System 1 IO Components IO Component Re-Use in Different Systems Security Components Security IO Modem Devices Modem IO Modem Library Goal: Design Systems 1 & 2 using library

7 SCA Structures The structure is a basic concept in SCA Components… …have ports and interfaces… …that may be connected by connectors Non-normative notation So why are structure diagrams needed?

8 Why SCA Structures? SCA structure models are human- readable architectures Draw structure diagrams… …then manually write or automatically generate SCA profiles (XML descriptor file sets) “A picture is worth a thousand words” (literally) Model (PIM) Profile (PSM)

9 Structure Modelling Is Not Class Modelling Transaction example: Two Persons Each Person has an Account Who owns which Account? ? Class models show “for all” properties Structure models show architectural relationships ?!

10 Structure Modelling Is Not Object Modelling Object models show completely reified objects Angus and Bruce are not reusable  Object models are examples, not architectures

11 Role Modelling Roles: the interface contracts a component must fulfill Relationships or connections: who speaks to whom Reusable, polymorphic concepts

12 Environment c : ClsX pkt = new Packet();... Packet::Packet() { Sender = new Connection(); Receiver = new Connection(); }... Connection::Connection() { remote = new Port(); c = new Port(); } Ports: Two-Way Encapsulation Simple interfaces give one-way encapsulation… Ports isolate an object’s implementation from its environment and its environment from the object Requires interface (Uses Port) Provided interface (Provides Port) Note: UML 2.0 ports may be bidirectional and have multiple interfaces. SCA currently supports only single-interface, one-way ports Knowledge of environment Each port has one or more interfaces (Provided and Requires)

13 Ports: Directed Interfaces With simple interfaces, What used a provided interface? What provided a used interface? c: Controller <=SensorUp ? Tank full?? Tank no longer empty??

14 Ports: Directed Interfaces With ports, User role known—even when Provided Interface types are the same Provider role known—even when Uses Interface types are the same c: Controller

15 Conjugation: Port Direction and Notation UML 2.0 allows optional port notation: “Lollipop” for Provides interface on port “Radar” for Requires interface on port SCA uses color to indicate port interface direction White for Provides Black for Requires The interface’s direction is called its “conjugation”

16 Back at the SCA Structures… SCA SAD files are flat Therefore, not reusable This does not prevent structures from being composed of reusable elements

17 Example: Cross-Banding Radio A flat assembly: Reusable pattern

18 The Reusable Structure Abstracting the pattern: Radio

19 Applying the Structure Two connected Radio structures = one cross-banding assembly

20 The Key Questions Where should the structured component itself go? Where does it appear in diagrams? How are its communication channels shown? What should the structured component do?

21 Connecting Components To Their Structures How do components with structure communicate? New* graphical concept: internal end port Provides… …or Uses Internal ports can connect to internal structure… …or to external ports tranceiverControl radioControl *to SCA; well-established notation

22 Bottom-Up: Flattening the Structure :Radio tranceiverControl radioControl :Radio tranceiverControl radioControl Assemble structured components… …add implementation instances to structures…

23 Bottom-Up: Flattening the Structure :Radio tranceiverControl radioControl :Radio tranceiverControl radioControl Assemble structured components… …add implementation instances to structures… …remove “relay ports”

24 Again, Structures are Fractal When an assembly has structured components… …maybe it’s somebody else’s component

25 Structure and Behaviour Structure and implementation behaviours are tightly linked Implementation behaviours knows about structure Ports of flattened model, not ports of external structure NB: relay ports don’t exist in flattened model They are an external contract interface The internal ports form the implementation contract interface These… …not these

26 Structured Component Behaviour Best Practices What should a structured component do? Components should be responsible for creating, controlling and destroying their sub-components I.e., Assembly Controller and Resource Factory functions Components with structure should do nothing apart from this structure maintenance If necessary, create a sub-component to perform additional tasks A ResourceFactory must tell its components to create or destroy themselves Black-box view of sub-component structures

27 Reusable Artifacts XML descriptor sets are not reusable within structures Reusable at waveform level only Structures are reusable Generate flattened descriptor set from hierarchy of structured components Not surprising: Structures are PIMs Profiles are PSMs Not necessary to actually generate flattened structure; generate XML files instead Analogy: compilers generate complete executables from sets of source files

28 Polymorphism Can SCA subcomponents be polymorphic? Can different subcomponent structures be dynamically created and destroyed? Yes The solution involves fan-out of connectors crossing relay ports in the generated profile

29 Summary SCA structures are role models—not class models and not object models Powerful abstraction and reuse require hierarchical structures The SCA can support these today—if the right transformations are applied Work at the PIM level, not the PSM level

30 Thank You. John Hogg © Copyright Zeligsoft 2004