Explicit Concern-Driven Development with ArchEvol

Supporting developers in examining and evolving a software system in terms of concerns is considered a critical capability in the face of the scale and complexity of today’s software. A number of existing approaches make an inroad to providing this support, but they fall short in key ways. This paper introduces ArchEvol, a new programming environment that embodies a new kind of approach, one we term explicit concern-driven development. The vision is threefold: (1) a fine-grained concern model maps concerns to code, (2) concerns are visualized at both the code level, to assist in the actual act of making changes, and the architectural level, to assist in gauging levels of scattering and tangling, and (3) automated support assists developers in maintaining the concern mapping over time. Developers, then, continuously examine, structure, and modify the software they produce in terms of concerns. We introduce our approach, discuss how we have realized it in ArchEvol, and present the results of a first set of evaluations that demonstrate its potential.

[1]  Arie van Deursen,et al.  Identifying aspects using fan-in analysis , 2004, 11th Working Conference on Reverse Engineering.

[2]  André van der Hoek,et al.  ArchEvol: versioning architectural-implementation relationships , 2005, SCM '05.

[3]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[4]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[5]  Stanley M. Sutton,et al.  Modeling of software concerns in Cosmos , 2002, AOSD '02.

[6]  H. Ossher,et al.  Concern modeling in the concern manipulation environment , 2005, MACS@ICSE.

[7]  André van der Hoek,et al.  Concern Highlight: A Tool for Concern Exploration and Visualization , 2006 .

[8]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[9]  Arie van Deursen,et al.  On the use of clone detection for identifying crosscutting concern code , 2005, IEEE Transactions on Software Engineering.

[10]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[11]  T T YingAnnie,et al.  Source code that talks , 2005 .

[12]  Emily Hill,et al.  Using natural language program analysis to locate and understand action-oriented concerns , 2007, AOSD.

[13]  Jens Krinke,et al.  Aspect mining using event traces , 2004, Proceedings. 19th International Conference on Automated Software Engineering, 2004..

[14]  Stanley M. Sutton,et al.  N degrees of separation: multi-dimensional separation of concerns , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[15]  Ted J. Biggerstaff,et al.  Program understanding and the concept assignment problem : Reverse engineering , 1994 .

[16]  Norman Wilde,et al.  Software reconnaissance: Mapping program features to code , 1995, J. Softw. Maintenance Res. Pract..

[17]  Kim Mens,et al.  Using intentional source-code views to aid software maintenance , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[18]  David Coppit,et al.  Spotlight: A Prototype Tool for Software Plans , 2007, 29th International Conference on Software Engineering (ICSE'07).

[19]  James L. Wright,et al.  Source code that talks: an exploration of Eclipse task comments and their implication to repository mining , 2005, ACM SIGSOFT Softw. Eng. Notes.

[20]  Sven Apel,et al.  Granularity in software product lines , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[21]  William G. Griswold,et al.  Exploiting the map metaphor in a tool for software evolution , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[22]  Martin P. Robillard,et al.  How effective developers investigate source code: an exploratory study , 2004, IEEE Transactions on Software Engineering.

[23]  J BiggerstaffTed,et al.  Program understanding and the concept assignment problem , 1994 .

[24]  Cecília M. F. Rubira,et al.  Exceptions and aspects: the devil is in the details , 2006, SIGSOFT '06/FSE-14.

[25]  André van der Hoek,et al.  Modeling Product Line Architectures through Change Sets and Relationships , 2007, 29th International Conference on Software Engineering (ICSE'07).

[26]  André van der Hoek,et al.  Concern-driven software evolution , 2009 .

[27]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[28]  Martin P. Robillard,et al.  Concern graphs: finding and describing concerns using structural program dependencies , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[29]  Siobhán Clarke,et al.  Theme: an approach for aspect-oriented analysis and design , 2004, Proceedings. 26th International Conference on Software Engineering.

[30]  Kris De Volder,et al.  Navigating and querying code without getting lost , 2003, AOSD '03.

[31]  Richard N. Taylor,et al.  A highly-extensible, XML-based architecture description language , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.

[32]  Martin P. Robillard,et al.  Detecting increases in feature coupling using regression tests , 2006, SIGSOFT '06/FSE-14.

[33]  Martin P. Robillard,et al.  A Comparative Study of Three Program Exploration Tools , 2007, 15th IEEE International Conference on Program Comprehension (ICPC '07).