When kept up-to-date, formal specifications can act as valid artifacts for maintenance tasks. However, their linguistic density and size impede comprehension, reuse, and change activities. Techniques such as specification slicing and chunking help in reducing the number of relevant lines of text to be considered, but they expect the point of change to be known a priori. This contribution presents a process model for concept location within formal Z-specifications. It also considers those situations when the location is not even roughly known. The identification is comparable to the identification of regions with high cohesion. The approach is based on the idea of first transforming the specification to an augmented graph and, secondly, on the generation of spacial clusters.
A. BOLLINFormal specifications are complex 'entities'. Even simple textbook specifications (of about 20-200 lines of specification text) typically contain dozens of dependencies between the related specification elements. Within the scope of this work, these elements are called prime objects and they are, like program statements, the basic construction elements [6].In order to guarantee the benefits of formal specifications (during evolutionary steps taking place throughout the life cycle), it gets necessary to evolve and also to change the specification. This change requires to first comprehend the specification. This can be demanding, and it gets really difficult when the maintenance personnel is not the author of the specification.There are several ways of dealing with the compactness of specifications. When the location of the specification text to be changed is already known, smaller parts of the specification can be detached by slicing or chunking [7][8][9][10]. Specification slices and chunks are well-defined types of abstraction, and for Z -specifications [11] they do reduce the size of the text by 20% up to 60% [12].However, typically, a change request might not contain a reference to the lines of specification text to be altered. Requests are often formulated in terms of changing/adding/deleting features or concepts [13]. For that reason concept and feature location play an increasing role in software maintenance, and it will also play an important role during specification maintenance activities.This contribution introduces an approach facilitating the comprehension process of complex formal specifications. Research dealing with specification slices and chunks so far assumes that either the point of change is known a priori, or that this point is to be found in an intuitive way (by linearly scanning through the specification text). The main contribution of this work consists of two closely related parts: firstly, a process model for specification comprehension, and secondly, fit into it, an approach for specification concept identification aiming at exactly those cases when not even a surmise can be made about the concepts' locations.The contribution is structured as follows: Section 2 summarizes the idea behind concept location and...