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