SlideShare a Scribd company logo
1 of 97
Download to read offline
Where Modeling Has Arrived
An Overview: Model-Driven Software Development at SAP

Dr. Axel Uhl, Chief Development Architect, Technology Strategy, SAP AG
November 24, 2011
Does Anyone Remember…?


MDA as thought of by the OMG
 MOF-centric
 Maybe using UML
 Common Warehouse Metamodel?
 Collection of implementation
  technologies (Java, .net, CORBA,
  Web Services)
 XML-based model interchange
 Typical set of services and concerns
  (security, transactions)
 Intended for business domains
 Facilitated by model transformations




© 2011 SAP AG. All rights reserved.      2
Some of It Confused Many of Us


What’s optional? What’s mandatory?
 Do domain-specific languages (DSL) fit in, or is it only UML?

What works, what doesn’t?
 Can I really exchange my models (repeatedly) using XMI? Diagrams…?

What’s with CIM, PIM and PSM?

How much vendor support is there?
 What’s my choice of enterprise-grade MOF repository implementations?
 What if I already have other, non-MOF repositories?
 Does XMI really help me to get from one vendor’s tool to the next?
 If I design my MDA-compliant model transformations, will they survive?



© 2011 SAP AG. All rights reserved.                                        3
What’s Modeling Anyway (or: Is Modeling ≡ UML)?

There are many commonalities in what we call “programming language” and
“modeling language.” Both
  have abstract and concrete syntax
  can be of rather declarative or imperative nature
  can use different types of representation
       o (though we usually think of programming language artifacts as ASCII strings)
 strive for adequate abstractions, concern separation and aspect localization

Many challenges of “programming” also exist for “modeling”
 physical partitioning and management of artifacts, multi-level editing
 dependencies, extensibility
 teamwork aspects (change management, versioning, ...)

What’s the difference between
 a code generator / model transformer and a compiler?
 a piece of C++ code and a sequence chart?

© 2011 SAP AG. All rights reserved.                                                     4
Language History




© 2011 SAP AG. All rights reserved.   5
Language History




© 2011 SAP AG. All rights reserved.   6
Language History




© 2011 SAP AG. All rights reserved.   7
Abstraction Improves Portability

 complete                                                      replace platform components 2&1                                complete, deployed
 specification                                            migration effort with                                               system
                                                        specification provided
                                                   at abstract, portable levels
           amount of specification content




                                                                                  migration effort with
                                                                                  specification provided
                                                                                  in platform-specific
                                                                                  ways


                                                                                                           Enabling / cost reduction for
                                                                                                            architecture evolution
                                                                                                            optimization across layers

 sketches                                                                                                              stack of abstractions and languages
                                                                                                                       (examples only)
                                             process models component                behavior             runtime
                                               (e.g., ARIS) models (UML)           (e.g., ABAP)        (e.g., C/C++)


© 2011 SAP AG. All rights reserved.                                                                                                                          8
Abstraction Improves Development Efficiency

     Take path of least effort
       Detailing at low abstraction level causes extra effort and errors.
       Example: write an object-oriented business application in assembler




© 2011 SAP AG. All rights reserved.                                           9
Abstract Properly!


This is what the art of software design is all about.
 Focus on the application domain
 Suppress unnecessary detail
 Avoid unnecessary dependencies
 Anticipate future change
Sounds familiar?
Those are (more or less) key characteristics of modeling
 Represent some real thing homomorphically                  Prof. Dr. Herbert Stachowiak

 Representation and real thing are linked by a projection
 The projection is driven by the pragmatics




© 2011 SAP AG. All rights reserved.                                                         10
London Tube Map




© 2011 SAP AG. All rights reserved.   11
Crash Test Dummy




© 2011 SAP AG. All rights reserved.   12
Mannequins




© 2011 SAP AG. All rights reserved.   13
Partial Views




© 2011 SAP AG. All rights reserved.   14
Scale Models




© 2011 SAP AG. All rights reserved.   15
...and the Wiring Plan as another Partial View




© 2011 SAP AG. All rights reserved.              16
Modeling


How is a model trying to help?
 More adequate domain abstractions
 Less dependency on volatile underlying
  platform(s)
 No unnecessary details
The modeling language and its environment
introduce a “platform” of their own (PIM vs. PSM…)
 This platform has its own fate and mission.
 It may decay just the same way as other
  platforms have disappeared.
 Where’s your compiler that you wrote for your
  DSL back in 2001…?




© 2011 SAP AG. All rights reserved.                  17
Models as Documentation

Example: SAP’s Technical
Architecture Modeling (TAM)
Standard
 UML enhancements for
  architecture models




                                      Required by SAP processes.

                                      Accepted by architects.




© 2011 SAP AG. All rights reserved.                             18
Models for Interoperability and Standardization



Example: Banking Industry Architecture Network (BIAN)
 Standardizes a Service-Oriented Architecture (SOA) in the banking industry
 Defines a BIAN meta model using MOF
 Defines a UML profile allowing UML tools to edit BIAN models
 Uses Object Constraint Language (OCL) to validate domain models
       o Against UML profile
       o Against domain rules
 Generates HTML documentation from the models
 Will be able to generate XML Schemas from message types defined in models



                                      http://www.bian.org/content



© 2011 SAP AG. All rights reserved.                                            19
Structured Metadata / Models in Development at SAP


With SAP’s history, using repositories for structured metadata is very usual.

 ABAP and R/3 largely work this way.

 Many SAP tools followed this general paradigm.

 Only two out of hundreds use a MOF-compliant repository

 UML plays no role in “blueprint modeling” (models that impact the executable
    software by transformation or interpretation)




© 2011 SAP AG. All rights reserved.                                              20
The Tool Ticker – Integration Builder: Data Types

                                      Data Type Name & Namespace


  Software Components




Versions




          Data Type Structure /
          XML Schema

© 2011 SAP AG. All rights reserved.                                21
The Tool Ticker – Integration Builder: Business Objects




                                      New Service Interface

                                      New Data Type

                                      New Business Object




© 2011 SAP AG. All rights reserved.                           22
The Tool Ticker – Integration Builder: Business Objects




Business Object
aggregates BO Nodes
                                                                   Key




                                                               Data Structure
                                      (Re-)Use of Data Types




© 2011 SAP AG. All rights reserved.                                             23
The Tool Ticker – Integration Builder: Business Objects




                                      Actions for
                                      Business Logic                   Queries for retrieval of
                                                                       BO Nodes

                                                Associations between
                                                BO Nodes


© 2011 SAP AG. All rights reserved.                                                               24
The Tool Ticker – ABAP BO Proxy Generator

 ES Repository Browser                                         Name Mapping

                                                                        Type Mapping




                                      Corresponding ABAP Data Type to
                                      in ES Builder modeled Data Type


© 2011 SAP AG. All rights reserved.                                                    25
The Tool Ticker – ABAP BO Viewer




                                         Key             Data Structure




Business Object                                (Re-)Use of Data Types
aggregates BO Nodes


                                      Name Mapping




© 2011 SAP AG. All rights reserved.                                       26
The Tool Ticker – Maestro State & Action Modeling




© 2011 SAP AG. All rights reserved.                 27
The Tool Ticker – Visual Composer 05 (WD Pattern)


                                          ES Browser connects
                                          to ES Repository




                      Empty OIP Pattern




© 2011 SAP AG. All rights reserved.                             28
The Tool Ticker – Visual Composer 05 (WD Pattern)




                                            BO Query

        Search View




                                              Result
                                              View
                              Data Source
                              Query


© 2011 SAP AG. All rights reserved.                    29
The Tool Ticker – Visual Composer: UI Layout




© 2011 SAP AG. All rights reserved.            30
The Tool Ticker – Visual Composer: UI Layout




© 2011 SAP AG. All rights reserved.            31
The Tool Ticker – Visual Composer: UI Layout




                                      A lot of input fields, but
                                      only few are really needed




© 2011 SAP AG. All rights reserved.                                32
The Tool Ticker – Visual Composer: Pattern Configuration




                                      Disable most of the
                                      optional input fields




                 Search View




© 2011 SAP AG. All rights reserved.                           33
The Tool Ticker – Visual Composer: Analytical
Dashboards




© 2011 SAP AG. All rights reserved.             34
The Tool Ticker – Portal Content Studio




© 2011 SAP AG. All rights reserved.       35
The Tool Ticker – Portal Content Studio




© 2011 SAP AG. All rights reserved.       36
The Tool Ticker – WD Java: Data Modeler




© 2011 SAP AG. All rights reserved.       37
The Tool Ticker – WD Java: Navigation Modeler




© 2011 SAP AG. All rights reserved.             38
The Tool Ticker – J2EE Toolset




© 2011 SAP AG. All rights reserved.   39
The Tool Ticker – J2EE Toolset




© 2011 SAP AG. All rights reserved.   40
The Tool Ticker – Java Dictionary




© 2011 SAP AG. All rights reserved.   41
The Tool Ticker – Composite Application Framework




© 2011 SAP AG. All rights reserved.                 42
The Tool Ticker – Guided Procedures




© 2011 SAP AG. All rights reserved.   43
The Tool Ticker – Guided Procedures




© 2011 SAP AG. All rights reserved.   44
The Tool Ticker – Guided Procedures




© 2011 SAP AG. All rights reserved.   45
The Tool Ticker – Guided Procedures




© 2011 SAP AG. All rights reserved.   46
The Tool Ticker – BEx Web Analyzer




                                      Drag and
                                      Drop




© 2011 SAP AG. All rights reserved.              47
The Tool Ticker – ESA Tool Overview

                                                                                                                                                                                                   Interface Structure Model
                                                                                                                                                                                                    Interface Structure Model (Business Document Object)             XML - Schema
                                                                                                                                                                                                      Level   1            2             3         4        5        1       2      3     4       5
                                                                                                                                                                                                                                                                     <X1>
                                                                                                                                                                                                                                                                             <A1>
                                                                                                                                                                                                                                                                                  <A2>
                                                                                                                                                                                                                                                                                  <A2>
                                                                                                                                                                                                                                                                                  <A3>
                                                                                                                                                                                                                                                                                  <A3>
                                                                                                                                                                                                                                    A1        A2
                                                                                                                                                                                                                                                                             <A1>
                                                                                                                                                                                                                                                                              <X2>
                                                                                                                                                                                                                                             A3                                   <X3>
                                                                                                                                                                                                                                                                                          <C2>
                                                                                                                                                                                                                  X1           X2            X3        C2                                      <C1>
                                                                                                                                                                                                                                                                C1
                                                                                                                                                                                                                                                                                              <C1>

                                                                                                                                                                                                                  X            X4            B3        B4                         <X3>
                                                                                                                                                                                                                                                                                          <C2>

                                                                                                                                                                                                                                                                             <X2>
                                                                                                                                                                                                                                                                              <X4>
                                                                                                                                                                                                                                                                                   <B3>
                                                                                                                                                                                                                                                                                          <B4>
                                                                                                                                                                                                                                                                                          <B4>
                                                                                                                                                                                                                                                                                  <B3>
                                                                                                                                                                                                                                                                             <X4>
                                                                                                                                                                                                                  Directed relationships                             <X1>




                                                                        ESA Scenario
Solution Map                               Configured Scenario                                                          Sales Order
                                                                                                                         Quotation
                                                                                                                        Processing
                                                                                                                                                    RFQ Processing
                                                                                                                                                     at Customer




                                           Variant Details                            Supply Planning
                                                                                                                        Sales Order
                                                                                                                                                    Purchase Order
                                                                                                                                                     Processing at
                                                                                                                                                                       Process Interaction Model
                                                                                                                        Processing


                                                                                                                                                                       (XI Repository)
                                                                                                                                                       Customer

                                                                                                                A




                                                                                                                                                    Inbound Delivery
                                                                                                                    Outbound Delivery
                                                                                                                                                      Processing at
                                                                                                                       Processing
                                                                                                                                                        Customer

                                                                                                                A




                                                                                                                                                    Supplier Invoice
                                                                                                                     Customer Invoice
                                                                                                                                                     Processing at
                                                                                                                       Processing
                                                                                                                                                       Customer

                                                                                                                A




                                                                                                        A           Due Item Processing
                                                                                                                                                                                                              Object Data Type
                                                                                                        A           Payment Processing
                                                                                                                                                Payment Processing
                                                                                                                                                                                                              Model
                                                                                                                                                at Business Partner




                                                                         Accounting
                                                                                                        Payment processing       Bank statement
                                                                    A    Document
                                                                                                           at house bank         creation at bank
                                                                         Processing




                                       Process Step Documentation




                                                                                                                                                                                                                         Status Model




 © 2011 SAP AG. All rights reserved.                                                                                                                                                                                                                                             48
The Tool Ticker – Solution Composer




© 2011 SAP AG. All rights reserved.   49
The Tool Ticker – ARIS: Process Components




© 2011 SAP AG. All rights reserved.          50
The Tool Ticker – Business Workflow




© 2011 SAP AG. All rights reserved.   51
The Tool Ticker – Business Workflow




© 2011 SAP AG. All rights reserved.   52
The Tool Ticker – Business Workflow




© 2011 SAP AG. All rights reserved.   53
The Tool Ticker – Business Workflow




© 2011 SAP AG. All rights reserved.   54
The Tool Ticker – Business Workflow




© 2011 SAP AG. All rights reserved.   55
The Tool Ticker – Enterprise Data Warehouse: Transform.




© 2011 SAP AG. All rights reserved.                       56
The Tool Ticker – Enterprise Data Warehouse: Extraction




© 2011 SAP AG. All rights reserved.                       57
The Tool Ticker – ABAP Class Builder




© 2011 SAP AG. All rights reserved.    58
The Tool Ticker – ABAP Web Dynpro




© 2011 SAP AG. All rights reserved.   59
The Tool Ticker – ABAP: Graphical Screenpainter




© 2011 SAP AG. All rights reserved.               60
The Tool Ticker – ABAP Data Modeler




© 2011 SAP AG. All rights reserved.   61
The Tool Ticker – ABAP Dictionary: Foreign Keys




© 2011 SAP AG. All rights reserved.               62
The Tool Ticker – Integration Builder: Business Scenarios




© 2011 SAP AG. All rights reserved.                     63
The Tool Ticker – BI: Query Designer




© 2011 SAP AG. All rights reserved.    64
The Tool Ticker – BI: Report Designer




© 2011 SAP AG. All rights reserved.     65
The Tool Ticker – BI: Web Application Designer




© 2011 SAP AG. All rights reserved.              66
The Tool Ticker – Mobile Design Time




© 2011 SAP AG. All rights reserved.    67
The Tool Ticker – Mobile Design Time




© 2011 SAP AG. All rights reserved.    68
The Tool Ticker – JLin




© 2011 SAP AG. All rights reserved.   69
The Tool Ticker – Unit Testing




© 2011 SAP AG. All rights reserved.   70
The Tool Ticker – eCatt




© 2011 SAP AG. All rights reserved.   71
The Tool Ticker – TestZone




© 2011 SAP AG. All rights reserved.   72
The Tool Ticker – Web Dynpro Authoring Tool ABAP




© 2011 SAP AG. All rights reserved.                73
The Tool Ticker – Web Dynpro Authoring Tool Java




© 2011 SAP AG. All rights reserved.                74
The Tool Ticker




    This could go on for a long time…
                                        ...
             MOM, SLD, FDT, KM, Shanghai Tool, Easy Enhancement Workbench, ...
    Few of these tools

     - integrate in the same workbench environment

     - use compatible, integrated model repository technology

     - support end-to-end consistency checks

     - support methods for agile refactoring



© 2011 SAP AG. All rights reserved.                                              75
Or as Foote & Yoder Call It
Big Balls of Mud (Also Works for Spaghetti…)



“A BIG BALL OF MUD is haphazardly structured,
sprawling, sloppy, duct-tape and bailing wire,
spaghetti code jungle. We’ve all seen them. These
systems show unmistakable signs of unregulated
growth, and repeated, expedient repair. Information
is shared promiscuously among distant elements of
the system, often to the point where nearly all the
important information becomes global or
duplicated. The overall structure of the system may
never have been well defined. If it was, it may have
eroded beyond recognition. Programmers with a
shred of architectural sensibility shun these
quagmires. Only those who are unconcerned about
architecture, and, perhaps, are comfortable with the
inertia of the day-to-day chore of patching the holes
in these failing dikes, are content to work on such
systems.” [http://www.laputan.org/mud/]



© 2011 SAP AG. All rights reserved.                     76
Textual Modeling – An Important Trend?


Martin Fowler wrote about it
 http://www.martinfowler.com/articles/languageWorkbench.html

Several frameworks support it
 e.g., EMFText, Xtext, FURCAS, TMF, TCS, MontiCore, (Oslo)

General concept
 Consider the abstract syntax tree (AST) a model
 Consider the textual representation a view of a part of the model

Frameworks vary greatly…
   …in how they can deal with partial and/or overlapping views
   …in how they preserve lexical information (whitespaces, line breaks, comments)
   …in how they can store, retrieve and manage the models
   …in what textual grammar classes they support
   …in how powerful the mapping between meta model and textual syntax can be.


© 2011 SAP AG. All rights reserved.                                                  77
Different Approaches towards Textual DSLs
Compilers, hand-written

           File System
                                                                         Parse into repository for
                                  Compiler-Compilers, lex/yacc et al.
                                                                         improved tool support; hand-written
                       .o                                                smart editors with
        Compiler     .class
                                                                         syntax and error highlighting;
                                                          File System    see SNiFF, Eclipse JDT and others

                                                                                Language workbench,
                                                                  .o
                                                  Compiler      .class          deriving editor, parser
                                                                                and index automatically
                                                “Index”
                                                                                from mapping
                                                                                specification




                                                                                                                resulting in different
                      Graphical
                                                                                   Textual                      qualities
                                                                                    Tools
                       Tools
                                                                                                                geared towards different
                                                                                                                boundary conditions
                                                                                                                both make language
                                                                                                                design with tool support a
                                                                                                                lot easier
                                                               Textual tools, projectional editors, working
Graphical tools, working                                       on structured object repository, database-like
on structured object repository,
database-like
  © 2011 SAP AG. All rights reserved.                                                                                                    78
A Real Difference: Partial, Overlapping

           Wheel is part of two diagrams; each diagram only shows part of the domain


                               vehicles                      vehicles

             Vehicle           +wheels       Wheel
                            0..1      1..*



                                   +doors            Wheel
               Car                           Door
                            0..1     0..*
                     0..1


              1      +engine
             Engine




         The challenge: updates through one view may update another




© 2011 SAP AG. All rights reserved.                                                    79
A Real Difference: Partial, Overlapping


                                                     Add attributes to Wheel

                               vehicles                      vehicles

             Vehicle           +wheels       Wheel
                            0..1      1..*



               Car                 +doors    Door
                            0..1     0..*
                     0..1


              1      +engine
             Engine




© 2011 SAP AG. All rights reserved.                                            80
A Real Difference: Partial, Overlapping

     They also show up here, distort the layout and go against the view’s purpose


                             vehicles                    vehicles




© 2011 SAP AG. All rights reserved.                                                 81
A Real Difference: Partial, Overlapping

  So we remove them from the other view, but not the underlying domain model


                               vehicles              vehicles

             Vehicle           +wheels       Wheel
                            0..1      1..*



               Car                 +doors    Door
                            0..1     0..*
                     0..1


              1      +engine
             Engine




© 2011 SAP AG. All rights reserved.                                            82
A Real Difference: Partial, Overlapping

        Adding classes and associations, however, typically does not alter other views


                               vehicles                   vehicles

             Vehicle           +wheels       Wheel
                            0..1      1..*



               Car                 +doors    Door
                            0..1     0..*
                     0..1


              1      +engine
             Engine




© 2011 SAP AG. All rights reserved.                                                  83
A Real Difference: Partial, Overlapping

With partial, overlapping views, delete has to come in two flavors. Delete from view…

                               vehicles                 vehicles

              Vehicle          +wheels        Wheel
                            0..1       1..*



                Car                +doors     Door
                            0..1     0..*
                     0..1


               1      +engine
              Engine




 © 2011 SAP AG. All rights reserved.                                              84
A Real Difference: Partial, Overlapping

                                                     …and delete from domain model


                              vehicles                                        vehicles

             Vehicle          +wheels        Wheel
                           0..1       1..*



               Car                +doors     Door
                                                                                         AirPressureSensor
                           0..1     0..*
                    0..1


              1      +engine
             Engine




© 2011 SAP AG. All rights reserved.                                                                          85
Imagine the same for Text

   Wheel class showing in two views of the vehicles package, one of them partial




         package vehicles {
           class Vehicle {               package vehicles {
             Wheel 1..* wheels;            class Wheel {
           }                               }
           class Wheel {}                }
           class Car extends Vehicle {
             Door 0..* doors;
             Engine 1..1 engine;
           }
           class Engine {}
         }




© 2011 SAP AG. All rights reserved.                                                86
Imagine the same for Text

        Wheel class as partial view; Package vehicles with two partial views



         package vehicles {
           class Vehicle {                 package vehicles {
             Wheel 1..* wheels;              class Wheel {
           }                                   Double radius;
           class Wheel {}                      Boolean tubeless;
           class Car extends Vehicle {         Double width;
             Door 0..* doors;                  AirPressureSensor 0..1 airPressureSensor;
             Engine 1..1 engine;             }
           }                                 class AirPressureSensor {}
           class Engine {}                 }
         }




© 2011 SAP AG. All rights reserved.                                                        87
Imagine the same for Text

                                      Add attributes to Wheel class




         package vehicles {
           class Vehicle {                        package vehicles {
             Wheel 1..* wheels;                     class Wheel {
           }                                          Double radius;
           class Wheel {}                             Boolean tubeless;
           class Car extends Vehicle {                Double width;
             Door 0..* doors;                       }
             Engine 1..1 engine;                  }
           }
           class Engine {}
         }




© 2011 SAP AG. All rights reserved.                                       88
Imagine the same for Text


                                      Attributes also show up here


         package vehicles {
           class Vehicle {
             Wheel 1..* wheels;
                                                          package vehicles {
           }
                                                            class Wheel {
           class Wheel {
                                                              Double radius;
             Double radius;
                                                              Boolean tubeless;
             Boolean tubeless;
                                                              Double width;
             Double width;
                                                            }
           }
                                                          }
           class Car extends Vehicle {
             Door 0..* doors;
             Engine 1..1 engine;
           }
           class Engine {}
         }




© 2011 SAP AG. All rights reserved.                                               89
Imagine the same for Text

 So we remove them from the other view, but not the underlying domain model




         package vehicles {
           class Vehicle {               package vehicles {
             Wheel 1..* wheels;            class Wheel {
           }                                 Double radius;
           class Wheel {}                    Boolean tubeless;
           class Car extends Vehicle {       Double width;
             Door 0..* doors;              }
             Engine 1..1 engine;         }
           }
           class Engine {}
         }




© 2011 SAP AG. All rights reserved.                                           90
Imagine the same for Text

                        Adding classes and associations may not alter other views




         package vehicles {
           class Vehicle {                        package vehicles {
             Wheel 1..* wheels;                     class Wheel {
           }                                          Double radius;
           class Wheel {}                             Boolean tubeless;
           class Car extends Vehicle {                Double width;
             Door 0..* doors;                         AirPressureSensor 0..1 airPressureSensor;
             Engine 1..1 engine;                    }
           }                                        class AirPressureSensor {}
           class Engine {}                        }
         }




© 2011 SAP AG. All rights reserved.                                                               91
Imagine the same for Text

With partial, overlapping views, delete has to come in two flavors. Delete from view…




         package vehicles {
           class Vehicle {               package vehicles {
             Wheel 1..* wheels;            class Wheel {
           }                                 Double radius;
           class Wheel {}                    Boolean tubeless;
           class Car extends Vehicle {       Double width;
             Door 0..* doors;                AirPressureSensor 0..1 airPressureSensor;
             Engine 1..1 engine;           }
           }                               class AirPressureSensor {}
           class Engine {}               }
         }




© 2011 SAP AG. All rights reserved.                                                      92
Imagine the same for Text

                                      …and delete from domain model




         package vehicles {
           class Vehicle {                       package vehicles {
             Wheel 1..* wheels;                    class Wheel {
           }                                         Double radius;
           class Wheel {}                            Boolean tubeless;
           class Car extends Vehicle {               Double width;
             Door 0..* doors;                        AirPressureSensor 0..1 airPressureSensor;
             Engine 1..1 engine;                   }
           }                                       class AirPressureSensor {}
           class Engine {}                       }
         }




            This is pretty unusual for a text editor.
            But it is what happens when you apply the core principles of modeling.
            Under which circumstances is this useful?


© 2011 SAP AG. All rights reserved.                                                              93
Is Modeling a Lost Cause?


Not necessarily
 Some convergence on Eclipse / EMF (at least somehow like EMOF)
 Starting to use EMF as façade for existing design-time data / models
 UML in widespread use for documentation
 OCL starting to gain foothold in model validation
 Some “textual modeling” starting, mostly based on EMF

However
 Still too many heterogeneous repositories and tool workbenches
 Model interchange (XMI?) does not seem to solve our problems
 No standards in use for model transformation / code generation
 Tools lag behind in quality compared to tools for handling source code



© 2011 SAP AG. All rights reserved.                                        94
Summary


Modeling adds to the history of computing
 Partial and overlapping views, using different forms of notation
 Comes with its own set of challenges

Until modeling tools reach the maturity of, say, an Eclipse JDT, developers will
perceive them as hindrance rather than accelerator.

We need broadly-accepted and working standards

We shouldn’t try to automate insoluble mapping problems.
 “Computer! Turn my little high-level sketch into an executable system!”

“Textual modeling” trend can bridge some gaps in interesting ways.




© 2011 SAP AG. All rights reserved.                                                95
Thank You!




                               Questions?




                                axel.uhl@sap.com

© 2011 SAP AG. All rights reserved.                96
© 2011 SAP AG. Alle Rechte vorbehalten.


Weitergabe und Vervielfältigung dieser Publikation oder von Teilen daraus sind,   Java ist eine eingetragene Marke von Sun Microsystems, Inc.
zu welchem Zweck und in welcher Form auch immer, ohne die ausdrückliche           JavaScript ist eine eingetragene Marke der Sun Microsystems, Inc., verwendet
schriftliche Genehmigung durch SAP AG nicht gestattet. In dieser Publikation      unter der Lizenz der von Netscape entwickelten und implementierten Technologie.
enthaltene Informationen können ohne vorherige Ankündigung geändert werden.
                                                                                  SAP, R/3, SAP NetWeaver, Duet, PartnerEdge, ByDesign, SAP BusinessObjects
Die von SAP AG oder deren Vertriebsfirmen angebotenen Softwareprodukte            Explorer, StreamWork und weitere im Text erwähnte SAP-Produkte und -
können Softwarekomponenten auch anderer Softwarehersteller enthalten.             Dienstleistungen sowie die entsprechenden Logos sind Marken oder eingetragene
Microsoft, Windows, Excel, Outlook, und PowerPoint sind eingetragene Marken       Marken der SAP AG in Deutschland und anderen Ländern.
der Microsoft Corporation.                                                        Business Objects und das Business-Objects-Logo, BusinessObjects, Crystal
IBM, DB2, DB2 Universal Database, System i, System i5, System p, System p5,       Reports, Crystal Decisions, Web Intelligence, Xcelsius und andere im Text
System x, System z, System z10, System z9, z10, z9, iSeries, pSeries, xSeries,    erwähnte Business-Objects-Produkte und Dienstleistungen sowie die
zSeries, eServer, z/VM, z/OS, i5/OS, S/390, OS/390, OS/400, AS/400, S/390         entsprechenden Logos sind Marken oder eingetragene Marken der Business
Parallel Enterprise Server, PowerVM, Power Architecture, POWER6+, POWER6,         Objects Software Ltd. Business Objects ist ein Unternehmen der SAP AG.
POWER5+, POWER5, POWER, OpenPower, PowerPC, BatchPipes,                           Sybase und Adaptive Server, iAnywhere, Sybase 365, SQL Anywhere und
BladeCenter, System Storage, GPFS, HACMP, RETAIN, DB2 Connect, RACF,              weitere im Text erwähnte Sybase-Produkte und -Dienstleistungen sowie die
Redbooks, OS/2, Parallel Sysplex, MVS/ESA, AIX, Intelligent Miner, WebSphere,     entsprechenden Logos sind Marken oder eingetragene Marken der Sybase Inc.
Netfinity, Tivoli und Informix sind Marken oder eingetragene Marken der IBM       Sybase ist ein Unternehmen der SAP AG.
Corporation.
                                                                                  Alle anderen Namen von Produkten und Dienstleistungen sind Marken der
Linux ist eine eingetragene Marke von Linus Torvalds in den USA und anderen       jeweiligen Firmen. Die Angaben im Text sind unverbindlich und dienen lediglich zu
Ländern.                                                                          Informationszwecken. Produkte können länderspezifische Unterschiede
Adobe, das Adobe-Logo, Acrobat, PostScript und Reader sind Marken oder            aufweisen.
eingetragene Marken von Adobe Systems Incorporated in den USA und/oder            Die in dieser Publikation enthaltene Information ist Eigentum der SAP. Weitergabe
anderen Ländern.                                                                  und Vervielfältigung dieser Publikation oder von Teilen daraus sind, zu welchem
Oracle ist eine eingetragene Marke der Oracle Corporation.                        Zweck und in welcher Form auch immer, nur mit ausdrücklicher schriftlicher
UNIX, X/Open, OSF/1 und Motif sind eingetragene Marken der Open Group.            Genehmigung durch SAP AG gestattet.

Citrix, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame und
MultiWin sind Marken oder eingetragene Marken von Citrix Systems, Inc.
HTML, XML, XHTML und W3C sind Marken oder eingetragene Marken des
W3C®, World Wide Web Consortium, Massachusetts Institute of Technology.




 © 2011 SAP AG. All rights reserved.                                                                                                                           98

More Related Content

What's hot

Raj Anthony Carrato R E S T Patterns
Raj    Anthony  Carrato    R E S T PatternsRaj    Anthony  Carrato    R E S T Patterns
Raj Anthony Carrato R E S T PatternsSOA Symposium
 
Microsoft SQL Server - How to Collaboratively Manage Excel Data
Microsoft SQL Server - How to Collaboratively Manage Excel DataMicrosoft SQL Server - How to Collaboratively Manage Excel Data
Microsoft SQL Server - How to Collaboratively Manage Excel DataMark Ginnebaugh
 
How to improve user experience via roles
How to improve user experience via rolesHow to improve user experience via roles
How to improve user experience via rolesSiva Pradeep Bolisetti
 
Planning (or Essbase) and FDM, and ERPi Equals Success
Planning (or Essbase) and FDM, and ERPi Equals SuccessPlanning (or Essbase) and FDM, and ERPi Equals Success
Planning (or Essbase) and FDM, and ERPi Equals SuccessAlithya
 
Collaborative sourcing keys to unlocking greater value
Collaborative sourcing keys to unlocking greater valueCollaborative sourcing keys to unlocking greater value
Collaborative sourcing keys to unlocking greater valueSAP Ariba
 
AD for i in modern world
AD for i in modern worldAD for i in modern world
AD for i in modern worldCOMMON Europe
 
Interactive Forms Review - SDN Day 2008 - Las Vegas
Interactive Forms Review - SDN Day 2008 - Las VegasInteractive Forms Review - SDN Day 2008 - Las Vegas
Interactive Forms Review - SDN Day 2008 - Las Vegasdr.j
 
Sap B1 In1 Day 30 5 2012
Sap B1 In1 Day 30 5 2012Sap B1 In1 Day 30 5 2012
Sap B1 In1 Day 30 5 2012Massimo Sala
 
Pricing Efficiency
Pricing EfficiencyPricing Efficiency
Pricing EfficiencyDaya Nadar
 
Sa pexperts prospect_webinar_epm_add_in_v1
Sa pexperts prospect_webinar_epm_add_in_v1Sa pexperts prospect_webinar_epm_add_in_v1
Sa pexperts prospect_webinar_epm_add_in_v1ashok_krs
 
SAP Profitability & Cost Management - Course Contents
SAP Profitability & Cost Management - Course ContentsSAP Profitability & Cost Management - Course Contents
SAP Profitability & Cost Management - Course ContentsReddy Chemicala
 
Gef tutorial 2005
Gef tutorial 2005Gef tutorial 2005
Gef tutorial 2005Ryan Wang
 
Customizing sap template bex
Customizing sap template bexCustomizing sap template bex
Customizing sap template bexsubhaypce
 
Expendables E-AppStore
Expendables E-AppStoreExpendables E-AppStore
Expendables E-AppStorelobalint
 
"Nuxeo 5 a Complete Open Source ECM Solution" by Andreea Stefanescu @ eLibera...
"Nuxeo 5 a Complete Open Source ECM Solution" by Andreea Stefanescu @ eLibera..."Nuxeo 5 a Complete Open Source ECM Solution" by Andreea Stefanescu @ eLibera...
"Nuxeo 5 a Complete Open Source ECM Solution" by Andreea Stefanescu @ eLibera...eLiberatica
 

What's hot (20)

Raj Anthony Carrato R E S T Patterns
Raj    Anthony  Carrato    R E S T PatternsRaj    Anthony  Carrato    R E S T Patterns
Raj Anthony Carrato R E S T Patterns
 
Microsoft SQL Server - How to Collaboratively Manage Excel Data
Microsoft SQL Server - How to Collaboratively Manage Excel DataMicrosoft SQL Server - How to Collaboratively Manage Excel Data
Microsoft SQL Server - How to Collaboratively Manage Excel Data
 
Fm extraction
Fm extractionFm extraction
Fm extraction
 
How to improve user experience via roles
How to improve user experience via rolesHow to improve user experience via roles
How to improve user experience via roles
 
Got ipads, android tablets and windows devices
Got ipads, android tablets and windows devicesGot ipads, android tablets and windows devices
Got ipads, android tablets and windows devices
 
Planning (or Essbase) and FDM, and ERPi Equals Success
Planning (or Essbase) and FDM, and ERPi Equals SuccessPlanning (or Essbase) and FDM, and ERPi Equals Success
Planning (or Essbase) and FDM, and ERPi Equals Success
 
Esoa
EsoaEsoa
Esoa
 
Collaborative sourcing keys to unlocking greater value
Collaborative sourcing keys to unlocking greater valueCollaborative sourcing keys to unlocking greater value
Collaborative sourcing keys to unlocking greater value
 
AD for i in modern world
AD for i in modern worldAD for i in modern world
AD for i in modern world
 
Interactive Forms Review - SDN Day 2008 - Las Vegas
Interactive Forms Review - SDN Day 2008 - Las VegasInteractive Forms Review - SDN Day 2008 - Las Vegas
Interactive Forms Review - SDN Day 2008 - Las Vegas
 
Sap B1 In1 Day 30 5 2012
Sap B1 In1 Day 30 5 2012Sap B1 In1 Day 30 5 2012
Sap B1 In1 Day 30 5 2012
 
Pricing Efficiency
Pricing EfficiencyPricing Efficiency
Pricing Efficiency
 
Sa pexperts prospect_webinar_epm_add_in_v1
Sa pexperts prospect_webinar_epm_add_in_v1Sa pexperts prospect_webinar_epm_add_in_v1
Sa pexperts prospect_webinar_epm_add_in_v1
 
SAP Profitability & Cost Management - Course Contents
SAP Profitability & Cost Management - Course ContentsSAP Profitability & Cost Management - Course Contents
SAP Profitability & Cost Management - Course Contents
 
BPC Article original
BPC Article originalBPC Article original
BPC Article original
 
Gef tutorial 2005
Gef tutorial 2005Gef tutorial 2005
Gef tutorial 2005
 
Customizing sap template bex
Customizing sap template bexCustomizing sap template bex
Customizing sap template bex
 
Molnar DEV307 OBA
Molnar DEV307 OBAMolnar DEV307 OBA
Molnar DEV307 OBA
 
Expendables E-AppStore
Expendables E-AppStoreExpendables E-AppStore
Expendables E-AppStore
 
"Nuxeo 5 a Complete Open Source ECM Solution" by Andreea Stefanescu @ eLibera...
"Nuxeo 5 a Complete Open Source ECM Solution" by Andreea Stefanescu @ eLibera..."Nuxeo 5 a Complete Open Source ECM Solution" by Andreea Stefanescu @ eLibera...
"Nuxeo 5 a Complete Open Source ECM Solution" by Andreea Stefanescu @ eLibera...
 

Viewers also liked

W4 ucl@md day2011
W4 ucl@md day2011W4 ucl@md day2011
W4 ucl@md day2011MDDAY11
 
Obeo thales@md day2011
Obeo thales@md day2011Obeo thales@md day2011
Obeo thales@md day2011MDDAY11
 
Objet direct@md day2011
Objet direct@md day2011Objet direct@md day2011
Objet direct@md day2011MDDAY11
 
Soft fluent@md day2011
Soft fluent@md day2011Soft fluent@md day2011
Soft fluent@md day2011MDDAY11
 
Yves caseau@md day2011
Yves caseau@md day2011Yves caseau@md day2011
Yves caseau@md day2011MDDAY11
 
W4@md day2011
W4@md day2011W4@md day2011
W4@md day2011MDDAY11
 
Levers, Wheels And Axles, Pulleys
Levers, Wheels And Axles, PulleysLevers, Wheels And Axles, Pulleys
Levers, Wheels And Axles, PulleysElizabeth Nolen
 

Viewers also liked (7)

W4 ucl@md day2011
W4 ucl@md day2011W4 ucl@md day2011
W4 ucl@md day2011
 
Obeo thales@md day2011
Obeo thales@md day2011Obeo thales@md day2011
Obeo thales@md day2011
 
Objet direct@md day2011
Objet direct@md day2011Objet direct@md day2011
Objet direct@md day2011
 
Soft fluent@md day2011
Soft fluent@md day2011Soft fluent@md day2011
Soft fluent@md day2011
 
Yves caseau@md day2011
Yves caseau@md day2011Yves caseau@md day2011
Yves caseau@md day2011
 
W4@md day2011
W4@md day2011W4@md day2011
W4@md day2011
 
Levers, Wheels And Axles, Pulleys
Levers, Wheels And Axles, PulleysLevers, Wheels And Axles, Pulleys
Levers, Wheels And Axles, Pulleys
 

Similar to Axel uhl sap@md-day2011

Tata steel sap bpm espresso session
Tata steel sap bpm espresso sessionTata steel sap bpm espresso session
Tata steel sap bpm espresso sessionrtiesma
 
Custom Development of Enterprise Services
Custom Development of Enterprise ServicesCustom Development of Enterprise Services
Custom Development of Enterprise ServicesTobias Trapp
 
Uml to code with acceleo
Uml to code with acceleoUml to code with acceleo
Uml to code with acceleoTarun Telang
 
StreamBase - Embedded Erjang - Erlang User Group London - 20th April 2011
StreamBase - Embedded Erjang - Erlang User Group London - 20th April 2011StreamBase - Embedded Erjang - Erlang User Group London - 20th April 2011
StreamBase - Embedded Erjang - Erlang User Group London - 20th April 2011darach
 
Composite Apps using SCA (Service Component Architecture)
Composite Apps using SCA (Service Component Architecture)Composite Apps using SCA (Service Component Architecture)
Composite Apps using SCA (Service Component Architecture)Shameer Thaha Koya
 
AD404 - Extend your Social Business by integrating SAP Solutions
AD404 - Extend your Social Business by integrating SAP SolutionsAD404 - Extend your Social Business by integrating SAP Solutions
AD404 - Extend your Social Business by integrating SAP SolutionsChristian Holsing
 
BPM-X Pattern-based model transformations (v2)
BPM-X Pattern-based model transformations (v2)BPM-X Pattern-based model transformations (v2)
BPM-X Pattern-based model transformations (v2)BPM-Xchange
 
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
 
M3 Modernization Case Study
M3 Modernization Case StudyM3 Modernization Case Study
M3 Modernization Case StudyADC Austin Tech
 
IBM Cognos - IBM informations-integration för IBM Cognos användare
IBM Cognos - IBM informations-integration för IBM Cognos användareIBM Cognos - IBM informations-integration för IBM Cognos användare
IBM Cognos - IBM informations-integration för IBM Cognos användareIBM Sverige
 
21st Century Service Oriented Architecture
21st Century Service Oriented Architecture21st Century Service Oriented Architecture
21st Century Service Oriented ArchitectureBob Rhubart
 
Aspect Oriented Software Development
Aspect Oriented Software DevelopmentAspect Oriented Software Development
Aspect Oriented Software DevelopmentJignesh Patel
 
Aras Innovative PLM Manufacturing Applications
Aras Innovative PLM Manufacturing ApplicationsAras Innovative PLM Manufacturing Applications
Aras Innovative PLM Manufacturing ApplicationsAras
 
Architectural Options for Using IBM Cognos with SAP, including Alternatives t...
Architectural Options for Using IBM Cognos with SAP, including Alternatives t...Architectural Options for Using IBM Cognos with SAP, including Alternatives t...
Architectural Options for Using IBM Cognos with SAP, including Alternatives t...Senturus
 
Umit Yalcinalp Enterprise Mashupsfor S O A
Umit  Yalcinalp    Enterprise Mashupsfor S O AUmit  Yalcinalp    Enterprise Mashupsfor S O A
Umit Yalcinalp Enterprise Mashupsfor S O ASOA Symposium
 

Similar to Axel uhl sap@md-day2011 (20)

Tata steel sap bpm espresso session
Tata steel sap bpm espresso sessionTata steel sap bpm espresso session
Tata steel sap bpm espresso session
 
Custom Development of Enterprise Services
Custom Development of Enterprise ServicesCustom Development of Enterprise Services
Custom Development of Enterprise Services
 
Actionable Architecture
Actionable Architecture Actionable Architecture
Actionable Architecture
 
Uml to code with acceleo
Uml to code with acceleoUml to code with acceleo
Uml to code with acceleo
 
StreamBase - Embedded Erjang - Erlang User Group London - 20th April 2011
StreamBase - Embedded Erjang - Erlang User Group London - 20th April 2011StreamBase - Embedded Erjang - Erlang User Group London - 20th April 2011
StreamBase - Embedded Erjang - Erlang User Group London - 20th April 2011
 
Composite Apps using SCA (Service Component Architecture)
Composite Apps using SCA (Service Component Architecture)Composite Apps using SCA (Service Component Architecture)
Composite Apps using SCA (Service Component Architecture)
 
AD404 - Extend your Social Business by integrating SAP Solutions
AD404 - Extend your Social Business by integrating SAP SolutionsAD404 - Extend your Social Business by integrating SAP Solutions
AD404 - Extend your Social Business by integrating SAP Solutions
 
BPM-X Pattern-based model transformations (v2)
BPM-X Pattern-based model transformations (v2)BPM-X Pattern-based model transformations (v2)
BPM-X Pattern-based model transformations (v2)
 
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 ...
 
M3 Modernization Case Study
M3 Modernization Case StudyM3 Modernization Case Study
M3 Modernization Case Study
 
2009-dec-10 Architectuur en HL7
2009-dec-10 Architectuur en HL72009-dec-10 Architectuur en HL7
2009-dec-10 Architectuur en HL7
 
IBM Cognos - IBM informations-integration för IBM Cognos användare
IBM Cognos - IBM informations-integration för IBM Cognos användareIBM Cognos - IBM informations-integration för IBM Cognos användare
IBM Cognos - IBM informations-integration för IBM Cognos användare
 
Blue Ruby SDN Webinar
Blue Ruby SDN WebinarBlue Ruby SDN Webinar
Blue Ruby SDN Webinar
 
Technology Update
Technology UpdateTechnology Update
Technology Update
 
Technology update
Technology update   Technology update
Technology update
 
21st Century Service Oriented Architecture
21st Century Service Oriented Architecture21st Century Service Oriented Architecture
21st Century Service Oriented Architecture
 
Aspect Oriented Software Development
Aspect Oriented Software DevelopmentAspect Oriented Software Development
Aspect Oriented Software Development
 
Aras Innovative PLM Manufacturing Applications
Aras Innovative PLM Manufacturing ApplicationsAras Innovative PLM Manufacturing Applications
Aras Innovative PLM Manufacturing Applications
 
Architectural Options for Using IBM Cognos with SAP, including Alternatives t...
Architectural Options for Using IBM Cognos with SAP, including Alternatives t...Architectural Options for Using IBM Cognos with SAP, including Alternatives t...
Architectural Options for Using IBM Cognos with SAP, including Alternatives t...
 
Umit Yalcinalp Enterprise Mashupsfor S O A
Umit  Yalcinalp    Enterprise Mashupsfor S O AUmit  Yalcinalp    Enterprise Mashupsfor S O A
Umit Yalcinalp Enterprise Mashupsfor S O A
 

More from MDDAY11

No magic@md day2011
No magic@md day2011No magic@md day2011
No magic@md day2011MDDAY11
 
Modeliosoft@md day2011
Modeliosoft@md day2011Modeliosoft@md day2011
Modeliosoft@md day2011MDDAY11
 
Modelio praxeme@md day2011
Modelio praxeme@md day2011Modelio praxeme@md day2011
Modelio praxeme@md day2011MDDAY11
 
Mia software@md day2011
Mia software@md day2011Mia software@md day2011
Mia software@md day2011MDDAY11
 
Blu age@md day2011
Blu age@md day2011Blu age@md day2011
Blu age@md day2011MDDAY11
 
Sogeti telosys@md day2011
Sogeti telosys@md day2011Sogeti telosys@md day2011
Sogeti telosys@md day2011MDDAY11
 

More from MDDAY11 (6)

No magic@md day2011
No magic@md day2011No magic@md day2011
No magic@md day2011
 
Modeliosoft@md day2011
Modeliosoft@md day2011Modeliosoft@md day2011
Modeliosoft@md day2011
 
Modelio praxeme@md day2011
Modelio praxeme@md day2011Modelio praxeme@md day2011
Modelio praxeme@md day2011
 
Mia software@md day2011
Mia software@md day2011Mia software@md day2011
Mia software@md day2011
 
Blu age@md day2011
Blu age@md day2011Blu age@md day2011
Blu age@md day2011
 
Sogeti telosys@md day2011
Sogeti telosys@md day2011Sogeti telosys@md day2011
Sogeti telosys@md day2011
 

Recently uploaded

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 

Recently uploaded (20)

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
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 ...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 

Axel uhl sap@md-day2011

  • 1. Where Modeling Has Arrived An Overview: Model-Driven Software Development at SAP Dr. Axel Uhl, Chief Development Architect, Technology Strategy, SAP AG November 24, 2011
  • 2. Does Anyone Remember…? MDA as thought of by the OMG  MOF-centric  Maybe using UML  Common Warehouse Metamodel?  Collection of implementation technologies (Java, .net, CORBA, Web Services)  XML-based model interchange  Typical set of services and concerns (security, transactions)  Intended for business domains  Facilitated by model transformations © 2011 SAP AG. All rights reserved. 2
  • 3. Some of It Confused Many of Us What’s optional? What’s mandatory?  Do domain-specific languages (DSL) fit in, or is it only UML? What works, what doesn’t?  Can I really exchange my models (repeatedly) using XMI? Diagrams…? What’s with CIM, PIM and PSM? How much vendor support is there?  What’s my choice of enterprise-grade MOF repository implementations?  What if I already have other, non-MOF repositories?  Does XMI really help me to get from one vendor’s tool to the next?  If I design my MDA-compliant model transformations, will they survive? © 2011 SAP AG. All rights reserved. 3
  • 4. What’s Modeling Anyway (or: Is Modeling ≡ UML)? There are many commonalities in what we call “programming language” and “modeling language.” Both  have abstract and concrete syntax  can be of rather declarative or imperative nature  can use different types of representation o (though we usually think of programming language artifacts as ASCII strings)  strive for adequate abstractions, concern separation and aspect localization Many challenges of “programming” also exist for “modeling”  physical partitioning and management of artifacts, multi-level editing  dependencies, extensibility  teamwork aspects (change management, versioning, ...) What’s the difference between  a code generator / model transformer and a compiler?  a piece of C++ code and a sequence chart? © 2011 SAP AG. All rights reserved. 4
  • 5. Language History © 2011 SAP AG. All rights reserved. 5
  • 6. Language History © 2011 SAP AG. All rights reserved. 6
  • 7. Language History © 2011 SAP AG. All rights reserved. 7
  • 8. Abstraction Improves Portability complete replace platform components 2&1 complete, deployed specification migration effort with system specification provided at abstract, portable levels amount of specification content migration effort with specification provided in platform-specific ways Enabling / cost reduction for  architecture evolution  optimization across layers sketches stack of abstractions and languages (examples only) process models component behavior runtime (e.g., ARIS) models (UML) (e.g., ABAP) (e.g., C/C++) © 2011 SAP AG. All rights reserved. 8
  • 9. Abstraction Improves Development Efficiency Take path of least effort  Detailing at low abstraction level causes extra effort and errors.  Example: write an object-oriented business application in assembler © 2011 SAP AG. All rights reserved. 9
  • 10. Abstract Properly! This is what the art of software design is all about.  Focus on the application domain  Suppress unnecessary detail  Avoid unnecessary dependencies  Anticipate future change Sounds familiar? Those are (more or less) key characteristics of modeling  Represent some real thing homomorphically Prof. Dr. Herbert Stachowiak  Representation and real thing are linked by a projection  The projection is driven by the pragmatics © 2011 SAP AG. All rights reserved. 10
  • 11. London Tube Map © 2011 SAP AG. All rights reserved. 11
  • 12. Crash Test Dummy © 2011 SAP AG. All rights reserved. 12
  • 13. Mannequins © 2011 SAP AG. All rights reserved. 13
  • 14. Partial Views © 2011 SAP AG. All rights reserved. 14
  • 15. Scale Models © 2011 SAP AG. All rights reserved. 15
  • 16. ...and the Wiring Plan as another Partial View © 2011 SAP AG. All rights reserved. 16
  • 17. Modeling How is a model trying to help?  More adequate domain abstractions  Less dependency on volatile underlying platform(s)  No unnecessary details The modeling language and its environment introduce a “platform” of their own (PIM vs. PSM…)  This platform has its own fate and mission.  It may decay just the same way as other platforms have disappeared.  Where’s your compiler that you wrote for your DSL back in 2001…? © 2011 SAP AG. All rights reserved. 17
  • 18. Models as Documentation Example: SAP’s Technical Architecture Modeling (TAM) Standard  UML enhancements for architecture models Required by SAP processes. Accepted by architects. © 2011 SAP AG. All rights reserved. 18
  • 19. Models for Interoperability and Standardization Example: Banking Industry Architecture Network (BIAN)  Standardizes a Service-Oriented Architecture (SOA) in the banking industry  Defines a BIAN meta model using MOF  Defines a UML profile allowing UML tools to edit BIAN models  Uses Object Constraint Language (OCL) to validate domain models o Against UML profile o Against domain rules  Generates HTML documentation from the models  Will be able to generate XML Schemas from message types defined in models http://www.bian.org/content © 2011 SAP AG. All rights reserved. 19
  • 20. Structured Metadata / Models in Development at SAP With SAP’s history, using repositories for structured metadata is very usual.  ABAP and R/3 largely work this way.  Many SAP tools followed this general paradigm.  Only two out of hundreds use a MOF-compliant repository  UML plays no role in “blueprint modeling” (models that impact the executable software by transformation or interpretation) © 2011 SAP AG. All rights reserved. 20
  • 21. The Tool Ticker – Integration Builder: Data Types Data Type Name & Namespace Software Components Versions Data Type Structure / XML Schema © 2011 SAP AG. All rights reserved. 21
  • 22. The Tool Ticker – Integration Builder: Business Objects New Service Interface New Data Type New Business Object © 2011 SAP AG. All rights reserved. 22
  • 23. The Tool Ticker – Integration Builder: Business Objects Business Object aggregates BO Nodes Key Data Structure (Re-)Use of Data Types © 2011 SAP AG. All rights reserved. 23
  • 24. The Tool Ticker – Integration Builder: Business Objects Actions for Business Logic Queries for retrieval of BO Nodes Associations between BO Nodes © 2011 SAP AG. All rights reserved. 24
  • 25. The Tool Ticker – ABAP BO Proxy Generator ES Repository Browser Name Mapping Type Mapping Corresponding ABAP Data Type to in ES Builder modeled Data Type © 2011 SAP AG. All rights reserved. 25
  • 26. The Tool Ticker – ABAP BO Viewer Key Data Structure Business Object (Re-)Use of Data Types aggregates BO Nodes Name Mapping © 2011 SAP AG. All rights reserved. 26
  • 27. The Tool Ticker – Maestro State & Action Modeling © 2011 SAP AG. All rights reserved. 27
  • 28. The Tool Ticker – Visual Composer 05 (WD Pattern) ES Browser connects to ES Repository Empty OIP Pattern © 2011 SAP AG. All rights reserved. 28
  • 29. The Tool Ticker – Visual Composer 05 (WD Pattern) BO Query Search View Result View Data Source Query © 2011 SAP AG. All rights reserved. 29
  • 30. The Tool Ticker – Visual Composer: UI Layout © 2011 SAP AG. All rights reserved. 30
  • 31. The Tool Ticker – Visual Composer: UI Layout © 2011 SAP AG. All rights reserved. 31
  • 32. The Tool Ticker – Visual Composer: UI Layout A lot of input fields, but only few are really needed © 2011 SAP AG. All rights reserved. 32
  • 33. The Tool Ticker – Visual Composer: Pattern Configuration Disable most of the optional input fields Search View © 2011 SAP AG. All rights reserved. 33
  • 34. The Tool Ticker – Visual Composer: Analytical Dashboards © 2011 SAP AG. All rights reserved. 34
  • 35. The Tool Ticker – Portal Content Studio © 2011 SAP AG. All rights reserved. 35
  • 36. The Tool Ticker – Portal Content Studio © 2011 SAP AG. All rights reserved. 36
  • 37. The Tool Ticker – WD Java: Data Modeler © 2011 SAP AG. All rights reserved. 37
  • 38. The Tool Ticker – WD Java: Navigation Modeler © 2011 SAP AG. All rights reserved. 38
  • 39. The Tool Ticker – J2EE Toolset © 2011 SAP AG. All rights reserved. 39
  • 40. The Tool Ticker – J2EE Toolset © 2011 SAP AG. All rights reserved. 40
  • 41. The Tool Ticker – Java Dictionary © 2011 SAP AG. All rights reserved. 41
  • 42. The Tool Ticker – Composite Application Framework © 2011 SAP AG. All rights reserved. 42
  • 43. The Tool Ticker – Guided Procedures © 2011 SAP AG. All rights reserved. 43
  • 44. The Tool Ticker – Guided Procedures © 2011 SAP AG. All rights reserved. 44
  • 45. The Tool Ticker – Guided Procedures © 2011 SAP AG. All rights reserved. 45
  • 46. The Tool Ticker – Guided Procedures © 2011 SAP AG. All rights reserved. 46
  • 47. The Tool Ticker – BEx Web Analyzer Drag and Drop © 2011 SAP AG. All rights reserved. 47
  • 48. The Tool Ticker – ESA Tool Overview Interface Structure Model Interface Structure Model (Business Document Object) XML - Schema Level 1 2 3 4 5 1 2 3 4 5 <X1> <A1> <A2> <A2> <A3> <A3> A1 A2 <A1> <X2> A3 <X3> <C2> X1 X2 X3 C2 <C1> C1 <C1> X X4 B3 B4 <X3> <C2> <X2> <X4> <B3> <B4> <B4> <B3> <X4> Directed relationships <X1> ESA Scenario Solution Map Configured Scenario Sales Order Quotation Processing RFQ Processing at Customer Variant Details Supply Planning Sales Order Purchase Order Processing at Process Interaction Model Processing (XI Repository) Customer A Inbound Delivery Outbound Delivery Processing at Processing Customer A Supplier Invoice Customer Invoice Processing at Processing Customer A A Due Item Processing Object Data Type A Payment Processing Payment Processing Model at Business Partner Accounting Payment processing Bank statement A Document at house bank creation at bank Processing Process Step Documentation Status Model © 2011 SAP AG. All rights reserved. 48
  • 49. The Tool Ticker – Solution Composer © 2011 SAP AG. All rights reserved. 49
  • 50. The Tool Ticker – ARIS: Process Components © 2011 SAP AG. All rights reserved. 50
  • 51. The Tool Ticker – Business Workflow © 2011 SAP AG. All rights reserved. 51
  • 52. The Tool Ticker – Business Workflow © 2011 SAP AG. All rights reserved. 52
  • 53. The Tool Ticker – Business Workflow © 2011 SAP AG. All rights reserved. 53
  • 54. The Tool Ticker – Business Workflow © 2011 SAP AG. All rights reserved. 54
  • 55. The Tool Ticker – Business Workflow © 2011 SAP AG. All rights reserved. 55
  • 56. The Tool Ticker – Enterprise Data Warehouse: Transform. © 2011 SAP AG. All rights reserved. 56
  • 57. The Tool Ticker – Enterprise Data Warehouse: Extraction © 2011 SAP AG. All rights reserved. 57
  • 58. The Tool Ticker – ABAP Class Builder © 2011 SAP AG. All rights reserved. 58
  • 59. The Tool Ticker – ABAP Web Dynpro © 2011 SAP AG. All rights reserved. 59
  • 60. The Tool Ticker – ABAP: Graphical Screenpainter © 2011 SAP AG. All rights reserved. 60
  • 61. The Tool Ticker – ABAP Data Modeler © 2011 SAP AG. All rights reserved. 61
  • 62. The Tool Ticker – ABAP Dictionary: Foreign Keys © 2011 SAP AG. All rights reserved. 62
  • 63. The Tool Ticker – Integration Builder: Business Scenarios © 2011 SAP AG. All rights reserved. 63
  • 64. The Tool Ticker – BI: Query Designer © 2011 SAP AG. All rights reserved. 64
  • 65. The Tool Ticker – BI: Report Designer © 2011 SAP AG. All rights reserved. 65
  • 66. The Tool Ticker – BI: Web Application Designer © 2011 SAP AG. All rights reserved. 66
  • 67. The Tool Ticker – Mobile Design Time © 2011 SAP AG. All rights reserved. 67
  • 68. The Tool Ticker – Mobile Design Time © 2011 SAP AG. All rights reserved. 68
  • 69. The Tool Ticker – JLin © 2011 SAP AG. All rights reserved. 69
  • 70. The Tool Ticker – Unit Testing © 2011 SAP AG. All rights reserved. 70
  • 71. The Tool Ticker – eCatt © 2011 SAP AG. All rights reserved. 71
  • 72. The Tool Ticker – TestZone © 2011 SAP AG. All rights reserved. 72
  • 73. The Tool Ticker – Web Dynpro Authoring Tool ABAP © 2011 SAP AG. All rights reserved. 73
  • 74. The Tool Ticker – Web Dynpro Authoring Tool Java © 2011 SAP AG. All rights reserved. 74
  • 75. The Tool Ticker This could go on for a long time… ... MOM, SLD, FDT, KM, Shanghai Tool, Easy Enhancement Workbench, ... Few of these tools - integrate in the same workbench environment - use compatible, integrated model repository technology - support end-to-end consistency checks - support methods for agile refactoring © 2011 SAP AG. All rights reserved. 75
  • 76. Or as Foote & Yoder Call It Big Balls of Mud (Also Works for Spaghetti…) “A BIG BALL OF MUD is haphazardly structured, sprawling, sloppy, duct-tape and bailing wire, spaghetti code jungle. We’ve all seen them. These systems show unmistakable signs of unregulated growth, and repeated, expedient repair. Information is shared promiscuously among distant elements of the system, often to the point where nearly all the important information becomes global or duplicated. The overall structure of the system may never have been well defined. If it was, it may have eroded beyond recognition. Programmers with a shred of architectural sensibility shun these quagmires. Only those who are unconcerned about architecture, and, perhaps, are comfortable with the inertia of the day-to-day chore of patching the holes in these failing dikes, are content to work on such systems.” [http://www.laputan.org/mud/] © 2011 SAP AG. All rights reserved. 76
  • 77. Textual Modeling – An Important Trend? Martin Fowler wrote about it  http://www.martinfowler.com/articles/languageWorkbench.html Several frameworks support it  e.g., EMFText, Xtext, FURCAS, TMF, TCS, MontiCore, (Oslo) General concept  Consider the abstract syntax tree (AST) a model  Consider the textual representation a view of a part of the model Frameworks vary greatly…  …in how they can deal with partial and/or overlapping views  …in how they preserve lexical information (whitespaces, line breaks, comments)  …in how they can store, retrieve and manage the models  …in what textual grammar classes they support  …in how powerful the mapping between meta model and textual syntax can be. © 2011 SAP AG. All rights reserved. 77
  • 78. Different Approaches towards Textual DSLs Compilers, hand-written File System Parse into repository for Compiler-Compilers, lex/yacc et al. improved tool support; hand-written .o smart editors with Compiler .class syntax and error highlighting; File System see SNiFF, Eclipse JDT and others Language workbench, .o Compiler .class deriving editor, parser and index automatically “Index” from mapping specification resulting in different Graphical Textual qualities Tools Tools geared towards different boundary conditions both make language design with tool support a lot easier Textual tools, projectional editors, working Graphical tools, working on structured object repository, database-like on structured object repository, database-like © 2011 SAP AG. All rights reserved. 78
  • 79. A Real Difference: Partial, Overlapping Wheel is part of two diagrams; each diagram only shows part of the domain vehicles vehicles Vehicle +wheels Wheel 0..1 1..* +doors Wheel Car Door 0..1 0..* 0..1 1 +engine Engine The challenge: updates through one view may update another © 2011 SAP AG. All rights reserved. 79
  • 80. A Real Difference: Partial, Overlapping Add attributes to Wheel vehicles vehicles Vehicle +wheels Wheel 0..1 1..* Car +doors Door 0..1 0..* 0..1 1 +engine Engine © 2011 SAP AG. All rights reserved. 80
  • 81. A Real Difference: Partial, Overlapping They also show up here, distort the layout and go against the view’s purpose vehicles vehicles © 2011 SAP AG. All rights reserved. 81
  • 82. A Real Difference: Partial, Overlapping So we remove them from the other view, but not the underlying domain model vehicles vehicles Vehicle +wheels Wheel 0..1 1..* Car +doors Door 0..1 0..* 0..1 1 +engine Engine © 2011 SAP AG. All rights reserved. 82
  • 83. A Real Difference: Partial, Overlapping Adding classes and associations, however, typically does not alter other views vehicles vehicles Vehicle +wheels Wheel 0..1 1..* Car +doors Door 0..1 0..* 0..1 1 +engine Engine © 2011 SAP AG. All rights reserved. 83
  • 84. A Real Difference: Partial, Overlapping With partial, overlapping views, delete has to come in two flavors. Delete from view… vehicles vehicles Vehicle +wheels Wheel 0..1 1..* Car +doors Door 0..1 0..* 0..1 1 +engine Engine © 2011 SAP AG. All rights reserved. 84
  • 85. A Real Difference: Partial, Overlapping …and delete from domain model vehicles vehicles Vehicle +wheels Wheel 0..1 1..* Car +doors Door AirPressureSensor 0..1 0..* 0..1 1 +engine Engine © 2011 SAP AG. All rights reserved. 85
  • 86. Imagine the same for Text Wheel class showing in two views of the vehicles package, one of them partial package vehicles { class Vehicle { package vehicles { Wheel 1..* wheels; class Wheel { } } class Wheel {} } class Car extends Vehicle { Door 0..* doors; Engine 1..1 engine; } class Engine {} } © 2011 SAP AG. All rights reserved. 86
  • 87. Imagine the same for Text Wheel class as partial view; Package vehicles with two partial views package vehicles { class Vehicle { package vehicles { Wheel 1..* wheels; class Wheel { } Double radius; class Wheel {} Boolean tubeless; class Car extends Vehicle { Double width; Door 0..* doors; AirPressureSensor 0..1 airPressureSensor; Engine 1..1 engine; } } class AirPressureSensor {} class Engine {} } } © 2011 SAP AG. All rights reserved. 87
  • 88. Imagine the same for Text Add attributes to Wheel class package vehicles { class Vehicle { package vehicles { Wheel 1..* wheels; class Wheel { } Double radius; class Wheel {} Boolean tubeless; class Car extends Vehicle { Double width; Door 0..* doors; } Engine 1..1 engine; } } class Engine {} } © 2011 SAP AG. All rights reserved. 88
  • 89. Imagine the same for Text Attributes also show up here package vehicles { class Vehicle { Wheel 1..* wheels; package vehicles { } class Wheel { class Wheel { Double radius; Double radius; Boolean tubeless; Boolean tubeless; Double width; Double width; } } } class Car extends Vehicle { Door 0..* doors; Engine 1..1 engine; } class Engine {} } © 2011 SAP AG. All rights reserved. 89
  • 90. Imagine the same for Text So we remove them from the other view, but not the underlying domain model package vehicles { class Vehicle { package vehicles { Wheel 1..* wheels; class Wheel { } Double radius; class Wheel {} Boolean tubeless; class Car extends Vehicle { Double width; Door 0..* doors; } Engine 1..1 engine; } } class Engine {} } © 2011 SAP AG. All rights reserved. 90
  • 91. Imagine the same for Text Adding classes and associations may not alter other views package vehicles { class Vehicle { package vehicles { Wheel 1..* wheels; class Wheel { } Double radius; class Wheel {} Boolean tubeless; class Car extends Vehicle { Double width; Door 0..* doors; AirPressureSensor 0..1 airPressureSensor; Engine 1..1 engine; } } class AirPressureSensor {} class Engine {} } } © 2011 SAP AG. All rights reserved. 91
  • 92. Imagine the same for Text With partial, overlapping views, delete has to come in two flavors. Delete from view… package vehicles { class Vehicle { package vehicles { Wheel 1..* wheels; class Wheel { } Double radius; class Wheel {} Boolean tubeless; class Car extends Vehicle { Double width; Door 0..* doors; AirPressureSensor 0..1 airPressureSensor; Engine 1..1 engine; } } class AirPressureSensor {} class Engine {} } } © 2011 SAP AG. All rights reserved. 92
  • 93. Imagine the same for Text …and delete from domain model package vehicles { class Vehicle { package vehicles { Wheel 1..* wheels; class Wheel { } Double radius; class Wheel {} Boolean tubeless; class Car extends Vehicle { Double width; Door 0..* doors; AirPressureSensor 0..1 airPressureSensor; Engine 1..1 engine; } } class AirPressureSensor {} class Engine {} } } This is pretty unusual for a text editor. But it is what happens when you apply the core principles of modeling. Under which circumstances is this useful? © 2011 SAP AG. All rights reserved. 93
  • 94. Is Modeling a Lost Cause? Not necessarily  Some convergence on Eclipse / EMF (at least somehow like EMOF)  Starting to use EMF as façade for existing design-time data / models  UML in widespread use for documentation  OCL starting to gain foothold in model validation  Some “textual modeling” starting, mostly based on EMF However  Still too many heterogeneous repositories and tool workbenches  Model interchange (XMI?) does not seem to solve our problems  No standards in use for model transformation / code generation  Tools lag behind in quality compared to tools for handling source code © 2011 SAP AG. All rights reserved. 94
  • 95. Summary Modeling adds to the history of computing  Partial and overlapping views, using different forms of notation  Comes with its own set of challenges Until modeling tools reach the maturity of, say, an Eclipse JDT, developers will perceive them as hindrance rather than accelerator. We need broadly-accepted and working standards We shouldn’t try to automate insoluble mapping problems.  “Computer! Turn my little high-level sketch into an executable system!” “Textual modeling” trend can bridge some gaps in interesting ways. © 2011 SAP AG. All rights reserved. 95
  • 96. Thank You! Questions? axel.uhl@sap.com © 2011 SAP AG. All rights reserved. 96
  • 97. © 2011 SAP AG. Alle Rechte vorbehalten. Weitergabe und Vervielfältigung dieser Publikation oder von Teilen daraus sind, Java ist eine eingetragene Marke von Sun Microsystems, Inc. zu welchem Zweck und in welcher Form auch immer, ohne die ausdrückliche JavaScript ist eine eingetragene Marke der Sun Microsystems, Inc., verwendet schriftliche Genehmigung durch SAP AG nicht gestattet. In dieser Publikation unter der Lizenz der von Netscape entwickelten und implementierten Technologie. enthaltene Informationen können ohne vorherige Ankündigung geändert werden. SAP, R/3, SAP NetWeaver, Duet, PartnerEdge, ByDesign, SAP BusinessObjects Die von SAP AG oder deren Vertriebsfirmen angebotenen Softwareprodukte Explorer, StreamWork und weitere im Text erwähnte SAP-Produkte und - können Softwarekomponenten auch anderer Softwarehersteller enthalten. Dienstleistungen sowie die entsprechenden Logos sind Marken oder eingetragene Microsoft, Windows, Excel, Outlook, und PowerPoint sind eingetragene Marken Marken der SAP AG in Deutschland und anderen Ländern. der Microsoft Corporation. Business Objects und das Business-Objects-Logo, BusinessObjects, Crystal IBM, DB2, DB2 Universal Database, System i, System i5, System p, System p5, Reports, Crystal Decisions, Web Intelligence, Xcelsius und andere im Text System x, System z, System z10, System z9, z10, z9, iSeries, pSeries, xSeries, erwähnte Business-Objects-Produkte und Dienstleistungen sowie die zSeries, eServer, z/VM, z/OS, i5/OS, S/390, OS/390, OS/400, AS/400, S/390 entsprechenden Logos sind Marken oder eingetragene Marken der Business Parallel Enterprise Server, PowerVM, Power Architecture, POWER6+, POWER6, Objects Software Ltd. Business Objects ist ein Unternehmen der SAP AG. POWER5+, POWER5, POWER, OpenPower, PowerPC, BatchPipes, Sybase und Adaptive Server, iAnywhere, Sybase 365, SQL Anywhere und BladeCenter, System Storage, GPFS, HACMP, RETAIN, DB2 Connect, RACF, weitere im Text erwähnte Sybase-Produkte und -Dienstleistungen sowie die Redbooks, OS/2, Parallel Sysplex, MVS/ESA, AIX, Intelligent Miner, WebSphere, entsprechenden Logos sind Marken oder eingetragene Marken der Sybase Inc. Netfinity, Tivoli und Informix sind Marken oder eingetragene Marken der IBM Sybase ist ein Unternehmen der SAP AG. Corporation. Alle anderen Namen von Produkten und Dienstleistungen sind Marken der Linux ist eine eingetragene Marke von Linus Torvalds in den USA und anderen jeweiligen Firmen. Die Angaben im Text sind unverbindlich und dienen lediglich zu Ländern. Informationszwecken. Produkte können länderspezifische Unterschiede Adobe, das Adobe-Logo, Acrobat, PostScript und Reader sind Marken oder aufweisen. eingetragene Marken von Adobe Systems Incorporated in den USA und/oder Die in dieser Publikation enthaltene Information ist Eigentum der SAP. Weitergabe anderen Ländern. und Vervielfältigung dieser Publikation oder von Teilen daraus sind, zu welchem Oracle ist eine eingetragene Marke der Oracle Corporation. Zweck und in welcher Form auch immer, nur mit ausdrücklicher schriftlicher UNIX, X/Open, OSF/1 und Motif sind eingetragene Marken der Open Group. Genehmigung durch SAP AG gestattet. Citrix, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame und MultiWin sind Marken oder eingetragene Marken von Citrix Systems, Inc. HTML, XML, XHTML und W3C sind Marken oder eingetragene Marken des W3C®, World Wide Web Consortium, Massachusetts Institute of Technology. © 2011 SAP AG. All rights reserved. 98