CLPL: Providing software infrastructure for the systematic and effective construction of complex collaborative learning systems
Journal of Systems and Software
Over the last decade, e-Learning and in particular Computer-Supported Collaborative Learning (CSCL) needs have been evolving accordingly with more and more demanding pedagogical and technological requirements. As a result, high customization and flexibility are a must in this context, meaning that collaborative learning practices need to be continuously adapted, adjusted, and personalized to each specific target learning group. These very demanding needs of the CSCL domain represent a great
... lenge for the research community on software development to satisfy. This contribution proposes a innovative approach in the form of a generic software infrastructure called Collaborative Learning Purpose Library (CLPL) with the aim of meeting the current and demanding needs found in the CSCL domain. To this end, we propose an advanced reuse-based service-oriented software engineering methodology for developing CSCL applications in an effective and timely fashion. A CLPL: Providing Software Infrastructure for the Systematic and Effective Construction of Complex Collaborative Learning Systems © 2010 Elsevier. This manuscript version is made available under the CC-BY-NC-ND 4.0 license http://creativecommons.org/licenses/by-nc-nd/4.0/ 4 Due to this extensive use, CSCL becomes very attractive for domain software developers who have recently provided a number of architecture solutions (Pahl, 2007) with the aim of reusing the large number of common requirements shared by CSCL applications. Common needs in CSCL include support for three essential aspects of collaboration, namely coordination, collaboration and communication; with communication being the base for reaching coordination and collaboration in synchronous (i.e., cooperation at the same time) or asynchronous (i.e., cooperation at different times) collaboration modes (Roseman & Greenberg, 1996). In addition, the representation and analysis of group activity interaction forms one of the paradigmatic principles of the CSCL domain (Dillenbourg, 1999a) and should form part of the very rationale of all CSCL applications (Martínez, de la Fuente and Dimitriadis, 2003). Finally, in order to improve collaboration in a group it is essential to provide measures and rules to resolve authentication and authorization issues and so protect the system from intentional or accidental ill use as well as to perform all the system control and maintenance for the correct administration of the system. Generic platforms, frameworks and components are normally developed for the construction of complex software systems through software reuse techniques, such as Generic Programming, Domain-based Analysis, Feature Modeling, Service-Oriented Architecture, and so on (Czarnecki and Eisenecker, 2000; Bacelo, 2002; Gomaa, 2005). Indeed, in the context of generic architectures and platforms, software reuse is by far one of the main concerns in the software industry and it is increasingly recognized its strategic importance in terms of productivity, quality and cost (Czarneki, 2005). 5 However, despite the advance in software reuse, reuse capacity is still in an incipient status, mainly due to the short in scope of the reuse techniques such as classes, components, and frameworks, also so-called "reuse in the small". There is, therefore, a need for increasing the level of reuse by extending the scope and, as a consequence, the impact on the software development, also so called "reuse in the large" (Ateyeh and Lockemann, 2006). This is chiefly fulfilled by extracting the commonality and variability features of systems given a specific, wide domain and then reusing them for the construction of single systems in the same domain (Gomaa, 2005) . Thus, neither longer is necessary to "reinvent the wheel" nor to develop a new system from scratch. This way, organizations can consolidate and adapt their existing key software assets to meet the ever changing requirements and needs. These approaches have been successfully applied to different domains thus providing cost-effective applications of increased quality in timely fashion. The rapid change and evolution of requirements in the CSCL domain raises new challenges to software developers, who in turn demands more powerful reuse-based software techniques that provide more flexible, adaptable, modular, and maintainable software. Therefore, leveraging the latest software reuse principles, a generic service-oriented component-based computational model in the collaborative learning context is intended to form the very rationale of complex CSCL environments in a wide range of learning situations and pedagogical goals. As a result, domain developers can derive specific CSCL applications by systematically adapting and tailoring this reusable computational model for the construction of effective, affordable and timely newly CSCL tools, which are modular, flexible, interoperable and maintainable, and a fast adaptation of existing applications to newly learning and teaching requirements (Caballé et al., 2004) .