Sorting out Concerns


Realizing the dream of additive, rather then invasive, software development requires support for the components and composition methods used to implement production quality software. The invasive changes common in most development indicate the inadequacy of standard practice. Several recent proposals (Hyperspaces, Aspect Oriented Programming) suggest that the problems are inherent in hierarchical nature of the standard mechanisms. These proposals define new mechanisms that can support a richer set of software construction methods. These new mechanisms have been used to guide a dissection of Gnu sort.c (2145 text lines). The goals of this experiment include the identification and analysis of concerns and composition mechanisms used in real, production quality software. Preliminary results indicate that the new proposals do a good job of describing many forms of program composition. Although 60 concerns have been identified, the interactions between 27 of them can be described by a single hyperspace. This hyperspace describes most of the program’s external behavior. It consists of one dimension with 20 configuration concerns cross-cutting 3 dimensions defined by 7 feature concerns. However, some compositions are more troubling. In 3 cases, adding a concern inserts code into the middle of already established behaviors. These compositions appear to violate the notion that join points can be restricted to individual methods or operations.

1 Figure or Table

Cite this paper

@inproceedings{Carver1999SortingOC, title={Sorting out Concerns}, author={L. Carver and William G. Griswold}, year={1999} }