Page 10

Eureka!

Breakthrough in Automated Design of Software System Architectures using Evolutionary Approach Good architectural design is critical for the successful development of a software system. The architecture has a deep impact on quality properties such as performance, safety, reliability, security, energy consumption and cost. Hence, methods and techniques are needed to address various quality constraints in the early phases of system development. The complexity of system design has increased dramatically due to exponentially increasing system sizes. For example a typical car now has 100+ hardware components and 1000+ software components. Consequently, manual optimization of all requirements for a system design has become difficult, if not impossible. DOOR Ramin Etemaadi

Contribution to Science

formance, availability and security, have a large effect on the

Heuristic-based approaches frame the challenge of designing

system's quality. The goal of design automation is to quantitati-

architectures as an optimization problem and iteratively try to

vely evaluate and trade off multiple quality attributes to arrive

improve a candidate solution. These algorithms explore very

at a better overall design. Evaluating the design in early stages

large design spaces to find optimal architectural solutions. One

of development is much cheaper than first building the system

of the challenges is how to automatically synthesize new va-

and then finding out that it does not satisfy the requirements.

riants of architecture designs. Also, when seen as an optimi-

At the same time, evaluating a system before it has been built is

zation problem, automated software system design has a very

difficult, as it requires abstract, precise models of the system's

irregular search space, which poses new challenges for traver-

components.

sing this design space. It is possible to define a huge number of software quality attriOur research shows a new direction for combining abstract

butes. In most cases improvement of a single quality attribute

high level model-based specifications with the flexibility of

can result in degradation of other quality attributes. For instan-

component-based software. The component-based aspect of

ce, data encryption improves security, but probably worsens

our approach enables the easy and flexible creation of variants

performance. It is hard for software architects to determine and

of the architecture design. This flexibility, however, raises a

quantify these trade-offs manually.

new problem: If we rearrange the components in a system, how can we then analyze the non-functional properties? To solve

A few important attributes, along with measurement methods

this problem, we developed a method for modeling facets of

to quantize them, are mentioned in the following list. The qua-

components in such a way that our algorithm can automatically

lity attributes are categorized into two main categories: Perfor-

generate a model of the entire system for each quality attribute.

mance and Dependability.

For Example, we can measure entire system safety by having probability of failure for seperate components.

Performance â—? Latency refers to a time interval during which the response

10

Quality Attributes of Software Architecture

to an event must be executed. This interval given by a star-

Beside the fact that a software system should meet its functi-

ting time (minimum latency) and an ending time (maximum

onal requirements, non-functional characteristics such as per-

latency). The ending time is also known as a deadline.

Eureka! Universiteit Leiden

Eureka 37  
Eureka 37