A Technical History of the SEI
ihQTwP
ihQTwP
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.