Graphical or visual representations play a central role in the software life cycle as a means to make the immaterial software more tangible and accessible. While such drawings or diagrams facilitate a “computational offloading” when reasoning about a system, the complexity of today’s software systems makes them often extremely big and cluttered. One way to cope with this size and complexity is to use hierarchical and aspectual decompositions to split the models into manageable and understandable parts. Such a decomposition mechanism is the basic idea behind the ADORA approach: It uses an integrated, inherently hierarchical model together with a tool that generates abstractions in the form of diagrams of manageable complexity. The underlying complexity management mechanism combines two concepts: (i) a fisheye zoom visualization which shows local detail and its surrounding global context in one single view and (ii) a dynamic generation of different views by filtering specific model elements.
The work at hand covers the technical foundations of this complexity management mechanism. While the simplicity of the basic concept contributes largely to its appeal, the actual realization in a computer-based tool has to cope with a lot of conceptual and technical problems and trade-offs. Besides the presentation and discussion of the actual data structures and algorithms, the detailed requirements they have to fulfill are covered as well. An improved fisheye zoom algorithm that employs the concept of interval scaling and solves the problem of having a user-editable layout which is stable under multiple zoom operations builds the basis for the dynamic adaption of a diagram. This algorithm can be extended to adapt the layout if model elements are filtered to generate different views on the model. Additionally, it can be used to support the model editing by adapting the layout automatically. Since these automatic layout adjustments result in a dynamic, constantly changing diagram, the links or lines connecting model elements have to be adapted, too. As a solution to that problem, an automatic line routing algorithm that produces an aesthetically appealing layout and routes in real time has been developed. The basic data structure of this algorithm can also be used to automatically place the labels accompanying the links.