11.01.2017 Views

A Technical History of the SEI

ihQTwP

ihQTwP

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

S<strong>of</strong>tware Architecture Analysis Method<br />

The Challenge: Predicting Systems Development Problems in Advance<br />

One <strong>of</strong> <strong>the</strong> recurring <strong>the</strong>mes <strong>of</strong> <strong>the</strong> various defense challenge problems is that <strong>of</strong> predicting problems<br />

before a system has been built. Maintenance and improvement costs represent more than half<br />

<strong>the</strong> total cost <strong>of</strong> a system, and this percentage has been steadily growing since 1960 [Jones 2006].<br />

The problem for DoD is to predict maintenance problems before <strong>the</strong> system is constructed and before<br />

<strong>the</strong>se problems occur.<br />

A Solution: The S<strong>of</strong>tware Architecture Analysis Method<br />

The S<strong>of</strong>tware Architecture Analysis Method grew out <strong>of</strong> an effort undertaken by members <strong>of</strong> <strong>the</strong><br />

Serpent user interface project after <strong>the</strong> UI project was <strong>of</strong>ficially ended. The members <strong>of</strong> <strong>the</strong> UI<br />

project were active participants in <strong>the</strong> Interface Federation <strong>of</strong> Information Processing Working<br />

Group on User Interface Engineering (IFIP WG 2.7/13.4). This group was composed <strong>of</strong> members<br />

interested in user interface management systems (UIMSs), and <strong>the</strong> group had many discussions<br />

that centered on <strong>the</strong> <strong>the</strong>sis “my system is better than your system.” From <strong>the</strong>se discussions, <strong>the</strong><br />

<strong>SEI</strong> members <strong>of</strong> <strong>the</strong> working group ga<strong>the</strong>red two principles that were instrumental in <strong>the</strong> SAAM<br />

and that have been embodied in almost every s<strong>of</strong>tware architecture evaluation method since <strong>the</strong><br />

SAAM:<br />

<br />

<br />

Different developers have different business goals for <strong>the</strong>ir systems. An architecture evaluation<br />

must evaluate an architecture against <strong>the</strong> business goals for <strong>the</strong> system. This means <strong>the</strong><br />

architecture evaluation method must ei<strong>the</strong>r explicitly state what goals it is evaluating or elicit<br />

<strong>the</strong> goals as part <strong>of</strong> <strong>the</strong> evaluation.<br />

Evaluating for a property such as maintainability without a specific definition <strong>of</strong> what maintainability<br />

means is pointless. Every system is modifiable for some set <strong>of</strong> modifications and<br />

not modifiable for o<strong>the</strong>rs.<br />

The importance <strong>of</strong> understanding <strong>the</strong> business goals prior to evaluating an architecture can be<br />

seen in <strong>the</strong> claims made for various UIMSs that led to <strong>the</strong> development <strong>of</strong> <strong>the</strong> SAAM. Examples<br />

<strong>of</strong> <strong>the</strong>se claims are:<br />

<br />

<br />

<br />

“We have developed … user interface components that can be reconfigured with minimal effort.”<br />

[Pittman 1990]<br />

“Serpent … encourages <strong>the</strong> separation <strong>of</strong> s<strong>of</strong>tware systems into user interface and ‘core’ application<br />

portions, a separation which will decrease <strong>the</strong> cost <strong>of</strong> subsequent modifications to<br />

<strong>the</strong> system.” [Bass 1989]<br />

“This Nephew UIMS/Application interface is better [than] traditional UIMS/Application interfaces<br />

from <strong>the</strong> modularity and code reusability point <strong>of</strong> views.” [Sleekly 1989]<br />

Each <strong>of</strong> <strong>the</strong>se systems, which nominally are supposed to serve <strong>the</strong> same purpose, has different<br />

goals. Thus, comparing or evaluating architectures must be done in light <strong>of</strong> <strong>the</strong> system’s goals.<br />

Whe<strong>the</strong>r <strong>the</strong>se are <strong>the</strong> correct goals is outside <strong>of</strong> <strong>the</strong> scope <strong>of</strong> an architecture comparison or evaluation.<br />

CMU/<strong>SEI</strong>-2016-SR-027 | SOFTWARE ENGINEERING INSTITUTE | CARNEGIE MELLON UNIVERSITY 251<br />

Distribution Statement A: Approved for Public Release; Distribution is Unlimited.

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

Saved successfully!

Ooh no, something went wrong!