Rafael Capilla

Rafael Capilla
King Juan Carlos University | URJC · Department of Informatics

PhD

About

151
Publications
70,386
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
2,214
Citations
Introduction
Associate Professor for Software Engineering. My research interests are: Software Sustainability & Technical Debt, Industry 4.0, Software Product Line Engineering & Dynamic Variability, Software Architecture & Architectural Knowledge
Additional affiliations
January 2019 - April 2020
Chalmers University of Technology
Position
  • Professor
Description
  • I taught the Master course on Advance Software Architectures and collaborated in research activities
October 2001 - October 2014
King Juan Carlos University
Position
  • Professor (Associate)
October 2001 - present
King Juan Carlos University
Position
  • Professor (Associate)
Description
  • Associate Professor for Software Engineering and other courses like Software Architecture, Project Management, Software Evolution, Web Programming and Advanced Networks

Publications

Publications (151)
Preprint
Full-text available
Although architecture instability has been studied and measured using a variety of metrics, a deeper analysis of which project parts are less stable and how such instability varies over time is still needed. While having more information on architecture instability is, in general, useful for any software development project, it is especially import...
Article
FOLLOWING ALONG WITH the theme of this issue of IEEE Software, this column reports papers about digital twins from the 2021 Empirical Assessment in Software Engineering (EASE’21) conference, the 2021 International Conference on Software Engineering (ICSE 2021), the 2021 International Symposium on Software Engineering for Adaptive and Self-Managing...
Article
The increasing number of people with impairments and the lack of specialists has led to a loss of efficiency to deliver proper treatments from National healthcare systems. In this light, telerehabilitation can play an important role as patients can perform certain therapies at home. Consequently, telerehabilitation systems must support delivering b...
Article
Context-aware and smart systems that require runtime reconfiguration to cope with changes in the environment increasingly demand variability management mechanisms that can address runtime concerns. In recent years, we have witnessed new dynamic variability solutions using dynamic software product line (DSPL) approaches. However, while few solutions...
Article
Full-text available
Scientific experiments involve complex interactions between geographically distributed researchers, who act as units and require a substantial volume of data and services. This scenario categorizes a Scientific Software Ecosystem, which involves researchers and scientists working together, using scientific software and related services through scie...
Article
Industry 4.0 has led to a dramatic shift in manufacturing processes, which must be accomplished by interacting end-to-end industrial systems. While Industry 4.0 is still a big challenge for many manufacturing companies, reference architectures have been increasingly adopted in different domains to guide engineers on how their systems should interop...
Article
Please read our blog as candidate for the Journal of System and Software MIP award and give us a "Like" if you enjoyed. https://lnkd.in/eZWPD5G
Article
Software ecosystems are considered the natural evo�lution of software product lines. A software ecosystem provides a (software) product within a particular business and organizational context that supports the exchange of activities and services within a domain. However, the increasing degree of autonomy demanded by software ecosystems is elevating...
Chapter
Architectural Design Decisions (ADDs) capture the essence of relevant Architectural Knowledge (AK) and the underpinning rationale in order to produce well-designed software architectures. AK and design rationale might get lost if not captured at the same time when the architecture is discussed and modeled in early design phases. For years, this rel...
Article
Full-text available
The availability of open source assets for almost all imaginable domains has led the software industry to opportunistic design—an approach in which people develop new software systems in an ad hoc fashion by reusing and combining components that were not designed to be used together. In this paper we investigate this emerging approach. We demonstra...
Article
Full-text available
For nearly 30 years, industry and researchers have proposed many software variability tools to cope with the complexity of modeling variability in software development, followed by a number of publications on variability techniques built upon theoretical foundations. After more than 25 years of the practice of software variability, there are not ma...
Chapter
Full-text available
Making the right decisions is challenging for architects on all levels of seniority. Less experienced architects in particular perceive the transition from design problems to their solutions as hard; it is not always clear how to find suitable concepts and technologies, how to compare alternatives, and how to build consensus. Lack of experience mak...
Article
Software Engineering and Advanced Applications (SEAA) is a long-standing international forum for researchers, practitioners, and students to present and discuss the latest innovations, trends, experiences, and concerns in the field of Software Engineering and Advanced Applications in information technology for software-intensive systems. In this sp...
Article
Usability is a highly desired but often ignored software quality. Effective user interfaces tend to increase learnability, effectiveness and user satisfaction. But usability is often neglected in the early stages of software development and is thus frequently not address in a system's architectural design. Furthermore, because usability is often ne...
Preprint
Full-text available
The stability and longevity of software systems rely on the quality of design decisions over time. In modern software-intensive systems the number of design decisions taken, the dependencies between those decisions, and the number of design alternatives considered, complicate software maintenance and jeopardize the system's longevity. Despite the e...
Article
Full-text available
Over the past 10 years software architecture has been perceived as the result of a set of architecture design decisions rather than the elements that form part of the software design. As quality attributes are considered major drivers of the design process to achieve high quality systems, the design decisions that drive the selection and use of spe...
Article
Software systems have evolved from being 'stand-alone systems' to 'systems of systems' to meet the challenging needs of societies. Contemporary software systems such as socio-technical systems are composed of distributed and heterogeneous agents, the em- bedded environment, and software components. Addressing the disruptions caused by run-time chan...
Article
Full-text available
This issue's Practioners' Digest column reports on the 2018 Measurement and Metrics for Green and Sustainable Software Systems Workshop (MeGSuS), the ACM/IEEE 21st International Conference on Model Driven Engineering Languages and Systems (MODELS), and the 12th European Conference on Software Architecture (ECSA).
Article
Full-text available
This issue’s article reports from the 40th International Conference on Software Engineering (ICSE 18) and the 17th International Conference on Software Reuse (ICSR 18). The ICSE papers focus on sociotechnical issues related to gender and sentiment or emotion. The ICSR paper focuses on safety-critical systems.
Conference Paper
Full-text available
Software architectures are affected by evolution cycles when requirements or the system change. When architectural elements are modified other parts of the design can be impacted by these changes, and be propagated to all software products. As the frequency and depth of architectural changes may affect the stability of the architecture, it becomes...
Conference Paper
Full-text available
Cloning-and-owning, in the long run, can severely affect evolution, as changes in cloned fragments may require modifications in various parts of the system. This problem scales if cloning is used in classes that derive products in a Software Product Line, because these classes can impact in several features and products. However, it is hard to know...
Chapter
Full-text available
The story of success of software product line engineering and software variability, as the cornerstone to support the diversity of the product portfolio is widely recognized by software companies. Nowadays, the complexity of new software‐intensive systems demanding development challenges, such as runtime reconfiguration operations, autonomous behav...
Article
This issue’s column reports on presentations at the 11th International Symposium on Empirical Software Engineering and Measurement, 13th International Conference on Predictive Models and Data Analytics in Software Engineering, and 21st International Systems and Software Product Line Conference.
Article
Full-text available
Software sustainability has been described as the capacity of software systems to endure over time. While a consensus on what software sustainability means is still emerging, an increasing focus on green and technical sustainability has caused researchers and software companies to propose that the use of flexible and open software architectures can...
Article
Full-text available
Context Modern societies are highly dependent on complex, large-scale, software-intensive systems that increasingly operate within an environment of continuous availability, which is challenging to maintain and evolve in response to the inevitable changes in stakeholder goals and requirements of the system. Software architectures are the foundation...
Article
Full-text available
This theme issue provides an updated perspective on techniques to manage software system variability at runtime, to make software systems smarter and less dependent on human intervention.
Article
This theme issue presents some of the most recent advances in and applications of software for context-aware and smart healthcare, so as to provide a view of the state of the technology.
Conference Paper
Full-text available
Dynamic Software Product Lines (DSPLs) is still an incipient paradigm to support runtime reconfiguration of systems that need to change their behavior under varying circumstances. As many modern systems demand reconfiguration after post-deployment time, this 10th edition of the DSPL workshops attempts to bring new insight and approaches for such ne...
Conference Paper
In the context of software architectures, sustainability has been investigated as an important quality property to assess how well these architectures support changes over time. Several initiatives to achieve sustainable software architectures/systems can be already found. In parallel, reference architectures have served as an e ective support to f...
Article
THE EFFORT AND COSTS required to maintain complex software systems are often high, involving continuous refactoring to ensure longevity in the face of changing requirements. Here, we introduce the concept of architecture knowledge (AK) sustainability to help architects deal with the evolution of long-lived systems. We suggest that AK sustainability...
Article
Full-text available
This issue's column reports on papers from the 19th International Conference on Model Driven Engineering Languages and Systems, the 2016 ACM SIGPLAN International Conference on Software Language Engineering, the 12th International ACM SIGSOFT Conference on the Quality of Software Architectures, and the 13th Working IEEE/IFIP Conference on Software...
Article
Full-text available
This document details the planning phase of a Systematic Mapping Study (SMS). Our goal is to identify the software patterns used during the RE phase, in real-world setting (i.e., in real projects), not in academia (toy projects) and, to understand the impact of their application, in terms of different characteristics, pertaining to the development...
Chapter
Full-text available
As software systems are becoming more complex and configurable, self-properties (i.e., self-adaptive, self-management, self-healing, self-optimization, self-protection) have attracted the attention of software engineers to provide adequate validation and verification mechanisms in order to ensure the quality of adaptation [1,2]. In this light, the...
Conference Paper
Full-text available
The promise and challenge of runtime variability mechanisms are still in the infancy. The emerging paradigm of dynamic software product lines demand adequate solutions based on effective dynamic variability mechanisms able to manage the variability at runtime. Today, few approaches have been proposed and tested in real dynamic software products lin...
Article
We theorize a two-mind model of design thinking. Mind 1 is about logical design reasoning, and Mind 2 is about the reflection on our reasoning and judgments. The problem solving ability of Mind 1 has often been emphasized in software engineering. The reflective Mind 2, however, has not received much attention. In this study, we want to find out if Min...
Article
Full-text available
This issue's column reports on papers from the 19th International Conference on Software Product Lines, the 10th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, the 23rd IEEE International Requirements Engineering Conference, and the 9th European Conference on S...
Conference Paper
Good software design practice is difficult to define and teach. Despite the many software design methods and processes that are available, the quality of software design relies on human factors. We notice from literature and our own experiments that some of these factors concern design reasoning and reflection. In this paper, we propose a reflectiv...
Conference Paper
Full-text available
Ensuring the longevity of a software system is an important concern for developers and maintainers. However, when a system’s architecture decays during evolution and its quality degrades as a result, the system’s long-term sustainability is highly affected. In this light, providing mediums to estimate and track the sustainability of a software syst...
Conference Paper
Architecture erosion constitutes the most visible effect of the degradation of design. It is a major reason to address the design debt, often caused by architectural mismatch problems. Today, the identification of design erosion is a major concern for designers and software maintainers. Adequate tolos are necessary to identify and repair the debt....
Article
Full-text available
The importance of architectural knowledge (AK) management for software development has been highlighted over the past ten years, where a significant amount of research has been done. Since the first systems using design rationale in the seventies and eighties to the more modern approaches using AK for designing software architectures, a variety of...
Conference Paper
Full-text available
Modern software systems demand more and more smart capabilities depending on their context of use, as well as the ability to dynamically adapt these capabilities according to sensed context changes. This requires appropriate techniques for modelling, representing and handling context-aware software variability. While traditional variability modelli...
Article
Full-text available
Runtime variability is becoming an attractive technique to support those runtime scenarios for systems that demand some kind of autonomous reconfiguration or adaptive behavior. Nowadays, the challenge of many critical systems that need to handle different operational modes, often in an unattended mode, require specific solutions for which runtime v...
Article
Full-text available
The complexity necessary for robotics software systems to dynamically respond to or handle a variety of evolving scenarios translates into serious development costs and engineering challenges. Dynamic variability is one new strategy for supporting the dynamic behavior of robotics control systems.
Article
Full-text available
Software product line (SPL) engineering has proven to improve software quality and shorten development cycles, cost and time. In product line engineering, product derivation is concerned with the realization of the variability at the implementation level. However, the majority of research works focuses on instantiating the variants selected in the...
Conference Paper
Full-text available
The incessant trend where software engineers need to redesign legacy systems adopting a service-centric engineering approach brings new challenges for software architects and developers. Today, engineering and deploying software as a service requires specific Internet protocols, middleware and languages that often complicate the interoperability of...
Conference Paper
Full-text available
Architectural Knowledge Management (AKM) has been an active research area in the last decade; the importance of making the right architectural decisions – and making these at the right time – has been recognized by the contemporary software engineering practices. Several AKM meta-models, templates and tools have been proposed and applied in practic...
Article
Full-text available
Named entities (NEs) can facilitate access to multilingual knowledge sources--which have exploded in recent years--but the identification, classification, and retrieval of NEs remain challenging tasks.
Article
Full-text available
The two articles in this special section address the topic of systems and software vaiability. Variability management involves two key challenges. First, industrial reality shows that for successful platforms, the number of variation points, variants (alternatives that can be selected for a variation point), and dependencies between variation point...
Conference Paper
Full-text available
Feature models and their extensions have been proposed and used over the past 20 years for modeling the commonality and variability of software systems. However, the increasing runtime demands and post-deployment configuration procedures of self-adaptive, context-aware and pervasive systems has brought the need for modeling context features. In add...
Chapter
Usability is an important quality requirement for many of today's software applications, with the complexity of modern user interfaces and the quick reaction required by users demanding highly usable software. However, usability is many times poorly addressed because usability requirements often require an additional implementation effort. In addit...
Data
Full-text available
Conference Paper
Full-text available
Systems engineering has invested considerable efforts in the development of complex-large systems, often known as Systems-of-Systems (SoS). However, the systematization of current engineering practices based on the inherent complexity and size of these systems is still challenging for software engineers. In this light we focus we focus in this pape...
Conference Paper
Full-text available
In emerging domains such as Cloud-based Industrial Control Systems (ICSs) and SCADA systems where data-intensive and high performance computing are needed, a higher degree of flexibility is being demanded to meet new stakeholder requirements, context changes and intrinsic complexity. In this light, Dynamic Software Product Lines (DSPLs) provide a w...
Conference Paper
Full-text available
In this invited talk we will draw the evolution from feature modeling techniques to context variability models and its importance for Dynamic Software Product Lines approaches and for supporting dynamic variability as well.
Chapter
Full-text available
Usability is an important quality requirement for many of the today software applications, where the complexity of modern user interfaces and the quick reaction required by users demanding highly usable software. However, usability is many times poorly addressed as usability requirements often require an additional implementation effort. In additio...
Article
Over the last two decades, Software Product Lines have been used successfully in industry for building families of systems of related products, maximizing reuse, and exploiting their variable and configurable options. In a changing world, modern software demands more and more adaptive features, many of them performed dynamically, and the requiremen...
Article
Full-text available
Many software systems must adapt to suit the particular context in which they are operating. Runtime variability mechanisms are suitable for systems that must configure optimally during execution.