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-
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
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