One size doesn’t fit at all Atom Free IT Robert Deckers v10 20141006 A comparison between MDD approaches from a customer perspective Atom Free IT 1 Content • Model driven development and the hit parade • The framework + examples • What’s next Atom Free IT 2 MDD was not in the (h)IT parade • MDD approaches exist for 30 years • Different names, different forms • Large productivity potential • Computers do it faster and better that humans • Misunderstanding and disbelief have hindered large-scale adoption • “We’ve tried it before and it didn’t work” • A strong establishment: • Revolution is more difficult than evolution • Upfront investment is always difficult • Pay the experts by the hour requires less responsibility Atom Free IT 3 MDD enters the IT parade • MDD is recognized: • • • • More publications and conferences “We did it before. I am surprised it is forgotten.” Terminology is stabilizing I get questions about MDD: • …. “can you also do this for my programming language?” • “Which MDD approach should we use?” • MDD is offered (and sold) • More and more approaches offered by commercial suppliers. • Terminology hijacking (M.I.N.O.) • MDD is needed • Demand for software functionality is higher that software supply. • Functionality wins battles. Quality wins the war. • Rugby players don’t win chess games Atom Free IT 4 Just some options….. • • • • • • • Thinkwise Mendix Beinformed MetaEdit+ Verum (ASD) Serendip-it Appmachine • • • • • • • Mbeddr UML Modelling tools xUML Google appengine Tobago Webratio MPS • Outsystems • Blueriq • Rascal • Xtext • Movilizer/mobilitas • Betty Blocks • Scala • Pega • ….. Atom Free IT 5 Need it, seen it, let’s do it Which MDD approach should we use? A comparison would be nice. A sustainable one please A framework for comparing MDD approaches Atom Free IT 6 Main use cases Per main use case: • Sub use cases • Cross use case aspects Atom Free IT 7 Main elements of MDD approaches Atom Free IT 8 Specify Atom Free IT 9 Specify 1. Sub use cases: 1. How are models made 1. 2. 3. 2. How do you change an already implemented model? 1. 3. 2. How is this connected/related to functional management of other software? How is the modelling language extended? (including everything related to it.) Aspects for all uses cases: 1. 2. 3. 4. 3. How do you analyse the impact of a change? How are models managed? 1. 4. What input is needed to make a model? How are models verified? (syntactically correct.) How is a model validated? (semantically correct. Is it a model of the right things?) Modelling language (concepts and notation) Modelling tool: approach specific vs standard tool vs configurable generic tool (also for transforming models to software) Modelling method (steps/phases and guidance) Roles in modelling: e.g. domain expert, information analyst, modeller. Process aspects: learning curve, education requirements. Method documentation, modelling support... Atom Free IT 10 Approach Modelling concepts Verification Method Thinkwise Data model, triggers on data model, screen layouts (based on basic layouts), process flows, grouped in projects Call, extendible None Mendix Domain model, attribute triggers, screen layouts (based on basic layouts), microflows for notentity specific behaviour, grouped in modules Call, no completeness None Beinformed Products, Rules (calculations/decisions), register, At save, autocomplete processes, grouped in repositories. None ASD States, events, calls, notifications, interfaces, components, graphical Call, state machine properties Much theory available MetaEdit+ Metaclasses, metarelations, properties. graphical Meta model compliancy, self built. Book Serendip-IT Action types, object types, hierarchy, functions, operations, triggers. Call, only partial Explicit method Atom Free IT 11 Realise Atom Free IT 12 Realise 1. Sub use cases: 1. 2. How is a model completed for transformation? How is the transformation configurated?: 1. 2. 3. 3. 4. How is the transformation prototyped and/or simulated? (if possible) How does the transformation go? 1. 2. 3. 5. 2. Generation and/or interpretation? What is the output? Retransformation into existing system (existing code and existing data) How is the application completed? 1. 2. 3. 4. 6. Which transformation rules are selectable and/or adjustable? Which choice for the runtime architecture? In general: what are the parameters? What has to be added tot the transformation output to get fully functional software? What interfaces are there to add own code? How goes the integration with other systems/software? What still has to be programmed? How is the application tested? Aspects: 1. How does the development environment look like? 1. 2. 2. For programming For transformation What is the approach for DTAP? Atom Free IT 13 Approach Transformation technique Transformation rules Thinkwise Generation, runtime framework Fixed, extendible for extra output. Mendix DB schema generated, Rest runtime interpreted Fixed, DBMS configurable Security level configurable BeInformed Interpreter, Partial transformation Fixed, Conf. mapping to existing database ASD Generation (via Verum server) Runtime engine Fixed, output language conf, multi/single threaded configurable MetaEdit+ Generation from model repository and own generator. Transformation language for programming generator Serendip-IT Generation + runtime library Fixed, adjusted on request. Atom Free IT 14 Use Atom Free IT 15 Use the application 1. Use cases: 1. Using the application: 1. 2. 3. 2. What are the standard screens (GUI elements) and usage patterns? Interface technology (web, mobile, desktop) How is user authorization handled? How is the software operationally managed? 1. 2. 3. What interfaces are there for other software? (middleware, OS, DBMS, other applications) Analyze a user problem or other operational issue? Are there specific interfaces for application management? 2. Aspects: 1. 2. User support (end user and application manager: training, help, helpdesk Technical dependencies: 1. 2. 3. Base platform (OS, middleware, DBMS) that must be installed? Where is the application data stored? Security? (other non-functional aspect: e.g. error handling) Atom Free IT 16 Manage Atom Free IT 17 Manage MDD approach 1. Sub use cases: 1. 2. How do you acquire the MDD approach? How do you determine when to use the MDD approach for an application? 1. 2. 3. 3. How is the investment curve? 1. 2. 3. 4. At which moments you have to invest and when do they pay back and in which form? How future proof is/seems the approach? How goes the management of tooling, licences and other related assets? How to replace or discard the approach? 1. 2. Suited for which sort of applications? How is this exposed int he approach? Which business domain and/or application domain? Which non-functional properties? How is the vendor lock-in? Aspects: 1. How does it change the system/enterprise architecture? 1. 2. 3. What support does the supplier and partners offer for the approach?(modelling, transformation, operational) Development department: 1. 2. 3. 4. How is this different form non-MDD software? (processes, information models) What is the impact on the overall development process and tooling? What is the needed in-house expertise and how much? What changes in the relation between business (customer) and IT/development? What to do with existing (software) assets 1. 2. Existing data? What to do with the installed software base (existing applications) Atom Free IT 18 Next… • Improve evaluation of existing candidates • More candidates: critical users please • Improve the comparison framework: review and extend • Extend framework from customer characteristics: • Application domain • Technology landscape: application and infra • Development organisation: business and IT Please join, any contribution is welcome. Atom Free IT 19 Thanks to: • Sligro: Hugo Jaspers, René Buijssen • IT-Visors: Marc Den Hartog, Mark Hameleers • Nspyre: Stefan Dreverman • TNO: Zoltan Papp, Julio de Oliveira, Yolanda Rieter • FEI: Emile van Gerwen • Pro!Flex: Marko Schulten Thank you for listening Atom Free IT automates the automation for true business agility Presentation on: www.atomfreeit.com/mddcontent Atom Free IT 20 modelling env ironment modelling rmethod modelling step modelling tool shows handles Notation element defined in terms of model v iew point modelling language handles represents application framew ork application landscpe user interface element modelling concept according to based on technical interface element interface element during model v iew application application element autorisation element based on from detected on on to based on to application problem model from this is just one example of the elements in an applicaiton framework framew ork element MDD approach: details according to transformation execution transformation rule follows execution on defines reaction to model change transformer Atom Free IT 21