75 research outputs found
Recommended from our members
Ecosystems Effects on Software-Consuming Organizations: an experience report on two observational studies
Software engineers should have the ability to abstract the complexity of a whole system composed of products, demands and suppliers emerging from an interconnected network termed a software ecosystem (SECO). Since software suppliers resort to virtual integration, software-consuming organizations face difficulties performing IT management activities and analyzing what application or technology enter their SECO. In this context, the `silent' effects of nontechnical factors give rise to serious long-term problems, e.g., low productivity, investment loss, financial crisis, or bankruptcy. This paper presents an investigation of SECO effects on software-consuming organizations performing IT management activities in real settings. IT management teams have regular meetings to deliberate on acquisition decisions which they base on experience and IT market recommendations, including spreadsheets and distributed documents. Analysis of the decision space, business objective synergy, and technology/supplier dependency are identified as the most critical health indicators for SECO platform monitoring in IT management activities. This highlights the critical role acquisition preparation plays in the SECO context
Feature-Model-Guided Online Learning for Self-Adaptive Systems
A self-adaptive system can modify its own structure and behavior at runtime
based on its perception of the environment, of itself and of its requirements.
To develop a self-adaptive system, software developers codify knowledge about
the system and its environment, as well as how adaptation actions impact on the
system. However, the codified knowledge may be insufficient due to design time
uncertainty, and thus a self-adaptive system may execute adaptation actions
that do not have the desired effect. Online learning is an emerging approach to
address design time uncertainty by employing machine learning at runtime.
Online learning accumulates knowledge at runtime by, for instance, exploring
not-yet executed adaptation actions. We address two specific problems with
respect to online learning for self-adaptive systems. First, the number of
possible adaptation actions can be very large. Existing online learning
techniques randomly explore the possible adaptation actions, but this can lead
to slow convergence of the learning process. Second, the possible adaptation
actions can change as a result of system evolution. Existing online learning
techniques are unaware of these changes and thus do not explore new adaptation
actions, but explore adaptation actions that are no longer valid. We propose
using feature models to give structure to the set of adaptation actions and
thereby guide the exploration process during online learning. Experimental
results involving four real-world systems suggest that considering the
hierarchical structure of feature models may speed up convergence by 7.2% on
average. Considering the differences between feature models before and after an
evolution step may speed up convergence by 64.6% on average. [...
Holding on to Compliance While Adopting DevSecOps: An SLR
The software industry has witnessed a growing interest in DevSecOps due to the premises of integrating security in the software development lifecycle. However, security compliance cannot be disregarded, given the importance of adherence to regulations, laws, industry standards, and frameworks. This study aims to provide an overview of compliance aspects in the context of DevSecOps and explore how compliance is ensured. Furthermore, this study reveals the trends of compliance according to the extant literature and identifies potential directions for further research in this context. Therefore, we carried out a systematic literature review on the integration of compliance aspects in DevSecOps, which rigorously followed the guidelines proposed by Kitchenham and Charters. We found 934 articles related to the topic by searching five bibliographic databases (163) and Google Scholar (771). Through a rigorous selection process, we selected 15 papers as primary studies. Then, we identified the compliance aspects of DevSecOps and grouped them into three main categories: compliance initiation, compliance management, and compliance technicalities. We observed a low number of studies; therefore, we encourage further efforts into the exploration of compliance aspects, their automated integration, and the development of metrics to evaluate such a process in the context of DevSecOps.publishedVersio
Quality measurement in agile and rapid software development: A systematic mapping
Context: In despite of agile and rapid software development (ARSD) being researched and applied extensively, managing quality requirements (QRs) are still challenging. As ARSD processes produce a large amount of data, measurement has become a strategy to facilitate QR management. Objective: This study aims to survey the literature related to QR management through metrics in ARSD, focusing on: bibliometrics, QR metrics, and quality-related indicators used in quality management. Method: The study design includes the definition of research questions, selection criteria, and snowballing as search strategy. Results: We selected 61 primary studies (2001-2019). Despite a large body of knowledge and standards, there is no consensus regarding QR measurement. Terminology is varying as are the measuring models. However, seemingly different measurement models do contain similarities. Conclusion: The industrial relevance of the primary studies shows that practitioners have a need to improve quality measurement. Our collection of measures and data sources can serve as a starting point for practitioners to include quality measurement into their decision-making processes. Researchers could benefit from the identified similarities to start building a common framework for quality measurement. In addition, this could help researchers identify what quality aspects need more focus, e.g., security and usability with few metrics reported.This work has been funded by the European Union’s Horizon 2020 research and innovation program through the Q-Rapids project (grant no. 732253). This research was also partially supported by the Spanish Ministerio de Economía, Industria y Competitividad through the DOGO4ML project (grant PID2020-117191RB-I00). Silverio Martínez-Fernández worked in Fraunhofer IESE before January 2020.Peer ReviewedPostprint (published version
S.O.B (Save Our Budget) - A Simulation-Based Method for Prediction of Acquisition Costs of Constituents of a System-of-Systems
Software economics, acquisition, and pricing are important concerns for Systems-of-Systems (SoS). SoS are alliances of independent software-intensive systems combined to offer holistic functionalities as a result of the constituents interoperability. SoS engineering involves separately acquiring constituents and combining them to form the SoS. Despite the existence of cost prediction techniques, predicting SoS acquisition costs at design-time should also include the analysis of different suppliers of constituents, their respective prices and quality. However, known methods cover only two out of these three parameters. The main contribution of this article is to present the S.O.B. (Save Our Budget) method, a novel simulation-based method to predict, at design-time, the acquisition cost of constituents, while still considering quality attributes and different suppliers. Results of a case study in the Smart Building domain revealed that S.O.B. method supports a precise prediction of acquisition cost of constituents to build a SoS for that domain. Furthermore, it also contributes to estimate the cost based on a pre-established quality attribute (functional suitability), as well as to support the selection of coalition that exhibits better results through the analysis of cost-benefit ratio.Software economics, acquisition, and pricing are important concerns for Systems-of-Systems (SoS). SoS are alliances of independent software-intensive systems combined to offer holistic functionalities as a result of the constituents interoperability. SoS engineering involves separately acquiring constituents and combining them to form the SoS. Despite the existence of cost prediction techniques, predicting SoS acquisition costs at design-time should also include the analysis of different suppliers of constituents, their respective prices and quality. However, known methods cover only two out of these three parameters. The main contribution of this article is to present the S.O.B. (Save Our Budget) method, a novel simulation-based method to predict, at design-time, the acquisition cost of constituents, while still considering quality attributes and different suppliers. Results of a case study in the Smart Building domain revealed that S.O.B. method supports a precise prediction of acquisition cost of constituents to build a SoS for that domain. Furthermore, it also contributes to estimate the cost based on a pre-established quality attribute (functional suitability), as well as to support the selection of coalition that exhibits better results through the analysis of cost-benefit ratio
Metaheuristic models for decision support in the software construction process
En la actualidad, los ingenieros software no solo tienen la responsabilidad de construir
sistemas que desempe~nen una determinada funcionalidad, sino que cada vez
es más importante que dichos sistemas también cumplan con requisitos no funcionales
como alta disponibilidad, efciencia o seguridad, entre otros. Para lograrlo,
los ingenieros se enfrentan a un proceso continuo de decisión, pues deben estudiar
las necesidades del sistema a desarrollar y las alternativas tecnológicas existentes
para implementarlo. Todo este proceso debe estar encaminado a la obtención de
sistemas software de gran calidad, reutilizables y que faciliten su mantenimiento y
modificación en un escenario tan exigente y competitivo.
La ingeniería del software, como método sistemático para la construcción de software,
ha aportado una serie de pautas y tareas que, realizadas de forma disciplinada
y adaptadas al contexto de desarrollo, posibilitan la obtención de software de calidad.
En concreto, el proceso de análisis y diseño del software ha adquirido una gran
importancia, pues en ella se concibe la estructura del sistema, en términos de sus bloques
funcionales y las interacciones entre ellos. Es en este momento cuando se toman
las decisiones acerca de la arquitectura, incluyendo los componentes que la conforman,
que mejor se adapta a los requisitos, tanto funcionales como no funcionales,
que presenta el sistema y que claramente repercuten en su posterior desarrollo. Por
tanto, es necesario que el ingeniero analice rigurosamente las alternativas existentes,
sus implicaciones en los criterios de calidad impuestos y la necesidad de establecer
compromisos entre ellos. En este contexto, los ingenieros se guían principalmente
por sus habilidades y experiencia, por lo que dotarles de métodos de apoyo a la
decisión representaría un avance significativo en el área.
La aplicación de técnicas de inteligencia artificial en este ámbito ha despertado un
gran interés en los últimos años. En particular, la inteligencia artificial ha encontrado
en la ingeniería del software un ámbito de aplicación complejo, donde diferentes
técnicas pueden ayudar a conseguir la semi-automatización de tareas tradicionalmente
realizadas de forma manual. De la unión de ambas áreas surge la denominada
ingeniería del software basada en búsqueda, que propone la reformulación de las
actividades propias de la ingeniería del software como problemas de optimización.
A continuación, estos problemas podrían ser resueltos mediante técnicas de búsqueda
como las metaheurísticas. Este tipo de técnicas se caracterizan por explorar el
espacio de posibles soluciones de una manera \inteligente", a menudo simulando
procesos naturales como es el caso de los algoritmos evolutivos.
A pesar de ser un campo de investigación muy reciente, es posible encontrar propuestas
para automatizar una gran variedad de tareas dentro del ciclo de vida del software, como son la priorización de requisitos, la planifcación de recursos, la refactorización del código fuente o la generación de casos de prueba. En el ámbito del
análisis y diseño de software, cuyas tareas requieren de creatividad y experiencia,
conseguir una automatización completa resulta poco realista. Es por ello por lo que
la resolución de sus tareas mediante enfoques de búsqueda debe ser tratada desde la
perspectiva del ingeniero, promoviendo incluso la interacción con ellos. Además, el
alto grado de abstracción de algunas de sus tareas y la dificultad de evaluar cuantitativamente
la calidad de un diseño software, suponen grandes retos en la aplicación
de técnicas de búsqueda durante las fases tempranas del proceso de construcción de
software.
Esta tesis doctoral busca realizar aportaciones significativas al campo de la ingeniería
del software basada en búsqueda y, más concretamente, al área de la optimización
de arquitecturas software. Aunque se están realizando importantes avances en este
área, la mayoría de propuestas se centran en la obtención de arquitecturas de bajo
nivel o en la selección y despliegue de artefactos software ya desarrollados. Por tanto,
no existen propuestas que aborden el modelado arquitectónico a un nivel de abstracción elevado, donde aún no existe un conocimiento profundo sobre cómo será el
sistema y, por tanto, es más difícil asistir al ingeniero. Como problema de estudio,
se ha abordado principalmente la tarea del descubrimiento de arquitecturas software
basadas en componentes. El objetivo de este problema consiste en abstraer los bloques
arquitectónicos que mejor definen la estructura actual del software, así como
sus interacciones, con el fin de facilitar al ingeniero su posterior análisis y mejora.
Durante el desarrollo de esta tesis doctoral se ha explorado el uso de una gran variedad
de técnicas de búsqueda, estudiando su idoneidad y realizando las adaptaciones
necesarias para hacer frente a los retos mencionados anteriormente. La primera propuesta
se ha centrado en la formulación del descubrimiento de arquitecturas como
problema de optimización, abordando la representación computacional de los artefactos
software que deben ser modelados y definiendo medidas software para evaluar
su calidad durante el proceso de búsqueda. Además, se ha desarrollado un primer
modelo basado en algoritmos evolutivos mono-objetivo para su resolución, el cual ha
sido validado experimentalmente con sistemas software reales. Dicho modelo se caracteriza
por ser comprensible y
exible, pues sus componentes han sido diseñados
considerando estándares y herramientas del ámbito de la ingeniería del software,
siendo además configurable en función de las necesidades del ingeniero.
A continuación, el descubrimiento de arquitecturas ha sido tratado desde una perspectiva
multiobjetivo, donde varias medidas software, a menudo en con
icto, deben
ser simultáneamente optimizadas. En este caso, la resolución del problema se ha
llevado a cabo mediante ocho algoritmos del estado del arte, incluyendo propuestas recientes del ámbito de la optimización de muchos objetivos. Tras ser adaptados al
problema, estos algoritmos han sido comparados mediante un extenso estudio experimental
con el objetivo de analizar la ifnuencia que tiene el número y la elección
de las métricas a la hora de guiar el proceso de búsqueda. Además de realizar una
validación del rendimiento de estos algoritmos siguiendo las prácticas habituales
del área, este estudio aporta un análisis detallado de las implicaciones que supone
la optimización de múltiples objetivos en la obtención de modelos de soporte a la
decisión.
La última propuesta en el contexto del descubrimiento de arquitecturas software
se centra en la incorporación de la opinión del ingeniero al proceso de búsqueda.
Para ello se ha diseñado un mecanismo de interacción que permite al ingeniero indicar
tanto las características deseables en las soluciones arquitectónicas (preferencias
positivas) como aquellos aspectos que deben evitarse (preferencias negativas). Esta
información es combinada con las medidas software utilizadas hasta el momento,
permitiendo al algoritmo evolutivo adaptar la búsqueda conforme el ingeniero interactúe. Dadas las características del modelo, su validación se ha realizado con la
participación de ingenieros con distinta experiencia en desarrollo software, a fin de
demostrar la idoneidad y utilidad de la propuesta.
En el transcurso de la tesis doctoral, los conocimientos adquiridos y las técnicas
desarrolladas también han sido extrapolados a otros ámbitos de la ingeniería del
software basada en búsqueda mediante colaboraciones con investigadores del área.
Cabe destacar especialmente la formalización de una nueva disciplina transversal,
denominada ingeniería del software basada en búsqueda interactiva, cuyo fin es promover
la participación activa del ingeniero durante el proceso de búsqueda. Además,
se ha explorado la aplicación de algoritmos de muchos objetivos a un problema clásico
de la computación orientada a servicios, como es la composición de servicios web.Nowadays, software engineers have not only the responsibility of building systems that provide a particular functionality, but they also have to guarantee that these systems ful l demanding non-functional requirements like high availability, e ciency or security. To achieve this, software engineers face a continuous decision process, as they have to evaluate system needs and existing technological alternatives to implement it. All this process should be oriented towards obtaining high-quality and reusable systems, also making future modi cations and maintenance easier in such a competitive scenario. Software engineering, as a systematic method to build software, has provided a number of guidelines and tasks that, when done in a disciplinarily manner and properly adapted to the development context, allow the creation of high-quality software. More speci cally, software analysis and design has acquired great relevance, being the phase in which the software structure is conceived in terms of its functional blocks and their interactions. In this phase, engineers have to make decisions about the most suitable architecture, including its constituent components. Such decisions are made according to the system requirements, either functional or non-functional, and will have a great impact on its future development. Therefore, the engineer has to rigorously analyse existing alternatives, their implications on the imposed quality criteria and the need of establishing trade-o s among them. In this context, engineers are mostly guided by their own capabilities and experience, so providing them with decision support methods would represent a signi cant contribution. The application of arti cial intelligent techniques in this area has experienced a growing interest in the last years. Particularly, software engineering represents a complex application domain to arti cial intelligence, whose diverse techniques can help in the semi-automation of tasks traditionally performed manually. The union of both elds has led to the appearance of search-based software engineering, which proposes reformulating software engineering activities as optimisation problems. For their resolution, search techniques like metaheuristics can be then applied. This type of technique performs an \intelligent" exploration of the space of candidate solutions, often inspired by natural processes as happens with evolutionary algorithms. Despite the novelty of this research eld, there are proposals to automate a great variety of tasks within the software lifecycle, such as requirement prioritisation, resource planning, code refactoring or test case generation. Focusing on analysis and design, whose tasks require creativity and experience, trying to achieve full automation is not realistic. Therefore, solving design tasks by means of search approaches should be oriented towards the engineer's perspective, even promoting their interaction. Furthermore, design tasks are also characterised by a high level of abstraction and the di culty of quantitatively evaluating design quality. All these aspects represent key challenges for the application of search techniques in early phases of the software construction process. The aim of this Ph.D. Thesis is to make signi cant contributions in search-based software engineering and, specially, in the area of software architecture optimisation. Although it is an area in which signi cant progress is being done, most of the current proposals are focused on generating low-level architectures or selecting and deploying already developed artefacts. Therefore, there is a lack of proposals dealing with architectural modelling at a high level of abstraction. At this level, engineers do not have a deep understanding of the system yet, meaning that assisting them is even more di cult. As case study, the discovery of component-based software architectures has been primary addressed. The objective for this problem consists in the abstraction of the architectural blocks, and their interactions, that best de ne the current structure of a software system. This can be viewed as the rst step an engineer would perform in order to further analyse and improve the system architecture. In this Ph.D. Thesis, the use of a great variety of search techniques has been explored. The suitability of these techniques has been studied, also making the necessary adaptations to cope with the aforementioned challenges. A rst proposal has been focused on the formulation of software architecture discovery as an optimisation problem, which consists in the computational representation of its software artefacts and the de nition of software metrics to evaluate their quality during the search process. Moreover, a single-objective evolutionary algorithm has been designed for its resolution, which has been validated using real software systems. The resulting model is comprehensible and exible, since its components have been designed under software engineering standards and tools and are also con gurable according to engineer's needs. Next, the discovery of software architectures has been tackled from a multi-objective perspective, in which several software metrics, often in con ict, have to be simultaneously optimised. In this case, the problem is solved by applying eight state-of-theart algorithms, including some recent many-objective approaches. These algorithms have been adapted to the problem and compared in an extensive experimental study, whose purpose is to analyse the in uence of the number and combination of metrics when guiding the search process. Apart from the performance validation following usual practices within the eld, this study provides a detailed analysis of the practical
implications behind the optimisation of multiple objectives in the context of
decision support.
The last proposal is focused on interactively including the engineer's opinion in the
search-based architecture discovery process. To do this, an interaction mechanism
has been designed, which allows the engineer to express desired characteristics for
the solutions (positive preferences), as well as those aspects that should be avoided
(negative preferences). The gathered information is combined with the software
metrics used until the moment, thus making possible to adapt the search as the
engineer interacts. Due to the characteristics of the proposed model, engineers of
di erent expertise in software development have participated in its validation with
the aim of showing the suitability and utility of the approach.
The knowledge acquired along the development of the Thesis, as well as the proposed
approaches, have also been transferred to other search-based software engineering
areas as a result of research collaborations. In this sense, it is worth noting the
formalisation of interactive search-based software engineering as a cross-cutting discipline,
which aims at promoting the active participation of the engineer during the
search process. Furthermore, the use of many-objective algorithms has been explored
in the context of service-oriented computing to address the so-called web service
composition problem
Selected Papers from the 5th International Electronic Conference on Sensors and Applications
This Special Issue comprises selected papers from the proceedings of the 5th International Electronic Conference on Sensors and Applications, held on 15–30 November 2018, on sciforum.net, an online platform for hosting scholarly e-conferences and discussion groups. In this 5th edition of the electronic conference, contributors were invited to provide papers and presentations from the field of sensors and applications at large, resulting in a wide variety of excellent submissions and topic areas. Papers which attracted the most interest on the web or that provided a particularly innovative contribution were selected for publication in this collection. These peer-reviewed papers are published with the aim of rapid and wide dissemination of research results, developments, and applications. We hope this conference series will grow rapidly in the future and become recognized as a new way and venue by which to (electronically) present new developments related to the field of sensors and their applications
- …