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

Axel uhl sap@md-day2011

  • 1.
    Where Modeling HasArrived 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…? MDAas 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 ItConfused 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 © 2011SAP AG. All rights reserved. 5
  • 6.
    Language History © 2011SAP AG. All rights reserved. 6
  • 7.
    Language History © 2011SAP 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 DevelopmentEfficiency 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 iswhat 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 SAPAG. All rights reserved. 13
  • 14.
    Partial Views © 2011SAP AG. All rights reserved. 14
  • 15.
    Scale Models © 2011SAP AG. All rights reserved. 15
  • 16.
    ...and the WiringPlan as another Partial View © 2011 SAP AG. All rights reserved. 16
  • 17.
    Modeling How is amodel 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 Interoperabilityand 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 towardsTextual 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 samefor 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 samefor 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 samefor 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 samefor 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 samefor 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 samefor 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 samefor 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 samefor 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 aLost 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 tothe 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 SAPAG. 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