129,148 research outputs found

    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

    CDOXplorer: Simulation-based genetic optimization of software deployment and reconfiguration in the cloud

    Get PDF
    Migrating existing enterprise software to cloud platforms involves the comparison of various cloud deployment options (CDOs). A CDO comprises a combination of a specific cloud environment, deployment architecture, and runtime reconfiguration rules for dynamic resource scaling. Our simulator CDOSim can evaluate CDOs, e.g., regarding response times and costs. However, the design space to be searched for well-suited solutions is very large. In this paper, we approach this optimization problem with the novel genetic algorithm CDOXplorer. It uses techniques of the search-based software engineering field and simulations with CDOSim to assess the fitness of CDOs. An experimental evaluation that employs, among others, the cloud environments Amazon EC2 and Microsoft Windows Azure, shows that CDOXplorer can find solutions that surpass those of other state-of-the-art techniques by up to 60\%. Our experiment code and data and an implementation of CDOXplorer are available as open source software

    A service oriented architecture for engineering design

    Get PDF
    Decision making in engineering design can be effectively addressed by using genetic algorithms to solve multi-objective problems. These multi-objective genetic algorithms (MOGAs) are well suited to implementation in a Service Oriented Architecture. Often the evaluation process of the MOGA is compute-intensive due to the use of a complex computer model to represent the real-world system. The emerging paradigm of Grid Computing offers a potential solution to the compute-intensive nature of this objective function evaluation, by allowing access to large amounts of compute resources in a distributed manner. This paper presents a grid-enabled framework for multi-objective optimisation using genetic algorithms (MOGA-G) to aid decision making in engineering design

    Search based software engineering: Trends, techniques and applications

    Get PDF
    © ACM, 2012. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version is available from the link below.In the past five years there has been a dramatic increase in work on Search-Based Software Engineering (SBSE), an approach to Software Engineering (SE) in which Search-Based Optimization (SBO) algorithms are used to address problems in SE. SBSE has been applied to problems throughout the SE lifecycle, from requirements and project planning to maintenance and reengineering. The approach is attractive because it offers a suite of adaptive automated and semiautomated solutions in situations typified by large complex problem spaces with multiple competing and conflicting objectives. This article provides a review and classification of literature on SBSE. The work identifies research trends and relationships between the techniques applied and the applications to which they have been applied and highlights gaps in the literature and avenues for further research.EPSRC and E

    A synthesis of logic and biology in the design of dependable systems

    Get PDF
    The technologies of model-based design and dependability analysis in the design of dependable systems, including software intensive systems, have advanced in recent years. Much of this development can be attributed to the application of advances in formal logic and its application to fault forecasting and verification of systems. In parallel, work on bio-inspired technologies has shown potential for the evolutionary design of engineering systems via automated exploration of potentially large design spaces. We have not yet seen the emergence of a design paradigm that combines effectively and throughout the design lifecycle these two techniques which are schematically founded on the two pillars of formal logic and biology. Such a design paradigm would apply these techniques synergistically and systematically from the early stages of design to enable optimal refinement of new designs which can be driven effectively by dependability requirements. The paper sketches such a model-centric paradigm for the design of dependable systems that brings these technologies together to realise their combined potential benefits

    A synthesis of logic and bio-inspired techniques in the design of dependable systems

    Get PDF
    Much of the development of model-based design and dependability analysis in the design of dependable systems, including software intensive systems, can be attributed to the application of advances in formal logic and its application to fault forecasting and verification of systems. In parallel, work on bio-inspired technologies has shown potential for the evolutionary design of engineering systems via automated exploration of potentially large design spaces. We have not yet seen the emergence of a design paradigm that effectively combines these two techniques, schematically founded on the two pillars of formal logic and biology, from the early stages of, and throughout, the design lifecycle. Such a design paradigm would apply these techniques synergistically and systematically to enable optimal refinement of new designs which can be driven effectively by dependability requirements. The paper sketches such a model-centric paradigm for the design of dependable systems, presented in the scope of the HiP-HOPS tool and technique, that brings these technologies together to realise their combined potential benefits. The paper begins by identifying current challenges in model-based safety assessment and then overviews the use of meta-heuristics at various stages of the design lifecycle covering topics that span from allocation of dependability requirements, through dependability analysis, to multi-objective optimisation of system architectures and maintenance schedules

    A Survey on Compiler Autotuning using Machine Learning

    Full text link
    Since the mid-1990s, researchers have been trying to use machine-learning based approaches to solve a number of different compiler optimization problems. These techniques primarily enhance the quality of the obtained results and, more importantly, make it feasible to tackle two main compiler optimization problems: optimization selection (choosing which optimizations to apply) and phase-ordering (choosing the order of applying optimizations). The compiler optimization space continues to grow due to the advancement of applications, increasing number of compiler optimizations, and new target architectures. Generic optimization passes in compilers cannot fully leverage newly introduced optimizations and, therefore, cannot keep up with the pace of increasing options. This survey summarizes and classifies the recent advances in using machine learning for the compiler optimization field, particularly on the two major problems of (1) selecting the best optimizations and (2) the phase-ordering of optimizations. The survey highlights the approaches taken so far, the obtained results, the fine-grain classification among different approaches and finally, the influential papers of the field.Comment: version 5.0 (updated on September 2018)- Preprint Version For our Accepted Journal @ ACM CSUR 2018 (42 pages) - This survey will be updated quarterly here (Send me your new published papers to be added in the subsequent version) History: Received November 2016; Revised August 2017; Revised February 2018; Accepted March 2018

    Architectural authorship in generative design

    Get PDF
    The emergence of evolutionary digital design methods, relying on the creative generation of novel forms, has transformed the design process altogether and consequently the role of the architect. These methods are more than the means to aid and enhance the design process or to perfect the representation of finite architectural projects. The architectural design philosophy is gradually transcending to a hybrid of art, engineering, computer programming and biology. Within this framework, the emergence of designs relies on the architect- machine interaction and the authorship that each of the two shares. This work aims to explore the changes within the design process and to define the authorial control of a new breed of architects- programmers and architects-users on architecture and its design representation. For the investigation of these problems, this thesis is to be based on an experiment conducted by the author in order to test the interaction of architects with different digital design methods and their authorial control over the final product. Eventually, the results will be compared and evaluated in relation to the theoretic views. Ultimately, the architect will establish his authorial role
    corecore