Model-Driven Open Source Software Development
- The Open Models Approach
Pekka Aho, Janne Merilinna, Eila Ovaska
VTT Technical Research Centre of Finland
Oulu, Finland
{pekka.aho, janne.merilinna, eila.ovaska} @vtt.fi
Abstract—Model-Driven Development (MDD) aims to increase
productivity in software development and manage the
complexity of software by utilizing modelling to shift from
programming in solution-space to modelling in problem-space.
Another approach to increase productivity and experience
significant cost savings is to utilize Open Source (OS)
components in software development. This paper presents the
state of the art of how to combine MDD methods with OS
software development. The approach is called Open Models
software development which is expected to combine the
benefits of both worlds. The fundamental idea of Open Models
development is to apply community-driven collaborative MDD.
In this paper, Open Models development is exemplified by
constructing Resource Availability Service (RAS). RAS is a
web service for providing availability information about
resources such as services, content, users and terminals. This
paper shows that Open Models development is feasible from
technical point of view although there are still great challenges
in tooling. In addition, more empirical research is needed in
studying attractiveness of Open Models.
Keywords - MDA, OSS, UML
I. INTRODUCTION
Software systems are becoming increasingly complex as
customers demand richer functionality delivered in ever
shorter timescales [1]. Despite the significant advances in
programming languages and supporting integrated
development environments (IDEs), developing complex
software systems using current code-centric technologies is
difficult and costly [2]. According to the Standish Group,
84% of software projects fail to deliver what has been
promised on time and according to budget [3].
One approach to speed up software development and
manage complexity is to shift from programming in solution-
space to modelling in problem-space by utilizing the means
of Model-Driven Development (MDD) [2]. Experiences
indicate that effective complexity management mechanisms
automate mundane development tasks and provide strong
support for separation of concerns [4]. In the MDD vision of
software development, models are the primary artifacts of
development and developers rely on computer-based
technologies to transform models to running systems [2].
Another approach, aiming for faster time-to-market and
cost-savings by reducing the amount of development work,
is to use open source (OS) components in software
development [5]. Open Source Software (OSS) is software
developed by a globally distributed volunteer developers and
released under a license allowing further distribution and
modification of the source code [6].
This paper aims to study how these two approaches could
be combined in order to enable Open Models software
development. The fundamental idea of Open Models
software development is to expand OSS development to
cover also modelling, and that way allow even non-
programmers to participate in development by modelling.
The approach is similar to end-user driven development [7]
where it is the non-programmer end-user who does the
application development. The modelling infrastructure
development, i.e. metamodels, code generators and software
platforms on which the applications are generated, is
performed by programmers and language specialists with
OSS development approach. The starting point for the study
is challenging, since the OS community have demonstrated a
certain lack of interest in analysis and design tools [8].
Using MDD methods in an OS project can be
challenging but there can also be benefits additional to those
that MDD brings to any software development. The
reusability and amount of reuse is already at a high level in
OSS [9] but MDD could provide means to easily modify and
tailor the existing software for different needs of various
customers. MDD could also help to reuse and combine the
models and code generators from multiple OS projects to
create new software more easily and faster. It should also be
easier for new developers to join and get a grip of the project
using MDD since the software is easier to understand from
models than code.
In this paper we approach Open Models software
development by developing Resource Availability Service
(RAS) web service which enables context awareness by
providing availability information about resources such as
services, content, users and terminals. We utilized Unified
Modelling Language (UML) based modelling tools and
ready-made OS code generators in modelling of such service
and generating required Java code and service description for
the service. For RAS, a new Open Models community was
also founded and all relevant models, documents, and
guidelines were provided.
This paper is structured as follows. First, state of the art
of how to combine MDD methods with OSS development is
presented, second the Open Models approach in the
development of RAS is introduced followed by discussion
and conclusions. Final remarks close the paper.
2009 Fourth International Conference on Software Engineering Advances
978-0-7695-3777-1/09 $26.00 © 2009 IEEE
DOI 10.1109/ICSEA.2009.37
185
2009 Fourth International Conference on Software Engineering Advances
978-0-7695-3777-1/09 $26.00 © 2009 IEEE
DOI 10.1109/ICSEA.2009.37
185