Design of a hyper-environment for tracing object-oriented requirements
Change is inevitable and unending in developing large, complex systems. Changes to requirements arise not only from changes in the social context of the system, but also from improved understanding of constraints and tradeoffs as system development proceeds. How to trace software requirements is the problem addressed by this thesis. We present a solution for requirements tracing in the context of object-oriented software development. Our solution consists of a traceability model and a tool to automate the tracing. TOOR, the tool to implement the model, uses a project specification written in FOOPS, a general purpose object-oriented language with specification capabilities, to set up the environment in which a project is carried out. The project specification defines the trace units and traces as objects and relations, respectively. The evolution of objects from requirements sources to requirements to design to code, and generally to any object taking part in the process is dealt with in a uniform way in TOOR: classes are declared for each kind of object we wish to control, and relations are defined between them. TOOR uses regular expressions to provide a selective tracing mode: the actual configuration of objects and relations is considered as a text and regular expressions are used to retrieve parts of the configuration matching the pattern described by them. TOOR enhances the flexibility of regular expressions by extending the pattern matching procedure by providing different ways of specifying how an object or relation is to be matched. Other modes of tracing in TOOR are the interactive tracing through modules and the non-guided tracing through several browsing mechanisms. TOOR modules are used to structure projects by providing hierarchical scopes for objects used in a project development. The tracing mechanisms of TOOR can use the project structure to order searches or to provide boundaries for searching. Browsing objects provides additional flexibility in situations where little information of what has to be traced is possessed and hyper-media features address the need to re-interpret data usually encoded in different formats. The user-definable features of a project specification provides much of the flexibility necessary for effective use of a software tracing tool. Also, the integration of regular expression tracing with other forms of tracing such as browsing and interactive tracing makes TOOK an extremely versatile tool. The user can select the more appropriate form of tracing depending on context and can switch from one form to another as convenient.