Many successful large-scale software systems share a fundamental characteristic: their modular structures enable system-wide advances though distributed and parallelized improvement of modules. However, merely breaking software into modules, without assessing the interplay between a design and the organization that must instantiate it, does not always ensure that parallelized, module-wise evolution is effective. In particular, mismatches between design and organizational structures can result in expensive inter-team communication costs, exacerbated by barriers such as differing time zones, languages and cultures. This research aims to formally express and quantitatively assess the key characteristics of software structures that allow for system-wide evolution through distributed module-wise contributions, and to account for the relationship between design structure and organizational structure, as it impacts software quality, productivity, and survival. The work will explore a computable socio-technical model, associated metrics and automated analysis techniques to improve the conduct of software development. The approach will allow designers to assess and manipulate software designs at early development stages so that modules can be defined and implemented by independent teams, shortening development time, facilitating changes, and minimizing coordination costs. The results will be demonstrated on large software systems, working with industrial partners who wish to understand the impact of these techniques.

Project Report

The major outcomes of this project include the following key concepts that are already having impact on both software engineering practice and education: (1) Design Rule Hierarchy (DRH)--a new architecture model. The PI and her team proposed to describe a software architecture using design rules and the modules created, framed, and separated by these design rules. This concept contributed to novel and more effective approaches to predict coordination requirements from architecture models, to visualize the modular structure of design patterns, to recover software architecture from source code, to quantitatively explain why some systems are more evolvable and maintenable than others, and to detect architecture violations. The DRH model has been used to analyze multiple industrial projects and to analyze student programming assignments from Drexel, Cal Poly, and CMU. The PI has a pending patent related to the DRH work. (2) Modularity Violation--a novel structure-plus-history architecture evaluation method. Based on the assumption that a well-modularized system should allow modules to evolve independently, we analyze software evolution history to find out where history belies architecture, as described using DRH. Concretely, our modularity violation detection technique identifies when and why files belong to architecturally separated modules frequently changed together. By combining structure and history measures, together with modularity violation detection, we were able to identify serious hidden architecture problems in real industrial projects. This process also allowed us to reveal not only where the problems were, but also why these problems were causing bugs and maintenance difficulties. Based on this information, detailed refactoring suggestions were proposed, accepted, and implemented. Currently this approach is being used to evaluate the architecture of multiple industrial projects. (3) A Proximity metric--a metric used to identify and rank coordination requirements in a software team based on the working sets of tasks, and the interactions of developers with their working sets. Using Proximity, an associated tool called ProxiScientia was developed to identify and measure the strength of the need to coordinate among developers during the work. The ProxiScientia tool has been used in a case study of global software development involving dozens of students in Canada and Finland. Recent study shows that DRH can be used with Proximity to distinguish between critical and trivial coordination needs.

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Communication Foundations (CCF)
Type
Standard Grant (Standard)
Application #
0916891
Program Officer
Sol J. Greenspan
Project Start
Project End
Budget Start
2009-09-01
Budget End
2013-08-31
Support Year
Fiscal Year
2009
Total Cost
$520,579
Indirect Cost
Name
Drexel University
Department
Type
DUNS #
City
Philadelphia
State
PA
Country
United States
Zip Code
19104