Evaluation of a Model-Driven Proposal to the Development of Groupware Systems

Evaluation of a Model-Driven Proposal to the Development of Groupware Systems

Luis Mariano Bibbo, Claudia Pons, Alejandro Fernandez
DOI: 10.4018/978-1-6684-5027-7.ch002
OnDemand:
(Individual Chapters)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

Building groupware is a complex task. This chapter presents the use of the domain-specific language CSSL v2.0 collaborative software system language. CSSL provides simplicity, expressiveness, and precision to model the main concepts of collaborative systems, especially collaborative processes, protocols, and awareness. Models of collaborative systems are created via visual editors that support the concrete syntax of CSSL. According to the MDD methodology, models are independent of the implementation platform and are formally prepared to be transformed. In this implementation, the target of the transformation is a web application that provides a set of basic functions that developers can refine. 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. The evaluation determined that the CSSL metamodel has low complexity, with semantics strongly associated with UML and with good configuration possibilities.
Chapter 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, awareness information allows users to coordinate their work based on knowledge of what others are doing or have done. For example, users are 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, and influence. Past awareness data is frequently stored, analyzed, and presented. Awareness information can be grouped to increase effectiveness. For example, when the user's presence is displayed, other information such as status, location, or resources can be attached to it, thus improving the effectiveness of awareness.

Without doubt, building collaborative systems with awareness is a complex task that requires specific software modeling (Collazos et al. 2019; Gallardo et al. 2011; Kamoun, Tazi, and Drira 2012). 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. When we use general purpose languages (Java, C++, C#, etc.) instead of domain specific 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. On the other hand, models and diagrams created in the early stages quickly lose their value as coding progresses.

Complete Chapter List

Search this Book:
Reset