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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

2.1. Industry practice of design rationale<br />

be more than one answer and most likely the answers are non-trivial. However, there is<br />

something fundamental that underlies such project issues - the soundness of the design<br />

decisions.<br />

Software engineering practices mostly focus on the design of concrete and visible artefacts<br />

and either omit or treat the decision making documentation as separate [43]. <strong>Design</strong><br />

rationale is commonly ignored and undocumented. Most of the time they are not mandated<br />

as part of the software deliverable. Even though architecture design is thought to<br />

be a very important stage in the development process, the architecture design rationale<br />

are usually not rigorously tested in the design review process. The treatment of those<br />

factors which influence the design decisions are usually implicit and ad hoc. For instance,<br />

architecture decisions would make assumptions on factors such as delivery schedule, level<br />

of expertise in the development team and plat<strong>for</strong>m stability, but these assumptions are<br />

mostly implicit. <strong>Design</strong>ers could be biased toward personal preferences and agenda that<br />

would affect the objectivity of the design decisions.<br />

Given that design decisions are predominantly an implicit process, it is possible and<br />

quite common that a series of incorrect decisions can escape quality checks set out by<br />

development methodologies and standards, resulting in project failures. Thus we posit<br />

that improving the decision making process can help minimise mistakes and failures. Along<br />

with many other researchers [11, 12, 124], we argue that making quality decisions is an<br />

essential part of software development. High quality design requires that each decision is<br />

rational and that all relevant factors which influence the decision are well considered. As<br />

such, the system design process will improve if a methodology to enhance design decision<br />

making is available.<br />

In a successful project, planning and architecture design are two of the crucial steps<br />

[154]. These two factors are interrelated in that the project plans set the constraints <strong>for</strong><br />

the architecture design, and the architecture design dictates the resources required in a<br />

project. For instance, design decisions made during the architecture design dictate the<br />

resources required to develop the system. Even though the role of architecture design is<br />

very important in a project, its decisions are often not sufficiently justified. Less than<br />

optimal decisions could be made and risk could arise when decisions are not justified<br />

systematically. The author has numerous encounters of such incidents and some real-life<br />

examples are illustrated below:<br />

• <strong>Design</strong> <strong>for</strong> the Future - arguing <strong>for</strong> reusability or flexibility, the architects make<br />

architecture design overly complex and costly without delivering additional benefits.<br />

The reusable or flexible features are actually never required or necessary [15].<br />

13

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

Saved successfully!

Ooh no, something went wrong!