1 / 29

Model Based Software Development - a pragmatic view

Model Based Software Development - a pragmatic view. Mikkel Lauritsen Intentia R&D A/S mikkel.lauritsen@intentia.dk. Agenda. Introduction Modeling Model based software development ... in an ideal world: MDA ... in the real world: DSL’s Demo Summary and questions. Introduction.

oliana
Download Presentation

Model Based Software Development - a pragmatic view

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Model Based Software Development- a pragmatic view • Mikkel Lauritsen • Intentia R&D A/S • mikkel.lauritsen@intentia.dk

  2. Agenda • Introduction • Modeling • Model based software development • ... in an ideal world: MDA • ... in the real world: DSL’s • Demo • Summary and questions

  3. Introduction The next 2 x 45 minutes will be • Pragmatic • Useful in ”the real world” • Focused on technology

  4. The business angle $

  5. Introduction Hopefully you will get an idea about • What is model driven software development? • Why use it? Other stuff includes • a bunch of acronyms

  6. Introduction 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

  7. Agenda • Introduction • Modeling • Model based software development • ... in an ideal world: MDA • ... in the real world: DSL’s • Demo • Summary and questions

  8. Modeling 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

  9. Modeling Level 0 Information (data) Product(”DVD Player”, 299.95) Level 1 Model (metadata) Record(”Product”, (Field(”name”, String), Field(”price”, Money)) Level 2 Metamodel (meta-metadata) Class(”Record”, (Attr(”name”, String), Attr(”fields”, List<”Field”>)) Class(”Field”, […]) Level 3 Meta-metamodel Hardwired

  10. Agenda • Introduction • Modeling • Model based software development • ... in an ideal world: MDA • ... in the real world: DSL’s • Demo • Summary and questions

  11. Software development What is software development? • Specification • Design • Coding • Testing • etc. And processes to connect it all

  12. Coding • ´The challenge: it’s too difficult Time spent Total time Time to write code Program size

  13. Model based software development • The natural extension of programming languages • High-level primitives • The model becomes the code Generator (compiler) Model (program) Artifacts

  14. Advantages of model based development • 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

  15. Modeling vs. component libraries Compared to component libraries, modeling and code generation gives you • Simplicity • Consistency checking • Portability • No need for AOP and other dirty tricks

  16. Agenda • Introduction • Modeling • Model based software development • ... in an ideal world: MDA • ... in the real world: DSL’s • Demo • Summary and questions

  17. Modeling: Model Driven Architecture • MDA is defined by the Object Management Group, OMG • http://www.omg.org • Much theory, little practice

  18. Modeling: MDA 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

  19. Modeling: Unified Modeling Language • Mix of multiple languages for separate domains • Not really useful

  20. Modeling: (XMI and) XML XML is a way of expressing metadata (structure) in textual data <book> <title>Effective XML</title> <author>Elliotte Rusty Harold</author> <price>31.49</price> </book> XML is really great because of • ubiquitous tooling • human readability

  21. Agenda • Introduction • Modeling • Model based software development • ... in an ideal world: MDA • ... in the real world: DSL’s • Demo • Summary and questions

  22. Modeling: Domain Specific Languages 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 http://compose.labri.fr/documentation/dsl/

  23. Advantages of DSL’s On top of the advantages of more generic modeling like UML • Better coverage • Consistency checking - at a high level All in all: SIMPLICITY

  24. Advantages of DSL’s, continued Handling of nonfunctional requirements like • Performance • Concurrency support • Security DSL’s make it harder to shoot yourself in the foot

  25. Agenda • Introduction • Modeling • Model based software development • ... in an ideal world: MDA • ... in the real world: DSL’s • Demo • Summary and questions

  26. Demo

  27. Agenda • Introduction • Modeling • Model based software development • ... in an ideal world: MDA • ... in the real world: DSL’s • Demo • Summary and questions

  28. Summary and questions • Model based software development: generate code from model • Increases simplicity, lowers price • Allows you to focus on business value instead of technical details Questions?

More Related