SlideShare una empresa de Scribd logo
1 de 51
Welcome Model Driven Architecture with Executable UML Cambridge, June 17 Chris Raistrick, Kennedy Carter [email_address]
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object]
Chris Raistrick [email_address] Model Driven Architecture with Executable UML Cambridge, June 17 Introduction
Important TLAs ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],see omg.org/mda
Platform Independent Model ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
What is Special about MDA with xUML? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Real Engineers Do It Rigorously The MDA process can be summarized as: SPECIFY DOMAINS Identify New/Reused Domains Model System Use Cases Establish a well-defined and automated construction process Build precise, predictive models Subject the models to rigorous testing before implementation To build this Construct the system from large, reusable components VALIDATE PIMS Execute Domain Use Cases Execute System Use Cases BUILD PLATFORM-INDEPENDENT MODELS (PIMS) Model Domain Use Cases Build Static Model - Class Diagram Build Behavioural Model - State Charts & Operations Build Action Model - State Actions & Methods Compile and Debug PIMS SPECIFY SYSTEM CONSTRUCTION PROCESS Define/Buy PIM To PSI Mapping Rules Build/Buy PIM Compiler GENERATE SYSTEM Apply PIM to PSI Mapping Rules (Execute PIM Compiler) Perform Target Testing
Chris Raistrick [email_address] Model Driven Architecture with Executable UML Cambridge, June 17 The MDA Process
MDA Maturity Scale We will focus on this maturity level Code “ What’s a model?” Code Model Visualize Code Model Synchronize Code Model Synthesize Model “ What’s code?” Model Centric Code Centric
MDA Maturity Scale Productivity Code “ What’s a model?” Code Model Visualize Code Model Synchronize Code Model Synthesize Model “ What’s code?” Translation Process Elaboration Process
Translation-based Development The Executable MDA (xMDA) process represents an evolution of traditional development processes… Write High Level Language (C++/Ada/Java…) Define High Level Language Mapping Rules Translate High Level Language Machine Code Traditional Software Development Build Platform Independent Model (xUML) Define xUML Mapping Rules Translate xUML HLL (C++/Ada/Java…) xMDA Development High Level Language HLL Mapping Rules PIM xUML Mapping Rules
Chris Raistrick [email_address] Model Driven Architecture with Executable UML Cambridge, June 17 Domain Modelling
Definition ,[object Object],AIRCRAFT It is a  policy of Air Traffic Control  that I must remain at least 3 miles horizontally and 1000 feet vertically from all other aircraft Class in Air Traffic Control Domain (a “real” world) ICON It is a  policy of this User Interface  that I must become translucent if I am in front of another icon Class in User Interface Domain (an “abstract” world)
A Standardised Domain Model Source: http://www.webopedia.com/img/OSI_Model.jpg
Pattern: Domains to Isolate Areas of Change Provides standard interface services Maps to standard interface services to technology-specific services Provides technology- specific interface services Technology Independent Domain Technology 1 Technology n
Pattern: Domains to Isolate Areas of Change User Interface Provides standard interface services Textual User Interface Maps to standard interface services to technology-specific services Graphical User Interface Provides technology- specific interface services displayIcon displayText display3DEntity
Plug and Play Weapons In a perfect world… It should be possible to load any of these weapons… … onto any of these airframes… … and make available a set of common core capabilities… … even if some weapon-specific capabilities are not available
Plug and Play Domain Architecture Software System Weapon specific plug-ins Comms specific plug-ins Language specific plug-ins Communications Future Comms Technology Existing Comms Technology Weapon Control Future Weapon Existing Weapon Target Hardware xUML Execution Platform Any Language Any Operating System Achieves  weapon type  independence Achieves  execution platform  independence Achieves  comms platform  independence
Counterparts Each real-world thing can be represented as different abstractions in various domains...the  counterpart classes , linked via  counterpart associations The  Contact  Class “ A correlated radar contact” The  Aircraft  Class “ A piloted aircraft in controlled airspace” The  Icon  Class A shape with context-sensitive pop-up menu options Air Traffic Control Graphical User Interface Radar Data Processing Aircraft Fuzed Track Icon The  Class  Class “ An encapsulation of data and operations” PIM-PSM Mapping Class
Chris Raistrick [email_address] Model Driven Architecture with Executable UML Cambridge, June 17 Executable UML
Primary xUML Artefacts 5. Define Class Interfaces Domain:  Interaction Diagram 1. Capture Requirements System: Use Cases 2. Partition into  Domains System: Domain Model 3. Define Domain Interfaces Use Case: Sequence Diagram 4. Specify Classes Domain: Class Model Class: State Model 6. Specify Behavior
Use Case Model ,[object Object]
Domain Model ,[object Object],[object Object],[object Object]
Sequence Diagram ,[object Object],Sequence Diagram for Use Case: Use Case Model Domain Model
Classes ,[object Object],[object Object],[object Object]
Attributes ,[object Object],[object Object]
Associations ,[object Object]
Operations ,[object Object],[object Object]
Operations and Methods Every operation has a  method … …which can be specified using a standard 3GL, such as C++… …or a UML action language as in this example Find a set of objects Invoke an object-scoped operation Create a link
Internal and External Interfaces ,[object Object],[object Object],Class Interaction Model Internal interface External interface Use Case Diagram
The xUML Model Structure System Model Domains Classes Operations States xUML Model (PIM) Platform-Specific Configuration
Isn’t xUML with ASL Just Coding in Another Language? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Chris Raistrick [email_address] Model Driven Architecture with Executable UML Cambridge, June 17 Integrating Models
Elements of a Domain’s Interfaces ,[object Object],Air Traffic Control required interfaces User Interface provided interfaces bridge operations
Required Interface Attaching an association terminator to a class makes it eligible for participation in counterpart relationships The Required Interface  consists of  operations  attached to <<terminator>> classes Air Traffic Control required interfaces User Interface provided interfaces bridge operations Air Traffic Control Domain (part of) Class Collaboration Diagram <<association   terminator>> Air Traffic Controller Aircraft requestTaxi required operation
Provided Interface The Provided Interface  consists of  operations  attached to domains or classes, and  signals  attached to classes Air Traffic Control required interfaces User Interface provided interfaces bridge operations User Interface Domain (part of) Class Collaboration Diagram Icon <<association   terminator>> Client makeIconFlash provided operation
The “Wiring” Is Specified in a Build Set… Air Traffic Control System Build Set Counterpart associations  can be established between classes with at least one association terminator Air Traffic Control Domain (part of) Class Collaboration Diagram <<association terminator>> Air Traffic Controller Aircraft requestTaxi required operation User Interface Domain {kl=UI} (part of) Class Collaboration Diagram Icon <<association terminator>> Client makeIconFlash provided operation CPR1 counterpart association bridge: requestTaxi counterpartIcon = this -> CPR1 $USE UI [ ] = ICN2:makeIconFlash[ ] on counterpartIcon $ENDUSE Bridge operation
Chris Raistrick [email_address] Model Driven Architecture with Executable UML Cambridge, June 17 System Generation
The Code Generator: Domains Populate Generate System Model Code Generator Generated Code xUML Runtime Layer Generated System Adaptation Layer The code generator itself is a set of domain models expressed using xUML. The domains represent the various components of an xUML system. (Part of) Code Generator Domain Chart xUML Model (PIM) Platform-Specific Configuration xUML-Code Mappings Code Generator
The Code Generator: Classes and Methods (Part of)  Configurable Code Generator Domain Chart Code Generator Code Generator xUML-Code Mappings (Part of) Executable UML Class Model the classes in each domain represent the elements that make up those components.  Method to Generate Java Method to Generate Ada Method to Generate C++ Method to Generate C … $FORMAT header_file typedef struct C[I:this.class_ID]_struct { /* &quot;[T:this.class_name]&quot; Class Header */ struct s_object *next_instance; $ENDFORMAT … Each element contains operations which specify how to map that xUML element onto a specific target language.
Build a PIM ,[object Object],Platform Independent Model : Class Diagram Populate Generate xUML Model (PIM) Platform-Specific Configuration System Model xUML-Code Mappings Code Generator Code Generator Generated Code xUML Runtime Layer Generated System Adaptation Layer
Instantiate the Formalism Metamodel Domain Instance Class Instances Attribute Instances Populated Executable UML Class Model When the Executable UML domain is populated with the PIM components, we see these instances… Populate xUML Model (PIM) Platform-Specific Configuration System Model xUML-Code Mappings Code Generator Code Generator
The Metamodels Embody the Code Generation Rules Domain.generateCode Class.generateCode Attribute.generateCode The task of translation involves iterating through these instances and generating suitable code from them.  Code Generator Code Generator xUML-Code Mappings
Generate the Code Platform Independent Model : Class Diagram Generated C Code Generate Generate xUML-Code Mappings Code Generator Code Generator Generated Code xUML Runtime Layer Generated System Adaptation Layer
Code Generation Overview Populate Generate xUML Model (PIM) Platform-Specific Configuration System Model xUML-Code Mappings Code Generator Code Generator Generated Code xUML Runtime Layer Generated System Adaptation Layer PLATFORM SPECIFIC CONFIGURATION FILE PROCESS &quot;Process One&quot; ONE 1 127.0.0.1 1000 1600 PROCESS &quot;Process Two&quot; TWO 1 127.0.0.1 1001 1601 CLASS-PROCESS WM TGT ONE CLASS-PROCESS WM WPN TWO (part of) xUML Metamodel Domain Class Attribute owning_domain = this -> R2 $FORMAT header_file typedef struct D[I:owning_domain.domain_ID]_C[I:this.class_ID]_struct { /* &quot;[T:this.class_name]&quot; Class Header */ struct s_object *next_instance; /* Linked list of  */ struct s_object *prev_instance; /* object instances  */ struct s_object *rel_ptr;  /* list of rel'ns  */ struct s_object *cpr_ptr;  /* list of cp rel'ns  */ $ENDFORMAT {attributes_in_class} = this -> R3 for the_attribute in {attributes_in_class} do [] = ATT1:generateCode [header_file] on the_attribute endfor $FORMAT header_file }; $ENDFORMAT Multi-node multi-process runtime Windows Vista adaptation layer
Chris Raistrick [email_address] Model Driven Architecture with Executable UML Cambridge, June 17 Summary
Primary Artefacts 5. Define Class Interfaces Domain:  Interaction Diagram 1. Capture Requirements System: Use Cases 2. Partition into  Domains System: Domain Model 3. Define Domain Interfaces Use Case: Sequence Diagram 4. Specify Classes Domain: Class Model Class: State Model 6. Specify Behavior
MDA: Models, Metamodels and Mappings M2 M1 M0 Class UML Type Of Aircraft ATC Actual Aircraft <<instance of>> Air Force 1: Actual Aircraft ATC Objects <<instance of>> Radar Measurement RADAR Fuzed Track <<model time>> CPR Package Ada <<cgen time>> CPR Fuzed Track 50: Fuzed Track RADAR Objects <<instance of>> <<run time>> CPR
Maintainability vs. Executability PSM (UML) manually build a  Platform Specific Model … manually code a  Platform Specific Implementation PSI (Code) manually build a  Platform Independent Model … PIM (UML) Elaborate Compromise between maintainability and executability In classic approaches, the PSI (code) must be built to be maintainable, typically by incorporating  layering  and  encapsulation … …which have a detrimental effect on speed and size of the executing system PSI (Code) automatically generate a  Platform Specific Implementation  using PIM-PSI mappings manually build a  Platform Independent Model … PIM (xUML) Translate Built for executability Built for maintainability In translation-based approaches, the maintained entity (the PIM) is  built for maintainability  with layering and encapsulation… … while the executable entity (the PSI) is  optimized for execution efficiency
Key Facets of MDA with xUML Rigorous lightweight process Precise simple modelling formalism Separation of concerns Formalised design and implementation policies
The End Model Driven Architecture with Executable UML Cambridge, June 17 Chris Raistrick, Kennedy Carter [email_address]

Más contenido relacionado

La actualidad más candente

fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...Luca Berardinelli
 
Introduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGESIntroduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGESIvano Malavolta
 
UML: Once More with Meaning
UML: Once More with MeaningUML: Once More with Meaning
UML: Once More with MeaningEd Seidewitz
 
Architecture Description Languages
Architecture Description LanguagesArchitecture Description Languages
Architecture Description LanguagesHenry Muccini
 
[2016/2017] Architectural languages
[2016/2017] Architectural languages[2016/2017] Architectural languages
[2016/2017] Architectural languagesIvano Malavolta
 
4. class diagrams using uml
4. class diagrams using uml4. class diagrams using uml
4. class diagrams using umlAPU
 
Executable UML and SysML Workshop
Executable UML and SysML WorkshopExecutable UML and SysML Workshop
Executable UML and SysML WorkshopEd Seidewitz
 
14 ooad uml-19
14 ooad uml-1914 ooad uml-19
14 ooad uml-19Niit Care
 
Code Generation 2014 - ALF, the Standard Programming Language for UML
Code Generation 2014  - ALF, the Standard Programming Language for UMLCode Generation 2014  - ALF, the Standard Programming Language for UML
Code Generation 2014 - ALF, the Standard Programming Language for UMLJürgen Mutschall
 
Model-driven architecture (MDA)
Model-driven architecture (MDA) Model-driven architecture (MDA)
Model-driven architecture (MDA) Alia Hamwi
 
UML: This Time We Mean It!
UML: This Time We Mean It!UML: This Time We Mean It!
UML: This Time We Mean It!Ed Seidewitz
 
Transaction level modeling an overview
Transaction level modeling an overviewTransaction level modeling an overview
Transaction level modeling an overviewfagunp
 
Devnology Back to School: Empirical Evidence on Modeling in Software Development
Devnology Back to School: Empirical Evidence on Modeling in Software DevelopmentDevnology Back to School: Empirical Evidence on Modeling in Software Development
Devnology Back to School: Empirical Evidence on Modeling in Software DevelopmentDevnology
 
agile architecture - two hour presentation - two worked examples
agile architecture  - two hour presentation - two worked examplesagile architecture  - two hour presentation - two worked examples
agile architecture - two hour presentation - two worked examplesMark Collins-Cope
 
UML 2.5: Specification Simplification
UML 2.5: Specification SimplificationUML 2.5: Specification Simplification
UML 2.5: Specification SimplificationEd Seidewitz
 

La actualidad más candente (20)

fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...
 
Introduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGESIntroduction to ARCHITECTURAL LANGUAGES
Introduction to ARCHITECTURAL LANGUAGES
 
UML: Once More with Meaning
UML: Once More with MeaningUML: Once More with Meaning
UML: Once More with Meaning
 
Architecture Description Languages
Architecture Description LanguagesArchitecture Description Languages
Architecture Description Languages
 
[2016/2017] Architectural languages
[2016/2017] Architectural languages[2016/2017] Architectural languages
[2016/2017] Architectural languages
 
Pr full uml
Pr full umlPr full uml
Pr full uml
 
4. class diagrams using uml
4. class diagrams using uml4. class diagrams using uml
4. class diagrams using uml
 
Executable UML and SysML Workshop
Executable UML and SysML WorkshopExecutable UML and SysML Workshop
Executable UML and SysML Workshop
 
14 ooad uml-19
14 ooad uml-1914 ooad uml-19
14 ooad uml-19
 
Code Generation 2014 - ALF, the Standard Programming Language for UML
Code Generation 2014  - ALF, the Standard Programming Language for UMLCode Generation 2014  - ALF, the Standard Programming Language for UML
Code Generation 2014 - ALF, the Standard Programming Language for UML
 
Model-driven architecture (MDA)
Model-driven architecture (MDA) Model-driven architecture (MDA)
Model-driven architecture (MDA)
 
4+1 view model
4+1 view model4+1 view model
4+1 view model
 
Week 6
Week 6Week 6
Week 6
 
UML: This Time We Mean It!
UML: This Time We Mean It!UML: This Time We Mean It!
UML: This Time We Mean It!
 
Transaction level modeling an overview
Transaction level modeling an overviewTransaction level modeling an overview
Transaction level modeling an overview
 
Devnology Back to School: Empirical Evidence on Modeling in Software Development
Devnology Back to School: Empirical Evidence on Modeling in Software DevelopmentDevnology Back to School: Empirical Evidence on Modeling in Software Development
Devnology Back to School: Empirical Evidence on Modeling in Software Development
 
agile architecture - two hour presentation - two worked examples
agile architecture  - two hour presentation - two worked examplesagile architecture  - two hour presentation - two worked examples
agile architecture - two hour presentation - two worked examples
 
UML 2.5: Specification Simplification
UML 2.5: Specification SimplificationUML 2.5: Specification Simplification
UML 2.5: Specification Simplification
 
10.1.1.65.2852
10.1.1.65.285210.1.1.65.2852
10.1.1.65.2852
 
Ch1
Ch1Ch1
Ch1
 

Similar a MDA with Executable UML

xUMLFinalPresentation.ppt
xUMLFinalPresentation.pptxUMLFinalPresentation.ppt
xUMLFinalPresentation.pptssuser2ef938
 
Presentation on Behavioral Synthesis & SystemC
Presentation on Behavioral Synthesis & SystemCPresentation on Behavioral Synthesis & SystemC
Presentation on Behavioral Synthesis & SystemCMukit Ahmed Chowdhury
 
Tail-f Systems Whitepaper - Configuration Management Simplified
Tail-f Systems Whitepaper - Configuration Management SimplifiedTail-f Systems Whitepaper - Configuration Management Simplified
Tail-f Systems Whitepaper - Configuration Management SimplifiedTail-f Systems
 
chapter 5 Objectdesign.ppt
chapter 5 Objectdesign.pptchapter 5 Objectdesign.ppt
chapter 5 Objectdesign.pptTemesgenAzezew
 
A Holistic Approach to Addressing the Cloud's Paradox of Choice
A Holistic Approach to Addressing the Cloud's Paradox of ChoiceA Holistic Approach to Addressing the Cloud's Paradox of Choice
A Holistic Approach to Addressing the Cloud's Paradox of ChoiceJack Mills
 
The embedded systems Model
The embedded systems ModelThe embedded systems Model
The embedded systems ModelAJAL A J
 
Model driven architecture
Model driven architectureModel driven architecture
Model driven architectureBiruk Mamo
 
Uml introduction
Uml introductionUml introduction
Uml introductionbdemchak
 
Third AssignmentDescribe in 100 – 200 words an application with .docx
Third AssignmentDescribe in 100 – 200 words an application with .docxThird AssignmentDescribe in 100 – 200 words an application with .docx
Third AssignmentDescribe in 100 – 200 words an application with .docxrandymartin91030
 
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015Luca Berardinelli
 
Chapter 7 Design Architecture and Methodology1.docx
Chapter 7 Design Architecture and Methodology1.docxChapter 7 Design Architecture and Methodology1.docx
Chapter 7 Design Architecture and Methodology1.docxmccormicknadine86
 
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingDDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingJaime Martin Losa
 
Integrating Performance Modeling in Industrial Automation through AutomationM...
Integrating Performance Modeling in Industrial Automation through AutomationM...Integrating Performance Modeling in Industrial Automation through AutomationM...
Integrating Performance Modeling in Industrial Automation through AutomationM...Luca Berardinelli
 
DDD - 4 - Domain Driven Design_ Architectural patterns.pdf
DDD - 4 - Domain Driven Design_ Architectural patterns.pdfDDD - 4 - Domain Driven Design_ Architectural patterns.pdf
DDD - 4 - Domain Driven Design_ Architectural patterns.pdfEleonora Ciceri
 
Innovate2011_MAC-1597A
Innovate2011_MAC-1597AInnovate2011_MAC-1597A
Innovate2011_MAC-1597AArman Atashi
 

Similar a MDA with Executable UML (20)

xUMLFinalPresentation.ppt
xUMLFinalPresentation.pptxUMLFinalPresentation.ppt
xUMLFinalPresentation.ppt
 
ALT
ALTALT
ALT
 
Presentation on Behavioral Synthesis & SystemC
Presentation on Behavioral Synthesis & SystemCPresentation on Behavioral Synthesis & SystemC
Presentation on Behavioral Synthesis & SystemC
 
Tail-f Systems Whitepaper - Configuration Management Simplified
Tail-f Systems Whitepaper - Configuration Management SimplifiedTail-f Systems Whitepaper - Configuration Management Simplified
Tail-f Systems Whitepaper - Configuration Management Simplified
 
Unified Modeling Language
Unified Modeling LanguageUnified Modeling Language
Unified Modeling Language
 
Vb
VbVb
Vb
 
chapter 5 Objectdesign.ppt
chapter 5 Objectdesign.pptchapter 5 Objectdesign.ppt
chapter 5 Objectdesign.ppt
 
A Holistic Approach to Addressing the Cloud's Paradox of Choice
A Holistic Approach to Addressing the Cloud's Paradox of ChoiceA Holistic Approach to Addressing the Cloud's Paradox of Choice
A Holistic Approach to Addressing the Cloud's Paradox of Choice
 
The embedded systems Model
The embedded systems ModelThe embedded systems Model
The embedded systems Model
 
Model driven architecture
Model driven architectureModel driven architecture
Model driven architecture
 
Uml introduction
Uml introductionUml introduction
Uml introduction
 
Third AssignmentDescribe in 100 – 200 words an application with .docx
Third AssignmentDescribe in 100 – 200 words an application with .docxThird AssignmentDescribe in 100 – 200 words an application with .docx
Third AssignmentDescribe in 100 – 200 words an application with .docx
 
LANSim
LANSimLANSim
LANSim
 
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
 
Chapter 7 Design Architecture and Methodology1.docx
Chapter 7 Design Architecture and Methodology1.docxChapter 7 Design Architecture and Methodology1.docx
Chapter 7 Design Architecture and Methodology1.docx
 
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingDDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
 
Integrating Performance Modeling in Industrial Automation through AutomationM...
Integrating Performance Modeling in Industrial Automation through AutomationM...Integrating Performance Modeling in Industrial Automation through AutomationM...
Integrating Performance Modeling in Industrial Automation through AutomationM...
 
DDD - 4 - Domain Driven Design_ Architectural patterns.pdf
DDD - 4 - Domain Driven Design_ Architectural patterns.pdfDDD - 4 - Domain Driven Design_ Architectural patterns.pdf
DDD - 4 - Domain Driven Design_ Architectural patterns.pdf
 
Innovate2011_MAC-1597A
Innovate2011_MAC-1597AInnovate2011_MAC-1597A
Innovate2011_MAC-1597A
 
dot NET Framework
dot NET Frameworkdot NET Framework
dot NET Framework
 

Último

Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 

Último (20)

Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 

MDA with Executable UML

  • 1. Welcome Model Driven Architecture with Executable UML Cambridge, June 17 Chris Raistrick, Kennedy Carter [email_address]
  • 2.
  • 3. Chris Raistrick [email_address] Model Driven Architecture with Executable UML Cambridge, June 17 Introduction
  • 4.
  • 5.
  • 6.
  • 7. Real Engineers Do It Rigorously The MDA process can be summarized as: SPECIFY DOMAINS Identify New/Reused Domains Model System Use Cases Establish a well-defined and automated construction process Build precise, predictive models Subject the models to rigorous testing before implementation To build this Construct the system from large, reusable components VALIDATE PIMS Execute Domain Use Cases Execute System Use Cases BUILD PLATFORM-INDEPENDENT MODELS (PIMS) Model Domain Use Cases Build Static Model - Class Diagram Build Behavioural Model - State Charts & Operations Build Action Model - State Actions & Methods Compile and Debug PIMS SPECIFY SYSTEM CONSTRUCTION PROCESS Define/Buy PIM To PSI Mapping Rules Build/Buy PIM Compiler GENERATE SYSTEM Apply PIM to PSI Mapping Rules (Execute PIM Compiler) Perform Target Testing
  • 8. Chris Raistrick [email_address] Model Driven Architecture with Executable UML Cambridge, June 17 The MDA Process
  • 9. MDA Maturity Scale We will focus on this maturity level Code “ What’s a model?” Code Model Visualize Code Model Synchronize Code Model Synthesize Model “ What’s code?” Model Centric Code Centric
  • 10. MDA Maturity Scale Productivity Code “ What’s a model?” Code Model Visualize Code Model Synchronize Code Model Synthesize Model “ What’s code?” Translation Process Elaboration Process
  • 11. Translation-based Development The Executable MDA (xMDA) process represents an evolution of traditional development processes… Write High Level Language (C++/Ada/Java…) Define High Level Language Mapping Rules Translate High Level Language Machine Code Traditional Software Development Build Platform Independent Model (xUML) Define xUML Mapping Rules Translate xUML HLL (C++/Ada/Java…) xMDA Development High Level Language HLL Mapping Rules PIM xUML Mapping Rules
  • 12. Chris Raistrick [email_address] Model Driven Architecture with Executable UML Cambridge, June 17 Domain Modelling
  • 13.
  • 14. A Standardised Domain Model Source: http://www.webopedia.com/img/OSI_Model.jpg
  • 15. Pattern: Domains to Isolate Areas of Change Provides standard interface services Maps to standard interface services to technology-specific services Provides technology- specific interface services Technology Independent Domain Technology 1 Technology n
  • 16. Pattern: Domains to Isolate Areas of Change User Interface Provides standard interface services Textual User Interface Maps to standard interface services to technology-specific services Graphical User Interface Provides technology- specific interface services displayIcon displayText display3DEntity
  • 17. Plug and Play Weapons In a perfect world… It should be possible to load any of these weapons… … onto any of these airframes… … and make available a set of common core capabilities… … even if some weapon-specific capabilities are not available
  • 18. Plug and Play Domain Architecture Software System Weapon specific plug-ins Comms specific plug-ins Language specific plug-ins Communications Future Comms Technology Existing Comms Technology Weapon Control Future Weapon Existing Weapon Target Hardware xUML Execution Platform Any Language Any Operating System Achieves weapon type independence Achieves execution platform independence Achieves comms platform independence
  • 19. Counterparts Each real-world thing can be represented as different abstractions in various domains...the counterpart classes , linked via counterpart associations The Contact Class “ A correlated radar contact” The Aircraft Class “ A piloted aircraft in controlled airspace” The Icon Class A shape with context-sensitive pop-up menu options Air Traffic Control Graphical User Interface Radar Data Processing Aircraft Fuzed Track Icon The Class Class “ An encapsulation of data and operations” PIM-PSM Mapping Class
  • 20. Chris Raistrick [email_address] Model Driven Architecture with Executable UML Cambridge, June 17 Executable UML
  • 21. Primary xUML Artefacts 5. Define Class Interfaces Domain: Interaction Diagram 1. Capture Requirements System: Use Cases 2. Partition into Domains System: Domain Model 3. Define Domain Interfaces Use Case: Sequence Diagram 4. Specify Classes Domain: Class Model Class: State Model 6. Specify Behavior
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29. Operations and Methods Every operation has a method … …which can be specified using a standard 3GL, such as C++… …or a UML action language as in this example Find a set of objects Invoke an object-scoped operation Create a link
  • 30.
  • 31. The xUML Model Structure System Model Domains Classes Operations States xUML Model (PIM) Platform-Specific Configuration
  • 32.
  • 33. Chris Raistrick [email_address] Model Driven Architecture with Executable UML Cambridge, June 17 Integrating Models
  • 34.
  • 35. Required Interface Attaching an association terminator to a class makes it eligible for participation in counterpart relationships The Required Interface consists of operations attached to <<terminator>> classes Air Traffic Control required interfaces User Interface provided interfaces bridge operations Air Traffic Control Domain (part of) Class Collaboration Diagram <<association terminator>> Air Traffic Controller Aircraft requestTaxi required operation
  • 36. Provided Interface The Provided Interface consists of operations attached to domains or classes, and signals attached to classes Air Traffic Control required interfaces User Interface provided interfaces bridge operations User Interface Domain (part of) Class Collaboration Diagram Icon <<association terminator>> Client makeIconFlash provided operation
  • 37. The “Wiring” Is Specified in a Build Set… Air Traffic Control System Build Set Counterpart associations can be established between classes with at least one association terminator Air Traffic Control Domain (part of) Class Collaboration Diagram <<association terminator>> Air Traffic Controller Aircraft requestTaxi required operation User Interface Domain {kl=UI} (part of) Class Collaboration Diagram Icon <<association terminator>> Client makeIconFlash provided operation CPR1 counterpart association bridge: requestTaxi counterpartIcon = this -> CPR1 $USE UI [ ] = ICN2:makeIconFlash[ ] on counterpartIcon $ENDUSE Bridge operation
  • 38. Chris Raistrick [email_address] Model Driven Architecture with Executable UML Cambridge, June 17 System Generation
  • 39. The Code Generator: Domains Populate Generate System Model Code Generator Generated Code xUML Runtime Layer Generated System Adaptation Layer The code generator itself is a set of domain models expressed using xUML. The domains represent the various components of an xUML system. (Part of) Code Generator Domain Chart xUML Model (PIM) Platform-Specific Configuration xUML-Code Mappings Code Generator
  • 40. The Code Generator: Classes and Methods (Part of) Configurable Code Generator Domain Chart Code Generator Code Generator xUML-Code Mappings (Part of) Executable UML Class Model the classes in each domain represent the elements that make up those components. Method to Generate Java Method to Generate Ada Method to Generate C++ Method to Generate C … $FORMAT header_file typedef struct C[I:this.class_ID]_struct { /* &quot;[T:this.class_name]&quot; Class Header */ struct s_object *next_instance; $ENDFORMAT … Each element contains operations which specify how to map that xUML element onto a specific target language.
  • 41.
  • 42. Instantiate the Formalism Metamodel Domain Instance Class Instances Attribute Instances Populated Executable UML Class Model When the Executable UML domain is populated with the PIM components, we see these instances… Populate xUML Model (PIM) Platform-Specific Configuration System Model xUML-Code Mappings Code Generator Code Generator
  • 43. The Metamodels Embody the Code Generation Rules Domain.generateCode Class.generateCode Attribute.generateCode The task of translation involves iterating through these instances and generating suitable code from them. Code Generator Code Generator xUML-Code Mappings
  • 44. Generate the Code Platform Independent Model : Class Diagram Generated C Code Generate Generate xUML-Code Mappings Code Generator Code Generator Generated Code xUML Runtime Layer Generated System Adaptation Layer
  • 45. Code Generation Overview Populate Generate xUML Model (PIM) Platform-Specific Configuration System Model xUML-Code Mappings Code Generator Code Generator Generated Code xUML Runtime Layer Generated System Adaptation Layer PLATFORM SPECIFIC CONFIGURATION FILE PROCESS &quot;Process One&quot; ONE 1 127.0.0.1 1000 1600 PROCESS &quot;Process Two&quot; TWO 1 127.0.0.1 1001 1601 CLASS-PROCESS WM TGT ONE CLASS-PROCESS WM WPN TWO (part of) xUML Metamodel Domain Class Attribute owning_domain = this -> R2 $FORMAT header_file typedef struct D[I:owning_domain.domain_ID]_C[I:this.class_ID]_struct { /* &quot;[T:this.class_name]&quot; Class Header */ struct s_object *next_instance; /* Linked list of */ struct s_object *prev_instance; /* object instances */ struct s_object *rel_ptr; /* list of rel'ns */ struct s_object *cpr_ptr; /* list of cp rel'ns */ $ENDFORMAT {attributes_in_class} = this -> R3 for the_attribute in {attributes_in_class} do [] = ATT1:generateCode [header_file] on the_attribute endfor $FORMAT header_file }; $ENDFORMAT Multi-node multi-process runtime Windows Vista adaptation layer
  • 46. Chris Raistrick [email_address] Model Driven Architecture with Executable UML Cambridge, June 17 Summary
  • 47. Primary Artefacts 5. Define Class Interfaces Domain: Interaction Diagram 1. Capture Requirements System: Use Cases 2. Partition into Domains System: Domain Model 3. Define Domain Interfaces Use Case: Sequence Diagram 4. Specify Classes Domain: Class Model Class: State Model 6. Specify Behavior
  • 48. MDA: Models, Metamodels and Mappings M2 M1 M0 Class UML Type Of Aircraft ATC Actual Aircraft <<instance of>> Air Force 1: Actual Aircraft ATC Objects <<instance of>> Radar Measurement RADAR Fuzed Track <<model time>> CPR Package Ada <<cgen time>> CPR Fuzed Track 50: Fuzed Track RADAR Objects <<instance of>> <<run time>> CPR
  • 49. Maintainability vs. Executability PSM (UML) manually build a Platform Specific Model … manually code a Platform Specific Implementation PSI (Code) manually build a Platform Independent Model … PIM (UML) Elaborate Compromise between maintainability and executability In classic approaches, the PSI (code) must be built to be maintainable, typically by incorporating layering and encapsulation … …which have a detrimental effect on speed and size of the executing system PSI (Code) automatically generate a Platform Specific Implementation using PIM-PSI mappings manually build a Platform Independent Model … PIM (xUML) Translate Built for executability Built for maintainability In translation-based approaches, the maintained entity (the PIM) is built for maintainability with layering and encapsulation… … while the executable entity (the PSI) is optimized for execution efficiency
  • 50. Key Facets of MDA with xUML Rigorous lightweight process Precise simple modelling formalism Separation of concerns Formalised design and implementation policies
  • 51. The End Model Driven Architecture with Executable UML Cambridge, June 17 Chris Raistrick, Kennedy Carter [email_address]

Notas del editor

  1. Don’t mix the ideas up (as you would in OMT for object).
  2. Don’t mix the ideas up (as you would in OMT for object).