Visualization of software architecture graphs of Java systems: Managing propagated low level dependencies

Lajos Schrettner, Lajos Jeno Fülöp, R. Ferenc, T. Gyimóthy

Research output: Chapter in Book/Report/Conference proceedingConference contribution

4 Citations (Scopus)

Abstract

The availability of up-to-date documentation of the architecture is crucial for software maintenance tasks, but it is often missing or differs from the implemented architecture. An increasingly popular and feasible way to get a clear picture of the architecture is to reconstruct it from the source code. The result of the reconstruction procedure is a graph with special, architecture-specific properties. Nowadays software systems are typically very large, so the reconstructed architecture contains a lot of details and is really difficult to interpret. It is important therefore to have efficient methods that help in understanding and managing the architecture graph. The purpose of these methods is to try to present the information so that it is comprehensible to the users. Two important methods are selective subtree collapsion and lifting low level dependencies of the system into higher, visible levels. These enable an architect to investigate the dependencies of system components at higher levels, without the need to deal with an enormous quantity of low-level details. In this paper, first we overview the concepts related to lifting and present a conceptual framework that combines subtree collapsion with lifting to enable users to interactively explore and manipulate a software architecture graph. Then we define a set of algorithms that can be used to efficiently propagate dependency edges of a graph to higher levels. We also describe how the results can be integrated into SourceInventory, a software quality monitoring and visualization framework.

Original languageEnglish
Title of host publicationProceedings of the 8th International Conference on the Principles and Practice of Programming in Java, PPPJ 2010
Pages148-157
Number of pages10
DOIs
Publication statusPublished - 2010
Event8th Annual Conference on Principles and Practice of Programming in Java, PPPJ 2010 - Vienna, Austria
Duration: Sep 15 2010Sep 17 2010

Other

Other8th Annual Conference on Principles and Practice of Programming in Java, PPPJ 2010
CountryAustria
CityVienna
Period9/15/109/17/10

Fingerprint

Computer software maintenance
Software architecture
Software Architecture
Java
Visualization
Availability
Monitoring
Graph in graph theory
Software Maintenance
Software Quality
Software System
Architecture

Keywords

  • architecture reconstruction
  • architecture visualization
  • lifting
  • nested set model
  • software architecture

ASJC Scopus subject areas

  • Computational Theory and Mathematics
  • Theoretical Computer Science

Cite this

Schrettner, L., Fülöp, L. J., Ferenc, R., & Gyimóthy, T. (2010). Visualization of software architecture graphs of Java systems: Managing propagated low level dependencies. In Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java, PPPJ 2010 (pp. 148-157) https://doi.org/10.1145/1852761.1852783

Visualization of software architecture graphs of Java systems : Managing propagated low level dependencies. / Schrettner, Lajos; Fülöp, Lajos Jeno; Ferenc, R.; Gyimóthy, T.

Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java, PPPJ 2010. 2010. p. 148-157.

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Schrettner, L, Fülöp, LJ, Ferenc, R & Gyimóthy, T 2010, Visualization of software architecture graphs of Java systems: Managing propagated low level dependencies. in Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java, PPPJ 2010. pp. 148-157, 8th Annual Conference on Principles and Practice of Programming in Java, PPPJ 2010, Vienna, Austria, 9/15/10. https://doi.org/10.1145/1852761.1852783
Schrettner L, Fülöp LJ, Ferenc R, Gyimóthy T. Visualization of software architecture graphs of Java systems: Managing propagated low level dependencies. In Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java, PPPJ 2010. 2010. p. 148-157 https://doi.org/10.1145/1852761.1852783
Schrettner, Lajos ; Fülöp, Lajos Jeno ; Ferenc, R. ; Gyimóthy, T. / Visualization of software architecture graphs of Java systems : Managing propagated low level dependencies. Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java, PPPJ 2010. 2010. pp. 148-157
@inproceedings{573eb19014174eabaa3a3215c0967904,
title = "Visualization of software architecture graphs of Java systems: Managing propagated low level dependencies",
abstract = "The availability of up-to-date documentation of the architecture is crucial for software maintenance tasks, but it is often missing or differs from the implemented architecture. An increasingly popular and feasible way to get a clear picture of the architecture is to reconstruct it from the source code. The result of the reconstruction procedure is a graph with special, architecture-specific properties. Nowadays software systems are typically very large, so the reconstructed architecture contains a lot of details and is really difficult to interpret. It is important therefore to have efficient methods that help in understanding and managing the architecture graph. The purpose of these methods is to try to present the information so that it is comprehensible to the users. Two important methods are selective subtree collapsion and lifting low level dependencies of the system into higher, visible levels. These enable an architect to investigate the dependencies of system components at higher levels, without the need to deal with an enormous quantity of low-level details. In this paper, first we overview the concepts related to lifting and present a conceptual framework that combines subtree collapsion with lifting to enable users to interactively explore and manipulate a software architecture graph. Then we define a set of algorithms that can be used to efficiently propagate dependency edges of a graph to higher levels. We also describe how the results can be integrated into SourceInventory, a software quality monitoring and visualization framework.",
keywords = "architecture reconstruction, architecture visualization, lifting, nested set model, software architecture",
author = "Lajos Schrettner and F{\"u}l{\"o}p, {Lajos Jeno} and R. Ferenc and T. Gyim{\'o}thy",
year = "2010",
doi = "10.1145/1852761.1852783",
language = "English",
isbn = "9781450302692",
pages = "148--157",
booktitle = "Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java, PPPJ 2010",

}

TY - GEN

T1 - Visualization of software architecture graphs of Java systems

T2 - Managing propagated low level dependencies

AU - Schrettner, Lajos

AU - Fülöp, Lajos Jeno

AU - Ferenc, R.

AU - Gyimóthy, T.

PY - 2010

Y1 - 2010

N2 - The availability of up-to-date documentation of the architecture is crucial for software maintenance tasks, but it is often missing or differs from the implemented architecture. An increasingly popular and feasible way to get a clear picture of the architecture is to reconstruct it from the source code. The result of the reconstruction procedure is a graph with special, architecture-specific properties. Nowadays software systems are typically very large, so the reconstructed architecture contains a lot of details and is really difficult to interpret. It is important therefore to have efficient methods that help in understanding and managing the architecture graph. The purpose of these methods is to try to present the information so that it is comprehensible to the users. Two important methods are selective subtree collapsion and lifting low level dependencies of the system into higher, visible levels. These enable an architect to investigate the dependencies of system components at higher levels, without the need to deal with an enormous quantity of low-level details. In this paper, first we overview the concepts related to lifting and present a conceptual framework that combines subtree collapsion with lifting to enable users to interactively explore and manipulate a software architecture graph. Then we define a set of algorithms that can be used to efficiently propagate dependency edges of a graph to higher levels. We also describe how the results can be integrated into SourceInventory, a software quality monitoring and visualization framework.

AB - The availability of up-to-date documentation of the architecture is crucial for software maintenance tasks, but it is often missing or differs from the implemented architecture. An increasingly popular and feasible way to get a clear picture of the architecture is to reconstruct it from the source code. The result of the reconstruction procedure is a graph with special, architecture-specific properties. Nowadays software systems are typically very large, so the reconstructed architecture contains a lot of details and is really difficult to interpret. It is important therefore to have efficient methods that help in understanding and managing the architecture graph. The purpose of these methods is to try to present the information so that it is comprehensible to the users. Two important methods are selective subtree collapsion and lifting low level dependencies of the system into higher, visible levels. These enable an architect to investigate the dependencies of system components at higher levels, without the need to deal with an enormous quantity of low-level details. In this paper, first we overview the concepts related to lifting and present a conceptual framework that combines subtree collapsion with lifting to enable users to interactively explore and manipulate a software architecture graph. Then we define a set of algorithms that can be used to efficiently propagate dependency edges of a graph to higher levels. We also describe how the results can be integrated into SourceInventory, a software quality monitoring and visualization framework.

KW - architecture reconstruction

KW - architecture visualization

KW - lifting

KW - nested set model

KW - software architecture

UR - http://www.scopus.com/inward/record.url?scp=78549233430&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=78549233430&partnerID=8YFLogxK

U2 - 10.1145/1852761.1852783

DO - 10.1145/1852761.1852783

M3 - Conference contribution

AN - SCOPUS:78549233430

SN - 9781450302692

SP - 148

EP - 157

BT - Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java, PPPJ 2010

ER -