SlideShare a Scribd company logo
1 of 50
Download to read offline
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

More Related Content

What's hot

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
 
Opportunities in challenging_times-steve_robinson
Opportunities in challenging_times-steve_robinsonOpportunities in challenging_times-steve_robinson
Opportunities in challenging_times-steve_robinsonIBM
 
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
 
1 jazz overview-karthik_k
1 jazz overview-karthik_k1 jazz overview-karthik_k
1 jazz overview-karthik_kIBM
 
Application Lifecycle Management & VSTS
Application Lifecycle Management & VSTSApplication Lifecycle Management & VSTS
Application Lifecycle Management & VSTSMicrosoft Iceland
 
Modern Apps and App Lifecycle
Modern Apps and App LifecycleModern Apps and App Lifecycle
Modern Apps and App LifecycleMarc Hoppers
 
Respond quickly to changing business needs–Business Process Management (BPM)
Respond quickly to changing business needs–Business Process Management (BPM)Respond quickly to changing business needs–Business Process Management (BPM)
Respond quickly to changing business needs–Business Process Management (BPM)Carly Snodgrass
 
Integrated it portfolio management using epm live's it engine app
Integrated it portfolio management using epm live's it engine appIntegrated it portfolio management using epm live's it engine app
Integrated it portfolio management using epm live's it engine appEPM Live
 
Science Modernisation Strategy v1 0
Science  Modernisation  Strategy v1 0Science  Modernisation  Strategy v1 0
Science Modernisation Strategy v1 0Salim Sheikh
 
WorkEngine Overview
WorkEngine OverviewWorkEngine Overview
WorkEngine OverviewEPM Live
 
Cost of Quality How to Save Money
Cost of Quality How to Save MoneyCost of Quality How to Save Money
Cost of Quality How to Save MoneyIosif Itkin
 
1 rdm keynote-robin_bater
1 rdm keynote-robin_bater1 rdm keynote-robin_bater
1 rdm keynote-robin_baterIBM
 
Portfolio Planning for 2013 - Keeping It Basic
Portfolio Planning for 2013 - Keeping It BasicPortfolio Planning for 2013 - Keeping It Basic
Portfolio Planning for 2013 - Keeping It BasicEPM Live
 
CLM Services Offerings from Rational Lab Services
CLM Services Offerings from Rational Lab ServicesCLM Services Offerings from Rational Lab Services
CLM Services Offerings from Rational Lab ServicesIBM Rational software
 
Extend Your PPM Application for Projects Products and Services
Extend Your PPM Application for Projects Products and ServicesExtend Your PPM Application for Projects Products and Services
Extend Your PPM Application for Projects Products and ServicesEPM Live
 
What are IBM Rational's CLM products
What are IBM Rational's CLM productsWhat are IBM Rational's CLM products
What are IBM Rational's CLM productsShawn Doyle
 
Accelerating SharePoint Value with Work Management
Accelerating SharePoint Value with Work ManagementAccelerating SharePoint Value with Work Management
Accelerating SharePoint Value with Work ManagementEPM Live
 

What's hot (18)

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
 
Opportunities in challenging_times-steve_robinson
Opportunities in challenging_times-steve_robinsonOpportunities in challenging_times-steve_robinson
Opportunities in challenging_times-steve_robinson
 
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
 
1 jazz overview-karthik_k
1 jazz overview-karthik_k1 jazz overview-karthik_k
1 jazz overview-karthik_k
 
Application Lifecycle Management & VSTS
Application Lifecycle Management & VSTSApplication Lifecycle Management & VSTS
Application Lifecycle Management & VSTS
 
Modern Apps and App Lifecycle
Modern Apps and App LifecycleModern Apps and App Lifecycle
Modern Apps and App Lifecycle
 
Respond quickly to changing business needs–Business Process Management (BPM)
Respond quickly to changing business needs–Business Process Management (BPM)Respond quickly to changing business needs–Business Process Management (BPM)
Respond quickly to changing business needs–Business Process Management (BPM)
 
Software Quality Df
Software Quality DfSoftware Quality Df
Software Quality Df
 
Integrated it portfolio management using epm live's it engine app
Integrated it portfolio management using epm live's it engine appIntegrated it portfolio management using epm live's it engine app
Integrated it portfolio management using epm live's it engine app
 
Science Modernisation Strategy v1 0
Science  Modernisation  Strategy v1 0Science  Modernisation  Strategy v1 0
Science Modernisation Strategy v1 0
 
WorkEngine Overview
WorkEngine OverviewWorkEngine Overview
WorkEngine Overview
 
Cost of Quality How to Save Money
Cost of Quality How to Save MoneyCost of Quality How to Save Money
Cost of Quality How to Save Money
 
1 rdm keynote-robin_bater
1 rdm keynote-robin_bater1 rdm keynote-robin_bater
1 rdm keynote-robin_bater
 
Portfolio Planning for 2013 - Keeping It Basic
Portfolio Planning for 2013 - Keeping It BasicPortfolio Planning for 2013 - Keeping It Basic
Portfolio Planning for 2013 - Keeping It Basic
 
CLM Services Offerings from Rational Lab Services
CLM Services Offerings from Rational Lab ServicesCLM Services Offerings from Rational Lab Services
CLM Services Offerings from Rational Lab Services
 
Extend Your PPM Application for Projects Products and Services
Extend Your PPM Application for Projects Products and ServicesExtend Your PPM Application for Projects Products and Services
Extend Your PPM Application for Projects Products and Services
 
What are IBM Rational's CLM products
What are IBM Rational's CLM productsWhat are IBM Rational's CLM products
What are IBM Rational's CLM products
 
Accelerating SharePoint Value with Work Management
Accelerating SharePoint Value with Work ManagementAccelerating SharePoint Value with Work Management
Accelerating SharePoint Value with Work Management
 

Viewers also liked

Jumping Into WordPress Plugin Programming
Jumping Into WordPress Plugin ProgrammingJumping Into WordPress Plugin Programming
Jumping Into WordPress Plugin ProgrammingDougal Campbell
 
Writing your Third Plugin
Writing your Third PluginWriting your Third Plugin
Writing your Third PluginJustin Ryan
 
Eclipse Overview
Eclipse Overview Eclipse Overview
Eclipse Overview Lars Vogel
 
Best Practices in Plugin Development (WordCamp Seattle)
Best Practices in Plugin Development (WordCamp Seattle)Best Practices in Plugin Development (WordCamp Seattle)
Best Practices in Plugin Development (WordCamp Seattle)andrewnacin
 
Building GPE: What We Learned
Building GPE: What We LearnedBuilding GPE: What We Learned
Building GPE: What We Learnedrajeevdayal
 
jQuery Plugin Creation
jQuery Plugin CreationjQuery Plugin Creation
jQuery Plugin Creationbenalman
 
A Simple Plugin Architecture for Wicket
A Simple Plugin Architecture for WicketA Simple Plugin Architecture for Wicket
A Simple Plugin Architecture for Wicketnielsvk
 
The Open-source Eclipse Plugin for Force.com Development, Summer ‘14
The Open-source Eclipse Plugin for Force.com Development, Summer ‘14The Open-source Eclipse Plugin for Force.com Development, Summer ‘14
The Open-source Eclipse Plugin for Force.com Development, Summer ‘14Salesforce Developers
 
Configuration as Code: The Job DSL Plugin
Configuration as Code: The Job DSL PluginConfiguration as Code: The Job DSL Plugin
Configuration as Code: The Job DSL PluginDaniel Spilker
 
So, you want to be a plugin developer?
So, you want to be a plugin developer?So, you want to be a plugin developer?
So, you want to be a plugin developer?ylefebvre
 
Building an Eclipse plugin to recommend changes to developers
Building an Eclipse plugin to recommend changes to developersBuilding an Eclipse plugin to recommend changes to developers
Building an Eclipse plugin to recommend changes to developerskim.mens
 
An easy guide to Plugin Development
An easy guide to Plugin DevelopmentAn easy guide to Plugin Development
An easy guide to Plugin DevelopmentShinichi Nishikawa
 
Plugin jQuery, Design Patterns
Plugin jQuery, Design PatternsPlugin jQuery, Design Patterns
Plugin jQuery, Design PatternsRobert Casanova
 

Viewers also liked (13)

Jumping Into WordPress Plugin Programming
Jumping Into WordPress Plugin ProgrammingJumping Into WordPress Plugin Programming
Jumping Into WordPress Plugin Programming
 
Writing your Third Plugin
Writing your Third PluginWriting your Third Plugin
Writing your Third Plugin
 
Eclipse Overview
Eclipse Overview Eclipse Overview
Eclipse Overview
 
Best Practices in Plugin Development (WordCamp Seattle)
Best Practices in Plugin Development (WordCamp Seattle)Best Practices in Plugin Development (WordCamp Seattle)
Best Practices in Plugin Development (WordCamp Seattle)
 
Building GPE: What We Learned
Building GPE: What We LearnedBuilding GPE: What We Learned
Building GPE: What We Learned
 
jQuery Plugin Creation
jQuery Plugin CreationjQuery Plugin Creation
jQuery Plugin Creation
 
A Simple Plugin Architecture for Wicket
A Simple Plugin Architecture for WicketA Simple Plugin Architecture for Wicket
A Simple Plugin Architecture for Wicket
 
The Open-source Eclipse Plugin for Force.com Development, Summer ‘14
The Open-source Eclipse Plugin for Force.com Development, Summer ‘14The Open-source Eclipse Plugin for Force.com Development, Summer ‘14
The Open-source Eclipse Plugin for Force.com Development, Summer ‘14
 
Configuration as Code: The Job DSL Plugin
Configuration as Code: The Job DSL PluginConfiguration as Code: The Job DSL Plugin
Configuration as Code: The Job DSL Plugin
 
So, you want to be a plugin developer?
So, you want to be a plugin developer?So, you want to be a plugin developer?
So, you want to be a plugin developer?
 
Building an Eclipse plugin to recommend changes to developers
Building an Eclipse plugin to recommend changes to developersBuilding an Eclipse plugin to recommend changes to developers
Building an Eclipse plugin to recommend changes to developers
 
An easy guide to Plugin Development
An easy guide to Plugin DevelopmentAn easy guide to Plugin Development
An easy guide to Plugin Development
 
Plugin jQuery, Design Patterns
Plugin jQuery, Design PatternsPlugin jQuery, Design Patterns
Plugin jQuery, Design Patterns
 

Similar to 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
 
Web technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringWeb technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringPiero Fraternali
 
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
 
CS587 Project - Raychaudhury,Shaalmali
CS587 Project - Raychaudhury,ShaalmaliCS587 Project - Raychaudhury,Shaalmali
CS587 Project - Raychaudhury,Shaalmalisagar.247
 
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
 
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
 
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
 
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
 

Similar to 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
 
Web technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringWeb technologies: Model Driven Engineering
Web technologies: Model Driven Engineering
 
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
 
CS587 Project - Raychaudhury,Shaalmali
CS587 Project - Raychaudhury,ShaalmaliCS587 Project - Raychaudhury,Shaalmali
CS587 Project - Raychaudhury,Shaalmali
 
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
 
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
 
MDA
MDAMDA
MDA
 
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
 
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...
 
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
 

More from Roopa Nadkarni

New integrations for synergy and change - Sean Innes
New integrations for synergy and change - Sean InnesNew integrations for synergy and change - Sean Innes
New integrations for synergy and change - Sean InnesRoopa Nadkarni
 
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
 
Accelerated test case - Anish bhanu
Accelerated test case - Anish bhanuAccelerated test case - Anish bhanu
Accelerated test case - Anish bhanuRoopa Nadkarni
 
web 2. 0 performance testing - Dave chadwick
web 2. 0 performance testing - Dave chadwickweb 2. 0 performance testing - Dave chadwick
web 2. 0 performance testing - Dave chadwickRoopa Nadkarni
 
Solving the enterprise security challenge - Derek holt
Solving the enterprise security challenge - Derek holtSolving the enterprise security challenge - Derek holt
Solving the enterprise security challenge - Derek holtRoopa Nadkarni
 
RQM in scrum agile testing - Raj kumar
RQM in scrum agile testing - Raj kumarRQM in scrum agile testing - Raj kumar
RQM in scrum agile testing - Raj kumarRoopa Nadkarni
 
Req Pro - Andreas gschwind
Req Pro - Andreas gschwindReq Pro - Andreas gschwind
Req Pro - Andreas gschwindRoopa Nadkarni
 
Extending Rhapsody -Rick boldt
Extending Rhapsody -Rick boldtExtending Rhapsody -Rick boldt
Extending Rhapsody -Rick boldtRoopa Nadkarni
 
Application security vision - John b
Application security vision - John bApplication security vision - John b
Application security vision - John bRoopa Nadkarni
 
Smarter Products For A Smarter PLanet - Neeraj Chandra
Smarter Products For A Smarter PLanet - Neeraj ChandraSmarter Products For A Smarter PLanet - Neeraj Chandra
Smarter Products For A Smarter PLanet - Neeraj ChandraRoopa Nadkarni
 
Real Insights Real Results - Steve Robinson
Real Insights Real Results - Steve RobinsonReal Insights Real Results - Steve Robinson
Real Insights Real Results - Steve RobinsonRoopa Nadkarni
 
Overcoming Contradictions - Mike O Rourke
Overcoming Contradictions - Mike O RourkeOvercoming Contradictions - Mike O Rourke
Overcoming Contradictions - Mike O RourkeRoopa Nadkarni
 
Opportunities In Challenging Times - Steve Robinson
Opportunities In Challenging Times - Steve RobinsonOpportunities In Challenging Times - Steve Robinson
Opportunities In Challenging Times - Steve RobinsonRoopa Nadkarni
 
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 LindseyRoopa Nadkarni
 
Achieving Agility At Scale - Martin Nally
Achieving Agility At Scale - Martin NallyAchieving Agility At Scale - Martin Nally
Achieving Agility At Scale - Martin NallyRoopa Nadkarni
 
RPT Oracle Plugin - Anitha Krishnamurthy
RPT Oracle Plugin - Anitha KrishnamurthyRPT Oracle Plugin - Anitha Krishnamurthy
RPT Oracle Plugin - Anitha KrishnamurthyRoopa Nadkarni
 

More from Roopa Nadkarni (20)

Agile - Monojit basu
Agile - Monojit basuAgile - Monojit basu
Agile - Monojit basu
 
New integrations for synergy and change - Sean Innes
New integrations for synergy and change - Sean InnesNew integrations for synergy and change - Sean Innes
New integrations for synergy and change - Sean Innes
 
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
 
Agile - Monojit Basu
Agile - Monojit BasuAgile - Monojit Basu
Agile - Monojit Basu
 
Accelerated test case - Anish bhanu
Accelerated test case - Anish bhanuAccelerated test case - Anish bhanu
Accelerated test case - Anish bhanu
 
web 2. 0 performance testing - Dave chadwick
web 2. 0 performance testing - Dave chadwickweb 2. 0 performance testing - Dave chadwick
web 2. 0 performance testing - Dave chadwick
 
Solving the enterprise security challenge - Derek holt
Solving the enterprise security challenge - Derek holtSolving the enterprise security challenge - Derek holt
Solving the enterprise security challenge - Derek holt
 
RTF - Prasad bhatt
RTF - Prasad bhattRTF - Prasad bhatt
RTF - Prasad bhatt
 
RQM in scrum agile testing - Raj kumar
RQM in scrum agile testing - Raj kumarRQM in scrum agile testing - Raj kumar
RQM in scrum agile testing - Raj kumar
 
Req Pro - Andreas gschwind
Req Pro - Andreas gschwindReq Pro - Andreas gschwind
Req Pro - Andreas gschwind
 
RFT - Ashish Mathur
RFT - Ashish MathurRFT - Ashish Mathur
RFT - Ashish Mathur
 
Extending Rhapsody -Rick boldt
Extending Rhapsody -Rick boldtExtending Rhapsody -Rick boldt
Extending Rhapsody -Rick boldt
 
Application security vision - John b
Application security vision - John bApplication security vision - John b
Application security vision - John b
 
Smarter Products For A Smarter PLanet - Neeraj Chandra
Smarter Products For A Smarter PLanet - Neeraj ChandraSmarter Products For A Smarter PLanet - Neeraj Chandra
Smarter Products For A Smarter PLanet - 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
 
RPT Oracle Plugin - Anitha Krishnamurthy
RPT Oracle Plugin - Anitha KrishnamurthyRPT Oracle Plugin - Anitha Krishnamurthy
RPT Oracle Plugin - Anitha Krishnamurthy
 

Recently uploaded

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 

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