include relation visualization

Through the years, most perennial industrial software systems have grown at such pace that there is no single person that understands its behaviour completely anymore. Millions of lines of source code are changed by more than 100 engineers at several locations world-wide at the same time. The software system behaves like an organic entity.

Fortunately, it is possible nowadays to gather lots of analysis data about software that might be of help to understand the software system, albeit retrospectively. Think here of metrics, call graphs, state transition diagrams, and include relations. One of the challenges is to visualize these kinds of data in such a way that it generates true understanding of the software system at hand. Until now only a few tools succeeded to achieve this goal for vast software systems. However, this has not yet been accomplished for include relations, whereas include relations are one of the major indicators of software modularity.

This assignment concentrates on the visualization of include relations. It is a continuation of an interesting prototype of an include relation viewer developed by Technical University of Eindhoven (www.tue.nl). The assignment consists of three main deliverables. The first step is to prove the usability of the TU/e include relation viewer by integrating it in the TICS Framework of TIOBE Software BV (www.tiobe.com) and test it in practice at several multinational customer's site of TIOBE.

Based on the feedback of multinationals, the second step consists of specifying a theoretical and pratical concept definition of what is really needed. After a literature survey and discussion with customers this should result in a requirement specification of a second, more ambitiuous generation of the include viewer. This new version might include arbitrary binary relations, arbitrary aggregation levels, what-if scenarios, and architectural rule specification. All of this should be supported by revolutionary graphical feedback that is intuitive for a software architect and fast enough for systems with millions of lines of code.

Depending on the time that is available for this assignment and the progress that has been made, a prototype of the most interesting concepts should be realized. If possible, the assignment will result in an article to be published together with the Technical University and TIOBE.

Assigner: tiobe.
Contact: Jack van Wijk.