Several important aspects of software systems can be expressed as dependencies between their components. A special class of dependencies concentrates on the program text and captures the technical structure and behavior of the target system. The central characteristic making such program dependencies valuable in software engineering environments is that they can be automatically extracted from the program by applying well-known methods of programming language implementation. We present a model of program dependencies by considering them as relations between program elements. Moreover, we show how dependency relations form the basis of producing a graph-like hypertextual representation of programs for a programming environment. Having a general and well-defined model of program dependencies as a foundation makes it easier to systematically construct and integrate language-based tools. As an example application, we present a hypertextual tool which is founded on our relational dependency model and which can be used to maintain programs written in the programming language C.
['Jukka Paakki', 'Jussi Koskinen', 'Airi Salminen']
From relational program dependencies to hypertextual access structures