A systematic review of software architecture visualization techniques

Abstract Context Given the increased interest in using visualization techniques (VTs) to help communicate and understand software architecture (SA) of large scale complex systems, several VTs and tools have been reported to represent architectural elements (such as architecture design, architectural patterns, and architectural design decisions). However, there is no attempt to systematically review and classify the VTs and associated tools reported for SA, and how they have been assessed and applied. Objective This work aimed at systematically reviewing the literature on software architecture visualization to develop a classification of VTs in SA, analyze the level of reported evidence and the use of different VTs for representing SA in different application domains, and identify the gaps for future research in the area. Method We used systematic literature review (SLR) method of the evidence-based software engineering (EBSE) for reviewing the literature on VTs for SA. We used both manual and automatic search strategies for searching the relevant papers published between 1 February 1999 and 1 July 2011. Results We selected 53 papers from the initially retrieved 23,056 articles for data extraction, analysis, and synthesis based on pre-defined inclusion and exclusion criteria. The results from the data analysis enabled us to classify the identified VTs into four types based on the usage popularity: graph-based, notation-based, matrix-based, and metaphor-based VTs. The VTs in SA are mostly used for architecture recovery and architectural evolution activities. We have also identified ten purposes of using VTs in SA. Our results also revealed that VTs in SA have been applied to a wide range of application domains, among which “graphics software” and “distributed system” have received the most attention. Conclusion SA visualization has gained significant importance in understanding and evolving software-intensive systems. However, only a few VTs have been employed in industrial practice. This review has enabled us to identify the following areas for further research and improvement: (i) it is necessary to perform more research on applying visualization techniques in architectural analysis, architectural synthesis, architectural implementation, and architecture reuse activities; (ii) it is essential to pay more attention to use more objective evaluation methods (e.g., controlled experiment) for providing more convincing evidence to support the promised benefits of using VTs in SA; (iii) it is important to conduct industrial surveys for investigating how software architecture practitioners actually employ VTs in architecting process and what are the issues that hinder and prevent them from adopting VTs in SA.

[1]  Robert L. Nord,et al.  A general model of software architecture design derived from five industrial approaches , 2007, J. Syst. Softw..

[2]  Pearl Brereton,et al.  Performing systematic literature reviews in software engineering , 2006, ICSE.

[3]  Tore Dybå,et al.  Evidence-Based Software Engineering for Practitioners , 2005, IEEE Softw..

[4]  Michael Balzer,et al.  Software landscapes: visualizing the structure of large software systems , 2004, VISSYM'04.

[5]  V. Braun,et al.  Using thematic analysis in psychology , 2006 .

[6]  Peng Liang,et al.  Improving understandability of architecture design through visualization of architectural design decision , 2010, SHARK '10.

[7]  John C. Grundy,et al.  High-level static and dynamic visualisation of software architectures , 2000, Proceeding 2000 IEEE International Symposium on Visual Languages.

[8]  Stéphane Ducasse,et al.  A Process-Oriented Software Architecture Reconstruction Taxonomy , 2007 .

[9]  Lianping Chen,et al.  Towards an Evidence-Based Understanding of Electronic Data Sources , 2010, EASE.

[10]  Peng Liang,et al.  Application of knowledge-based approaches in software architecture: A systematic mapping study , 2013, Inf. Softw. Technol..

[11]  Ganesh S. Oak Information Visualization Introduction , 2022 .

[12]  Richard N. Taylor,et al.  Software architecture: foundations, theory, and practice , 2009, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[13]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[14]  Philippe Kruchten,et al.  Building Up and Reasoning About Architectural Knowledge , 2006, QoSA.

[15]  Alexandru Telea,et al.  Ontology-driven visualization of architectural design decisions , 2009, 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture.

[16]  Alexander S. Yeh,et al.  Reverse Engineering to the Architectural Level , 1995, 1995 17th International Conference on Software Engineering.

[17]  Hernán Astudillo,et al.  Visualization and comparison of architecture rationale with semantic web technologies , 2009, J. Syst. Softw..

[18]  Peter Eades,et al.  Navigating software architectures with constant visual complexity , 2005, 2005 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC'05).

[19]  Muhammad Ali Babar,et al.  Identifying relevant studies in software engineering , 2011, Inf. Softw. Technol..

[20]  Tore Dybå,et al.  The Future of Empirical Methods in Software Engineering Research , 2007, Future of Software Engineering (FOSE '07).

[21]  Robert S. Hanmer,et al.  The Twin Peaks of Requirements and Architecture , 2013 .

[22]  Stephan Diehl,et al.  Software Visualization - Visualizing the Structure, Behaviour, and Evolution of Software , 2007 .

[23]  Philippe Kruchten,et al.  A Tool to Visualize Architectural Design Decisions , 2008, QoSA.

[24]  Peng Liang,et al.  Architectural design decision: Existing models and tools , 2009, 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture.

[25]  Arie van Deursen,et al.  A Controlled Experiment for Program Comprehension through Trace Visualization , 2011, IEEE Transactions on Software Engineering.

[26]  George Valença,et al.  Accepted Manuscript Requirements Engineering for Software Product Lines: a Systematic Literature Review Accepted Manuscript Requirements Engineering for Software Product Lines: a Systematic Literature Review Accepted Manuscript , 2022 .

[27]  Lucian Voinea,et al.  Visual Tools for Software Architecture Understanding: A Stakeholder Perspective , 2010, IEEE Software.

[28]  Tore Dybå,et al.  Empirical studies of agile software development: A systematic review , 2008, Inf. Softw. Technol..

[29]  Zohreh Sharafi,et al.  A Systematic Analysis of Software Architecture Visualization Techniques , 2011, 2011 IEEE 19th International Conference on Program Comprehension.

[30]  James E. Rumbaugh,et al.  Unified Modeling Language (UML) , 2010, Encyclopedia of Software Engineering.

[31]  Stéphane Ducasse,et al.  Software Architecture Reconstruction: A Process-Oriented Taxonomy , 2009, IEEE Transactions on Software Engineering.

[32]  Hans van Vliet,et al.  RCDA: Architecting as a risk- and cost management discipline , 2012, J. Syst. Softw..

[33]  Michele Lanza,et al.  Visualizing Software Systems as Cities , 2007, 2007 4th IEEE International Workshop on Visualizing Software for Understanding and Analysis.

[34]  Shari Lawrence Pfleeger,et al.  Software Metrics : A Rigorous and Practical Approach , 1998 .

[35]  Malcolm Munro,et al.  Software Architecture Visualization: An Evaluation Framework and Its Application , 2008, IEEE Transactions on Software Engineering.

[36]  Michael Balzer,et al.  Exploring Relations within Software Systems Using Treemap Enhanced Hierarchical Graphs , 2005, 3rd IEEE International Workshop on Visualizing Software for Understanding and Analysis.

[37]  Pearl Brereton,et al.  Using Mapping Studies in Software Engineering , 2008, PPIG.

[38]  Jan Bosch,et al.  Software Architecture as a Set of Architectural Design Decisions , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

[39]  James H. Cross,et al.  Reverse engineering and design recovery: a taxonomy , 1990, IEEE Software.

[40]  Rafael Capilla,et al.  The Decision View of Software Architecture , 2005, EWSA.

[41]  Jan Bosch,et al.  Scenario-based software architecture reengineering , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).

[42]  Hans van Vliet,et al.  Architecting as a Risk- and Cost Management Discipline , 2011, 2011 Ninth Working IEEE/IFIP Conference on Software Architecture.

[43]  Olaf Zimmermann,et al.  Sustainable Architectural Design Decisions , 2013, IEEE Software.

[44]  Amela Karahasanovic,et al.  A survey of controlled experiments in software engineering , 2005, IEEE Transactions on Software Engineering.

[45]  Manoel G. Mendonça,et al.  Software evolution visualization: A systematic mapping study , 2013, Inf. Softw. Technol..