Concern-driven software evolution

  • Authors:
  • Andre Van Hoek;Eugen C. Nistor

  • Affiliations:
  • University of California, Irvine;University of California, Irvine

  • Venue:
  • Concern-driven software evolution
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Concerns are central to software development. In order to understand and modify complex software systems, with requirements that are intertwined and have complex relationships, we need to be able to reason about different concerns in isolation from the rest. This is the essence of the principle of separation of concerns, used in designing any complex software system. Today's development environments do not adequately support managing the design of the system as it evolves. Concerns are invisible during development because environments focus on the programming language artifacts rather than on a conceptual model. However, most concerns are scattered across multiple source code elements, and tangled together with other concerns in each of these elements. This poses a great problem during evolution, as the ability to effectively reason about concerns deteriorates with time. Determining where concerns are implemented, and whether they are relevant in some part of the system, becomes increasingly difficult, if not impossible. In this dissertation, we propose an approach that addresses this problem. We support a development process in which concerns are placed in a central role, driving all aspects of development. Our approach is embodied in a prototype implementation, ArchEvol, which enhances Eclipse with support for expressing concerns, linking these concerns to source code fragments, maintaining these links during development, and continuously presenting this data through visualizations. ArchEvol is unique in providing these features in an integrated, coherent development environment. We evaluate ArchEvol in three different case studies, which complement each other by evaluating different aspects of our approach. The first user study compares the ability of developers to effectively maintain a concern model by using ArchEvol or one of two other alternative solutions. A second study asks two expert developers to evaluate the usefulness of concern-related visualizations in a system that they helped develop. A third study imports, offline, the entire change history from an existing open-source project, and traces four concerns throughout the development life of the project. Combined, these three studies provide evidence of the potential of ArchEvol to effectively support a concern-driven process in which concerns become visible at all times.