Often, software architects impose a particular style on the software systems they design. For large software systems, they would like to ensure that the design continues to conform to this style during the maintenance phase of the software-life cycle. We will assume that the architectural design of a software system is available; for instance, it may have been extracted from the source code of the system using a parser. We will also assume we have a set of stylistic constraints given by the architect. For example, the architect may want to ensure that if a module X is allowed to use a procedure in a module Y, then module Y needs to export that procedure. We define the Style Repair Problem as follows: If the current architectural design does not satisfy a set of stylistic constraints, how can we repair it so that it does? We choose to represent architectural designs as directed graphs; hence, repairing the style of these designs is equivalent to repairing the graph. We show how graph g...
Hoda Fahmy, Richard C. Holt, Spiros Mancoridis