T49: Model-Driven Development of Distributed Systems
Thursday, Oct 26, from 08:30 to 12:00
Despite advances in standard middleware platforms, it is hard to develop software for distributed systems, such as airplanes, power grids, and patient monitors. For example, developers still use ad hoc means to develop, configure, and deploy applications and middleware, due to the lack of analyzable and verifiable building block components. Model-Driven Development (MDD) has emerged as a promising means to address these issues by combining domain-specific modeling languages (DSMLs) with generators that analyze certain aspects of models and then synthesize various artifacts, such as source code, simulation inputs, XML deployment descriptions, or alternative model representations. This tutorial provides an overview over MDD for distributed systems, focusing on
- Fundamental concepts of MDD
- How MDD tools and metamodeling typically work
- The role of code generation and model-to-model transformation
- Frameworks and DSMLs, which are two sides of the same coin
- How MDD can be used to improve and manage software architecture
- Applying MDD to component-based distributed systems
- Deploying and configuring middleware and applications using MDD
Many of the topics mentioned above will be introduced using examples and case studies from production distributed systems. Wherever possible, we'll show live demos of using MDD tools in the tutorial.
Intermediate: Attendees must have a solid understanding of object-orientation and architectural concepts. A basic understanding of Model-Driven Development is helpful.
Goals: Upon completing this tutorial, attendees will be able to: 1. Recognize the inherent and accidental complexities involved with developing software for distributed systems. 2. Understand precisely how MDD techniques and tools can and cannot help to alleviate this complexity. 3. Apply key MDD design techniques (such as metamodeling, constraints, and model interpreters) to develop domain-specific modeling languages and modeling artifacts. 4. Utilize popular MDD tools to create efficient, robust, and reusable software for distributed systems. 5. Know where to find additional sources of information on how to successfully apply MDD techniques to distributed systems.
Format: Presentation with live examples and interactive discussions with participants.
Markus Voelter, Independent Consultant: Markus works as an independent consultant for software technology and engineering. He focuses on software architecture, model-driven software development and middleware. Over the last years, Markus has worked as an architect and coach on several model-driven software development projects in enterprise and embedded systems, in domains such as banking, automotive and radio astronomy. Markus is a regular speaker at international conferences. For example, he has presented at ECOOP, OOP, OOPSLA, and JAOO. He is the (co-)author of two books on middleware patterns and of a book on model-driven software development. Markus is a lead developer for the openArchitectureWare MDD framework.
Douglas C. Schmidt, Institute for Software Integrated Systems Vanderbilt University: Douglas C. Schmidt is a Professor of Computer Science at Vanderbilt University. His research focuses on patterns, optimization techniques, and empirical analyses of frameworks and domain-specific modeling environments for developing distributed real-time and embedded (DRE) middleware and applications. Doug has over fifteen years of experience leading the development of ACE, TAO, CIAO, and CoSMIC, which are widely used, open-source DRE middleware frameworks and model-driven tools that implement patterns and product-line architectures for high-performance DRE systems. He was Program Chair for OOPSLA in 2004 and has given highly rated tutorials at OOPSLA every year since 1994.