ADG: Annotated Dependency Graphs for Software Understanding

Dependency graphs such as call and data usage graphs are often used to study software systems and perform impact analysis during maintenance activities. These graphs show the present structure of the software system ( .g. In a compiler, anOptimizer function calling aParser function). They fail to reveal details about the structure of the system that are needed to gain a better understanding. For example, traditional call graphs cannot give the rationale behind anOptimizer function callingParser function. In this position paper, we advocate a new view on dependency graphs – Annotated Dependency Graphs (ADG). ADG can assist maintainers understand better the current structure of large software systems. We show an example of using an ADG to studyPostgres, a large DBMS open source software system.

[1]  Richard C. Holt,et al.  Architecture recovery of web applications , 2002, ICSE '02.

[2]  Ernst-Erich Doberkat Ernst-Erich Doberkat über Mary Shaw und David Garlan: Software Architecture - Perspectives on an Emerging Discipline , 2000, Softwaretechnik-Trends.

[3]  Gail C. Murphy,et al.  Design pattern rationale graphs: linking design to source , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[4]  Rainer Koschke,et al.  Locating Features in Source Code , 2003, IEEE Trans. Software Eng..

[5]  Martin P. Robillard,et al.  Concern graphs: finding and describing concerns using structural program dependencies , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[6]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[7]  Richard C. Holt,et al.  Understanding Change Propagation in Software Systems , 2003 .

[8]  Richard C. Holt,et al.  GASE: visualizing software evolution-in-the-large , 1996, Proceedings of WCRE '96: 4rd Working Conference on Reverse Engineering.

[9]  Qing Zhang,et al.  CVSSearch: searching through source code using CVS comments , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[10]  Moshe Bar,et al.  Open Source Development with CVS , 1999 .

[11]  Susan Elliott Sim,et al.  Supporting Multiple Program Comprehension Strategies During Software Maintenance , 1998 .

[12]  Hausi A. Müller,et al.  Cognitive design elements to support the construction of a mental model during software exploration , 1999, J. Syst. Softw..

[13]  Hausi A. Müller,et al.  Cognitive design elements to support the construction of a mental model during software visualization , 1997, Proceedings Fifth International Workshop on Program Comprehension. IWPC'97.

[14]  Walter F. Tichy,et al.  Rcs — a system for version control , 1985, Softw. Pract. Exp..