UML 2: A Key MDA Technology



Similar documents
Modeling Turnpike: a Model-Driven Framework for Domain-Specific Software Development *

Applying 4+1 View Architecture with UML 2. White Paper

Foundations of Model-Driven Software Engineering

Design by Contract beyond class modelling

Embedded/Real-Time Software Development with PathMATE and IBM Rational Systems Developer

Designing Real-Time and Embedded Systems with the COMET/UML method

The Theory and Practice of Modeling Language Design (for Model-Based Software Engineering)

UML Modelling of Automated Business Processes with a Mapping to BPEL4WS

i. Node Y Represented by a block or part. SysML::Block,

A SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT

Business Modeling with UML

A UML 2 Profile for Business Process Modelling *

UML for the C programming language.

MDA Journal A BPT COLUMN. David S. Frankel. Introduction. May 2004

How To Design Software

Tool Support for Software Variability Management and Product Derivation in Software Product Lines

Layered Approach to Development of OO War Game Models Using DEVS Framework

Using UML Part Two Behavioral Modeling Diagrams

Software Engineering for Software-Intensive Systems: III The Development Life Cycle

Chap 1. Introduction to Software Architecture

What is Modeling language? What is UML? A brief history of UML Understanding the basics of UML UML diagrams for NES UML Profiles UML Modeling tools

Structure of Presentation. The Role of Programming in Informatics Curricula. Concepts of Informatics 2. Concepts of Informatics 1

F-16 Modular Mission Computer Application Software

Developing in the MDA Object Management Group Page 1

Systems and software product line engineering with SysML, UML and the IBM Rational Rhapsody BigLever Gears Bridge.

The value of modeling

What is a metamodel: the OMG s metamodeling infrastructure

Comparison of Model-Driven Architecture and Software Factories in the Context of Model-Driven Development

Generating Aspect Code from UML Models

SysML Modelling Language explained

Model-driven development solutions To support your business objectives. IBM Rational Rhapsody edition comparison matrix

Information systems modelling UML and service description languages

Classical Software Life Cycle Models

Functional Requirements Document -Use Cases-

Application of UML in Real-Time Embedded Systems

SystemC Tutorial. John Moondanos. Strategic CAD Labs, INTEL Corp. & GSRC Visiting Fellow, UC Berkeley

Revel8or: Model Driven Capacity Planning Tool Suite

Evaluating OO-CASE tools: OO research meets practice

SCADE System Technical Data Sheet. System Requirements Analysis. Technical Data Sheet SCADE System

Overview. Stakes. Context. Model-Based Development of Safety-Critical Systems

Mapping between Levels in the Metamodel Architecture

A HW/SW Codesign Methodology based on UML

Clarifying a vision on certification of MDA tools

Outline. III The Development Life Cycle. Characteristics of Software Development Methodologies. The Prototyping Process

Modeling the User Interface of Web Applications with UML

Model-Driven Development: A Metamodeling Foundation

Dr. Jana Koehler IBM Zurich Research Laboratory

SEARCH The National Consortium for Justice Information and Statistics. Model-driven Development of NIEM Information Exchange Package Documentation

MDE Adoption in Industry: Challenges and Success Criteria

Jairson Vitorino. PhD Thesis, CIn-UFPE February Supervisor: Prof. Jacques Robin. Ontologies Reasoning Components Agents Simulations

Design a medical application for Android platform using model-driven development approach

The BPM to UML activity diagram transformation using XSLT

IRA 423/08. Designing the SRT control software: Notes to the UML schemes. Andrea Orlati 1 Simona Righini 2

Aplicando enfoque MDE a aplicaciones WEB-SOA

5 Process Modeling using UML

A Tool Suite for the Generation and Validation of Configurations for Software Availability

UML Representation Proposal for XTT Rule Design Method

UML Profiling Comes of Age Realizing the Potential of Domain-Specific Modeling

Menouer Boubekeur, Gregory Provan

Development of a Feature Modeling Tool using Microsoft DSL Tools.

An MDA Approach for the Development of Web applications

Towards a Common Metamodel for the Development of Web Applications

Business Process Modelling Languages

Increasing Development Knowledge with EPFC

Development of Tool Extensions with MOFLON

today 1,700 special programming languages used to communicate in over 700 application areas.

Agile Modeling and Design of Service-Oriented Component Architecture

Performance Management for Next- Generation Networks

Bruce Silver Associates Independent Expertise in BPM

Kirsten Sinclair SyntheSys Systems Engineers

A SoC design flow based on UML 2.0 and SystemC

Modeling Turnpike Frontend System: a Model-Driven Development Framework Leveraging UML Metamodeling and Attribute-Oriented Programming *

A Management Tool for Component-Based Real-Time Supervision and Control Systems

Model Driven Business Architecture. Pete Rivett CTO, Adaptive

Compliance and Requirement Traceability for SysML v.1.0a

CHAPTER 2 LITERATURE SURVEY

A process-driven methodological approach for the design of telecommunications management systems

CSE 3461 / 5461: Computer Networking & Internet Technologies

Analysis of the Specifics for a Business Rules Engine Based Projects

Application of Next Generation Telecom Network Management Architecture to Satellite Ground Systems

Component-Oriented Engineering

Systems Engineering Interfaces: A Model Based Approach

Principles of integrated software development environments. Learning Objectives. Context: Software Process (e.g. USDP or RUP)

Toward Families of QVT DSL and Tool

The SPES Methodology Modeling- and Analysis Techniques

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

A UML Introduction Tutorial

Web services UML modeling

Transcription:

IBM Software Group UML 2: A Key MDA Technology Bran Selic IBM Distinguished Engineer IBM Canada bselic@caibmcom Clic k to

Agenda The Setting: Model-Driven Development (MDD) UML 2 Highlights and Related Work State of the Art in MDD 2

A Bit of Modern Software SC_MODULE(producer) { sc_outmaster<int> out1; sc_in<bool> start; // kick-start void generate_data () { for(int i =0; i <10; i++) { out1 =i ; //to invoke slave;} } SC_CTOR(producer) { SC_METHOD(generate_data); sensitive << start;}}; SC_MODULE(consumer) { sc_inslave<int> in1; int sum; // state variable void accumulate (){ sum += in1; cout << Sum = << sum << endl;} SC_CTOR(consumer) { SC_SLAVE(accumulate, in1); sum = 0; // initialize }; SC_MODULE(top) // container { producer *A1; consumer *B1; sc_link_mp<int> link1; SC_CTOR(top) { A1 = new producer( A1 ); A1out1(link1); B1 = new consumer( B1 ); B1in1(link1);}}; Can you see the architecture? 3

and its Model «sc_method» A1: A1:producerproducer start out1 in1 «sc_slave» B1:consumer Can you see it now? 4

The Model and the Code SC_MODULE(producer) { sc_outmaster<int> out1; sc_in<bool> start; // kick-start void generate_data () { for(int i =0; i <10; i++) { out1 =i ; //to invoke slave;} } SC_CTOR(producer) { SC_METHOD(generate_data); sensitive << start;}}; SC_MODULE(consumer) { sc_inslave<int> in1; int sum; // state variable void accumulate (){ «sc_method» sum += in1; A1:producer cout << Sum = << sum << endl;} SC_CTOR(consumer) { SC_SLAVE(accumulate, in1); sum = 0; // initialize }; SC_MODULE(top) // container { producer *A1; consumer *B1; sc_link_mp<int> link1; SC_CTOR(top) { A1 = new producer( A1 ); A1out1(link1); B1 = new consumer( B1 ); B1in1(link1);}}; «sc_link_mp» link1 start out1 in1 «sc_slave» B1:consumer 5

Model-Driven Development (MDD) An approach to software development in which the focus and primary artifacts of development are models (vs programs) Based on two time-proven methods: (1) ABSTRACTION (2) AUTOMATION Realm of modeling languages start «sc_module» producer out1 start «sc_module» producer out1 Realm of tools SC_MODULE(producer) {sc_inslave<int> in1; int sum; // void accumulate (){ sum += in1; cout << Sum = << sum << endl;} SC_MODULE(producer) {sc_inslave<int> in1; int sum; // void accumulate (){ sum += in1; cout << Sum = << sum << endl;} 6

Model-Driven Architecture (MDA) An OMG initiative to support model-driven development through a series of open standards (1) ABSTRACTION (2) AUTOMATION MDA (3) OPEN STANDARDS Modeling languages Interchange standards Model transformations Software processes etc 7

UML: The Foundation of MDA UML 211 UML 20 (MDA) UML 15 UML 14 UML 13 (extensibility) UML 11 (OMG Standard) 2006 2005 2003 2001 1998 1997 1996 Rumbaugh Booch Harel Jacobson Foundations of OO (Nygaard( Nygaard,, Goldberg, Meyer, Stroustrup, Harel, Wirfs-Brock, Reenskaug, ) 1967 8

Agenda The Setting: Model-Driven Development (MDD) UML 2 Highlights and Related Work State of the Art in MDD 9

What is UML For? For modeling software systems and their contexts Using concepts from the world of object-oriented languages (class, operation, object, etc) However, the general nature of these concepts makes UML suitable for extension to other and broader domains Eg systems engineering (SysML, UPDM) 10

UML 2 Highlights Greatly increased level of precision to better support MDD More precise definition of concepts and their relationships Extended and refined definition of semantics New language architecture Highly modularized structure for incremental adoption Greatly simplified compliance model for easier tools interchange Improved support for modeling large-scale software systems Modeling of complex software structures (architectural description language) Modeling of complex end-to-end behavior Modeling of distributed, concurrent process flows (eg, business processes, complex signal processing flows) Greatly improved support for defining domain-specific languages (DSLs) Consolidation and rationalization of existing concepts 11

UML 2 Semantics A layered and modularized semantics base Activities State Machines Behavioral Semantic Base Actions Interactions Under further refinement by the upcoming Executable UML Foundation submission Object Behavior Object Interactions Structural Semantic Base 12

The New UML 2 Language Architecture A core language + a set of optional language units Some language units have multiple increments Multiple levels of compliance MOF Profiles OCL State Machines Structured Classes and Components Activities Level 2 Level 3 Interactions Detailed Actions Flows Level 1 Core UML (Classes, Basic behavior, Internal structure, Use cases ) UML Infrastructure 13

UML Compliance 4 levels of compliance (L0 L3) compliance(l x ) compliance (L x-1 ) Dimensions of compliance: Abstract syntax (UML metamodel, XMI interchange) Concrete syntax Optional Diagram Interchange compliance Forms of compliance Abstract syntax Concrete syntax Abstract and concrete syntax Abstract and concrete syntax with diagram interchange 14

Are Class Diagrams Sufficient for Modeling Structure? Not always! Because they abstract out certain specifics, class diagrams are not suitable for performance analysis Sometimes it is necessary to model structure at the instance level N2:Node N1:Node N3:Node 01 right Node N4:Node left 01 N1:Node N2:Node N3:Node Same class diagram describes both systems! 15

Collaboration Diagrams: Modeling Instance Structures A UML collaboration describes a set of communicating roles Roles represent instances but abstract away specifics of instances generic instance diagrams = patterns Connectors represent communication links MiniHamlet Collaboration Ophelia: YoungWoman Claudius: OlderMan Connector Hamlet :YoungMan Constrained role Ghost Unconstrained role 16

Structured Objects: External View Multiple points of interaction Each dedicated to a particular purpose eg, Database Object eg, Database Admin port eg, Database User ports 17

Structured Classes: Internal Structure Structured classes may contain an internal collaboration structure that represents its implementation sendctrl receivectrl c sender:fax remote remote c receiver:fax FaxCall 18

Architecture Refinement Through Inheritance Using standard inheritance mechanism (design by difference) sender:fax receiver:fax ProductFamilyArchitecture mgr:faxmgr sender:fax receiver:fax ProductA sender:fax receiver:fax ProductB 19

Categories of Actions For modeling fine-grained behavior UML 2 unified the action and activity modeling paradigms Categories of Actions Communication actions (send, call, receive, ) Primitive function action Object actions (create, destroy, reclassify,start, ) Structural feature actions (read, write, clear, ) Link actions (create, destroy, read, write, ) Variable actions (read, write, clear, ) Exception action (raise) 20

UML 2: Action and Activity Basics Support for multiple computational paradigms OutputPin (typed) Control Flow Activity (context) Action1 Action2 Action3 Input Pin (typed) VariableA Data Flow 21

Activities Major influences for UML 2 activity semantics Business Process Execution Language for Web Services (BPEL4WS) a de facto standard supported by key industry players (Microsoft, IBM, etc) Functional modeling from the systems engineering community (INCOSE) Significantly enriched in UML 2 More flexible semantics for greater modeling power Many new features 22

Activities For modeling procedural behavior Similar to flowcharts, but includes support for concurrency modeling (parallel behaviors) Based on the Petri Net formalism Higher-level actions Shares same conceptual model as actions: Control and data flows Potential concurrent execution Pins (parameters) Can be nested hierarchically to an arbitrary depth Like procedures in traditional programming languages 23

Activity Example contracts Interruptible Region Order Processing «precondition» Order entered «postcondition»» Order complete Input parameter Order cancel request Cancel order Order Receive order Fill order Ship order Close order Send invoice Invoice Make payment Accept payment 24

UML 2 Interactions Modeling sd ATM-transaction client: atm: dbase: insertcard Interaction Occurrence sd CheckPin ref CheckPin client: atm: dbase: askforpin alt ref DoTransaction [chk= OK] data(pin) result(chk) check(pin) result(chk) error(badpin) [else] Combined (in-line) Fragment 25

OMG s UML as a Platform for DSMLs Designed as a family of modeling languages Contains a set of semantic variation points (SVPs) where the full semantics are either unspecified or ambiguous SVP examples: Precise type compatibility rules Communications properties of communication links (delivery semantics, reliability, etc) Multi-tasking scheduling policies Enables domain-specific customization 26

Success Criteria for a Computer Language Technical validity: absence of major design flaws and constraints (ease of writing correct programs) Expressiveness: ability to succinctly specify the necessary domain concepts Simplicity: absence of complexity (eases learning) Efficiency: potential to minimize space and performance overheads Familiarity: proximity to widely-available skills sets Interoperability: language compatible with other technologies Support: availability of the infrastructure required for effective exploitation Availability of effective tools (editors, compilers, debuggers, static and dynamic analyzers, build tools, version control tools, merge/diff tools, etc) Availability of program libraries Availability of skilled practitioners Availability of textbooks and training courses Institutions for evolution and maintenance 27

Example: Adding a Semaphore Concept to UML Iconic Representation «metaclass» UML::Class Extension (NB: filled arrowhead) «stereotype» Semaphore limit : Integer getsema : Operation relsema : Operation active->size() <= limit limit <= MAXlimit Constraints 28

UML Profiles Profile: A special kind of package containing stereotypes and model libraries that, in conjunction with the UML metamodel, define a group of domainspecific concepts and relationships The profile mechanism is also available in MOF where it can be used for other MOF-based languages Profiles can be used for two different purposes: To define a domain-specific modeling language To define a domain-specific viewpoint 29

Current Catalog of OMG Profiles UML Profile for CORBA UML Profile for CORBA Component Model (CCM) UML Profile for Enterprise Application Integration (EAI) UML Profile for Enterprise Distributed Object Computing (EDOC) UML Profile for Modeling QoS and Fault Tolerance Characteristics and Mechanisms UML Profile for Schedulability, Performance, and Time UML Profile for System on a Chip (SoC) UML Profile for Systems Engineering (SysML) UML Testing Profile New profiles UML profile for Modeling and Analysis of Real-Time and Embedded Systems (MARTE) UML profile for DoDAF/MoDAF (UPDM) UML profile for Modeling Services (UPMS) 30

MARTE Usage Example Seamless inter-working of specialized tools based on shared standards UML Modeling Tool 31 5 4 25 Quality of Service Specifications Model Analysis Tool μ Automated model conversion Inverse automated model conversion 31

Agenda The Setting: Model-Driven Development (MDD) UML 2 Highlights and Related Work State of the Art in MDD 32

The MDD Maturity Model Levels of Abstraction Automation Code only Code Visualization Round Trip Engineering Model-centric Model only M M M M visualize synchronize generate C C C C What s s a Model? The code is the model Manage code and model The model is the code Let s s talk models 33 Time

The State of the Art Model-driven development at the Model level Higher levels of abstraction and Higher levels of automation (advanced tools with full or partial automatic code generation) Major improvements in: Product reliability Developer productivity MDD tools have reached the critical maturity threshold: Performance (tools and code) Interoperability Capability Scalability 34

Automatic Code Generation: Full Generation State of the art: All development done via the model (ie, no modifications of generated code) Size: Systems equivalent to ~ 10 MLoC Scalability: teams involving hundreds of developers Performance: within ±5-15% of equivalent manually coded system 35

Software Developed Using (Rational) MDD Tools Automated doors, Base Station, Billing (In Telephone Switches), Broadband Access, Gateway, Camera, Car Audio, Convertible roof controller, Control Systems, DSL, Elevators, Embedded Control, GPS, Engine Monitoring, Entertainment, Fault Management, Military Data/Voice Communications, Missile Systems, Executable Architecture (Simulation), DNA Sequencing, Industrial Laser Control, Karaoke, Media Gateway, Modeling Of Software Architectures, Medical Devices, Military And Aerospace, Mobile Phone (GSM/3G), Modem, Automated Concrete Mixing Factory, Private Branch Exchange (PBX), Operations And Maintenance, Optical Switching, Industrial Robot, Phone, Radio Network Controller, Routing, Operational Logic, Security and fire monitoring systems, Surgical Robot, Surveillance Systems, Testing And Instrumentation Equipment, Train Control, Train to Signal box Communications, Voice Over IP, Wafer Processing, Wireless Phone 36

Major Telecom Equipment Manufacturer Adopted MDD Tooling Rose RealTime, Test RealTime, RUP Example 1: Radio Base Station 2 Million lines of C++ code (87% generated by tools) 100 developers Example 2: Gateway 300,000 lines of C++ code (83% generated by tools) 30 developers Example 3: Network Controller 45 Million lines of C++ code (80% generated by tools) 400 developers 37

Major Telecom Equipment Manufacturer Adopted MDD Tooling Rose RealTime, Test RealTime, RUP Example 1: Radio Base Station 38 2 Million lines of C++ code (87% generated by tools) 100 developers Example 2: Gateway 300,000 lines of C++ code (83% generated by tools) 30 developers Example 3: Network Controller Benefits 80% fewer bugs 30% productivity increase 30% reduction in required documentation "I can't see how we could have done it in the given timeframe without Rational Rose RealTime Project Manager, Telecommunications Equipment Manufacturer We cut production time from 16 to 12 monthsthe quality was dramatically improved Corporate Director, Software Technology Development 45 Million lines of C++ code (80% generated by tools) 400 developers

The MDD Maturity Model vs State of the Practice Levels of Abstraction Automation Code only State of the Practice Code Visualization M visualize Round Trip Engineering M synchronize Model-centric M generate Model only M C C C C State of the Art What s a Model? The code is the model Manage code and model The model is the code Let s talk models 39

Conclusions Model-Driven Development (MDD) has a proven potential to make a significant difference in productivity and quality of software development The OMG is supporting MDD through its MDA standardization initiative UML 2 is a key member of the MDA standards family As a core modeling language positioned for MDD As the foundation for a set of standard domain-specific modeling languages The first generation of MDD-based products and supporting tools and methods are available It has proven the effectiveness of this highly automated approach to software development 40

UML References General modeling specs: http://wwwomgorg/technology/documents/modeling_spec_cataloghtm UML 2 specs: Books: Superstructure: http://wwwomgorg/cgi-bin/doc?ptc/2006-04-02 Infrastructure: http://wwwomgorg/cgi-bin/doc?ptc/2004-10-14 Rumbaugh, J, Jacobson, I, and Booch, G, Unified Modeling Language Reference Manual, (Second Edition), Addison Wesley, 2004 Pilone, D and Pitman, N, UML 20 in a Nutshell, O Reilly, 2005 Eriksson, H-E, et al, UML 2 Toolkit, OMG Press & John Wiley, 2004 Fowler, M, UML Distilled, (3 rd Edition), Addison Wesley, 2004 41