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.

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

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

Saved successfully!

Ooh no, something went wrong!