8 research outputs found

    Evolutionary Search Techniques with Strong Heuristics for Multi-Objective Feature Selection in Software Product Lines

    Get PDF
    Software design is a process of trading off competing objectives. If the user objective space is rich, then we should use optimizers that can fully exploit that richness. For example, this study configures software product lines (expressed as feature models) using various search-based software engineering methods. Our main result is that as we increase the number of optimization objectives, the methods in widespread use (e.g. NSGA-II, SPEA2) perform much worse than IBEA (Indicator-Based Evolutionary Algorithm). IBEA works best since it makes most use of user preference knowledge. Hence it does better on the standard measures (hypervolume and spread) but it also generates far more products with 0 violations of domain constraints. We also present significant improvements to IBEA\u27s performance by employing three strong heuristic techniques that we call PUSH, PULL, and seeding. The PUSH technique forces the evolutionary search to respect certain rules and dependencies defined by the feature models, while the PULL technique gives higher weight to constraint satisfaction as an optimization objective and thus achieves a higher percentage of fully-compliant configurations within shorter runtimes. The seeding technique helps in guiding very large feature models to correct configurations very early in the optimization process. Our conclusion is that the methods we apply in search-based software engineering need to be carefully chosen, particularly when studying complex decision spaces with many optimization objectives. Also, we conclude that search methods must be customized to fit the problem at hand. Specifically, the evolutionary search must respect domain constraints

    How to Evaluate Solutions in Pareto-based Search-Based Software Engineering? A Critical Review and Methodological Guidance

    Full text link
    With modern requirements, there is an increasing tendency of considering multiple objectives/criteria simultaneously in many Software Engineering (SE) scenarios. Such a multi-objective optimization scenario comes with an important issue -- how to evaluate the outcome of optimization algorithms, which typically is a set of incomparable solutions (i.e., being Pareto non-dominated to each other). This issue can be challenging for the SE community, particularly for practitioners of Search-Based SE (SBSE). On one hand, multi-objective optimization could still be relatively new to SE/SBSE researchers, who may not be able to identify the right evaluation methods for their problems. On the other hand, simply following the evaluation methods for general multi-objective optimization problems may not be appropriate for specific SE problems, especially when the problem nature or decision maker's preferences are explicitly/implicitly available. This has been well echoed in the literature by various inappropriate/inadequate selection and inaccurate/misleading use of evaluation methods. In this paper, we first carry out a systematic and critical review of quality evaluation for multi-objective optimization in SBSE. We survey 717 papers published between 2009 and 2019 from 36 venues in seven repositories, and select 95 prominent studies, through which we identify five important but overlooked issues in the area. We then conduct an in-depth analysis of quality evaluation indicators/methods and general situations in SBSE, which, together with the identified issues, enables us to codify a methodological guidance for selecting and using evaluation methods in different SBSE scenarios.Comment: This paper has been accepted by IEEE Transactions on Software Engineering, available as full OA: https://ieeexplore.ieee.org/document/925218

    PA163-3-SIGPLAN : generador de escenarios de planeación para la gestión de un proyecto informático- SIGPLAN

    Get PDF
    El presente trabajo de grado contiene todo el proceso en el cual se desarrolló la solución SIGPLAN, este proyecto es una solución gerencial que le permite a las organizaciones generar escenarios de proyectos informáticos para la planeación de la gestión de proyectos. Este pro-yecto se dividió en seis fases, según lo plantea la metodología Design Science Research [1] las cuales son: 1. Identificar el problema y establecer una motivación. 2. Proponer los objetivos del proyecto. 3. Diseñar y desarrollar los objetivos planteados. 4. Demostrar mediante una prueba de concepto. 5. Evaluar los resultados 6. Comunicar los resultados de todo el proyecto. El proyecto estuvo acompañado por la directora de tesis y la empresa ITAC IT Applications Consulting.The Present final project for graduation contains the whole process in which SIGPLAN solu-tion has been developed, this is a managemet solution that allows the organizations to generate different planning scenarios of information technology projects order to help the project man-agement. Design research project [1]: 1. Identify the problem and establish a motivationed. 2. Propose the objectives of the project. 3. Design and develop the purposes. 4. To prove by proof of concept. 5. Evaluate the results 6. Communicate the results of the whole project. The project was accompanied by the thesis director and ITAC - IT Applications Consulting.Magíster en Ingeniería de Sistemas y ComputaciónMaestrí

    Applying Genetic Algorithms for Software Design and Project Planning

    Get PDF
    Today's software systems are growing in size and complexity. This means not only increased complexity in developing software systems, but also increase in the budget and completion time. This trend will lead to a situation where traditional manual software engineering practices are not sufficient to develop and evolve software systems in an economic and timely manner. Automated support can aid software engineers in reducing the time-to-market and improving the quality of the software. This thesis work explores the application of genetic algorithms for automated software architecture design and project planning.Software architecture design and project planning are non-trivial and challenging tasks. This thesis applies genetic algorithms to introduce automation into these tasks. The proposed genetic algorithm exploits reusable solutions, such as design patterns, architecture styles and application specific solutions for transforming a given initial rudimentary model into detailed design. The architectures are evaluated using multiple quality attributes, such as modifiability, efficiency and complexity. The fitness function encompasses the knowledge required for evaluating the architectures according to multiple quality attributes. The output from the genetic algorithm is an architecture proposal optimized with respect to multiple quality attributes.A genetic algorithm has also been devised for assigning work across teams located in distributed sites. The genetic algorithm takes information about the target system and the development organization as input and produces a set of work distribution and schedule plans optimized with respect to cost and duration objectives. The fitness function considers the differences in teams and barriers created by global dispersion into account in evaluating the work assignment. In addition, the genetic algorithm also takes solutions that ease or hamper distributed development into account in allocating the work. The genetic algorithm has been further extended with Pareto optimality to find a set of suitable work distribution proposals in a tradeoff between project cost and duration. In the experiments, an electronic home control system was developed by a set of different organizations structures. The results demonstrate that the proposed genetic algorithm can create reasonable work distribution proposals that conform to the general assumptions about the nature of cost and project completion time, i.e., cost of the project can be reduced at the expense of project completion time and vice-versa.In addition, variations have been made to the genetic algorithm approach to software architecture design. To accelerate the genetic algorithm towards multi-objective solutions, a quality farms approach has been developed. The approach uses the idea of cross breeding, where different individuals that are good with respect to one quality objective are combined for producing software architecture proposals that are good in multiple objectives. Also, to explore the suitability of other methods for software architecture synthesis, a constraint satisfaction approach has been developed. The approach models the software architecture design problem as a constraint satisfaction and optimization problem and solves it using constraint satisfaction techniques. This approach can provide rationale about why certain decisions are chosen in the proposed architecture proposals.Tool support for genetic algorithm-based architecture design and work planning approaches has been proposed. It facilitates an end user to give input, view and analyze the results of the developed genetic algorithm based approaches. The tool also provides support for semi-automated architecture design, where a human architect can guide the genetic algorithm towards optimal solutions. An empirical study has also been performed. It suggests that the quality of the proposals produced through semiautomated architecture design is roughly at the level of senior software engineering students. Furthermore, the project manager can interact with the tool and perform whatif analysis for choosing the suitable work distribution for the project at hand

    Modelo de medición de la productividad para fábricas de software

    Get PDF
    La productividad en las fábricas de software es dado por el esfuerzo realizado para la producción del software, siendo muy importante porque permite que las organizaciones logren una mayor eficiencia y eficacia en sus actividades. Uno de los pilares de la competitividad es la productividad, la cual está relacionada al esfuerzo requerido para cumplir con las tareas asignadas, sin embargo, no existe una forma estándar de medirla. En este trabajo, se presenta un modelo basado en Análisis Envoltorio de Datos (DEA, por las siglas del inglés Data Envelopment Analysis) para evaluar la eficiencia relativa de las fábricas de software y sus proyectos, a fin de medir la productividad en la Componente de Producción de Software de la Fábrica de Software a través de las actividades que se realizan en sus diferentes unidades de trabajo. El modelo propuesto consta de dos fases, en la cual se evalúa, respectivamente, la productividad de la fábrica de software y la productividad de los proyectos que esta realiza. Pruebas numéricas sobre 6 fábricas de software con 160 proyectos implementados en el Perú muestran que el modelo propuesto permite determinar las fábricas de software y los proyectos más eficientes.Tesi

    Metaheuristics to solve the software project scheduling problem

    No full text
    corecore