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.
Part 1: Modeling
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
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.
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