SHIFT

Start Date: August 2013    End Date: July 2016
Members:  Hugo Arboleda (Project Leader), Gabriel Tamura, Andrés Paz, Miguel Jiménez, Julián Cifuentes
Past members: David Durán, Nasser Abdala, Fabián Caicedo

Main Objective

This research project focuses on the development of a framework for the assisted generation of self-adaptive enterprise software systems, through the application of good engineering practices of model-driven software product lines led and self-adaptive systems.

In this project, six main activities will be developed:

  1. Develop an architecture that allows interoperability between tools for model-driven software product lines and self-adaptive systems.
  2. Integrate tools previously developed by the researchers of this project as part of their independent efforts.
  3. Implement and integrate an automated reasoning mechanism for managing product configuration and software self-adaptation.
  4. Develop sets of design patterns for enterprise applications as possible variants to be selected during the product configuration phase and as options for the required self-adaptation.
  5. Validate the project’s contributions through the development of two case studies.
  6. Prepare educational material to introduce the academic and industrial communities into the proposed approach.

Description

A software product line (SPL) supports the creation of software products through reuse of assets (such as components or web services) that will form part of the final product and the elimination of those who won’t. In order to cope with product derivation, an SPL needs to explicitly manage and handle variability. Typically, variability in SPLs is emphasized in the functional capabilities of the products that can be derived from them. A corner stone of software systems that ensures their success and sustainability, its quality attributes, on the contrary, are kept mostly unchanged across derived products. This presents a limitation for building software systems with current SPL approaches, as to when deriving a concrete product from an SPL, decisions can only be taken for functional variation points but most customers and users also express different quality needs and budget constraints. Quality attributes are characteristics that affect the perceived quality of a software system, thus, they are of great importance. The functionality the system performs, on the other hand, remains the same upon changes in desired quality attributes.

Sponsors

  • Colombian Administrative Department of Science, Technology and Innovation Colciencias
  • Icesi University

Results

Publications in International Conferences and Symposiums

  • Miguel A. Jiménez, Angela Villotta Gomez, Norha Villegas, Gabriel Tamura and Laurence Duchien. A Framework for Automated and Composable Testing of Component-based Services. Maintenance and Evolution of Service-Oriented Systems and Cloud-Based Environments, Sep 2014, Victoria BC, Canada. IEEE Computer Society. https://hal.inria.fr/hal-01055906
  • Hugo Arboleda, Andrés Paz, Miguel Jiménez and Gabriel Tamura. A framework for the generation and management of self-adaptive enterprise applications. Computing Colombian Conference (10CCC), Sep 2015, Bogota D.C., Colombia, pp. 55-62. doi: 10.1109/ColumbianCC.2015.7333412
  • Andrés Paz and Hugo Arboleda. A Model to Guide Dynamic Adaptation Planning in Self-Adaptive Systems. 2015 XLI Latin American Computing Conference (CLEI 2015), Oct 2015, Arequipa, Perú.

Publications in International Refereed Journals

  • Andrés Paz and Hugo Arboleda. A Model to Guide Dynamic Adaptation Planning in Self-Adaptive Systems. Electronic Notes in Theoretical Computer Science (ENTCS), 321, pp. 67-88, 2016.
  • Hugo Arboleda, Andrés Paz, Miguel Jiménez and Gabriel Tamura. Development and Instrumentation of a Framework for the Generation and Management of Self-Adaptive Enterprise Applications. Ingeniería y Universidad, Vol. 20, No. 2, 2016.

Software

  • QD-SPL: Meta-Software Product Line for creating quality-driven domain-specific Software Product Lines – https://github.com/unicesi/QD-SPL
  • PaSCAni: Domain Specific Language for specifying, compiling and deploying dynamic performance monitors to introspect (FraSCAti) SCA applications at runtime – https://github.com/unicesi/pascani
  • Amelia: Domain Specific Language for deploying SCA components, with custom commands to compile and execute FraSCAti applications – https://github.com/unicesi/amelia
  • Analyzer: MAPE-K Analyzer prototype  – https://github.com/unicesi/analyzer
  • Planner: MAPE-K Planner prototype – https://github.com/unicesi/planner

Case Studies

  • OSR: Online retail store enterprise application – https://github.com/unicesi/online-store-retailer

Other Software

  • Loxo: Support tool for performing Systematic Literature Reviews (SLR) – https://github.com/unicesi/loxo
  • Choco3Reasoner:
    Reasoner for the FaMa Framework using the Choco 3 Solver –
    https://github.com/unicesi/FaMA/tree/develop/Reasoners/Choco3Reasoner
    FaMa Test Suite v2 –
    https://github.com/unicesi/FaMA/tree/develop/Tests/FaMaTestSuite2
    Choco3Reasoner Test Suite –
    https://github.com/unicesi/FaMA/tree/develop/Tests/Choco3ReasonerTestSuite
  • SQMA: Software Quality Measurement and Audit Automation Tool – https://github.com/unicesi/sqma