The design of software architecture is one of the difficult tasks in the modern component-based software development which is based on the idea that develop software systems by assembling appropriate off-the-shelf components with a well-defined software architecture. Component-based software development has achieved great success and been extensively applied to a large range of application domains from realtime embedded systems to online web-based applications. In contrast to traditional approaches, it requires software architects to address a large number of non-functional requirements that can be used to quantify the operation of system. Moreover, these quality attributes can be in conflict with each other. In practice, software designers try to come up with a set of different architectural designs and then identify good architectures among them. With the increasing scale of architecture, this process becomes time-consuming and error-prone. Consequently architects could easily end up with some suboptimal designs because of large and combinatorial search space.
To tackle this problem, we are working to introduce AQOSA (Automated Quality-driven Optimization of Software Architecture) framework, which integrates modeling techniques, quality attributes analysis methods, and advanced evolutionary multiobjective optimization algorithms together, for improving non-functional properties of a software architecture in an automated manner. This project is supported by OMECA project.