Technical debt, a metaphor for the long-term consequences of weak software development, must be managed to keep it under control. The main goal of this article is to identify and analyze the elements required to manage technical debt. The research method used to identify the elements is a systematic mapping, including a synthesis step to synthesize the elements definitions. Our perspective differs from previous literature reviews because it focused on the elements required to manage technical debt and not on the phenomenon of technical debt or the activities used in performing technical debt management. Additionally, the rigor and relevance for industry of the current techniques used to manage technical debt are studied. The elements were classified into three groups (basic decision-making factors, cost estimation techniques, practices and techniques for decision-making) and mapped according three stakeholders’ points of view (engineering, engineering management, and business-organizational management). The definitions, classification, and analysis of the elements provide a framework that can be deployed to help in the development of models that are adapted to the specific stakeholders’ interests to assist the decision-making required in technical debt management and to assess existing models and methods. The analysis indicated that technical debt management is context dependent. Artículo publicado en Journal of Systems and Software (JSS). JSS es clasificada como Q1 en JCR 2017.
Autores: Carlos Fernández-Sánchez / Juan Garbajosa / Agustín Yagüe / Jennifer Perez /
Palabras Clave: Basic decision-making factors - Business-orga - Cost estimation techniques - Decision Making - Engineering - Engineering management - Practices and techniques for decision-making - Stakeholders’ points of view - Systematic mapping - technical debt - Technical debt management
Global software development (GSD) is gaining ever more relevance. Although communication is key in the exchange of information between team members, multi-site software development has introduced additional obstacles (different time-zones and cultures, IT infrastructure, etc.) and delays into the act of communication, which is already problematic. Communication is even more critical in the case of Agile Global Software Development (AGSD) in which communication plays a primary role. This paper reports an exploratory study of the effects of tools supporting communication in AGSD. More precisely, this paper analyses the perception of team members about communication infrastructures in AGSD. The research question to which this study responds concerns how development teams perceive the communication infrastructure while developing products using agile methodologies. Most previous studies have dealt with communication support from a highly technological media tool perspective. In this research work, instead, observations were obtained from three perspectives: communication among team members, communication of the status of the development process, and communication of the status of the progress of the product under development. It has been possible to show that team members perceive advantages to using media tools that make them feel in practice that teams are co-located, such as smartboards supported by efficient video-tools, and combining media tools with centralized repository tools, with information from the process development and product characteristics, that allow distributed teams to effectively share information about the status of the project/process/product during the development process in order to overcome some of the still existing problems in communication in AGSD. COMPUTER STANDARDS & INTERFACES Volumen: 48 Páginas: 184-197 Número especial: SI DOI: 10.1016/j.csi.2016.06.002 Impacto de la revista 2015 Computer Science: 171/393 Q2 2015 Computer Svience/Software Engineering 35/106 Q2
Autores: Agustin Yague / Juan Garbajosa / Jessica Díaz / Eloy Gonzalez Ortega /
Palabras Clave: Agile - Development project - Exploratory research - Global Distributed Software Development - Infrastructure - Mangement - Teams - Tools and technologies
Software Product Line Engineering (SPLE) demands upfront long-term investment in (i) designing a common set of core-assets and (ii) managing variability across the products from the same family. When anticipated changes in these coreassets have been predicted with certain accuracy, SPLE has proved significant improvements. However, when large/complex product-line projects have to deal with changing market conditions, alternatives to supplement SPLE are required.
Autores: Jessica Díaz / Jennifer Pérez / Pedro P. Alarcón / Juan Garbajosa /
Making heterogeneous data sources homogeneous manually and off-line can become a high time-consuming task. This paper presents a software architecture that extends the standardized-based architectures for heterogeneous sensors with components to also support devices and data that are not compliant with standards. The defined architecture is based on Internet of Things (IoT) layered architectures that establish perception, network, middleware, application, and business as main layers. To define the architecture, an architectural framework was used; this framework supports the identification of non-compliant data, providing then a different processing path. This proposed architecture covers a wide spectrum of data interoperability addressing the IoT challenge of «Interoperability and Standardization». The implemented solution proved that the processing time between data acquisition and the feeding of analysis algorithms can be reduced from 100% to approximately to 1% with systems based on the proposed architecture compared with those that manage data manually and off-line.
Autores: Hector Humanes / Agustin Yague / Jennifer Perez / Juan Garbajosa / Llorenç Burgas / Joan Colomer / Joaquim Melendez / Carles Pous /
Palabras Clave: interoperability - IoT - Software Architecture
his summary presents a solution based on the use of change-impact knowledge as the main driver for agile architecting. The solution consists of a Change Impact Analysis technique and a set of models to assist agile architects in the change (decision-making) process by retrieving the change-impact architectural knowledge resulting from adding or changing features iteration after iteration.
Autores: Jessica Díaz / Jennifer Pérez / Juan Garbajosa / Agustín Yagüe /
Palabras Clave: agile architecting - Agile software development - change-impact analysis
Social Internet of Things takes a step forward over the traditional IoT, introducing a new paradigm that combines the concepts of social networks with the IoT, to obtain the benefits of both worlds, as in the case of Social Internet of Vehicles. With the emergence of Social Internet of Things, new challenges also arise that need to be analyzed in depth. In this article, the key architectural components and challenges that the implementation of Social Internet of Things must address have been identified through the analysis of available literature, and the architectures that have been proposed in recent years. Challenges include trustworthiness, navigability, scalability, security, and reliability of the system.
Autores: Juan Ochoa-Zambrano / Juan Garbajosa /
Palabras Clave: architectures - challenges - Internet of Things - navigability - privacy - quality requirements - Scalability - security - Social Internet of Things - trustworthiness