Software Architecture

Project Description

The goal of my software architecture research is to understand changes and their impact on the architecture of a system. The specific focus of this research is on late changes, that is, changes that occur after at least one cycle of the development process has been completed and a working version of the system exists. These changes are particularly important because of their high cost and criticality to the users. Without proper planning, these changes are likely to degrade the quality of the system making it more difficult and error-prone to make future changes. Along these lines, my colleagues and I are engaged in two types of research.

First, I am working with a graduate student to develop and validate a characterization scheme to help developers reason about the impacts a proposed change will have on the architecture of an existing system. This characterization scheme is designed to aid development teams in discussing a proposed change and arriving at a decision on whether or not to make the change. The developers first characterize a change based on some high level attributes related to the size of the change, the static and dynamic aspects of the system that will be impacted, and the functional and non-functional requirements that will be affected. In an initial validation study, developers found the characterization scheme to be useful and beneficial.

Second, along with my colleagues at the University of Maryland and the Fraunhofer Center for Experimental Software Engineering, I am using the development history of open-source Apache Foundation projects to identify indicators of refactoring. The goal of this investigation is to provide developers of ongoing projects with information to help them decide when to refactor a software project rather than continuing to make changes that are increasing more difficult and error-prone. This work is examining various software metrics from the historical data of projects to identify trends that are predictive of refactoring events. These trends can then be used on new projects as an early warning for developers to prevent the system from getting into such a degraded state that future changes are unmanageable. One important contribution of this work will be an understanding of which insights can be gained through metrics analysis and which can be gained through visualization.

Research Findings

Software Architecture Change Characterization Scheme

As part of his dissertation work, Byron Williams, has created the following Software Architecture Change Characterization Scheme. This scheme was developed by conducting a systematic literature review to extract the most relevant variables that affect a change.
Software Architecture Change Charaterization Scheme


(Note: Blue = Journal; Red = Refereed Conference; Green = Workshop/Tech Report)
  • He, L. and Carver, J. "Modifiability Measurement from a Task Complexity Perspective: A Feasibility Study." To appear in the Proceedings of the 2009 International Symposium on Empirical Software Engineering and Measurement (ESEM) - Short Papers Track. October 15-16, 2009. Lake Buena Vista, Florida.

  • Williams, B. and Carver, J. "Characterizing Software Architecture Changes: A Systematic Review." To appear in Information and Software Technology.

  • Williams, B. and Carver, J. "Characterizing Software Architecture Changes: An Initial Study." Proceedings of the First International Symposium on Empirical Software Engineering and Measurement. September 20-21, 2007. Madrid, Spain. p. 410-419.

  • Lemon, K., Allen, E., Carver, J., and Bradshaw, G. "An Empirical Study of the Effects of Gestalt Principles on Diagram Understandability." Proceedings of the First International Symposium on Empirical Software Engineering and Measurement. September 20-21, 2007. Madrid, Spain. p. 156-165.

  • Williams, B. and Carver, J.. "Characterizing Changes to Assess Architectural Impact." Technical Report MSU-070115, Department of Computer Science and Engineering, Mississippi State University, January 15, 2007.

  • Carver, J. and Krystle Lemon. "Architecture Reading Techniques: A Feasibility Study." In Proceedings of the 2005 International Symposium on Empirical Software Engineering (Late Breaking Research Track). Nov. 17-18, 2005. Noosa Heads, Australia. p.17-20.

  • Carver, J. "Architecture Reading Techniques." Mississippi State University Department of Computer Science and Engineering Technical Report MSU-050525. May 25, 2005.



This work is supported by National Science Foundation Science of Design Grant CCF-0438923.

Projects Frontpage    |     Homepage    |     List of Publications

Last Updated on August 10, 2009 by Jeffrey Carver