I n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © 2003 - 2006 M a rk u s V ö l t e r MDSD Intro & Overview.

Slides:



Advertisements
Similar presentations
Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
Advertisements

Chapter 22 UML Tooks and UML as Blueprint Model-Driven Architecture (MDA) Object-Constraint Language (OCL)
Alternate Software Development Methodologies
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Programming Distributed Systems Lab Institute of Computer Science University of Augsburg Universitätsstraße 14, D Augsburg Tel.: (+49) 821/ ,
I n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD‘s role as an architectural.
Formal Techniques in Software Engineering Universiteit AntwerpenIntroduction 1.1 Formal Techniques in Software Engineering 3de BAC Informatica Chapter.
OMG‘s MDA: An Overview copyright © 2001, MATHEMA AG OMG‘s MDA: An Overview OMG‘s MDA: An Overview Markus Völter
I n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r. Model-Driven Development.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB JavaForum.
Modeling Process-Oriented Integration of Services Using Patterns and Pattern Primitives Uwe Zdun and Schahram Dustdar Distributed Systems Group Institute.
Amit, Keyur, Sabhay and Saleh Model Driven Architecture in the Enterprise.
The Knowledge Industry Survival Strategy (KISS) Tony Clark, Thames Valley University, London, UK Jorn Bettin, Sofismo, Switzerland.
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
Page 1 Model Based Software Development - a pragmatic view Mikkel Lauritsen Intentia R&D A/S
7 July 2003 MDA presentation Dennis Wagelaar 1 Model-Driven Architecture The current state of affairs.
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Model Driven Architecture (MDA) Partha Kuchana. Agenda What is MDA Modeling Approaches MDA in a NutShell MDA Models SDLC MDA Models (an Example) MDA -
© Copyright Eliyahu Brutman Programming Techniques Course.
End-to-End Design of Embedded Real-Time Systems Kang G. Shin Real-Time Computing Laboratory EECS Department The University of Michigan Ann Arbor, MI
Course Instructor: Aisha Azeem
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
1 Ivano Malavolta, University of L’aquila, Computer Science Department Ivano Malavolta DUALLy: an Eclipse platform for architectural languages interoperability.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Spectra Software Defined Radio Products Applying Model Driven Design, Generative Programming, and Agile Software Techniques to the SDR Domain OOPSLA '05.
On Roles of Models in Information Systems (Arne Sølvberg) Gustavo Carvalho 26 de Agosto de 2010.
MDA Guide Version CYT. 2 Outline OMG Vision and Process Introduction to MDA How is MDA Used? MDA Transformations Other MDA Capabilities Using the.
UML - Development Process 1 Software Development Process Using UML (2)
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Faculty of Informatics and Information Technologies Slovak University of Technology Peter Kajsa and Ľubomír Majtás Design.
Workshop on Integrated Application of Formal Languages, Geneva J.Fischer Mappings, Use of MOF for Language Families Joachim Fischer Workshop on.
MDA and QVT  Tom Gullion, Director of Product Management, Together Products.
I n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r. MDSD Best Practices -
MDE Model Driven Engineering Xavier Blanc Université Pierre et Marie Curie
Introduction to MDA (Model Driven Architecture) CYT.
I n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r. Using DSLs in Practice.
Alignment of ATL and QVT © 2006 ATLAS Nantes Alignment of ATL and QVT Ivan Kurtev ATLAS group, INRIA & University of Nantes, France
2nd TTCN-3 User Conference, June The TTCN-3 Metamodel – A Basis for Tool Integration Ina Schieferdecker TU Berlin/Fraunhofer Fokus Hajo Eichler,
D O M A I N – D R I V E N D E V E L O P M E N T: Introduction i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e.
ISO/IEC CD and WD : Core Model and Model Mapping ISO/IEC JTC1/SC32/WG September 2005, Toronto SC32/WG2 Japan (Kanrikogaku Ltd) Masaharu.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Model Driven Development An introduction. Overview Using Models Using Models in Software Feasibility of MDA MDA Technologies The Unified Modeling Language.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
I n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r. Model-Driven Software.
Chapter 3 Agile Software Development (1/2) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
On the Role of Abstract Platform in Model Driven Development* Marten van Sinderen Centre for Telematics and Information Technology, University of Twente,
Roles in Software Development using Domain Specific Modelling Languages Holger Krahn, Bernhard Rumpe, Steven Völkel Software Systems Engineering Technische.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
December 4, ICSSEA’03 The SmartTools Software Factory The MDA approach and Generative programming for Software Development:
Semantics for DSL Group Members: Ritu Arora, Diyang Chu, Zekai Demirezen, Jeff Gray, Jacob Gulotta, Luis Pedro, Arturo Sanchez, Greg Sullivan,Ximing Yu.
OOPSLA workshop on Domain-Specific Visual Languages 1 Juha-Pekka Tolvanen, Steven Kelly, Jeff Gray, Kalle Lyytinen.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Science and Technology Norwegian University of NTNU Rolv Bræk, January Introduction to Systems Engineering by Rolv Bræk NTNU.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Model Driven Performance Analysis University College London James Skene –
1 Requirements Engineering for Agile Methods Lecture # 41.
Model Driven Architecture MDA SE-548 Lale Doğan
CHESS Methodology and Tool Federico Ciccozzi MBEES Meeting Sälen, January 2011 January 2011.
SysML v2 Formalism: Requirements & Benefits
Constructing MDA-based Application Using Rational XDE for .NET
Model-Driven Software Development
Model Driven Software Development
Software Architecture & Design
Presentation transcript:

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview Markus Völter Model-Driven Software Development Introduction and Overview

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview Domain Driven Development Domain Driven Development is about making software development more domain-related as opposed to computing related. It is also about making software development in a certain domain more efficient.

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview How MDSD works Developer develops model(s) based on certain metamodel(s), expressed using a DSL. Using code generation templates, the model is transformed to executable code. Alternative: Interpretation Optionally, the generated code is merged with manually written code. One or more model-to- model transformation steps may precede code generation.

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview Reasons for DDD Software Development is too complex and too expensive (now, this is a really new finding ) … … because: There is too little reuse Technology changes faster than developers can learn Knowledge and practices are hardly captured explicitly and made available for reuse Domain experts cannot understand all the technology stuff involved in software development DDD aims at attacking some of these problems. We shall see how on the following slides.

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview What is a „Domain“ A definition could be: A domain is a bounded area of knowledge or interest. Examples (from the world of Software) include: eBanking Embedded Software Web-Based eBusiness Applications Control Software for 4-Cylinder Diesel Engines Astronomical Image Processing Software Domains can have varios „scopes“ as well as various „flavours“ – see next slides.

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview Hierarchical Structuring of Domains Since Domains can be of any size or granularity, it is useful to structure domains hierarchically. Automotive Example: eBanking Example:

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview „Kinds“ of Domains In the context of software development it is also useful to distinguish (at least) two kinds of domains: Technical Domains adress key technical issues related to software development such as Distribution, Failover and Load-Balancin Persistence and Transactions GUI Design Concurreny and Realtime Functional Domains represent the business/professional issues; examples include Banking Human resource management Insurance Engine Controllers Astronomical Telescope Control

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview MDSD Core Concepts Model Domain Specific Language Metamodel textual graphical Domain Ontology bounded area of knowlege/interest semantics precise/ executable multiple partial viewpoint subdomains composable Metametamodel target software architecture software architecture transform compile interpret multi-step single-step no roundtrip knowledge several design expertise

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview Example 1: Model and Metamodel interface Sensor { operation start():void; operation stop():void; operation measure():float; } interface Controller { operation reportProblem(Sensor s, String errorDesc ):void; }

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview Example 2: Model (J2ME apps)

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview Example 2: Metamodel (J2ME apps)

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview Example 3: Model (Components, Ports, Connectors) <instance name=”controller” type=”Control”/> <instance name=”tempInside” type=”TemperatureSensor”>´ … <providedPort instance="tempOutside" port="measurementPort"> <requiredPort instance="controller" port="sensorsPort"> <providedPort instance="controller" port="controllerPort"> <requiredPort instance="tempOutside" port="controllerPort> … …

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview Example 3: Metamodel (Components, Ports, Connectors)

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview Example 4: Workflow Model (UML + Stereotypes)

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview Example 4: Workflow Model II (UML + Stereotypes)

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview Example 5: Power Grid

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview Example 5: Power Grid Metamodel

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview MDSD Core Values We prefer to validate software-under-construction over validating software requirements We work with domain-specific assets, which can be anything from models, components, frameworks, generators, to languages and techniques. We strive to automate software construction from domain models; therefore we consciously distinguish between building software factories and building software applications We support the emergence of supply chains for software development, which implies domain-specific specialization and enables mass customization

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview MDSD Core Building Blocks domain analysis meta modelling model-driven generation (and: model transformation) template languages domain-driven framework design the principles for agile software development the development and use of Open Source infrastructure

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview MDSD and Requirements/Analysis An often-asked question is: are MDSD models the same as requirements /analysis models? They can be, but in general, they are not. Analyis/requirements models are non-computational, MDSD models are compuatational.  somewhere the „intellectual work of development and problem solving“ has to be put into the system. Usually, this is on the stage from requirements/analysis to (computational) MDSD models. How can MDSD help with requirements? Formalizing Requirements using a DSL is benefitial because requirements become unambigious. Adapted from Frankel‘s book on MDA

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview MDA and Model Driven Software Development Overview Model Domain Specific Language Metamodel textual graphical Domain Ontology bounded area of knowlege/interest semantics precise/ executable multiple partial viewpoint subdomains composable Metametamodel transform compile interpret multi-step single-step no roundtrip UML+ Profiles MOF OCL, Action Semantics PIM, PSM,.... QVT several target software architecture software architecture Application design expertise Focus: Platform Independence, (Tool) Interop

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview Other related approaches Microsoft’s Software Factories: Focus on Reuse, Efficient Development, DSLs Domain-Specific (Visual) Modelling: Focus on (Visual) DSLs Generative Programming: Focus on Efficiency, “Automatic Manufactoring”, Software System Families Language-Oriented Programming: Focus on DSLs instead of Frameworks, incl. Editor/Debugger Support  all basically the same

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview MDSD and Agility Agile Manifesto: We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: - Individuals and interactions over processes and tools - Working software over comprehensive documentation - Customer collaboration over contract negotiation - Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. MDSD-Models are no „paperwork“, they are the code which is translated to code automatically Agility does not oppose tools in general – compilers are ok, model transformers are a kind of compiler

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview MDSD and Agility II Project automation (ant, cruisecontrol) is ok in „agile minds“, so is automation of the writing of repetitive code Automation of the development process makes responding to change easier and faster (single source principle). Changes in the model respond to changes in the functional requirements Changes in the templates/transformations can be used to evolve the architecture The customer on-site can be integrated better, if we have languages that are better related to domain concepts as opposed to 3GL code or the like. Pair programming between developer and domain expert is more realistic.

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview MDSD and Agility III Tests can still be written manually (even before generation), generators can help is building mocks or scenarios We do not recommend a waterfall that first builds generators and then builds apps, rather, both are iteratively evolved in parallel. Domains Architectures are based on experience, not based on „big design upfront“ Developers can do what they can do best: Some deal with applications and customer requirements, Others deal with technical architecture, platforms and generators So: There is no problem with Agility and MDSD!

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview Reasons for using MDSD You want to provide a way for your domain-experts to formally specify their knowledge, and to provide a way for your technology people to define how this is implemented (using model transformations). You might want to provide different implementations (i.e. more concrete models) for the same model, perhaps because you want to run it on different platforms (.NET, Java, CORBA). You may want to capture knowledge about the domain, the technology, and their mapping in a clear, uncluttered format. In general, you don’t want to bother with implementation details when specifying your functionality. MDSD results in a fan-out, i.e. one set of models can be the source for transformations to several targets. Another reason for using MDSD: You are working in the context of product lines and software system families and need to develop domain-specific assets.

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview MDSD Benefits I Models are free of implementation artifacts – they directly represent domain knowledge and are thus reusable. Implementations for various platforms can be generated in principle – the technology change problem is adressed to some extend. Technology freaks and domain experts can take care of „their business“ (transformations and models, respectively) and need to care of each other‘s problems only in a limited way. Domain experts can play a direct role in development since they can more easily understand models expressed with a DSL as opposed to implementation code.  Domain Experts play the central role they deserve!

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview MDSD Benefits II Development becomes more efficient since repetitive implementation code can be generated automatically. Architectural contraints/rules/patterns can more easily be enforced, since the they are embedded in the templates rather than just being documented (and ignored). This is especially important in really large teams, often in the context of Product-Line Engineering and Software System Families. Transformer/Generator can address cross-cutting concerns (just like an aspect weaver)

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview MDSD Predjudices MDSD does not require UML – any kind of modelling language is ok, graphical or textual Precise and complete models… … are not the the same as „visualized code“ – the abstraction level is higher … are not the same as analysis models – analysis models are not computational MDSD does not require – not even recommend – a waterfall. Development of the generative infrastructure is iterative and incremental. You do not need big and expensive tools – a lot of small and useful open source tools are available. You don‘t need to generate 100% of the code – it is ok, to also code some aspects in a 3GL.

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview Benefits for Software Quality MDSD requires an explicit, well-defined architecture. Defining an architecture this way improves the quality of the system (indpendent of whether it is generated or not). Transformations capture expert knowledge. The generated code reflects this expert knowledge uniformly. An Domain Archtitecture defines a strict programming model for the manually developed parts – again, uniformity and constrained-ness improves quality. Generator does not produce accidental errors – either things are always right or always wrong. This makes finding errors easier! Models can serve as an up-to-date and always current documentation.

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview Benefits for Software Quality II In general, MDSD forces you to take care of many good things, which you‘d like to have in any application development project: Domain/Application Scoping Variability Management Well-Defined Software Architecture, Architecture Metamodelling Trying to build a generator for a domain/target architecture enables your understanding of the domain/target architecture. This in itself is a huge benefit.

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview No Free Lunch - Challenges You need additional skills in your team (domain analysis, metamodelling, generator development, architecture)  You need a couple of good people who usually aren‘t easy to get, and who aren‘t cheap. Your development process needs to reflect the two-track nature of MDSD (domain architecture development, application development) Sometimes tools require some „creative use“ and improvisation (  use open source!) Remember: a fool with a tool is still a fool generator

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview MDSD (compared to “normal” Software Development)

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview MDSD Effort (stage 1)

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview MDSD Effort (stage 2)

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e © M a rk u s V ö l t e r MDSD Intro & Overview Some advertisement For those, who speak (or rather, read) german: Völter, Stahl: Modellgetriebene Softwareentwicklung Technik, Engineering, Management dPunkt, A very much updated translation is under way: Model-Driven Software Development, Wiley, Q Update currently in progress, with Arno Haase and Sven Efftinge as additional coauthors