Simulated annealing for aiding genetic algorithm in software architecture synthesis

  • Outi Sievi-Kortej
  • Erkki Mäkinen
  • Timo Poranen


The dream of software engineers is to be able to automatically produce software systems based on their requirements. Automatic synthesis of software architecture has already been shown to be feasible with genetic algorithms. Genetic algorithms, however, easily become very slow if the size of the problem and complexity of mutations increase as GAs handle a large population with much data. Also, for purely scientific interest it is worthwhile to investigate how other search algorithms handle the problem of software architecture synthesis. The present paper studies the possibilities of using simulated annealing for synthesizing software architecture. For this purpose we have two goals: 1) to study whether a simpler search algorithm can handle synthesis and 2) if a seeded algorithm can provide quality results faster than a simple genetic algorithm. We start from functional requirements which form a base architecture and consider three quality attributes, modifiability, efficiency and complexity. Synthesis is performed by adding design patterns and architecture styles to the base architecture. The algorithm thus produces a software architecture which fulfills the functional requirements and also corresponds to the quality requirements. It is concluded that simulated annealing as such does not produce good architectures, but it is useful for speeding up the evolution process by quickly fine-tuning a seed solution achieved with a genetic algorithm. The main contribution is thus a new seeded algorithm for software architecture design.


Download data is not yet available.
How to Cite
Sievi-Kortej, O., Mäkinen, E., & Poranen, T. (2013). Simulated annealing for aiding genetic algorithm in software architecture synthesis. Acta Cybernetica, 21(2), 235-265.
Regular articles