Darwin: Deriving Software Architecture with Intelligent Techniques
Automated support for software architecture design is required both
in the case of conventional human-driven software development and in the
case of software generation. In the former case, this kind of support
assists a software architect in producing an initial approximation for
satisfying given requirements, exploiting known good solutions to
design problems. In the latter case, automated architectural design
provides a way to satisfy given quality requirements in the generated
software - a possibility beyond the capabilities of current approaches.
In this project our goal is to study to what extent it is possible to
produce a reasonable architectural design proposal for a software system
automatically based on its functional and quality requirements.
The technique is based on using intelligent techniques like genetic
algorithms and simulated annealing. We exploit architectural best practices,
design patterns and architectural styles as the basic elements of
software architecture, using heuristic searching methods to find an
optimal combination of these elementary solutions for given requirements
and given domain. The techniques are assumed to be used for assisting
software architects in generating initial designs, for facilitating
quality-dependent application generators, and for supporting
dynamic re-architecting in service-oriented systems.
In addition to the generation of software architecture statically,
we plan to exploit automated architecture generation
in the development of self-adaptive systems that have architectural
reflection capability, being able to both query and modify their own
architecture at runtime. Using the genetic architecture synthesis
method developed in the project, systems can adjust to changing
environments by modifying their architectures autonomously. This work
will be based on the Javeleon platform, which provides dynamic class
updating capability for Java.
The project is funded by the Academy of Finland for 2009-2011, and carried
out as co-operation between TUT and UTA (University of Tampere). The project
continues at least till 2014 based on personal funding from graduate