Concerns in sort.c
An essential technique in software engineering is the notion of separation of concerns. In normal practice, this is mostly a philospohical approach to the task. In the work presented here, specific concerns are identified and analyzed using the techniques of minimal subsets and concern spaces.

The identified concerns come from the Gnu textutils-1.22 implemenation of the UNIX sort utility. The source for this implementation is a single C source file sort.c(2145 lines).

The technique of concern spaces associates concerns with units taken from artifacts. For this experiment, there is one artifact (the sort.c source file), and the units are individual source lines. (The use of lines for the unit notion is merely a practical consideration. A notion of units based on logical structures from an abstract syntax tree would be better.)

Thus, each concern is associated with a set of lines. By determining how the lines associated with each concerns interact, it is possible to define dimensions of concern in the concern space. The analysis results provided below are preliminary steps in determining the structure of such dimensions.


Analysis Results

A variety of graphs and textual reports from the concern analysis is available. A diagram of the interaction tree is available, and some early results toward defining a hyperspace model can be viewed.

Extracted Concerns Index

This index provides a list of all defined concerns with links to a summary of each concern's definition. The summary includes the lines associated with each concern.

Full Source

This page provides a line numbered version of the full sort.c source. It is a good reference to understanding the context of the lines in each concern, especially when the a source segment is divided into several disjoint elements.

Residual Lines

This page provides a line numbered version of the sort.c source lines that have not be bound to any concern. At present, this set is empty. Due to an undiagnosed error in the analysis code, the page has one string of garbage text.