SlideShare une entreprise Scribd logo
1  sur  50
Télécharger pour lire hors ligne
Transformation Design Patterns

                                   Sandeep Katoch
                                 sakatoch@in.ibm.com




                                     NMAC01 -Transformation Design NMAC01
                                                                   Patterns

© 2009 IBM Corporation
IBM Rational Software Conference 2009



Agenda

   Quick Review
      Model Driven Development
      Rational MDD Platform
      Model to Model Transformations
      Designing Model to Model Transformations with Mappings


   Transformation Design Patterns
      Reference Filter
      One to Many
      Filling the Gaps
      Ask the User
      Copy a Reference
      Chain

                         NMAC01 - Transformation Design Patterns
IBM Rational Software Conference 2009



Model-Driven Development

   What is model-driven development (MDD) ?
      Technical Definition:
        Development with models as the primary artifacts from which efficient implementations
        are generated by the application of transformations.
        Models in the application domain are the primary focus when developing new software
        components.
        Code, executables and other target domain artifacts are generated by using
        transformations that are designed by using input from modeling experts and target
        domain experts.
      Another way to look at it?
        When applied properly, MDD leverages abstractions to accelerate and improve the
        quality of individual and group software development.
        To reap these benefits, use model-based technologies to provide abstractions and
        accelerators for solution delivery.




                         NMAC01 - Transformation Design Patterns
IBM Rational Software Conference 2009



MDD Approach – Few Key Ideas

         Abstraction
             Focus on relevant details
              In MDD, we use abstraction to enable us to work with a logical view of our
              application, focusing on the functionality of the system without being
              concerned with implementation details
            Abstraction can be used to model applications at
              Different Levels
              – Analysis / Design / Implementation
              Perspectives
              – Security / User Interface




                         NMAC01 - Transformation Design Patterns                           4
IBM Rational Software Conference 2009



MDD Approach – Few Key Ideas

         Automation
            Modeling is a valuable technique in itself, but manually synchronizing models
            and code is error prone and time consuming
            Automation is the main characteristic that distinguishes MDD from other
            approaches that use modeling
            MDD is concerned with automating the development process so that any
            artifact, which can be derived from information in a model, is generated




                         NMAC01 - Transformation Design Patterns                            5
IBM Rational Software Conference 2009



MDD Approach – Few Key Ideas

     Automation – Profiles




                         NMAC01 - Transformation Design Patterns   6
IBM Rational Software Conference 2009



MDD Approach – Few Key Ideas

         Automation - Transformations
            Automate generation of Artifacts from Models
            This includes the generation of code and also the generation of more detailed
            models, for example generating a design model from an analysis model




                         NMAC01 - Transformation Design Patterns                            7
IBM Rational Software Conference 2009



MDD Approach – Few Key Ideas

   Transformations - Layered Modeling
      Each successive layer adds further detail to the solution, answering questions that were
      left open in the layer above and constraining the implementation of the application




                                Transformation




                                Transformation




                         NMAC01 - Transformation Design Patterns                                 8
IBM Rational Software Conference 2009



MDD Approach – Few Key Ideas

           Automation - Patterns
               Best practice approaches to common design problems
               Automate the creation and the modification of model elements
               within a model to apply a given software pattern




 Factory Method                                                   Abstract Factory
 Define an interface for creating an object, but let subclasses   Provide an interface for creating families of related or
 decide which class to instantiate.                               dependent objects without specifying their concrete
                                                                  classes.

                                NMAC01 - Transformation Design Patterns                                                      9
IBM Rational Software Conference 2009



MDD Approach – Process

         There the two distinct types of activities in the MDD process
           Framework Development
              Develop Profiles, Patterns, Transformations


            Application Development
              Modeling the Application using Profiles & Patterns
              Apply Transformations to generate artifacts


         There is no magic to MDD
           Someone must come up with a set of modeling conventions that are
           suitable for the software under development
           Someone must also develop transformations that can automate the
           generation of code from models that follow these conventions



                         NMAC01 - Transformation Design Patterns              10
IBM Rational Software Conference 2009




                         NMAC01 - Transformation Design Patterns   11
IBM Rational Software Conference 2009



Rational MDD Platform
   Rational Modeling tools provide a set of flexible technologies that can be
   used to implement “MDD”
     Set of supporting technologies for managing and manipulating models
     Support authoring of various forms of patterns
        Transformation framework
        Model2Model transformations
        Model2Text transformations
        Model operative (in place) pattern (MoP) authoring for UML models
     Support authoring of various forms of domain specific modeling languages
        UML-based DSL tool authoring
        Custom DSL tool authoring
     Future technologies for executable models


   These technologies can be used together in various ways to address a
   huge variety of problems
                         NMAC01 - Transformation Design Patterns
IBM Rational Software Conference 2009



Model To Model Transformations

   Model to model transformations (from WIKIPEDIA)
      The notion of model transformation is central to Model Driven Engineering. A model
      transformation takes as input a model conforming to a given metamodel and produces as
      output another model conforming to a given metamodel. If the source and target
      metamodels are identical the transformation is called endogeneous. If they are different
      the transformation is called exogeneous. A model transformation may also have several
      source models and several target models. One of the characteristics of a model
      transformation is that a transformation is also a model, i.e. it conforms to a given
      metamodel. This facilitates the definition of Higher Order Transformations (HOTs), i.e.
      transformations taking other transformations as input and/or transformations producing
      other transformations as output.




                         NMAC01 - Transformation Design Patterns
IBM Rational Software Conference 2009


Rational Transformation Framework
  The transformation framework has the
  following features:
    It is a framework for managing and
    customizing transformations.
    It provides a default transformation
    engine.
    It supports a UI and multiple services:
         Managing installed transformations
         Managing transformation configurations
         Managing transformation extensions
         Chaining transformations; for example,
         Model2Model with Model2Text
         Supporting headless transformations
         Integrating transformations with Eclipse
         build



                         NMAC01 - Transformation Design Patterns
IBM Rational Software Conference 2009



Model to Model Transformations

   Transformation frameworks
      Rational Transformation Framework (RTF) from IBM Rational
        Since 6.0
        Forms the basis for built-in transformations
        – UML-to-Java, UML-to-C++, UML-to-C# …
        Allows users to author new transformations


      Rational Transformation Mapping Framework (RTMF) from IBM Rational
        Introduced in 7.0




                         NMAC01 - Transformation Design Patterns
IBM Rational Software Conference 2009


Model to Model Transformations: RTF
                                                                               A transform is an ordered set of
                                                                               rules, content extractors, and
                                                                               nested transforms
                                        extractor
                                                                               A content extractor traverses the
                                                                               input model and collect objects to
                                                                               be transformed
                                                                               A rule creates or updates objects in
                                                                               the output model



                                                         transform




                                                                        rule
                                         rule

                                                                 rule


                                                    extractor

 input model                                                                                   output model

                         NMAC01 - Transformation Design Patterns
IBM Rational Software Conference 2009



Model to Model Transformations: RTMF

   Visual construction of RTF transformations
      Design transformations by mapping between input and output metamodel types
      Generation of Java source code for RTF transformations

   Input models
      Ecore (includes UML models, profiles, and libraries) – typically loaded from workspace

   Generated output models
      In-memory Ecore

   Post processing options
      Merge model with existing model – the default behavior
      Persist model (overwriting existing model if one with same uri exists)
      Pass model as input to another transformation (not mutually exclusive with merge/persist)

                         NMAC01 - Transformation Design Patterns
IBM Rational Software Conference 2009



Model to Model Transformations: Example




                         NMAC01 - Transformation Design Patterns   18
IBM Rational Software Conference 2009
                            Mapping Model = set of Mapping Declarations
Mappings:                   Mapping Declaration = set of Mappings
                            Mapping = relationships between inputs and outputs
                                 Type (move, submap, custom) conveys how the mapping should be
                                 implemented when transformation source code is generated




                         NMAC01 - Transformation Design Patterns
IBM Rational Software Conference 2009



Mappings: Move




    Create a move mapping when the input and output attributes are compatible primitive
    types; for example, String, int, boolean
    When transformation source code is generated a rule is defined; this rule copies the
    contents of the specified input attribute of the current input object to the specified output
    attribute of the current output object
    A move mapping can have a guard condition associated with it, thus making the rule
    execution optional




                         NMAC01 - Transformation Design Patterns
IBM Rational Software Conference 2009



Mappings: Submap



                                                                      referenced mapping declaration




    Create a submap mapping when the input and output attributes are complex types; for
    example, Model, Package, Class.
    When transformation source code is generated a content extractor is defined; this content
    extractor passes the contents of the specified input attribute of the current input object to the
    transform that was generated from the referenced mapping declaration.

                         NMAC01 - Transformation Design Patterns
IBM Rational Software Conference 2009



Mappings: Custom




    Create a custom mapping when a move or submap mapping is insufficient.
    The transformation author supplies the code that computes the value for the output
    feature by using the values of input feature(s) of the current input object.


    You can specify Java
    source code directly in the
    mapping model or you can
    provide the name of a Java
    class that contains the
    custom code.




                         NMAC01 - Transformation Design Patterns
IBM Rational Software Conference 2009


Mappings: Submap Filters and Customizations
   Input Filter
      Subset the collection of input objects that the referenced mapping declaration will process
      Default: all objects in the input collection

   Output Filter
      Decide which generated object will be used to resolve a reference
      Default: first compatible object generated from input object by specified mapping declaration

   Custom Extractor
      Generate the collection of objects that the referenced mapping declaration will use as input
      Default: all objects in mapped input feature of current input object

   Custom Feature
      Specify the feature of the output object that the referenced mapping declaration will modify
      Default: mapped output feature

   Custom Output
      Specify the output object that the referenced mapping declaration will modify
      Default: current output object
                         NMAC01 - Transformation Design Patterns
IBM Rational Software Conference 2009



Model to Model Mappings: Example




                         NMAC01 - Transformation Design Patterns   24
IBM Rational Software Conference 2009



Pattern: Reference Filter
   Problem
      Need to create a reference to an output object of a particular type that was generated from
      a specific input object, but there’s multiple output objects of different types to choose from

   Example


        Design
       Generated Implementation




                                            yes                    no

                         NMAC01 - Transformation Design Patterns
IBM Rational Software Conference 2009


Pattern: Reference Filter
   Solution
      Filter types via mapping declarations

   Strategy
      Submap mapping specifies mapping declaration that generates a particular type of object




   Consequences
      Filtering is symmetric with mapping solution for object creation
      Second level of filtering might be required if more than one object of same type created

                         NMAC01 - Transformation Design Patterns
IBM Rational Software Conference 2009



Pattern: Reference Filter Example




                         NMAC01 - Transformation Design Patterns   27
IBM Rational Software Conference 2009



Pattern: One to Many
   Problem
      Multiple related output objects must be generated from a single input object

   Example
                   Design      Generated Implementation




                                                    generated relationship references
                                                    other objects generated from the
                                                             same input object



                         NMAC01 - Transformation Design Patterns
IBM Rational Software Conference 2009



Pattern: One to Many
   Solution
      Propagate input object to multiple mapping declarations

   Strategy
      Submap mappings specify an element, instead of a feature of element, as their input




   Consequences
      Separation of concerns (into multiple mapping declarations) simplifies mapping solution
      Recursive application of the pattern can make the solution harder to maintain
                         NMAC01 - Transformation Design Patterns
IBM Rational Software Conference 2009



Pattern: One to Many Example




                         NMAC01 - Transformation Design Patterns   30
IBM Rational Software Conference 2009



Pattern: Filling the Gaps

   Problem
     Output model has structures that don’t directly correspond to anything in the input model

   Example
                                  Design    Generated Implementation




                         NMAC01 - Transformation Design Patterns
IBM Rational Software Conference 2009


Pattern: Filling the Gaps
    Solution
      Redirect output to objects other than the current target container

    Strategy
      Custom submap mappings can specify the output object that will be used (by the
      transform that is generated from the referenced mapping declaration)




                         NMAC01 - Transformation Design Patterns
IBM Rational Software Conference 2009



Pattern: Filling the Gaps




     Consequences
          Specification of the target container is isolated from the referenced mapping
          declaration, and so the population of the target container can still be specified in the
          normal way with mappings (via the referenced mapping declaration)
          Custom code must be provided to create instances of some objects




                         NMAC01 - Transformation Design Patterns
IBM Rational Software Conference 2009



Pattern: Filling the Gaps Example




                         NMAC01 - Transformation Design Patterns   34
IBM Rational Software Conference 2009



Pattern: Ask the User

   Problem
      Output model is dependant on information that’s not contained in the input model

   Example
              Design       Generated Implementation




                                                       Which naming
                                                    convention to use?

                         NMAC01 - Transformation Design Patterns
IBM Rational Software Conference 2009



Pattern: Ask the User
   Solution
      Obtain the additional information from the transformation context object

   Strategy
      Define transformation specific properties and have the user assign values to those
      properties programmatically or via the Transformation Configuration Editor




                         NMAC01 - Transformation Design Patterns
IBM Rational Software Conference 2009



Pattern: Ask the User
                                        Transformation Configuration Editor
                                        Properties tab




     Retrieve property
         value from
  transformation context



   Consequences
      Supplying information via properties is simpler then supplying via auxiliary models
      Complex properties can require custom GUI for specifying values


                         NMAC01 - Transformation Design Patterns
IBM Rational Software Conference 2009



Pattern: Ask the User Example




                         NMAC01 - Transformation Design Patterns   38
IBM Rational Software Conference 2009



Pattern: Copy a Reference
  Problem
     A reference to an external object (an object that is contained in a model that is not being
     transformed) needs to be propagated from the input model to the output model

  Example
                                  Design      Generated Implementation




                                        copy reference




                         NMAC01 - Transformation Design Patterns
IBM Rational Software Conference 2009

Pattern: Copy a Reference
  Solution
     Use a submap mapping that specifies an empty (or ignorable) mapping declaration

  Strategy
     When the target of a submap mapping is a reference, the specified mapping declaration is
     only used (at transformation development time and transformation execution time) to ensure
     type safety and assist with reference resolutions; consequently, any mappings in the
     specified mapping declaration will be ignored. Intra-model references are copied if no
     corresponding object was generated.




  Consequences
     No need to define mappings for types that will be referenced, but not contained
     Transformation will create empty objects for instances of types with empty mapping
     declarations when the occurrence is by containment rather than reference
                         NMAC01 - Transformation Design Patterns
IBM Rational Software Conference 2009



Pattern: Copy a Reference




                         NMAC01 - Transformation Design Patterns   41
IBM Rational Software Conference 2009


Pattern: Chain
   Problem
      Output model is input for other transformations

   Example
             Design          Transient Model       Generated Implementation
                 Model to Model         Model to Text




                         NMAC01 - Transformation Design Patterns
IBM Rational Software Conference 2009


Pattern: Chain
   Solution
      Add rules that chain to other transformations

   Strategy
      Add instances of ChainRule or JETRule to PostProcessing rules of the RootTransformation -
      a class which instantiates the top level (Main) transform of the generated transformation




   Consequences
      Generated in-memory (optionally persisted) model can easily be passed to other
      transformations, usually with no special adaptation for those transformations required
      Custom, transformation specific, properties can require extensions to standard chain rules

                         NMAC01 - Transformation Design Patterns
IBM Rational Software Conference 2009




                         NMAC01 - Transformation Design Patterns   44
IBM Rational Software Conference 2009




© Copyright IBM Corporation 2009. All rights reserved. The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of any kind,
express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, these materials. Nothing contained in these materials is intended to, nor shall have
the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM
software. References in these materials to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities
referenced in these materials may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature
availability in any way. IBM, the IBM logo, Rational, the Rational logo, Telelogic, the Telelogic logo, and other IBM products and services are trademarks of the International Business Machines
Corporation, in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others.



                                                  NMAC01 - Transformation Design Patterns                                                                                                       45
IBM Rational Software Conference 2009




                                        Backup




                         NMAC01 - Transformation Design Patterns   46
IBM Rational Software Conference 2009


Example solution: LogicalDataModel to Java beans


   Create two transformations, and transform in two steps:
      From a UML model that has the LogicalDataModel profile applied to it, create an instance of an Ecore model for
      Java beans.
      From an Ecore model for Java beans, create a Java project and populate it with Java bean source code.

   Why do this in two steps?
      The best practices for authoring model-to-text transformations suggest the following steps:
            Harvest the templates from an exemplar project. For example, harvest the templates from a Java bean
            reference project.
            Construct a model that contains the information that is required to instantiate the templates. For example,
            construct an Ecore model for Java beans.
      Different requirements were used to design the LogicalDataModel profile and the Ecore Java bean model.
      These different requirements often lead to disparities between the models, which are typically resolved by inserting
      an additional transformation step.
      You can reuse the transformations independently. For example, you can reuse the Ecore-model-to-Java-beans
      transformation in many other contexts.




                               NMAC01 - Transformation Design Patterns
IBM Rational Software Conference 2009



Designing Model to Model Transformations: Mappings
    The following factors contribute to the complexity of transformation authoring:
         The inherit complexity in the input and output metamodels and their APIs
         The relationships of interest between the input and output metamodels
         The transformation framework elements, including the engine, languages, supporting tools, and APIs
    Learning the transformation framework is not the goal of the transformation author, but it often
    becomes the main task
         The framework complexity and abstraction level impacts the productivity of experts and novices
         Complexity is a common problem for transformation frameworks:
              XSLT with XPath
              Query/View/Transformation (QVT) operational or relational transformation language with Object
              Constraint Language (OCL)
    Mappings simplify transformation authoring so that the author can focus on the problem and
    not the tooling required to implement the solution




                          NMAC01 - Transformation Design Patterns
IBM Rational Software Conference 2009



Designing Model to Model Transformations: Example
    Sketch of a design: mapping LogicalDataModel things to Java bean model things

                                 get the bean project name and
                                   namespace from the model


                            find all packages that contain classes
                                 with the Entity stereotype


                                only interested in classes with
                                    the Entity stereotype

                         property is not multi-valued or derived

                                                      property is multi-valued but not derived


                                        property is derived


                         NMAC01 - Transformation Design Patterns
IBM Rational Software Conference 2009




                         NMAC01 - Transformation Design Patterns   50

Contenu connexe

Tendances

3 rad extensibility-srilakshmi_s_rajesh_k
3 rad extensibility-srilakshmi_s_rajesh_k3 rad extensibility-srilakshmi_s_rajesh_k
3 rad extensibility-srilakshmi_s_rajesh_kIBM
 
5 rqm gdd-sharmila-ramesh
5 rqm gdd-sharmila-ramesh5 rqm gdd-sharmila-ramesh
5 rqm gdd-sharmila-rameshIBM
 
CS587 Project - Raychaudhury,Shaalmali
CS587 Project - Raychaudhury,ShaalmaliCS587 Project - Raychaudhury,Shaalmali
CS587 Project - Raychaudhury,Shaalmalisagar.247
 
Verteilte Synchronisierung von Modellen in automatisierten Entwicklungsprozessen
Verteilte Synchronisierung von Modellen in automatisierten EntwicklungsprozessenVerteilte Synchronisierung von Modellen in automatisierten Entwicklungsprozessen
Verteilte Synchronisierung von Modellen in automatisierten EntwicklungsprozessenIntland Software GmbH
 
IBM Rhapsody and MATLAB/Simulink
IBM Rhapsody and MATLAB/SimulinkIBM Rhapsody and MATLAB/Simulink
IBM Rhapsody and MATLAB/Simulinkgjuljo
 
Using Model Driven Development to Easily Manage Variations in Software Define...
Using Model Driven Development to Easily Manage Variations in Software Define...Using Model Driven Development to Easily Manage Variations in Software Define...
Using Model Driven Development to Easily Manage Variations in Software Define...ADLINK Technology IoT
 
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)siouxhotornot
 
Web technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringWeb technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringPiero Fraternali
 
BPM Standards - What is new in BPMN 2.0 and XPDL 2.2 (BBC 2011)
BPM Standards -  What is new in BPMN 2.0 and XPDL 2.2 (BBC 2011)BPM Standards -  What is new in BPMN 2.0 and XPDL 2.2 (BBC 2011)
BPM Standards - What is new in BPMN 2.0 and XPDL 2.2 (BBC 2011)Denis Gagné
 
Model Runway: Design Best Practices at BlueCross BlueShield
Model Runway: Design Best Practices at BlueCross BlueShieldModel Runway: Design Best Practices at BlueCross BlueShield
Model Runway: Design Best Practices at BlueCross BlueShieldRoger Snook
 
10 ooad uml-13
10 ooad uml-1310 ooad uml-13
10 ooad uml-13Niit Care
 
3 hang on_a_minute-ankur_goyal
3 hang on_a_minute-ankur_goyal3 hang on_a_minute-ankur_goyal
3 hang on_a_minute-ankur_goyalIBM
 
Rhapsody and mechatronics, multi-domain simulation
Rhapsody and mechatronics, multi-domain simulationRhapsody and mechatronics, multi-domain simulation
Rhapsody and mechatronics, multi-domain simulationGraham Bleakley
 
Best practices for effective doors implementation-Ashwini Patil
Best practices for effective doors implementation-Ashwini PatilBest practices for effective doors implementation-Ashwini Patil
Best practices for effective doors implementation-Ashwini PatilRoopa Nadkarni
 
Rhapsody reverseengineering
Rhapsody reverseengineeringRhapsody reverseengineering
Rhapsody reverseengineeringScott Althouse
 
2006 mm,ks,jb (miami, florida bpm summit) xpdl tutorial
2006 mm,ks,jb (miami, florida   bpm summit) xpdl tutorial2006 mm,ks,jb (miami, florida   bpm summit) xpdl tutorial
2006 mm,ks,jb (miami, florida bpm summit) xpdl tutorialMike Marin
 
14 ooad uml-19
14 ooad uml-1914 ooad uml-19
14 ooad uml-19Niit Care
 

Tendances (20)

3 rad extensibility-srilakshmi_s_rajesh_k
3 rad extensibility-srilakshmi_s_rajesh_k3 rad extensibility-srilakshmi_s_rajesh_k
3 rad extensibility-srilakshmi_s_rajesh_k
 
Introduction to MDA
Introduction to MDAIntroduction to MDA
Introduction to MDA
 
6
66
6
 
5 rqm gdd-sharmila-ramesh
5 rqm gdd-sharmila-ramesh5 rqm gdd-sharmila-ramesh
5 rqm gdd-sharmila-ramesh
 
MDA
MDAMDA
MDA
 
CS587 Project - Raychaudhury,Shaalmali
CS587 Project - Raychaudhury,ShaalmaliCS587 Project - Raychaudhury,Shaalmali
CS587 Project - Raychaudhury,Shaalmali
 
Verteilte Synchronisierung von Modellen in automatisierten Entwicklungsprozessen
Verteilte Synchronisierung von Modellen in automatisierten EntwicklungsprozessenVerteilte Synchronisierung von Modellen in automatisierten Entwicklungsprozessen
Verteilte Synchronisierung von Modellen in automatisierten Entwicklungsprozessen
 
IBM Rhapsody and MATLAB/Simulink
IBM Rhapsody and MATLAB/SimulinkIBM Rhapsody and MATLAB/Simulink
IBM Rhapsody and MATLAB/Simulink
 
Using Model Driven Development to Easily Manage Variations in Software Define...
Using Model Driven Development to Easily Manage Variations in Software Define...Using Model Driven Development to Easily Manage Variations in Software Define...
Using Model Driven Development to Easily Manage Variations in Software Define...
 
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
 
Web technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringWeb technologies: Model Driven Engineering
Web technologies: Model Driven Engineering
 
BPM Standards - What is new in BPMN 2.0 and XPDL 2.2 (BBC 2011)
BPM Standards -  What is new in BPMN 2.0 and XPDL 2.2 (BBC 2011)BPM Standards -  What is new in BPMN 2.0 and XPDL 2.2 (BBC 2011)
BPM Standards - What is new in BPMN 2.0 and XPDL 2.2 (BBC 2011)
 
Model Runway: Design Best Practices at BlueCross BlueShield
Model Runway: Design Best Practices at BlueCross BlueShieldModel Runway: Design Best Practices at BlueCross BlueShield
Model Runway: Design Best Practices at BlueCross BlueShield
 
10 ooad uml-13
10 ooad uml-1310 ooad uml-13
10 ooad uml-13
 
3 hang on_a_minute-ankur_goyal
3 hang on_a_minute-ankur_goyal3 hang on_a_minute-ankur_goyal
3 hang on_a_minute-ankur_goyal
 
Rhapsody and mechatronics, multi-domain simulation
Rhapsody and mechatronics, multi-domain simulationRhapsody and mechatronics, multi-domain simulation
Rhapsody and mechatronics, multi-domain simulation
 
Best practices for effective doors implementation-Ashwini Patil
Best practices for effective doors implementation-Ashwini PatilBest practices for effective doors implementation-Ashwini Patil
Best practices for effective doors implementation-Ashwini Patil
 
Rhapsody reverseengineering
Rhapsody reverseengineeringRhapsody reverseengineering
Rhapsody reverseengineering
 
2006 mm,ks,jb (miami, florida bpm summit) xpdl tutorial
2006 mm,ks,jb (miami, florida   bpm summit) xpdl tutorial2006 mm,ks,jb (miami, florida   bpm summit) xpdl tutorial
2006 mm,ks,jb (miami, florida bpm summit) xpdl tutorial
 
14 ooad uml-19
14 ooad uml-1914 ooad uml-19
14 ooad uml-19
 

Similaire à 2 trasnformation design_patterns-sandeep_katoch

4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-danielleroux4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-daniellerouxIBM
 
Agile Model Developement- Daniel Leroux
Agile Model Developement-  Daniel LerouxAgile Model Developement-  Daniel Leroux
Agile Model Developement- Daniel LerouxRoopa Nadkarni
 
Introduction to Patterns in WebSphere Message Broker
Introduction to Patterns in WebSphere Message BrokerIntroduction to Patterns in WebSphere Message Broker
Introduction to Patterns in WebSphere Message BrokerAnt Phillips
 
Innovation in model driven software
Innovation in model driven softwareInnovation in model driven software
Innovation in model driven softwareSagi Schliesser
 
MoDisco Eclipse-OMG Symp 2010
MoDisco Eclipse-OMG Symp 2010MoDisco Eclipse-OMG Symp 2010
MoDisco Eclipse-OMG Symp 2010fmadiot
 
Mdd Lcds
Mdd LcdsMdd Lcds
Mdd Lcdsravinxg
 
10 Things You Should Know About MDD
10 Things You Should Know About MDD10 Things You Should Know About MDD
10 Things You Should Know About MDDJohan den Haan
 
MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools researchRoger Xia
 
xUMLFinalPresentation.ppt
xUMLFinalPresentation.pptxUMLFinalPresentation.ppt
xUMLFinalPresentation.pptssuser2ef938
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...ghodgkinson
 
Solution de génération de rapport OpenDocument à partir de plusieurs sources ...
Solution de génération de rapport OpenDocument à partir de plusieurs sources ...Solution de génération de rapport OpenDocument à partir de plusieurs sources ...
Solution de génération de rapport OpenDocument à partir de plusieurs sources ...EclipseDayParis
 
Sodius cassidian mdday2010
Sodius cassidian mdday2010Sodius cassidian mdday2010
Sodius cassidian mdday2010MD DAY
 
MODEL: MOdel DrivEn and quaLity
MODEL: MOdel DrivEn and quaLityMODEL: MOdel DrivEn and quaLity
MODEL: MOdel DrivEn and quaLityFederico Villa
 
Practical Experiences Migrating Unified Modeling Language Models to IBM® Rati...
PracticalExperiences Migrating Unified Modeling Language Models to IBM® Rati...PracticalExperiences Migrating Unified Modeling Language Models to IBM® Rati...
Practical Experiences Migrating Unified Modeling Language Models to IBM® Rati...Einar Karlsen
 
MVC Seminar Presantation
MVC Seminar PresantationMVC Seminar Presantation
MVC Seminar PresantationAbhishek Yadav
 
CMC-Visualizer for IBM Rational Team Concert
CMC-Visualizer for IBM Rational Team ConcertCMC-Visualizer for IBM Rational Team Concert
CMC-Visualizer for IBM Rational Team ConcertAlexander Novichkov
 
M3 Modernization Case Study
M3 Modernization Case StudyM3 Modernization Case Study
M3 Modernization Case StudyADC Austin Tech
 

Similaire à 2 trasnformation design_patterns-sandeep_katoch (20)

4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-danielleroux4 agile modeldevelopement-danielleroux
4 agile modeldevelopement-danielleroux
 
Agile Model Developement- Daniel Leroux
Agile Model Developement-  Daniel LerouxAgile Model Developement-  Daniel Leroux
Agile Model Developement- Daniel Leroux
 
Introduction to Patterns in WebSphere Message Broker
Introduction to Patterns in WebSphere Message BrokerIntroduction to Patterns in WebSphere Message Broker
Introduction to Patterns in WebSphere Message Broker
 
Final Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee Applicaties
Final Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee ApplicatiesFinal Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee Applicaties
Final Jspring2009 Mda Slimmer Ontwikkelen Van Java Ee Applicaties
 
java
javajava
java
 
ERP_Up_Down.ppt
ERP_Up_Down.pptERP_Up_Down.ppt
ERP_Up_Down.ppt
 
Innovation in model driven software
Innovation in model driven softwareInnovation in model driven software
Innovation in model driven software
 
MoDisco Eclipse-OMG Symp 2010
MoDisco Eclipse-OMG Symp 2010MoDisco Eclipse-OMG Symp 2010
MoDisco Eclipse-OMG Symp 2010
 
Mdd Lcds
Mdd LcdsMdd Lcds
Mdd Lcds
 
10 Things You Should Know About MDD
10 Things You Should Know About MDD10 Things You Should Know About MDD
10 Things You Should Know About MDD
 
MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools research
 
xUMLFinalPresentation.ppt
xUMLFinalPresentation.pptxUMLFinalPresentation.ppt
xUMLFinalPresentation.ppt
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
 
Solution de génération de rapport OpenDocument à partir de plusieurs sources ...
Solution de génération de rapport OpenDocument à partir de plusieurs sources ...Solution de génération de rapport OpenDocument à partir de plusieurs sources ...
Solution de génération de rapport OpenDocument à partir de plusieurs sources ...
 
Sodius cassidian mdday2010
Sodius cassidian mdday2010Sodius cassidian mdday2010
Sodius cassidian mdday2010
 
MODEL: MOdel DrivEn and quaLity
MODEL: MOdel DrivEn and quaLityMODEL: MOdel DrivEn and quaLity
MODEL: MOdel DrivEn and quaLity
 
Practical Experiences Migrating Unified Modeling Language Models to IBM® Rati...
PracticalExperiences Migrating Unified Modeling Language Models to IBM® Rati...PracticalExperiences Migrating Unified Modeling Language Models to IBM® Rati...
Practical Experiences Migrating Unified Modeling Language Models to IBM® Rati...
 
MVC Seminar Presantation
MVC Seminar PresantationMVC Seminar Presantation
MVC Seminar Presantation
 
CMC-Visualizer for IBM Rational Team Concert
CMC-Visualizer for IBM Rational Team ConcertCMC-Visualizer for IBM Rational Team Concert
CMC-Visualizer for IBM Rational Team Concert
 
M3 Modernization Case Study
M3 Modernization Case StudyM3 Modernization Case Study
M3 Modernization Case Study
 

Plus de IBM

Rational
RationalRational
RationalIBM
 
Smarter products for_a_smarter_p_lanet-neeraj_chandra
Smarter products for_a_smarter_p_lanet-neeraj_chandraSmarter products for_a_smarter_p_lanet-neeraj_chandra
Smarter products for_a_smarter_p_lanet-neeraj_chandraIBM
 
Real insights real_results-steve_robinson
Real insights real_results-steve_robinsonReal insights real_results-steve_robinson
Real insights real_results-steve_robinsonIBM
 
Overcoming contradictions mike-o_rourke
Overcoming contradictions mike-o_rourkeOvercoming contradictions mike-o_rourke
Overcoming contradictions mike-o_rourkeIBM
 
Opportunities in challenging_times-steve_robinson
Opportunities in challenging_times-steve_robinsonOpportunities in challenging_times-steve_robinson
Opportunities in challenging_times-steve_robinsonIBM
 
How to make_it_real-hayden_lindsey
How to make_it_real-hayden_lindseyHow to make_it_real-hayden_lindsey
How to make_it_real-hayden_lindseyIBM
 
Achieving agility at_scale-martin_nally
Achieving agility at_scale-martin_nallyAchieving agility at_scale-martin_nally
Achieving agility at_scale-martin_nallyIBM
 
6 rpt oracle_plugin-anitha_krishnamurthy
6 rpt oracle_plugin-anitha_krishnamurthy6 rpt oracle_plugin-anitha_krishnamurthy
6 rpt oracle_plugin-anitha_krishnamurthyIBM
 
6 develop web20_with_rad-tim_frnacis_sarika-s
6 develop web20_with_rad-tim_frnacis_sarika-s6 develop web20_with_rad-tim_frnacis_sarika-s
6 develop web20_with_rad-tim_frnacis_sarika-sIBM
 
5 challenges in_building_enterprise_mashups-rick_b
5 challenges in_building_enterprise_mashups-rick_b5 challenges in_building_enterprise_mashups-rick_b
5 challenges in_building_enterprise_mashups-rick_bIBM
 
4 agile developement_using_ccrc-sujeet_mishra
4 agile developement_using_ccrc-sujeet_mishra4 agile developement_using_ccrc-sujeet_mishra
4 agile developement_using_ccrc-sujeet_mishraIBM
 
3 know more_about_rational_performance_tester_8-1-snehamoy_k
3 know more_about_rational_performance_tester_8-1-snehamoy_k3 know more_about_rational_performance_tester_8-1-snehamoy_k
3 know more_about_rational_performance_tester_8-1-snehamoy_kIBM
 
2 rft simplified_scripting_shinoj_z
2 rft simplified_scripting_shinoj_z2 rft simplified_scripting_shinoj_z
2 rft simplified_scripting_shinoj_zIBM
 
2 jazz karthik-k
2 jazz karthik-k2 jazz karthik-k
2 jazz karthik-kIBM
 
1 rdm keynote-robin_bater
1 rdm keynote-robin_bater1 rdm keynote-robin_bater
1 rdm keynote-robin_baterIBM
 
1 qm keynote-kamala_p
1 qm keynote-kamala_p1 qm keynote-kamala_p
1 qm keynote-kamala_pIBM
 
1 ppm keynote
1 ppm keynote1 ppm keynote
1 ppm keynoteIBM
 
1 jazz overview-karthik_k
1 jazz overview-karthik_k1 jazz overview-karthik_k
1 jazz overview-karthik_kIBM
 
Smarter products for_a_smarter_p_lanet-neeraj_chandra
Smarter products for_a_smarter_p_lanet-neeraj_chandraSmarter products for_a_smarter_p_lanet-neeraj_chandra
Smarter products for_a_smarter_p_lanet-neeraj_chandraIBM
 
Achieving agility at_scale-martin_nally
Achieving agility at_scale-martin_nallyAchieving agility at_scale-martin_nally
Achieving agility at_scale-martin_nallyIBM
 

Plus de IBM (20)

Rational
RationalRational
Rational
 
Smarter products for_a_smarter_p_lanet-neeraj_chandra
Smarter products for_a_smarter_p_lanet-neeraj_chandraSmarter products for_a_smarter_p_lanet-neeraj_chandra
Smarter products for_a_smarter_p_lanet-neeraj_chandra
 
Real insights real_results-steve_robinson
Real insights real_results-steve_robinsonReal insights real_results-steve_robinson
Real insights real_results-steve_robinson
 
Overcoming contradictions mike-o_rourke
Overcoming contradictions mike-o_rourkeOvercoming contradictions mike-o_rourke
Overcoming contradictions mike-o_rourke
 
Opportunities in challenging_times-steve_robinson
Opportunities in challenging_times-steve_robinsonOpportunities in challenging_times-steve_robinson
Opportunities in challenging_times-steve_robinson
 
How to make_it_real-hayden_lindsey
How to make_it_real-hayden_lindseyHow to make_it_real-hayden_lindsey
How to make_it_real-hayden_lindsey
 
Achieving agility at_scale-martin_nally
Achieving agility at_scale-martin_nallyAchieving agility at_scale-martin_nally
Achieving agility at_scale-martin_nally
 
6 rpt oracle_plugin-anitha_krishnamurthy
6 rpt oracle_plugin-anitha_krishnamurthy6 rpt oracle_plugin-anitha_krishnamurthy
6 rpt oracle_plugin-anitha_krishnamurthy
 
6 develop web20_with_rad-tim_frnacis_sarika-s
6 develop web20_with_rad-tim_frnacis_sarika-s6 develop web20_with_rad-tim_frnacis_sarika-s
6 develop web20_with_rad-tim_frnacis_sarika-s
 
5 challenges in_building_enterprise_mashups-rick_b
5 challenges in_building_enterprise_mashups-rick_b5 challenges in_building_enterprise_mashups-rick_b
5 challenges in_building_enterprise_mashups-rick_b
 
4 agile developement_using_ccrc-sujeet_mishra
4 agile developement_using_ccrc-sujeet_mishra4 agile developement_using_ccrc-sujeet_mishra
4 agile developement_using_ccrc-sujeet_mishra
 
3 know more_about_rational_performance_tester_8-1-snehamoy_k
3 know more_about_rational_performance_tester_8-1-snehamoy_k3 know more_about_rational_performance_tester_8-1-snehamoy_k
3 know more_about_rational_performance_tester_8-1-snehamoy_k
 
2 rft simplified_scripting_shinoj_z
2 rft simplified_scripting_shinoj_z2 rft simplified_scripting_shinoj_z
2 rft simplified_scripting_shinoj_z
 
2 jazz karthik-k
2 jazz karthik-k2 jazz karthik-k
2 jazz karthik-k
 
1 rdm keynote-robin_bater
1 rdm keynote-robin_bater1 rdm keynote-robin_bater
1 rdm keynote-robin_bater
 
1 qm keynote-kamala_p
1 qm keynote-kamala_p1 qm keynote-kamala_p
1 qm keynote-kamala_p
 
1 ppm keynote
1 ppm keynote1 ppm keynote
1 ppm keynote
 
1 jazz overview-karthik_k
1 jazz overview-karthik_k1 jazz overview-karthik_k
1 jazz overview-karthik_k
 
Smarter products for_a_smarter_p_lanet-neeraj_chandra
Smarter products for_a_smarter_p_lanet-neeraj_chandraSmarter products for_a_smarter_p_lanet-neeraj_chandra
Smarter products for_a_smarter_p_lanet-neeraj_chandra
 
Achieving agility at_scale-martin_nally
Achieving agility at_scale-martin_nallyAchieving agility at_scale-martin_nally
Achieving agility at_scale-martin_nally
 

Dernier

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 

Dernier (20)

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 

2 trasnformation design_patterns-sandeep_katoch

  • 1. Transformation Design Patterns Sandeep Katoch sakatoch@in.ibm.com NMAC01 -Transformation Design NMAC01 Patterns © 2009 IBM Corporation
  • 2. IBM Rational Software Conference 2009 Agenda Quick Review Model Driven Development Rational MDD Platform Model to Model Transformations Designing Model to Model Transformations with Mappings Transformation Design Patterns Reference Filter One to Many Filling the Gaps Ask the User Copy a Reference Chain NMAC01 - Transformation Design Patterns
  • 3. IBM Rational Software Conference 2009 Model-Driven Development What is model-driven development (MDD) ? Technical Definition: Development with models as the primary artifacts from which efficient implementations are generated by the application of transformations. Models in the application domain are the primary focus when developing new software components. Code, executables and other target domain artifacts are generated by using transformations that are designed by using input from modeling experts and target domain experts. Another way to look at it? When applied properly, MDD leverages abstractions to accelerate and improve the quality of individual and group software development. To reap these benefits, use model-based technologies to provide abstractions and accelerators for solution delivery. NMAC01 - Transformation Design Patterns
  • 4. IBM Rational Software Conference 2009 MDD Approach – Few Key Ideas Abstraction Focus on relevant details In MDD, we use abstraction to enable us to work with a logical view of our application, focusing on the functionality of the system without being concerned with implementation details Abstraction can be used to model applications at Different Levels – Analysis / Design / Implementation Perspectives – Security / User Interface NMAC01 - Transformation Design Patterns 4
  • 5. IBM Rational Software Conference 2009 MDD Approach – Few Key Ideas Automation Modeling is a valuable technique in itself, but manually synchronizing models and code is error prone and time consuming Automation is the main characteristic that distinguishes MDD from other approaches that use modeling MDD is concerned with automating the development process so that any artifact, which can be derived from information in a model, is generated NMAC01 - Transformation Design Patterns 5
  • 6. IBM Rational Software Conference 2009 MDD Approach – Few Key Ideas Automation – Profiles NMAC01 - Transformation Design Patterns 6
  • 7. IBM Rational Software Conference 2009 MDD Approach – Few Key Ideas Automation - Transformations Automate generation of Artifacts from Models This includes the generation of code and also the generation of more detailed models, for example generating a design model from an analysis model NMAC01 - Transformation Design Patterns 7
  • 8. IBM Rational Software Conference 2009 MDD Approach – Few Key Ideas Transformations - Layered Modeling Each successive layer adds further detail to the solution, answering questions that were left open in the layer above and constraining the implementation of the application Transformation Transformation NMAC01 - Transformation Design Patterns 8
  • 9. IBM Rational Software Conference 2009 MDD Approach – Few Key Ideas Automation - Patterns Best practice approaches to common design problems Automate the creation and the modification of model elements within a model to apply a given software pattern Factory Method Abstract Factory Define an interface for creating an object, but let subclasses Provide an interface for creating families of related or decide which class to instantiate. dependent objects without specifying their concrete classes. NMAC01 - Transformation Design Patterns 9
  • 10. IBM Rational Software Conference 2009 MDD Approach – Process There the two distinct types of activities in the MDD process Framework Development Develop Profiles, Patterns, Transformations Application Development Modeling the Application using Profiles & Patterns Apply Transformations to generate artifacts There is no magic to MDD Someone must come up with a set of modeling conventions that are suitable for the software under development Someone must also develop transformations that can automate the generation of code from models that follow these conventions NMAC01 - Transformation Design Patterns 10
  • 11. IBM Rational Software Conference 2009 NMAC01 - Transformation Design Patterns 11
  • 12. IBM Rational Software Conference 2009 Rational MDD Platform Rational Modeling tools provide a set of flexible technologies that can be used to implement “MDD” Set of supporting technologies for managing and manipulating models Support authoring of various forms of patterns Transformation framework Model2Model transformations Model2Text transformations Model operative (in place) pattern (MoP) authoring for UML models Support authoring of various forms of domain specific modeling languages UML-based DSL tool authoring Custom DSL tool authoring Future technologies for executable models These technologies can be used together in various ways to address a huge variety of problems NMAC01 - Transformation Design Patterns
  • 13. IBM Rational Software Conference 2009 Model To Model Transformations Model to model transformations (from WIKIPEDIA) The notion of model transformation is central to Model Driven Engineering. A model transformation takes as input a model conforming to a given metamodel and produces as output another model conforming to a given metamodel. If the source and target metamodels are identical the transformation is called endogeneous. If they are different the transformation is called exogeneous. A model transformation may also have several source models and several target models. One of the characteristics of a model transformation is that a transformation is also a model, i.e. it conforms to a given metamodel. This facilitates the definition of Higher Order Transformations (HOTs), i.e. transformations taking other transformations as input and/or transformations producing other transformations as output. NMAC01 - Transformation Design Patterns
  • 14. IBM Rational Software Conference 2009 Rational Transformation Framework The transformation framework has the following features: It is a framework for managing and customizing transformations. It provides a default transformation engine. It supports a UI and multiple services: Managing installed transformations Managing transformation configurations Managing transformation extensions Chaining transformations; for example, Model2Model with Model2Text Supporting headless transformations Integrating transformations with Eclipse build NMAC01 - Transformation Design Patterns
  • 15. IBM Rational Software Conference 2009 Model to Model Transformations Transformation frameworks Rational Transformation Framework (RTF) from IBM Rational Since 6.0 Forms the basis for built-in transformations – UML-to-Java, UML-to-C++, UML-to-C# … Allows users to author new transformations Rational Transformation Mapping Framework (RTMF) from IBM Rational Introduced in 7.0 NMAC01 - Transformation Design Patterns
  • 16. IBM Rational Software Conference 2009 Model to Model Transformations: RTF A transform is an ordered set of rules, content extractors, and nested transforms extractor A content extractor traverses the input model and collect objects to be transformed A rule creates or updates objects in the output model transform rule rule rule extractor input model output model NMAC01 - Transformation Design Patterns
  • 17. IBM Rational Software Conference 2009 Model to Model Transformations: RTMF Visual construction of RTF transformations Design transformations by mapping between input and output metamodel types Generation of Java source code for RTF transformations Input models Ecore (includes UML models, profiles, and libraries) – typically loaded from workspace Generated output models In-memory Ecore Post processing options Merge model with existing model – the default behavior Persist model (overwriting existing model if one with same uri exists) Pass model as input to another transformation (not mutually exclusive with merge/persist) NMAC01 - Transformation Design Patterns
  • 18. IBM Rational Software Conference 2009 Model to Model Transformations: Example NMAC01 - Transformation Design Patterns 18
  • 19. IBM Rational Software Conference 2009 Mapping Model = set of Mapping Declarations Mappings: Mapping Declaration = set of Mappings Mapping = relationships between inputs and outputs Type (move, submap, custom) conveys how the mapping should be implemented when transformation source code is generated NMAC01 - Transformation Design Patterns
  • 20. IBM Rational Software Conference 2009 Mappings: Move Create a move mapping when the input and output attributes are compatible primitive types; for example, String, int, boolean When transformation source code is generated a rule is defined; this rule copies the contents of the specified input attribute of the current input object to the specified output attribute of the current output object A move mapping can have a guard condition associated with it, thus making the rule execution optional NMAC01 - Transformation Design Patterns
  • 21. IBM Rational Software Conference 2009 Mappings: Submap referenced mapping declaration Create a submap mapping when the input and output attributes are complex types; for example, Model, Package, Class. When transformation source code is generated a content extractor is defined; this content extractor passes the contents of the specified input attribute of the current input object to the transform that was generated from the referenced mapping declaration. NMAC01 - Transformation Design Patterns
  • 22. IBM Rational Software Conference 2009 Mappings: Custom Create a custom mapping when a move or submap mapping is insufficient. The transformation author supplies the code that computes the value for the output feature by using the values of input feature(s) of the current input object. You can specify Java source code directly in the mapping model or you can provide the name of a Java class that contains the custom code. NMAC01 - Transformation Design Patterns
  • 23. IBM Rational Software Conference 2009 Mappings: Submap Filters and Customizations Input Filter Subset the collection of input objects that the referenced mapping declaration will process Default: all objects in the input collection Output Filter Decide which generated object will be used to resolve a reference Default: first compatible object generated from input object by specified mapping declaration Custom Extractor Generate the collection of objects that the referenced mapping declaration will use as input Default: all objects in mapped input feature of current input object Custom Feature Specify the feature of the output object that the referenced mapping declaration will modify Default: mapped output feature Custom Output Specify the output object that the referenced mapping declaration will modify Default: current output object NMAC01 - Transformation Design Patterns
  • 24. IBM Rational Software Conference 2009 Model to Model Mappings: Example NMAC01 - Transformation Design Patterns 24
  • 25. IBM Rational Software Conference 2009 Pattern: Reference Filter Problem Need to create a reference to an output object of a particular type that was generated from a specific input object, but there’s multiple output objects of different types to choose from Example Design Generated Implementation yes no NMAC01 - Transformation Design Patterns
  • 26. IBM Rational Software Conference 2009 Pattern: Reference Filter Solution Filter types via mapping declarations Strategy Submap mapping specifies mapping declaration that generates a particular type of object Consequences Filtering is symmetric with mapping solution for object creation Second level of filtering might be required if more than one object of same type created NMAC01 - Transformation Design Patterns
  • 27. IBM Rational Software Conference 2009 Pattern: Reference Filter Example NMAC01 - Transformation Design Patterns 27
  • 28. IBM Rational Software Conference 2009 Pattern: One to Many Problem Multiple related output objects must be generated from a single input object Example Design Generated Implementation generated relationship references other objects generated from the same input object NMAC01 - Transformation Design Patterns
  • 29. IBM Rational Software Conference 2009 Pattern: One to Many Solution Propagate input object to multiple mapping declarations Strategy Submap mappings specify an element, instead of a feature of element, as their input Consequences Separation of concerns (into multiple mapping declarations) simplifies mapping solution Recursive application of the pattern can make the solution harder to maintain NMAC01 - Transformation Design Patterns
  • 30. IBM Rational Software Conference 2009 Pattern: One to Many Example NMAC01 - Transformation Design Patterns 30
  • 31. IBM Rational Software Conference 2009 Pattern: Filling the Gaps Problem Output model has structures that don’t directly correspond to anything in the input model Example Design Generated Implementation NMAC01 - Transformation Design Patterns
  • 32. IBM Rational Software Conference 2009 Pattern: Filling the Gaps Solution Redirect output to objects other than the current target container Strategy Custom submap mappings can specify the output object that will be used (by the transform that is generated from the referenced mapping declaration) NMAC01 - Transformation Design Patterns
  • 33. IBM Rational Software Conference 2009 Pattern: Filling the Gaps Consequences Specification of the target container is isolated from the referenced mapping declaration, and so the population of the target container can still be specified in the normal way with mappings (via the referenced mapping declaration) Custom code must be provided to create instances of some objects NMAC01 - Transformation Design Patterns
  • 34. IBM Rational Software Conference 2009 Pattern: Filling the Gaps Example NMAC01 - Transformation Design Patterns 34
  • 35. IBM Rational Software Conference 2009 Pattern: Ask the User Problem Output model is dependant on information that’s not contained in the input model Example Design Generated Implementation Which naming convention to use? NMAC01 - Transformation Design Patterns
  • 36. IBM Rational Software Conference 2009 Pattern: Ask the User Solution Obtain the additional information from the transformation context object Strategy Define transformation specific properties and have the user assign values to those properties programmatically or via the Transformation Configuration Editor NMAC01 - Transformation Design Patterns
  • 37. IBM Rational Software Conference 2009 Pattern: Ask the User Transformation Configuration Editor Properties tab Retrieve property value from transformation context Consequences Supplying information via properties is simpler then supplying via auxiliary models Complex properties can require custom GUI for specifying values NMAC01 - Transformation Design Patterns
  • 38. IBM Rational Software Conference 2009 Pattern: Ask the User Example NMAC01 - Transformation Design Patterns 38
  • 39. IBM Rational Software Conference 2009 Pattern: Copy a Reference Problem A reference to an external object (an object that is contained in a model that is not being transformed) needs to be propagated from the input model to the output model Example Design Generated Implementation copy reference NMAC01 - Transformation Design Patterns
  • 40. IBM Rational Software Conference 2009 Pattern: Copy a Reference Solution Use a submap mapping that specifies an empty (or ignorable) mapping declaration Strategy When the target of a submap mapping is a reference, the specified mapping declaration is only used (at transformation development time and transformation execution time) to ensure type safety and assist with reference resolutions; consequently, any mappings in the specified mapping declaration will be ignored. Intra-model references are copied if no corresponding object was generated. Consequences No need to define mappings for types that will be referenced, but not contained Transformation will create empty objects for instances of types with empty mapping declarations when the occurrence is by containment rather than reference NMAC01 - Transformation Design Patterns
  • 41. IBM Rational Software Conference 2009 Pattern: Copy a Reference NMAC01 - Transformation Design Patterns 41
  • 42. IBM Rational Software Conference 2009 Pattern: Chain Problem Output model is input for other transformations Example Design Transient Model Generated Implementation Model to Model Model to Text NMAC01 - Transformation Design Patterns
  • 43. IBM Rational Software Conference 2009 Pattern: Chain Solution Add rules that chain to other transformations Strategy Add instances of ChainRule or JETRule to PostProcessing rules of the RootTransformation - a class which instantiates the top level (Main) transform of the generated transformation Consequences Generated in-memory (optionally persisted) model can easily be passed to other transformations, usually with no special adaptation for those transformations required Custom, transformation specific, properties can require extensions to standard chain rules NMAC01 - Transformation Design Patterns
  • 44. IBM Rational Software Conference 2009 NMAC01 - Transformation Design Patterns 44
  • 45. IBM Rational Software Conference 2009 © Copyright IBM Corporation 2009. All rights reserved. The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, these materials. Nothing contained in these materials is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. References in these materials to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in these materials may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. IBM, the IBM logo, Rational, the Rational logo, Telelogic, the Telelogic logo, and other IBM products and services are trademarks of the International Business Machines Corporation, in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others. NMAC01 - Transformation Design Patterns 45
  • 46. IBM Rational Software Conference 2009 Backup NMAC01 - Transformation Design Patterns 46
  • 47. IBM Rational Software Conference 2009 Example solution: LogicalDataModel to Java beans Create two transformations, and transform in two steps: From a UML model that has the LogicalDataModel profile applied to it, create an instance of an Ecore model for Java beans. From an Ecore model for Java beans, create a Java project and populate it with Java bean source code. Why do this in two steps? The best practices for authoring model-to-text transformations suggest the following steps: Harvest the templates from an exemplar project. For example, harvest the templates from a Java bean reference project. Construct a model that contains the information that is required to instantiate the templates. For example, construct an Ecore model for Java beans. Different requirements were used to design the LogicalDataModel profile and the Ecore Java bean model. These different requirements often lead to disparities between the models, which are typically resolved by inserting an additional transformation step. You can reuse the transformations independently. For example, you can reuse the Ecore-model-to-Java-beans transformation in many other contexts. NMAC01 - Transformation Design Patterns
  • 48. IBM Rational Software Conference 2009 Designing Model to Model Transformations: Mappings The following factors contribute to the complexity of transformation authoring: The inherit complexity in the input and output metamodels and their APIs The relationships of interest between the input and output metamodels The transformation framework elements, including the engine, languages, supporting tools, and APIs Learning the transformation framework is not the goal of the transformation author, but it often becomes the main task The framework complexity and abstraction level impacts the productivity of experts and novices Complexity is a common problem for transformation frameworks: XSLT with XPath Query/View/Transformation (QVT) operational or relational transformation language with Object Constraint Language (OCL) Mappings simplify transformation authoring so that the author can focus on the problem and not the tooling required to implement the solution NMAC01 - Transformation Design Patterns
  • 49. IBM Rational Software Conference 2009 Designing Model to Model Transformations: Example Sketch of a design: mapping LogicalDataModel things to Java bean model things get the bean project name and namespace from the model find all packages that contain classes with the Entity stereotype only interested in classes with the Entity stereotype property is not multi-valued or derived property is multi-valued but not derived property is derived NMAC01 - Transformation Design Patterns
  • 50. IBM Rational Software Conference 2009 NMAC01 - Transformation Design Patterns 50