4 research outputs found

    Interactive ant colony optimization (iACO) for early lifecycle software design

    Get PDF
    Finding good designs in the early stages of the software development lifecycle is a demanding multi-objective problem that is crucial to success. Previously, both interactive and non-interactive techniques based on evolutionary algorithms (EAs) have been successfully applied to assist the designer. However, recently ant colony optimization was shown to outperform EAs at optimising quantitative measures of software designs with a limited computational budget. In this paper, we propose a novel interactive ACO (iACO) approach, in which the search is steered jointly by an adaptive model that combines subjective and objective measures. Results show that iACO is speedy, responsive and effective in enabling interactive, dynamic multi-objective search. Indeed, study participants rate the iACO search experience as compelling. Moreover, inspection of the learned model facilitates understanding of factors affecting users' judgements, such as the interplay between a design's elegance and the interdependencies between its components. © 2014 Springer Science+Business Media New York

    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

    A comparison of meta-heuristic search for interactive software design

    No full text
    Advances in processing capacity, coupled with the desire to tackle problems where a human subjective judgment plays an important role in determining the value of a proposed solution, has led to a dramatic rise in the number of applications of Interactive Artificial Intelligence. Of particular note is the coupling of meta-heuristic search engines with user-provided evaluation and rating of solutions, usually in the form of Interactive Evolutionary Algorithms (IEAs). These have a well-documented history of successes, but arguably the preponderance of IEAs stems from this history, rather than as a conscious design choice of meta-heuristic based on the characteristics of the problem at hand. This paper sets out to examine the basis for that assumption, taking as a case study the domain of interactive software design. We consider a range of factors that should affect the design choice including ease of use, scalability, and of course, performance, i.e. that ability to generate good solutions within the limited number of evaluations available in interactive work before humans lose focus. We then evaluate three methods, namely greedy local search, an evolutionary algorithm and ant colony optimization (ACO), with a variety of representations for candidate solutions. Results show that after suitable parameter tuning, ACO is highly effective within interactive search and out-performs evolutionary algorithms with respect to increasing numbers of attributes and methods in the software design problem. However, when larger numbers of classes are present in the software design, an evolutionary algorithm using a naïve grouping integer-based representation appears more scalable. © 2013 Springer-Verlag Berlin Heidelberg

    Identifying the Neurocognitive bases of creativity to increase human and computational creativity

    Get PDF
    En esta Tesis Doctoral se ha identificado la estructura neurocognitiva que sustenta la creatividad humana a partir del análisis conjunto de más de 800 referencias bibliográficas que muestran las investigaciones más importantes realizadas hasta la fecha. Sobre la base de esta estructura, se ha identificado un paradigma neurocognitivo de la creatividad humana y se ha propuesto un modelo neurocognitivo del proceso creativo. Finalmente, también se ha propuesto un paradigma creativo neurocognitivo computacional y se ha diseñado la estructura de un sistema computacional creativo, basado en una estructura multiagente. La investigación que se ha realizado sobre el tema hasta la fecha es muy especializada y se centra en aspectos muy concretos de la creatividad, y en muchos casos tienen poca relación entre sí. Por ello, y para tener una idea conjunta y holística de los procesos neurocognitivos de la creatividad humana, es necesario estudiar todas estas investigaciones de forma interconectada. Esta idea conjunta permitiría dirigir investigaciones más específicas para ser más efectivos. Por ello, lo primero que se ha hecho ha sido clasificar, agrupar, analizar, entrelazar y estructurar, de forma ordenada, las investigaciones más importantes que se han realizado hasta la fecha. Sin embargo, el trabajo realizado va mucho más allá, ya que estructurando y entrelazando las investigaciones existentes ha sido posible identificar ciertos patrones, correlaciones y paralelismos, y realizar ciertas deducciones, que en su conjunto, han permitido identificar los procesos neurocognitivos fundamentales. bases de la creatividad humana. La Tesis se estructura en los siguientes capítulos: Capitulo 2 Análisis de los principales métodos para estimular la creatividad Se analizan las principales definiciones de creatividad, y se ha decidido que el mejor enfoque para su análisis es estructurarla taxonómicamente, bajo el modelo 4P. Se ha realizado una recopilación y análisis de los métodos más efectivos que estimulan la creatividad humana, mostrando las ventajas y desventajas de cada uno. Capítulo 3 Estructura funcional del cerebro humano y su relación con el proceso creativo Se identifica la estructura neurocognitiva general del cerebro humano que permite generar los procesos fundamentales y básicos de su actividad creativa. Capítulo 4 El papel fundamental de la DMN en el proceso creativo Se ha observado que la red de modo predeterminado (DMN) tiene un papel principal en la creatividad. Por ello, se ha dedicado un capítulo a su estudio, y se han identificado varios factores que la involucran directamente en la actividad creativa del cerebro humano. Capítulo 5 Identificación y análisis de las bases neurocognitivas de la creatividad humana Se ha identificado el conjunto general de factores neurocognitivos que sustentan los procesos creativos en el cerebro humano. Capítulo 6 Paradigma neurocognitivo de la creatividad humana Se ha propuesto un modelo neurocognitivo del proceso creativo que reestructura, completa y detalla todos los modelos conceptuales propuestos hasta el momento. Capítulo 7 Paradigma computacional de la creatividad basado en la estructura neurocognitiva humana Analizando las diferentes bases neurocognitivas que sustentan la creatividad humana, se han establecido paralelismos computacionales y se han realizado diferentes sugerencias para el diseño de un sistema computacional creativo.In this Doctoral Thesis, the neurocognitive structure that supports human creativity has been identified based on the joint analysis of more than 800 bibliographical references that show the most important investigations carried out to date. Based on this structure, a neurocognitive paradigm of human creativity has been described, and a neurocognitive model of creative process has been proposed. Finally, a computational neurocognitive creative paradigm has been also proposed, and the structure of a creative computational multi-agent system has been designed. The research that has been carried out on the subject is very specialized and focuses on very specific aspects of creativity, and in many cases they have little relationship with each other. For this reason, and in order to have a joint and holistic idea of the neurocognitive processes of human creativity, it is necessary to study all these investigations in an interconnected way. This joint idea would allow directing more specific investigations in order to be more effective. For this reason, the first thing that has been done has been to classify, group, analyze, intertwine and structure, in an orderly manner, the most important investigations that have been carried out to date. However, the work carried out goes much further, since by structuring and intertwining the existing research it has been possible to identify certain patterns, correlations and parallelisms, and make certain deductions, which as a whole, have made it possible to identify the fundamental neurocognitive bases of human creativity. Chapter 2 Analysis of the main methods to stimulate creativity The main definitions of creativity are analyzed, and it has been decided that the best approach for its analysis is to structure it taxonomically, under the 4P model. A compilation and analysis of the most effective methods that stimulate human creativity has been carried out, showing the advantages and disadvantages of each one. Chapter 3 Functional structure of the human brain and its relationship with the creative process The general neurocognitive structure of the human brain that allows the generation of the fundamental and basic processes of its creative activity are identified. Chapter 4 The fundamental role of the DMN in the creative process It has been observed that the Default mode network (DMN) has a main role in creativity. For this reason, a chapter has been dedicated to its study, and several factors have been identified that directly involve it in the creative activity of the human brain. Chapter 5 Identification and analysis of the neurocognitive bases of human creativity The general set of neurocognitive factors that underpin creative processes in the human brain has been identified. Chapter 6 Neurocognitive paradigm of human creativity A neurocognitive model of the creative process has been proposed, which restructures, completes and details all the conceptual models proposed so far. Chapter 7 Computational paradigm of creativity based on the human neurocognitive structure Analyzing the different neurocognitive bases that support human creativity, computational parallels have been established and different suggestions have been made for the design of a creative computational system
    corecore