Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S
Page 2 Introduction Modeling Model based software development ... in an ideal world: MDA ... in the real world: DSL’s Demo Summary and questions Agenda
Page 3 The next 2 x 45 minutes will be Pragmatic Useful in ”the real world” Focused on technology Introduction
Page 4 $ The business angle
Page 5 Hopefully you will get an idea about What is model driven software development? Why use it? Other stuff includes a bunch of acronyms Introduction
Page 6 Who am I? 33 years old, MSc in computer science Works as a software architect at Intentia R&D in Ballerup Does model based J2EE e-Commerce applications for a living Introduction
Page 7 Introduction Modeling Model based software development ... in an ideal world: MDA ... in the real world: DSL’s Demo Summary and questions Agenda
Page 8 As defined by OMG: Designing before coding A model is an abstraction – it gives a high-level description of objects Models are often graphical You often have specialized tooling for modeling Modeling
Page 9 Level 0Information (data) Product(”DVD Player”, ) Level 1Model (metadata) Record(”Product”, (Field(”name”, String), Field(”price”, Money)) Level 2Metamodel (meta-metadata) Class(”Record”, (Attr(”name”, String), Attr(”fields”, List )) Class(”Field”, […]) Level 3Meta-metamodel Hardwired Modeling
Page 10 Introduction Modeling Model based software development ... in an ideal world: MDA ... in the real world: DSL’s Demo Summary and questions Agenda
Page 11 What is software development? Specification Design Coding Testing etc. And processes to connect it all Software development
Page 12 ´The challenge: it’s too difficult Coding Time to write code Total time Program size Time spent
Page 13 The natural extension of programming languages High-level primitives The model becomes the code Model based software development Model (program) Artifacts Generator (compiler)
Page 14 Design = code Reduced time consumption – lower cost. Early validation – perhaps more in theory than in practice Agility Simplicity - avoid (some of) the complexity that always creeps into large software projects Platform independence Advantages of model based development
Page 15 Compared to component libraries, modeling and code generation gives you Simplicity Consistency checking Portability No need for AOP and other dirty tricks Modeling vs. component libraries
Page 16 Introduction Modeling Model based software development ... in an ideal world: MDA ... in the real world: DSL’s Demo Summary and questions Agenda
Page 17 MDA is defined by the Object Management Group, OMG Much theory, little practice Modeling: Model Driven Architecture
Page 18 Not targeted at any specific kind of applications The core concern: platform independency Platform Independent Model describes business logic Platform Specific Model describes mapping to underlying platform From the PIM programs are generated using one or more PSM’s Modeling: MDA
Page 19 Mix of multiple languages for separate domains Not really useful Modeling: Unified Modeling Language
Page 20 XML is a way of expressing metadata (structure) in textual data Effective XML Elliotte Rusty Harold XML is really great because of ubiquitous tooling human readability Modeling: (XMI and) XML
Page 21 Introduction Modeling Model based software development ... in an ideal world: MDA ... in the real world: DSL’s Demo Summary and questions Agenda
Page 22 More specific metamodel and code generation than in MDA DSL’s have primitives that somehow match a domain … defined technically, functionality-wise or in other ways Examples: see Modeling: Domain Specific Languages
Page 23 On top of the advantages of more generic modeling like UML Better coverage Consistency checking - at a high level All in all: SIMPLICITY Advantages of DSL’s
Page 24 Handling of nonfunctional requirements like Performance Concurrency support Security DSL’s make it harder to shoot yourself in the foot Advantages of DSL’s, continued
Page 25 Introduction Modeling Model based software development ... in an ideal world: MDA ... in the real world: DSL’s Demo Summary and questions Agenda
Page 26 Demo
Page 27 Introduction Modeling Model based software development ... in an ideal world: MDA ... in the real world: DSL’s Demo Summary and questions Agenda
Page 28 Model based software development: generate code from model Increases simplicity, lowers price Allows you to focus on business value instead of technical details Questions? Summary and questions
Page 29