21.01.2014 Views

A Rationale-based Model for Architecture Design Reasoning

A Rationale-based Model for Architecture Design Reasoning

A Rationale-based Model for Architecture Design Reasoning

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Chapter 1<br />

Introduction<br />

Software engineering has been maturing over the years as increasingly sophisticated methods<br />

become available to guide developers. A general progress is the increasing level of<br />

abstraction to represent system models and implement them. The purpose is to handle<br />

complexity. There are many such examples: the transition from assembly programming to<br />

structured programming in high-level languages and then to object-oriented programming,<br />

and the transition from program design to software architecture design.<br />

Software architecture design provides a high-level abstraction of a system. It is an<br />

important area of research in recent years because it lays the structural foundation of a<br />

system. It allows designers to visualise that a design is viable and that it would satisfy<br />

key requirements. When per<strong>for</strong>ming architecture design, architects consider both the<br />

technical and non-technical aspects of a system. Aspects such as requirements, project<br />

schedule, budget, in<strong>for</strong>mation technology strategies and design trade-off are only some<br />

of the considerations in architecture design. Such diversity of considerations makes it<br />

challenging to balance the conflicting interests in an architecture design.<br />

The question to address is how architects should organise and tradeoff between a wide<br />

range of considerations to provide a quality design. It has been suggested that this aspect<br />

is fundamental in architecture design <strong>for</strong> a system to succeed [47]. For instance, a software<br />

architect cannot consider security without ensuring that the per<strong>for</strong>mance of the system<br />

remains satisfactory. Similarly, an architect cannot design a system without considering<br />

the IT budget and the legacy systems that are in place. But different architects have<br />

different ideas on how to design <strong>based</strong> on individual experience and approach. Intuitively,<br />

we know that the results and the quality of the architecture design may differ depending<br />

on who the architect is. We may prefer to trust a more experienced architect with good<br />

track records rather than an inexperienced architect. This highlights a fundamental issue<br />

1

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!