A Rationale-based Model for Architecture Design Reasoning
A Rationale-based Model for Architecture Design Reasoning
A Rationale-based Model for Architecture Design Reasoning
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
5.1. <strong>Architecture</strong> rationale in the software industry<br />
5.1 <strong>Architecture</strong> rationale in the software industry<br />
Despite the growing recognition of the need <strong>for</strong> documenting and using architecture design<br />
rationale by practitioners [8, 11], there is a lack of understanding of how decisions are<br />
made, reasoned and justified in day-to-day architecture design. As described earlier, the<br />
software industry is not employing systematic rationalisation methods in any significant<br />
way. Hence, understanding the current industry practice of design rationale is one of the<br />
first steps towards providing a systematic approach to address the problems. However,<br />
there is little empirical research that studies what practitioners think about design rationale,<br />
how they reason with and document design rationale, and what factors prevent them<br />
from documenting design rationale.<br />
5.1.1 <strong>Design</strong> rationale approaches in software engineering<br />
Early work emphasizing the importance of design rationale in software design can be found<br />
in [114, 124]. Since then, the software engineering community has experimented with<br />
several design rationale approaches such as Issue Based In<strong>for</strong>mation Systems (IBIS) [87],<br />
Questions, Options, and Criteria (QOC) [97], Procedural Hierarchy of Issues (PHI) [99],<br />
and <strong>Design</strong> <strong>Rationale</strong> Language (DRL) [94]. Most of these methods have been adopted<br />
or modified to capture the rationale <strong>for</strong> software design decisions [124] and requirements<br />
specifications [34, 92, 128]. Other approaches (e.g. [123, 126]) combine rationale and<br />
scenarios to elicit and refine requirements.<br />
<strong>Design</strong> rationale have been considered an important part of software architecture since<br />
Perry and Wolf [119] laid the foundation <strong>for</strong> the evolving community of software architecture.<br />
In the following years, researchers have emphasized the need <strong>for</strong> documenting<br />
design rationale to maintain and evolve architectural artifacts and to avoid violating design<br />
rules that underpin the original architecture [8, 11]. The growing recognition of the<br />
vital role of documenting and maintaining rationale <strong>for</strong> architectural decisions has resulted<br />
in several ef<strong>for</strong>ts to provide guidance <strong>for</strong> capturing and using design rationale such as the<br />
IEEE 1471-2000 standard [70] and the Views and Beyond (V&B) approach to document<br />
software architecture [23].<br />
However, both of these are deficient in several ways. For example, the <strong>for</strong>mer provides<br />
a definition of design rationale without further elaborating on their nature and how they<br />
might be captured. The latter method provides a list of design rationales without justifying<br />
why they are important and how the in<strong>for</strong>mation captured is beneficial in different design<br />
context. Moreover, it is unclear if the list of design rationales are complete.<br />
55