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.

3.2. Why do we need design rationale?<br />

Supporting the Maintenance Activities<br />

• Retaining Knowledge - in the design process, assumptions are made, constraints are<br />

considered and priority is assigned. These elements shape the design decisions. Often<br />

the only documentation available to the maintainers are the design specifications.<br />

If the designers who maintain and enhance a system are not the same person who<br />

created the system, which is often the case, the maintainer would have to secondguess<br />

these intangible rationales. Failure to retain such knowledge might cause<br />

violations and inconsistencies in a system [33]. It was found in a survey that most<br />

designers cannot remember the reasons of their design [158]. If the maintainers are<br />

not the original designer, then design rationale as a source of knowledge would be<br />

very useful [157]. Such retained knowledge could save costs because engineer’s time<br />

to recover lost rationale is reduced [25].<br />

• Capturing <strong>Design</strong> Alternatives - as Parnas and Clements pointed out that the ideal<br />

design document which consists of all the details is impractical [114]. There<strong>for</strong>e,<br />

recording key design rationale in<strong>for</strong>mation such as design alternatives and why they<br />

have been rejected can answer many questions about the design.<br />

• Understanding Decision Dependency - design decisions sometimes are inter-twined<br />

and cut across a number of issues. Changing a decision may trigger a series of side<br />

effects to the other parts of the system through the ripple effect [59]. <strong>Design</strong>ers could<br />

potentially omit necessary changes caused by the inter-dependent decisions in the<br />

design space. Some design rationale methods could address this issue by providing<br />

linkages between dependent decisions to facilitate traceability [97, 162].<br />

• Improving <strong>Design</strong> Understanding - in one of the experiments, Brathall et al. showed<br />

that a group of designers equipped with the design rationale can work faster and<br />

identify more changes that are required in a system maintenance exercise than a<br />

control group without the design rationale [12]. Burge showed that using the design<br />

rationale, those designers with moderate and some experience in Java per<strong>for</strong>m their<br />

work better than the designers without the design rationale [14].<br />

• Predicting Change Impact - design rationale could be used to assist the maintainer<br />

to predict which part of the system is subject to change. This kind of predictive<br />

and diagnostic capabilities provide quantitative analysis to assist decision makers on<br />

predicting the change impact in a system [162].<br />

• Providing Traceability - when the design rationale is associated with the design artefacts,<br />

maintainers would be able to trace how design artefacts satisfy requirements<br />

in a system with some reasoning support [129].<br />

28

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

Saved successfully!

Ooh no, something went wrong!