Outi Räihä
Tampere University of Technology
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Outi Räihä.
Computer Science Review | 2010
Outi Räihä
This survey investigates search-based approaches to software design. The basics of the most popular meta-heuristic algorithms are presented as background to the search-based viewpoint. Software design is considered from a wide viewpoint, including topics that can also be categorized as software maintenance or re-engineering. Search-based approaches have been used in research from the high architecture design level to software clustering and finally software refactoring. Enhancing and predicting software quality with search-based methods is also taken into account as a part of the design process. The background for the underlying software engineering problems is discussed, after which search-based approaches are presented. Summarizing remarks and tables collecting the fundamental issues of approaches for each type of problem are given. The choices regarding critical decisions, such as representation and fitness function, when used in meta-heuristic search algorithms, are emphasized and discussed in detail. Ideas for future research directions are also given.
simulated evolution and learning | 2008
Outi Räihä; Kai Koskimies; Erkki Mäkinen
Design of software architecture is intellectually one of the most demanding tasks in software engineering. This paper proposes an approach to automatically synthesize software architecture using genetic algorithms. The technique applies architectural patterns for mutations and quality metrics for evaluation, producing a proposal for a software architecture on the basis of functional requirements given as a graph of functional responsibilities. Two quality attributes, modifiability and efficiency, are considered. The behavior of the genetic synthesis process is analyzed with respect to quality improve ment speed, the effect of dynamic mutation, and the effect of quality attribute prioritization. Our tests show that it is possible to genetically synthesize architectures that achieve a high fitness value early on.
nature and biologically inspired computing | 2011
Outi Räihä; Kai Koskimies; Erkki Mäkinen
A possible approach to partly automated software architecture design is the application of heuristic search methods like genetic algorithms. However, traditional genetic algorithms use a single fitness function with weighted terms for different quality attributes. This is inadequate for software architecture design that has to satisfy multiple incomparable quality requirements simultaneously. To overcome this problem, the use of Pareto optimality is proposed. This technique is studied in the presence of two central quality attributes of software architectures, modifiability and efficiency. The technique produces a spectrum of architecture proposals, ranging from highly modifiable (and less efficient) to highly efficient (and less modifiable). The technique has been implemented and evaluated using an example system. The results demonstrate that Pareto optimality has potential for producing a sensible set of architectures in the efficiency-modifiability space.
international conference on software engineering advances | 2009
Outi Räihä; Kai Koskimies; Erkki Mäkinen
Software architecture design can be regarded as finding an optimal combination of known general solutions and architectural knowledge with respect to given requirements. Based on previous work on synthesizing software architecture using genetic algorithms, we propose a refined fitness function for assessing software architecture in genetic synthesis, taking into account the specific anticipated needs of the software system under design. Inspired by real life architecture evaluation methods, the refined fitness function employs scenarios, specific situations possibly occurring during the lifetime of the system and requiring certain modifiability properties of the system. Empirical studies based on two example systems suggest that using this kind of fitness function significantly improves the quality of the resulting architecture.
international conference on software engineering advances | 2010
Hadaytullah; Sriharsha Vathsavayi; Outi Räihä; Kai Koskimies
Automated support for software architecture design is discussed. The proposed approach is based on a tool applying genetic algorithms for producing potential architecture proposals. The tool requires a basic functional decomposition of the system and the specification of the quality requirements as input, relying on a repository of standard solutions like patterns and architectural styles. The underlying techniques and the design of the tool are discussed, and the usage of the tool is illustrated by an example.
Relating Software Requirements and Architectures | 2011
Outi Räihä; Hadaytullah Kundi; Kai Koskimies; Erkki Mäkinen
The generation of software architecture using genetic algorithms is studied with architectural styles and patterns as mutations. The main input for the genetic algorithm is a rudimentary architecture representing the functional decomposition of the system, obtained as a refinement of use cases. Using a fitness function tuned for desired weights of simplicity, efficiency and modifiability, the technique produces a proposal for the software architecture of the target system, with applications of architectural styles and patterns. The quality of the produced architectures is studied empirically by comparing these architectures with the ones produced by undergraduate students.
intelligent systems design and applications | 2010
Outi Räihä; Kai Koskimies; Erkki Mäkinen
Techniques exist to synthesize software architecture using genetic algorithms that employ transformations based on mutations and crossover. In this paper, we demonstrate that complementary crossover can significantly improve this technique. We study two versions of complementary crossover, one in which parents are selected so that they complement each other but the genes are inherited randomly from the parents, and another in which the genes are inherited in a more purposeful way. Empirical studies on two sample systems suggest that the complementary crossover outperforms the traditional crossover in genetic software architecture synthesis especially in the presence of mutations that provide delayed reward.
nature and biologically inspired computing | 2009
Outi Räihä; Kai Koskimies; Erkki Mäkinen
In our previous work, we have presented a method for genetically synthesizing software architecture design. Synthesis begins with a responsibility dependency graph and domain model for a system, and results in a full architecture proposal through the application of design patterns and architectural styles. In this paper, we study the method of reproduction in the genetic algorithm. More specifically, we try to find out whether sexual or asexual method of reproduction should be used. We hypothesize that although sexual reproduction method is so favored among various species of animals and plants, asexual reproduction is more natural in the case of genetic synthesis of software architecture. We search for empirical confirmation to our hypothesis by performing tests on two sample systems.
asia-pacific software engineering conference | 2010
Hadaytullah; Outi Räihä; Kai Koskimies
The automated synthesis of software architecture design and associated work allocation plan is considered, given the requirements of the system and a specification of the available, possibly distributed development teams. The technique applies genetic algorithms, with mutations introducing changes both in the architectural solutions and in the work allocation schemes. The technique is implemented and evaluated using a non-trivial example system, the control system of an electronic home. The results suggest that genetic algorithms are a viable approach to solve this kind of multi-targeted optimization problem, assuming that the architectural quality and work allocation fitness can be given appropriate metrics.
genetic and evolutionary computation conference | 2011
Outi Räihä; Kai Koskimies; Erkki Mäkinen
A possible approach to partly automated software architecture design is the application of heuristic search methods like genetic algorithms. In order to take into account conflicting quality requirements, the use of Pareto optimality is proposed. This technique is studied in the presence of two central quality attributes of software architectures, modifiability and efficiency. The technique produces a palette of architecture proposals, and has been implemented and evaluated using an example system. The results demonstrate that Pareto optimality has potential for producing a sensible set of architectures in the efficiency-modifiability space.