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.2. <strong>Architecture</strong> frameworks and design rationale<br />

• Schedule Constraints - management may have a budget and schedule constraint on<br />

the project. In view of such constraints, architecture designs are compromised to<br />

meet the schedule. The opportunity cost incurred is that the future enhancements<br />

are more costly [98].<br />

• Plat<strong>for</strong>m Selection - selecting a software plat<strong>for</strong>m such as a database system is<br />

sometimes influenced by reasons that are not technical or financial in nature. It<br />

could be due to political reasons. As such, non-functional requirements such as<br />

per<strong>for</strong>mance, security and features that are essential to satisfy system requirements<br />

can be overlooked and compromised [98].<br />

• <strong>Design</strong> Choices - the choice of a technical design may be influenced by architects’<br />

familiarity with certain technologies. It may be a subjective opinion <strong>based</strong> on what<br />

designers are com<strong>for</strong>table with rather than an objective rationale to measure the<br />

effectiveness of a solution. On the other hand, some architects may choose to use a<br />

new technology not because it is a suitable solution but because the architects want<br />

to gain experience in such technologies.<br />

Mystical software architectures without justified design decisions are quite common<br />

[170]. Creators of such architectures seem to want the project stakeholders to take many<br />

things on faith. There are many assumptions about the architecture that it could satisfy<br />

the business drivers, deliver the requirements and are implementable. Defects might be<br />

entrenched in the architecture design unknowingly. Existing quality and software engineering<br />

methodologies might not be able to detect these defects because design decisions<br />

are unjustified and undocumented. <strong>Design</strong> rationale are implicit in the design process and<br />

are probably not captured systematically, so they do not persist and can be lost over time.<br />

In order to address the issue of design knowledge evaporation, we study the process of<br />

architecture design rationalisation and the retention of design rationale.<br />

2.2 <strong>Architecture</strong> frameworks and design rationale<br />

Software systems are becoming more complex as more components are used in their construction,<br />

thus the organisation of the overall system - the software architecture - presents<br />

a new set of design problems [46]. With that complexity, changes in an architecture are<br />

more difficult because they would affect a large part of the system [105]. To manage the<br />

complexity in architecture design, a number of architecture frameworks [21, 31, 30] and<br />

research work [119, 46, 147, 90, 85] have been devoted to this subject.<br />

A common approach to organising system components in an architecture is by using<br />

14

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

Saved successfully!

Ooh no, something went wrong!