Award Abstract # 1116980
SHF: Small: Collaborative Research: Automating the Detection of Architectural Degradation in Software Systems

NSF Org: CCF
Division of Computing and Communication Foundations
Recipient: DREXEL UNIVERSITY
Initial Amendment Date: June 30, 2011
Latest Amendment Date: June 30, 2011
Award Number: 1116980
Award Instrument: Standard Grant
Program Manager: Sol Greenspan
sgreensp@nsf.gov
 (703)292-7841
CCF
 Division of Computing and Communication Foundations
CSE
 Directorate for Computer and Information Science and Engineering
Start Date: August 1, 2011
End Date: July 31, 2015 (Estimated)
Total Intended Award Amount: $196,245.00
Total Awarded Amount to Date: $196,245.00
Funds Obligated to Date: FY 2011 = $196,245.00
History of Investigator:
  • Yuanfang Cai (Principal Investigator)
    yfcai@cs.drexel.edu
Recipient Sponsored Research Office: Drexel University
3141 CHESTNUT ST
PHILADELPHIA
PA  US  19104-2875
(215)895-6342
Sponsor Congressional District: 03
Primary Place of Performance: Drexel University
3141 CHESTNUT ST
PHILADELPHIA
PA  US  19104-2875
Primary Place of Performance
Congressional District:
03
Unique Entity Identifier (UEI): XF3XM9642N96
Parent UEI:
NSF Program(s): Software & Hardware Foundation
Primary Program Source: 01001112DB NSF RESEARCH & RELATED ACTIVIT
Program Reference Code(s): 7923, 7944
Program Element Code(s): 779800
Award Agency Code: 4900
Fund Agency Code: 4900
Assistance Listing Number(s): 47.070

ABSTRACT

Over time, software systems architecture eventually deviates from the original designers intent and degrades through unplanned introduction of changes that invalidate original design decisions. Architectural degradation increases the cost of making new modifications and decreases systems reliability, until engineers are no longer able to effectively evolve the system. At that point, the systems actual architecture may have to be recovered from the implementation artifacts, but this is a time-consuming and error-prone process, and leaves critical issues unresolved: the problems caused by architectural degradation will likely be obfuscated by the systems many elements and their interrelationships, thus risking further degradation.

This collaborative project aims at pinpointing locations in software systems architecture that reflect architectural degradation. The proposed research comprises four integrated research tasks: (1) Develop a catalog of commonly occurring symptoms of degradation. (2) Develop an architecture recovery technique that automatically extracts both systems major building blocks and the concerns that influence, drive, and interact with these building blocks. (3) Devise a technique for formally capturing the recovered architectural design decisions, their involving concerns, and the identified causes of degradation. (4) Devise a suite of techniques that leverage the catalog to automatically identify system-specific instances of degradation. As a result, this project will have a potential for broad impact by providing a rigorous, scientific basis for software engineers to streamline the currently prohibitively expensive and error-prone system maintenance and evolution tasks.

PUBLICATIONS PRODUCED AS A RESULT OF THIS RESEARCH

Note:  When clicking on a Digital Object Identifier (DOI) number, you will be taken to an external site maintained by the publisher. Some full text articles may not yet be available without a charge during the embargo (administrative interval).

Some links on this page may take you to non-federal websites. Their policies may differ from this site.

Martin Naedele, Rick Kazman, Yuanfang Cai "Making the Case for a ?Manufacturing Execution System? forSoftware Development." Journal of Systems and Software , v.101 , 2015
Nico Zazworka, Antonio Vetro, Clemente Izurieta, Sunny Wong, Yuanfang Cai, Carolyn B. Seaman, Forrest Shull "Comparing four approaches for technical debt identification" Software Quality Journal , v.22 , 2014 , p.403

PROJECT OUTCOMES REPORT

Disclaimer

This Project Outcomes Report for the General Public is displayed verbatim as submitted by the Principal Investigator (PI) for this award. Any opinions, findings, and conclusions or recommendations expressed in this Report are those of the PI and do not necessarily reflect the views of the National Science Foundation; NSF has not approved or endorsed its content.

Towards our objective of detecting and preventing software architecture degradation, we investigated the architecture and evolution of hundreds of open source and commercial systems, and identified a suite of recurring architecture problems that occur in most complex systems and incur high maintenance costs, which we call Hotspot Patterns. These novel hotspot patterns, such as Unstable Interface and Implicit Cross-module Dependency, are defined based on Baldwin and Clark’s design rule theory, and calculated using our new architecture model, Design Rule Spaces (DRSpaces), providing a rigorous, scientific basis to address currently prohibitively expensive and error-prone system maintenance and evolution tasks.

Our approach is novel first because we distinguish different architectural roles of source files into Design Rules and Modules, and extract multiple design spaces from a complex system to significantly reduce the complexity one has to tackle at a time. Second, we identify hotspot patterns from the combination of evolution history and architecture information, so that high-maintenance architectural issues can be pinpointed. Most importantly, the identified patterns not only reveal which and how many files are involved in an architecture issue, they also provide hints about the specific architecture problems that connect multiple files and cause errors to propagate among them, that is, the root causes of high bug-proneness and change-proneness. We have evaluated these hotspot patterns using hundreds of software systems, and verified that files involved in hotspot patterns have incurred significantly higher maintenance effort than average files, and the error-proneness and change-proneness of a file increase exponentially with the number of hotspot patterns it involves.  

We have implemented the detection of these hotspot patterns into our toolset, Titan, which has been disseminated  to multiple universities and industrial organizations. We have conducted detailed hotspot analysis of large-scale systems within several multinational corporations. Their architect and developers confirmed that our hotspot detector discovered architecture problems that are the root causes of  major maintenance difficulties, and these problems are not identifiable by other existing techniques.


We have published the results of this research in the following papers:

(1) Martin Naedele, Hong-Mei Chen, Rick Kazman, Yuanfang Cai, Lu Xiao, Carlos V. A. Silva:
Manufacturing execution systems: A vision for managing software development. Journal of Systems and Software 101: 59-68 (2015)

(2) Everton T. Guimarães, Alessandro F. Garcia, Yuanfang Cai: Architecture-sensitive heuristics for prioritizing critical code anomalies. MODULARITY 2015: 68-80

(3) Rick Kazman, Yuanfang Cai, Ran Mo, Qiong Feng, Lu Xiao, Serge Haziyev, Volodymyr Fedak, Andriy Shapochka: A Case Study in Locating the Architectural Roots of Technical Debt. ICSE (2) 2015: 179-188

(4) Ehsan Kouroshfar, Mehdi Mirakhorli, Hamid Bagheri, Lu Xiao, Sam Malek, Yuanfang Cai: A Study on the Role of Software Architecture in the Evolution and Quality of Software. MSR 2015: 246-257

(5) Ran Mo, Yuanfang Cai, Rick Kazman, Lu Xiao: Hotspot Patterns: The Formal Definition and Automatic Detection of Architecture Smells. WICSA 2015: 51-60



Last Modified: 10/31/2015
Modified by: Yuanfang Cai

Please report errors in award information by writing to: awardsearch@nsf.gov.

Print this page

Back to Top of page