
NSF Org: |
CCF Division of Computing and Communication Foundations |
Recipient: |
|
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: |
|
History of Investigator: |
|
Recipient Sponsored Research Office: |
3141 CHESTNUT ST PHILADELPHIA PA US 19104-2875 (215)895-6342 |
Sponsor Congressional District: |
|
Primary Place of Performance: |
3141 CHESTNUT ST PHILADELPHIA PA US 19104-2875 |
Primary Place of
Performance Congressional District: |
|
Unique Entity Identifier (UEI): |
|
Parent UEI: |
|
NSF Program(s): | Software & Hardware Foundation |
Primary Program Source: |
|
Program Reference Code(s): |
|
Program Element Code(s): |
|
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.
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.