5 research outputs found

    Efficient anytime algorithms to solve the bi-objective Next Release Problem

    Full text link
    The Next Release Problem consists in selecting a subset of requirements to develop in the next release of a software product. The selection should be done in a way that maximizes the satisfaction of the stakeholders while the development cost is minimized and the constraints of the requirements are fulfilled. Recent works have solved the problem using exact methods based on Integer Linear Programming. In practice, there is no need to compute all the efficient solutions of the problem; a well-spread set in the objective space is more convenient for the decision maker. The exact methods used in the past to find the complete Pareto front explore the objective space in a lexicographic order or use a weighted sum of the objectives to solve a single-objective problem, finding only supported solutions. In this work, we propose five new methods that maintain a well-spread set of solutions at any time during the search, so that the decision maker can stop the algorithm when a large enough set of solutions is found. The methods are called anytime due to this feature. They find both supported and non-supported solutions, and can complete the whole Pareto front if the time provided is long enough

    Dependency-Aware Software Requirements Selection using Fuzzy Graphs and Integer Programming

    Full text link
    Software requirements selection aims to find an optimal subset of the requirements with the highest value while respecting the project constraints. But the value of a requirement may depend on the presence or absence of other requirements in the optimal subset. Such Value Dependencies, however, are imprecise and hard to capture. In this paper, we propose a method based on integer programming and fuzzy graphs to account for value dependencies and their imprecision in software requirements selection. The proposed method, referred to as Dependency-Aware Software Requirements Selection (DARS), is comprised of three components: (i) an automated technique for the identification of value dependencies from user preferences, (ii) a modeling technique based on fuzzy graphs that allows for capturing the imprecision of value dependencies, and (iii) an Integer Linear Programming (ILP) model that takes into account user preferences and value dependencies identified from those preferences to reduce the risk of value loss in software projects. Our work is verified by studying a real-world software project. The results show that our proposed method reduces the value loss in software projects and is scalable to large requirement sets.Comment: arXiv admin note: text overlap with arXiv:2003.0480

    Técnicas para la Estimación y Planificación de Proyectos de Software con Ciclos de Vida Incremental y Paradigma Orientado a Objetos

    Full text link
    La estimación de costos y esfuerzos sigue siendo una de las tareas más difíciles en la gestión de un proyecto de software. Esta actividad es realizada por el jefe de proyecto, quien es responsable de hacer dichas estimaciones lo más precisas posible. En la actualidad existen técnicas que permiten realizar esta labor aunque, lamentablemente, aún no hay técnicas maduras específicas para enfoques de desarrollo como la orientación a objetos o los sistemas expertos. A ello se suma el problema de la escasa información proporcionada por las técnicas de estimación existentes para su aplicación a ciclos de vida de desarrollo de software diferentes al de cascada, como, por ejemplo, los ciclos de vida incremental o iterativo. Debido a la problemática existente, se diseñó Tupuy que es un conjunto de técnicas que apoya en la estimación y planificación basada en Puntos de función para proyectos de desarrollo de software orientados a objetos que empleen un modelo de ciclo de vida incremental. Esta propuesta está conformada por tres técnicas: UML2FP, Use Case Precedence Diagram (UCPD) e Incremental-FP. UML2FP es una técnica que permite realizar el cálculo de Puntos de función con modelos orientados a objetos y UCPD apoya en la priorización o definición de la secuencia de construcción considerando la perspectiva o punto de vista del desarrollador en términos de facilidad de construcción. Con los resultados que se obtienen con UML2FP y UCPD, la técnica Incremental-FP, permite definir qué casos de uso se van a construir en cada incremento y estimar el esfuerzo que se requiere para desarrollar cada incremento. La evaluación de UML2FP y UCPD se realizó mediante experimentos controlados con alumnos de pregrado, alumnos de posgrado y profesionales con experiencia en la industria, con resultados alentadores. En el caso de Incremental-FP, la evaluación se realizó mediante proyectos de desarrollo de software con alumnos del cuarto año del programa de pregrado en Ingeniería Informática de la Pontificia Universidad Católica del Perú; habiéndose obtenido, generalmente, una diferencia menor al 20% entre el esfuerzo estimado y el esfuerzo real. Adicionalmente, en los experimentos controlados para evaluar UCPD, se pudo determinar que las relaciones propuestas por el Method Adoption Model de Moody sí se pueden confirmar con las muestras obtenidas con profesionales, pero no con alumnos de pregrado; a pesar de que los resultados cuantitativos fueron similares. Esto nos podría sugerir que la evaluación cualitativa de técnicas con alumnos de pregrado deben tomarse con precaución, mas no la cuantitativa. Abstract The estimation of effort and cost is still one of the hardest tasks in software project management. This activity is performed by the project manager who is responsible for making such estimations as accurate as possible. Currently, there are techniques to do this work, but unfortunately there are no specific mature approaches to develop object-oriented software or expert systems. Also, there is limited information provided by the techniques to utilize them in nonwaterfall life cycle models such as incremental or iterative. To address this situation, it was designed Tupuy which is a set of techniques that supports Function Point-based estimation and planning for software development projects that utilize object-oriented and incremental life cycle models. Tupuy consists of three techniques named UML2FP, Use Case Precedence Diagram (UCPD) and Incremental-FP. UML2FP is a technique that allows Function Points counting based on object-oriented models, and UCPD is a technique that addresses the problem of determining the construction sequence or prioritization of a software product from the developer's perspective in terms of ease of construction. With the results obtained through the application of UML2FP and UCPD, Incremental-FP defines which use case has to be constructed in which increment, and estimates the effort required to develop each increment. UML2FP and UCPD evaluation was performed using controlled experiments with undergraduate students, graduate students and practitioners with experience in the industry. The results obtained were satisfactory. The Incremental-FP evaluation was performed with undergraduate students from software development projects of a fourth-year course in Informatics Engineering at Pontificia Universidad Católica del Perú. In this case, the difference between the estimated effort and actual effort was usually less than 20%. In addition, from the data obtained with the controlled experiments to evaluate UCPD, it was determined that the relationships proposed by the Moody’s Method Adoption Model could be confirmed with practitioners, but not with undergraduate students. These results may suggest that the qualitative assessments of techniques with undergraduate students should be taken with caution, but not the quantitative assesments

    Long version - Requirements interaction in the next release problem

    No full text
    The selection of a set of requirements between all those pro- posed by the customers is an important process in software development, that can be addressed using heuristic opti- mization techniques. Dependencies or interactions between requirements can be defined to denote common situations in software development: requirements that follow an order of precedence, requiments exclusive of each other, require- ments that must be included at the same time, etc. This paper shows how requirements interactions affect the search space explored by optimization algorithms. Three search techniques, i.e. a greedy randomized adaptive search proce- dure (GRASP), a genetic algorithm (GA) and an ant colony system (ACS), have been adapted to the requirements selec- tion problem considering interaction between requirements. We describe the adaptation of the three meta-heuristic algo- rithms to solve this problem and compare their performanc
    corecore