Title :
How history justifies system architecture (or not)
Author :
Zimmermann, Thomas ; Diehl, Stephan ; Zeller, Andreas
Author_Institution :
Dept. of Comput. Sci., Saarland Univ., Germany
Abstract :
The revision history of a software system conveys important information about how and why the system evolved in time. The revision history can also tell us which parts of the system are coupled by common changes: "whenever the database schema was changed, the sqlquery() method was altered, too." This "evolutionary" coupling can be compared with the coupling as imposed by the system architecture; differences indicate anomalies which may be subject to restructuring. Our ROSE prototype analyzes fine-grained coupling between software entities as indicated by common changes. It turns out that common changes are a good indicator for modularity, that evolutionary coupling should be determined between syntactical entities (rather than files or modules), and that common changes can indicate coupling between software entities and nonprogram artifacts that is unavailable to the analysis of a single version.
Keywords :
SQL; program diagnostics; query processing; software architecture; software prototyping; ROSE prototype; database schema; evolutionary coupling; fine-grained coupling; nonprogram artifacts; revision history; software entities; software system; sqlquery() method; syntactical entities; system architecture; Computer architecture; Computer science; History; Program processors; Prototypes; Software design; Software prototyping; Software systems; Visual databases; Visualization;
Conference_Titel :
Software Evolution, 2003. Proceedings. Sixth International Workshop on Principles of
Print_ISBN :
0-7695-1903-2
DOI :
10.1109/IWPSE.2003.1231213