Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.

Slides:



Advertisements
Similar presentations
Jeremy S. Bradbury, James R. Cordy, Juergen Dingel, Michel Wermelinger
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Software Architecture Frameworks A Family of Implementations Nikunj Mehta Computer Science Department University of Southern California Los Angeles, CA.
Architecture Representation
Dif8901 April Modeling Software Architecture in the Unified Modeling Language (Medvidovic, et al. 2002)
Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance.
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Object-Oriented Analysis and Design
A. Bucchiarone / Dagstuhl/ 2007 APL Antonio Bucchiarone PhD Student – IMT Graduate School Piazza S. Ponziano, Lucca (Italy)
Jiannong IMC Lab - Department of Computing, Hong Kong Polytechnic Univ. Slide 1 Architecture Description of Distributed Systems using UML and XML.
Software Architecture Research and Practice Nenad Medvidovic University of Southern California
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
1 UML – an overview What is UML? UML stands for Unified Modelling Language. ”The Unified Modelling Language is a visual language for specifying, constructing.
1 Software Architecture: a Roadmap David Garlen Roshanak Roshandel Yulong Liu.
Unified Modeling (Part I) Overview of UML & Modeling
1 Dynamic Assembly, Assessment, Assurance, and Adaptation via Heterogeneous Software Connectors Nenad Medvidovic with Marija Rakic and Barry Boehm University.
University of Southern California Center for Systems and Software Engineering From Dependable Architectures To Dependable Systems Nenad Medvidovic Center.
Mining Metamodels From Instance Models: The MARS System Faizan Javed Department of Computer & Information Sciences, University of Alabama at Birmingham.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
1 Ivano Malavolta, University of L’aquila, Computer Science Department Ivano Malavolta DUALLy: an Eclipse platform for architectural languages interoperability.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Architectural Synthesis Approach Sheldon X. Liang Ph. D. August 18, Software Engineering in CS at APU Architectural Synthesis Approach Azusa Pacific.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
An Introduction to Software Architecture
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Implementing Architectures Software Architecture.
Formalizing the Asynchronous Evolution of Architecture Patterns Workshop on Self-Organizing Software Architectures (SOAR’09) September 14 th 2009 – Cambrige.
Object Management Group (OMG) Specifies open standards for every aspect of distributed computing Multiplatform Model Driven Architecture (MDA)
Henry Muccini - Computer Science Department, Universita' dell'Aquila, Italy Paola Inverardi - Computer Science Department, Universita'
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
SaveUML System design. System overview Possible...
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
1 Qualitative Reasoning of Distributed Object Design Nima Kaveh & Wolfgang Emmerich Software Systems Engineering Dept. Computer Science University College.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
CIM LAB MEETING Presentation on UML Rakesh Mopidevi Kwangyeol Ryu.
CSCI 578 Software Architectures Exam #1 Review. Materials you are responsible for Chapters 1-8 in the text book All lecture material up to but not including.
® IBM Software Group © 2004 IBM Corporation Developing an SOA with RUP and UML 2.0 Giles Davies.
12 Chapter 12: Advanced Topics in Object-Oriented Design Systems Analysis and Design in a Changing World, 3 rd Edition.
16/11/ Semantic Web Services Language Requirements Presenter: Emilia Cimpian
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Modeling the ODP Computational Viewpoint with UML 2.0: The Templeman Library Example José Raúl Romero, Antonio Vallecillo Universidad de Málaga, Spain.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Software Connectors Acknowledgement: slides mostly from Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic,
Architectural Synthesis Approach Sheldon X. Liang Ph. D. February 5, Software Engineering in CS at APU Azusa Pacific University, Azusa, CA 91702,
UML Profile BY RAEF MOUSHEIMISH. Background Model is a description of system or part of a system using well- defined language. Model is a description.
© Drexel University Software Engineering Research Group (SERG) 1 Modeling Software Architectures - Using UML as an Architecture.
Session 1 What Is the UML? Written by Thomas A. Pender Published by Wiley Publishing, Inc. October 5, 2011 Presented by Kang-Pyo Lee.
1 Architectural Blueprints—The “4+1” View Model of Software Architecture (
Architecture Description Languages (ADLs) Cf. Architecture Analysis and Design Languages.
UML (Unified Modeling Language)
Defects of UML Yang Yichuan. For the Presentation Something you know Instead of lots of new stuff. Cases Instead of Concepts. Methodology instead of the.
CSCI 578 Software Architectures Exam #1 Review. Materials you are responsible for Chapters 1-7 in the text book All lecture material through intro to.
CSCI 578 Software Architectures
SysML 2.0 Formalism: Requirement Benefits, Use Cases, and Potential Language Architectures Formalism WG December 6, 2016.
SysML v2 Formalism: Requirements & Benefits
Systems Analysis and Design With UML 2
Visualizing Design Patterns in Their Applications and Compositions
Model-Driven Analysis Frameworks for Embedded Systems
The Extensible Tool-chain for Evaluation of Architectural Models
Introduction to SysML v.2.0 Metamodel (KerML)
Architecture Description Languages
Automated Analysis and Code Generation for Domain-Specific Models
Software Analysis.
Presentation transcript:

Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los Angeles, CA

Outline 4 Overview of software architectures 4 Overview of UML 4 Modeling software architectures in UML 4 Lessons learned 4 Current status 4 Conclusions

Software Architectures 4 High-level model of a software system –software components –their interactions – software connectors –their interconnections – configurations 4 Promise of software architectures –better, more reliable software systems –modeling important system aspects early –ensuring system properties throughout

Key Architectural Concepts 4 Components – loci of computation and state 4 Connectors – loci of interaction –communication –coordination –mediation 4 Architectural constraints –structural vs. behavioral –local vs. non-local vs. global 4 Architectural style + –interaction constraints + topological constraints

Example Architecture 4 Components interact via connectors 4 Connectors enforce interaction constraints 4 Configurations reflect topological constraints

Architecture Description Languages 4 High-level architecture modeling notations 4 Model architectural structure and behavior 4 Difference in focus 4 Varying degrees of formality 4 Varying levels of tool support 4 Differences in maturity

Example ADLs 4 C2 –focus on style-based topological constraints and evolution –static component behavior in 1st order logic 4 Wright –focus on connectors –dynamic subsystem behavior in CSP 4 Rapide –focus on system events –dynamic system behavior using event patterns and posets

Unified Modeling Language: Motivation 4 Community fragmentation Academic Approach to Architectures Industrial Approach to Architectures Focus on wide range of development issues Focus on analytic evaluation of architectural models Families of modelsIndividual models Practicality over rigorRigorous modeling notations Architecture as the “big picture” in development Powerful analysis techniques Breadth over depthDepth over breadth General-purpose solutionsSpecial-purpose solutions

4 Provides an economy of scale –more and better tools –improved tool interoperability –more skilled developers –lower training costs 4 Combine the benefits of powerful, specialized notations with those of widely adopted, general notations –specific solution: “integrate” ADLs with UML Unified Modeling Language: Standardization

Unified Modeling Language: Benefits 4 Large, useful set of predefined constructs 4 Extensible 4 Semi-formal definition of syntax and semantics via –a meta model –descriptive text –constraints 4 Potential for –wide adoption –standardization –substantial tool support 4 Basis in experience with mainstream development methods

Unified Modeling Language: Extensibility 4 New constructs may be added to address new development issues 4 Three extensibility mechanisms – constraints – tagged values – stereotypes Stereotype Person for instances of meta class Class [1] A Person can be either female or male personGender : enum { female, male } 4 The meta model may also be extended – results in a new notation – may be incompatible with UML-compliant tools

Modeling Software Architectures in UML 4 Strategy #1 –use UML “as is” –enables direct comparison of UML and an ADL 4 Strategy #2 –use UML’s built-in extension mechanisms –allows automated conformance checking to architectural style rules 4 Strategy #3 –augment the UML meta model to directly support architectural concerns

Strategy #1: Using UML “As Is” 4 Simultaneous consideration of architecture composition rules and UML notational constructs 4 Develop a UML domain model 4 Develop an (informal) architectural diagram 4 Map domain classes to architectural components 4 Design class (component) interfaces 4 Provide constructs for modeling connectors –connectors add no functionality at the domain model level 4 Model architectural structure in class and/or collaboration diagrams

Strategy #1: UML Metamodeling Architecture

Strategy #1: Example Comp3 Comp2Comp1 Conn1 C3i C2i C1i 2:Request()3:Request() c3 : Comp3 :Comp2:Comp1 1:Request() bus : Conn1 4:Notif1(data1)5:Notif2(data2) 6:Notif2(data2) 7:Notif1(data1)

Strategy #2: Constraining UML 4 Identify UML meta classes semantically similar to major architectural constructs –operation, message, port –component, connector, architecture 4 Define stereotypes and apply them to meta class instances –use stereotypes to model structural aspects of an architecture 4 Describe semantics using UML diagrams –sequence, statechart, collaboration, activity

Strategy #2: UML Metamodeling Architecture

Strategy #2: Example > Comp3 > Comp2 > Comp1 > Conn1 >

Strategy #3: Augmenting UML 4 Introduce explicit architectural constructs and constraints in UML 4 Introduce additional notations for modeling architectural semantics 4 Follow an approach similar to Strategy #1 to model specific architectures  Follow an approach similar to Strategy #2 to model specific architectural styles

Strategy #3: UML Metamodeling Architecture

Discussion of Integration Strategies 4 All three approaches have merits and shortcomings 4 “Straight” UML –understandable architectures –manipulable by standard tools –architectural constraint violations 4 “Constrained” UML –ensures architectural constraints –requires complete style specifications –requires OCL-compliant tools 4 “Extended” UML –provides “native” support for architectures –requires backward tool compatibility –may result in incompatible UML versions

Current Status 4 Integrated environment for transforming C2-style architectures into UML

From Architecture to Implementation

Architectural View Mismatches 4 Different UML diagrams present different system views –redundant information across views 4 Key challenge is to ensure inter-view consistency 4 Ramifications on round-trip engineering

Round-Trip Software Engineering Using UML

Conclusions 4 Software modeling philosophies 4 Assumptions 4 Problem domain modeling 4 Architectural abstractions 4 Modeling behavior 4 Architectural style 4 Architectural views