Wednesday, December 06, 2006

[Event] Software Engineering for Everday Business- Review of the Second Event

The second presentation of the series “Software Engineering for Everyday Business”, initiated by UBIT of the Wirtschaftskammer Wien took place on November 30th. The content of the presentations focused on modeling and model driven software development.
Modeling was covered by introducing the basics of software modeling, a modeling language, and a modeling method. Model driven software development was covered by an introduction to the concepts, primary approaches, and tools as well as by a case study.

Part 1: Modeling

Understanding the concept of software modeling is simplified by drawing analogies to models as used in everyday life. Models as used by architects are specifically interesting as they play a role similar to software models in requirements elicitation, design, and documentation. Software modeling brings in an additional difficulty as the proper level of abstraction is not always obvious because, in fact, source code can be considered as just another kind of model.

The Unified Modeling Language (UML) is the de-facto standard for object-oriented software modeling. It provides a set of modeling concepts and notation supporting many typical modeling requirements. Despite the advantages of UML it is often beneficial to use additional modeling techniques to cover, e.g., graphical user interfaces and database design.

In classical software processes, it is recommended to use modeling in a rather waterfall-like manner, leading to an overhead of maintaining consistency of models, changing requirements, and system implementation. Agile modeling is an approach to employ modeling within an agile software development process, emphasizing the constructive and communicational aspects of modeling rather than creating documents to be handed off. This way, it better copes with the fact that models are abstractions which are subject to misunderstanding - unless the abstraction process were explicitly specified, which is exactly the subject of model driven software development.

Part 2: Model Driven Software Development

Model driven software development attempts to raise the level of abstraction and consequently the productivity of software development. These improvements are feasible based on the fact that many tasks of software implementation pertain to rather routine activities of handling a complex infrastructure which is often similar for a set of projects. Several approaches to model driven software development have been proposed, Model Driven Architecture (MDA) being the most well known. MDA aims at abstracting from details of specific implementation platforms thus potentially allowing to "model once and build anywhere".

Tool support is crucial for model driven software development. Several tools supporting MDA were presented and analyzed according to a catalogue of criteria. The state of practice is that many different tools exist, each having a different focus and supporting different aspects of UML. Standardization, the original aim of OMG when specifying the MDA, is only partly implemented. Therefore, the decision to base a project on a certain MDA tool is critical as it establishes a very strong dependency between the project and the chosen tool.

A case study, which was conducted using the MDA tool ArcStyler, revealed some of the details that need to be taken care of in an MDA project. These include the tool's support of modeling techniques and target implementation technologies, the time required to understand the tool, the need to work with different levels of abstraction, i.e., model and code, and others. The conclusion was that MDA tools can offer a considerable increase in productivity which, however, is not for free.


Most questions were triggered by agile modeling and by model driven software development. It was discussed how agile modeling and agile methods in general could be implemented in practice. Regarding model driven software development, most questions revolved around practical experiences and available tool support.


To dowload the slides from this presentation as well as from the last event please go to the dedicated download page.

This text was written by Gerhard Kramler and edited by Alexander Schatten

No comments: