Model-Driven Development of Groupware Systems

Model-Driven Development of Groupware Systems

Luis Mariano Bibbo, Claudia Pons, Roxana Giandini
Copyright: © 2022 |Pages: 28
DOI: 10.4018/IJeC.295151
OnDemand:
(Individual Articles)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

Building Collaborative systems with awareness (or groupware) is a very complex task. This article presents the use of the domain specific language CSSL v2.0 - Collaborative Software System Language -built as an extension of UML, using the metamodeling mechanism. CSSL provides simplicity, expressiveness and precision to model the main concepts of collaborative systems, especially collaborative processes, protocols and awareness.The CSSL concrete syntax is defined via a set of editors through which collaborative systems models are created. According to the MDD methodology, models are independent of the implementation platform and are formally prepared to be transformed. The target of the transformation is a web application that provides a set of basic functions that developers can refine to complete the development of the collaborative system. Finally, evaluation, validation and verification of the language is performed, determining that the CSSL tools allow developers to solve central aspects of collaborative systems implementation in a simple and reasonable way.
Article Preview
Top

Introduction

Groupware also known as Collaborative Systems are applications in which a group of users, following a common goal, develop different joint activities. The collaborative software allows them to share information, communicate, collaborate, and coordinate joint activities. According to (Ellis, Gibbs, and Rein 1991; Grudin 1994), collaboration platforms are “Computer-based systems that support groups of people engaged in a common task (or goal) and that provide an interface to a shared environment”.

A main characteristic of the collaborative systems is the equilibrium between the individual work and the effort the users must do to achieve the common goal. To this end, the collaborative system offers coordination mechanisms. (Dourish and Bellotti 1992; Grudin and Poltrock 1997) for organizing the activities. For example, a coordination protocol can specify the collaborative tasks to be developed, the order in which they must be developed. and the specific tasks that each role can perform in each state at any time.

Additionally, to take more advantage of the shared environment, the users can be informed regarding the actions that the other users perform and how these actions affect the work environment (Gutwin and Greenberg 2002; Gutwin, Greenberg, and Roseman 1996). This information provided by the system is known as awareness. According to (Dourish and Bly 1992) the awareness is the perception or knowledge of the group and of the activities performed by others that provides context for your own activities. In particular, the awareness allows users to coordinate their work based on knowledge of what others are doing or have done. For example, users will be able to see the changes in the shared documents or the degree of progress of the common tasks, as explained in (Collazos et al. 2019).

The most frequent types of awareness are presence, location, density, user data (Age, Nationality, etc.), activity level, actions, places where you were, places where you performed the actions, changes you made, objects you control, objects you can reach, information you can see, intentions, abilities, influence, and historical data about the previous ones. Awareness information can also be grouped together to improve awareness effectiveness. For example, when the user's presence is displayed, other information such as status, location, or resources can be attached to it.

Without doubt, building collaborative systems with awareness is a very complex task that requires powerful tools. However, traditional approaches, based on mainly coding the applications, are still used in the development process of these software systems. On the one hand, there is no clear documentation of design decisions taken during the coding phase, making the evolution and the maintenance of the systems difficult. On the other hand, when using specific programming languages, the possibility of generalizing concepts - that could be extracted, re-used and applied in different systems - is wasted and the code is written from scratch over and over again.

In this context, the goal of our work was to investigate the application of modern technologies for developing collaborative systems, in particular the Model Driven software Development approach (MDD) (Stahl et al. 2006), that proposes to improve quality and efficiency of the software construction processes. In this paradigm models assume a leading role in the software development process, going from being contemplative entities to becoming productive entities from which implementations are automatically derived.

The MDD initiative promotes:

  • Abstraction: the use of a higher level of abstraction in both the specification of the problem to be solved and the corresponding solution.

  • Automation: increased confidence in computer-aided automation to support analysis, design, and execution.

  • Standardization: the use of industrial standards to facilitate interaction between applications and technological evolution.

One of the key benefits of applying MDD is the flexibility to face technological changes. High-level models are free of implementation details, which facilitates adaptation to changes to the underlying technology platform or the deployment architecture.

Complete Article List

Search this Journal:
Reset
Volume 20: 1 Issue (2024)
Volume 19: 7 Issues (2023)
Volume 18: 6 Issues (2022): 3 Released, 3 Forthcoming
Volume 17: 4 Issues (2021)
Volume 16: 4 Issues (2020)
Volume 15: 4 Issues (2019)
Volume 14: 4 Issues (2018)
Volume 13: 4 Issues (2017)
Volume 12: 4 Issues (2016)
Volume 11: 4 Issues (2015)
Volume 10: 4 Issues (2014)
Volume 9: 4 Issues (2013)
Volume 8: 4 Issues (2012)
Volume 7: 4 Issues (2011)
Volume 6: 4 Issues (2010)
Volume 5: 4 Issues (2009)
Volume 4: 4 Issues (2008)
Volume 3: 4 Issues (2007)
Volume 2: 4 Issues (2006)
Volume 1: 4 Issues (2005)
View Complete Journal Contents Listing