37 research outputs found
Software Engineering Timeline: major areas of interest and multidisciplinary trends
Ingeniería del software. EvolucionSociety today cannot run without software and by extension, without Software Engineering. Since this discipline emerged in 1968, practitioners have learned valuable lessons that have contributed to current practices. Some have become outdated but many are still relevant and widely used. From the personal and incomplete perspective of the authors, this paper not only reviews the major milestones and areas of interest in the Software Engineering timeline helping software engineers to appreciate the state of things, but also tries to give some insights into the trends that this complex engineering will see in the near future
Ant Colony Optimization for Requirement selection in Incremental Software development
This proposal shows that ACO systems can be applied to problems of requirements selection in software incremental development, with the idea of obtaining better results of those produced by expert judgment alone. The evaluation of the ACO systems should be done through a compared analysis with greedy and simulated annealing algorithms, performing experiments with some problems instance
Metamodeling of Bayesian networks for decision-support systems development
The knowledge modeling and software modeling phases in Knowledge-Based System development are not integrable, in
terms of representation, due to the different languages needed at the steps of the development. This paper focuses on bring closer these languages. By one hand, we define a meta model which contains the key concepts used in the definition of a knowledge model as a Bayesian network. On the other hand, we define an extension of UML using profiles that can bridge the gap in representation
and facilitate the seamless incorporation of a knowledge model, as Bayesian network, in the context of a knowledge-based software
development
Expansión cuantitativa del método MoSCoW para la priorización de requisitos
La priorización de los requisitos a ser incluidos en el producto final es un complejo proceso de decisión multicriterio que suele implicar llegar al equilibrio entre el beneficio para el negocio de cada requisito y el consumo de recursos. Existen distintos factores y dimensiones a considerar en la priorización de requisitos, muchos de ellos de carácter cualitativo. Sin embargo, algunos métodos también han utilizado las propiedades cuantitativas estimadas, siendo muchas de estas soluciones del ámbito de las técnicas de optimización. En este trabajo se propone y estudia la validez de un algoritmo de agrupamiento muy conocido, k-medias, junto con el método subjetivo más ampliamente utilizado, el método MoSCoW, para la priorización de requisitos. Los resultados experimentales, sobre dos casos de 20 y 100 requisitos respectivamente, muestran la validez de la propuesta en la identificación de los requisitos que dan mayor valor al sistema a construir y que aseguran el mayor beneficio en el proyecto
Requirement Risk Level Forecast Using Bayesian Networks Classifiers
Requirement engineering is a key issue in the development of a software project. Like any other development activity it is not without risks. This work is about the empirical study of risks of requirements by applying machine learning techniques, specifically Bayesian networks classifiers. We have defined several models to predict the risk level for a given requirement using three dataset that collect metrics taken from the requirement specifications of different projects. The classification accuracy of the Bayesian models obtained is evaluated and compared using several classification performance measures. The results of the experiments show that the Bayesians networks allow obtaining valid predictors. Specifically, a tree augmented network structure shows a competitive experimental performance in all datasets. Besides, the relations established between the variables collected to determine the level of risk in a requirement, match with those set by requirement engineers. We show that Bayesian networks are valid tools for the automation of risks assessment in requirement engineering
Flujo de trabajo para la experimentación colaborativa en Ingeniería del Software guiada por búsqueda
La Ingeniería del Software Guiada por Búsqueda persigue reformular problemas de Ingeniería del Software que a menudo comprenden objetivos en conflicto, como problemas de optimización. Así, las técnicas que se aplican en esta disciplina buscan una o un conjunto de soluciones casi-óptimas en un espacio de soluciones candidatas con la ayuda de una función de aptitud que les permita distinguir las mejores soluciones. La naturaleza estocástica de los algoritmos de optimización requiere de la repetición de las búsquedas para mitigar los efectos de la aleatoriedad. A la hora de comparar algoritmos, el investigador comparará los resultados con mejor calidad (mejores valores en la función de aptitud, en indicadores de calidad y rendimiento) devueltos en las búsquedas, lo que conlleva un trabajo adicional por parte del investigador. La sobrecarga que implica esta actividad puede aminorarse si la experimentación se enfoca de manera colaborativa. Este artículo propone un flujo de trabajo para la experimentación colaborativa basado en resultados e indicadores de calidad y rendimiento
Salience-based stakeholder selection to maintain stakeholder coverage in solving the next release problem
Context: The quantification of stakeholders plays a fundamental role in the selection of appropriate requirements, as their judgement is a significant criterion, as not all stakeholders are equally important. The original proposals modelled stakeholder importance using a weighting approach that may not capture all the dimensions of stakeholder importance. Furthermore, actual projects involve a multitude of stakeholders, making it difficult to consider and compute all their weights. These facts lead us to search for strategies to adequately assess the importance concept, reducing the elicitation effort.
Objective: We propose grouping strategies as a means of reducing the number of stakeholders to manage in requirement selection while maintaining adequate stakeholder coverage (how selection meets stakeholder demands).
Methods: Our approach is based on the salience of stakeholders, defined in terms of their power, legitimacy, and urgency. Diverse strategies are applied to select important stakeholder groups. We use k-means, k-medoids, and hierarchical clustering, after deciding the number of clusters based on validation indices.
Results: Each technique found a different group of important stakeholders. The number of stakeholder groups suggested experimentally (3 or 4) coincides with those indicated by the literature as definitive, dominant, dependent, and dangerous for 4 groups; or critical, major, and minor for 3 groups. Either for all the stakeholders and for each important group, several requirements selection optimisation problems are solved. The tests do not find significant differences in coverage when important stakehold-
ers are filtered using clustering, regardless of the technique and number of groups, with a reduction between 66.32% and 87.75% in the number of stakeholders considered.
Conclusions: Applying clustering methods to data obtained from a project is useful in identifying the group of important stakeholders. The number of suggested groups matches the stakeholders’ theory, and the stakeholder coverage values are kept in the requirement selection
Multi-objective ant colony optimization for requirements selection
The selection of a set of requirements between all the requirements previously defined by customers is an important process, repeated at the beginning of each development step when an incremental or agile software development approach is adopted. The set of selected requirements will be developed during the actual iteration. This selection problem can be reformulated as a search problem, allowing its treatment with metaheuristic optimization techniques. This paper studies how to apply Ant Colony Optimization algorithms to select requirements. First, we describe this problem formally extending an earlier version of the problem, and introduce a method based on Ant Colony System to find a variety of efficient solutions. The performance achieved by the Ant Colony System is compared with that of Greedy Randomized Adaptive Search Procedure and Non-dominated Sorting Genetic Algorithm, by means of computational experiments carried out on two instances of the problem constructed from data provided by the experts
Metaheurísticas como soporte a la selección de requisitos del software
Las técnicas de optimización y metaheurísticas han sido aplicadas ampliamente en numerosas áreas, entre ellas la Ingeniería del Software. En este trabajo mostramos la incorporacíon de estas técnicas como soporte a las tareas de selección de un grupo de requisitos de entre aquellos que han sido propuestos por los clientes, validando experimentalmente sus resultados. Los algoritmos metaheurísticos son ejecutados desde una herramienta web que permite la definicíon colaborativa de los requisitos de un proyecto software y ayudan a los desarrolladores durante la ejecución del mismo