Methods for restoring and visualizing the architecture of a software system

Vladimir Romanov

Abstract


The article provides an overview of methods for restoring and visualizing the architecture of software systems. Understanding architecture is vital to effectively maintaining and managing large software systems. However, as software systems evolve over time, their architecture inevitably changes. Architects need to track changes at the implementation level and update the architecture documentation accordingly, which is time-consuming and often leads to errors in the description. To facilitate this process, many automatic architectural recovery techniques have been proposed. Despite efforts to improve the accuracy of architectural reconstruction, existing solutions still suffer from two limitations. First, most of them use only one or two types of information for recovery, ignoring the potential usefulness of other sources. This review also discusses multicriteria methods. Secondly, they tend to use information roughly, leaving out important details. To identify such details, methods for visualizing the architecture of a software system are considered.

Full Text:

PDF (Russian)

References


Paul Clements, Felix Bachmann, Len Bass, David Garlan, James Ivers, Reed Little, Paulo Merson, Robert Nord, Judith Stafford. Documenting Software Architectures: Views and Beyond 2nd Edition, 2010, Addison-Wesley Professional, ISBN 0321552687

Lutellier, Thibaud et al., 2015. Comparing software architecture recovery techniques using accurate dependencies. 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, vol. 2. IEEE, pp. 69–78.

Y. Wang, P. Liu, H. Guo, H. Li, and X. Chen, “Improved

hierarchical clustering algorithm for software architecture recovery,” in Proceedings - 2010 International Conference on Intelligent Computing and Cognitive Informatics, ICICCI 2010, pp. 247–250

K. Kobayashi, M. Kamimura, K. Kato, K. Yano, and A. Matsuo, “Feature-gathering dependency-based software clustering using Dedication and Modularity,” in IEEE International Conference on Software Maintenance, ICSM, 2012, pp.462–471.

J. Dong, Y. Zhao, and Y. Sun, “A matrix-based approach to recovering design patterns,” IEEE Trans. Syst. Man, Cybern. Part ASystems Humans, 2009, vol. 39, no. 6, pp. 1271–1282.

Chhabra, Jitender Kumar et al., 2017. Improving package structure of object oriented software using multi-objective optimization and weighted class connections. J. King Saud Univ.-Comput. Infr. Sci. 29 (3), 349–364.

J. Garcia, I. Krka, N. Medvidovic, and C. Douglas, “A framework for obtaining the ground-truth in architectural recovery,” in Proceedings of the Joint Working Conference on Software Architecture and 6th European Conference on Software Architecture, WICSA/ECSA 2012, pp. 292–296.

Cho, Choongki et al., 2019. Software architecture module-view recovery using cluster ensembles. IEEE Access 7, 72872–72884.

Maqbool, Onaiza, Babri, Haroon Atique, 2004. The weighted combined algorithm: A linkage algorithm for software clustering. In: Eighth European Conference on Software Maintenance and Reengineering, 2004. CSMR 2004. Proceedings. IEEE, pp. 15–24.

Gupta, Tanvi, Panda, Supriya P., 2019. Clustering validation of CLARA and k-means using silhouette & DUNN measures on Iris dataset. In: 2019 International Conference on Machine Learning, Big Data, Cloud and Parallel Computing (COMITCon). IEEE, pp. 10–13.

Blondel, Vincent D. et al., 2008. Fast unfolding of communities in large networks. J. Stat. Mech.: Theory Exp. 2008 (10), P10008.

F. Beck and S. Diehl, On the impact of software evolution on software clustering, Empirical Software Engineering, vol. 18, no. 5, pp.970–1004, 2013.

M. Harman, S. Swift, and K. Mahdavi, An empirical study of the robustness of two module clustering fitness functions,” in Proceedings of the 7th annual conference on Genetic and evolutionary computation. ACM, 2005, pp. 1029–1036.

B. Mitchell and S. Mancoridis, On the automatic modularization of software systems using the bunch tool, IEEE Transactions on Software Engineering, vol. 32, no. 3, pp. 193–208, March 2006

K. Praditwong, M. Harman, and Y. Xin, Software module clustering as a multi-objective search problem, IEEE Transactions on Software Engineering, vol. 37, no. 2, pp. 264–282, 2011.

N. Teymourian, H. Izadkhah, and A. Isazadeh,

A fast clustering algorithm for modularization of large-scale software systems, IEEE Transactions on Software Engineering, 2020.

Alvin Jian Jia Tana, Chun Yong Chonga, Aldeida Aletib

Explaining software clustering for remodularisation.

J. Syst. Software 186, 111162 (2022).

A. Kuhn, S. Ducasse, and T. Girba, Enriching Reverse Engineering with Semantic Clustering Proc. of 12th Working Conference on Reverse Engineering (WCRE 2005), Pittsburgh, Pennsylvania, USA, pp. 133-142, 2005.

Kuhn A, Ducasse S, Girba T Semantic clustering: identifying topics in source code. Inf Softw Technol 49(3):230–243, 2007

Gustavo Santos, Marco Tulio Valente, Nicolas Anquetil.

Remodularization Analysis Using Semantic Clustering. 1st CSMR-WCRE Software Evolution Week, Feb 2014, Antwerp, Belgium.

Ducasse,S., Gîrba,T., and Kuhn,A. Distribution map. In 22nd International Conference on Software Maintenance, 2006, pages 203–212.

Luciana L Silva, Marco Tulio Valente, and Marcelo A Maia.

Co-change patterns: A large scale empirical study. Journal of Systems and Software 152 (2019), 196–214

N.J. Agouf, S.Ducasse, A.Etien, A.Alidra, A.Thiefaine

Understanding Class Name Regularity: A Simple Heuristic and Supportive Visualization. The Journal of Object Technology, 2022

Gamma, Erich; Helm, Richard; Johnson, Ralph; Vlissides, John. Design Patterns: Elements of Reusable Object-Oriented Software.

Addison-Wesley. (1994) ISBN 978-0-201-63361-0.

W. Brown, R. Malveau, H. McCormick, and T. Mowbray,

AntiPatterns: Refactoring software, architectures, and projects in crisis. John Wiley & Sons, 1998.

J. Din, A.B. Al-Badareen, Y. Yah Jusoh Antipatterns Detection Approaches in Object-Oriented Design: A literature review Computing and Convergence Technology (ICCCT), 2012 7th International Conference on. P. 926–931.

F. Palomba, G. Bavota, R. Oliveto, A. De Lucia

Anti-pattern Detection: Methods, Challenges, and Open Issues

Advances in Computers. 2014. P. 201–238.

M. Llano and R. Pooley. UML specification and correction of object oriented anti-patterns, in Fourth International Conference on Software Engineering Advances, 2009. ICSEA ’09. IEEE, 2009, pp. 39–44.

Xue Qing, Study on the detection and correction of software based on UML in 2010 International Conference on E-Health Networking, Digital Ecosystems and Technologies (EDT), vol. 1. IEEE, 2010, pp.268–271.

OMG Unified Modeling Language TM (OMG UML) Version 2.5 http://www.omg.org/spec/UML/2.5/PDF/

Ballis, Demis; Baruzzo, Andrea; Comini, Marco.

A Rule-based Method to Match Software Patterns Against UML Models.

In: Electr. Notes Theor. Comput. Sci. 219 (2008), p. 51–66

Nacha Chondamrongkul, Jing Sun, Ian Warren, Scott Uk-Jin Lee Semantic-based Architecture Smell Analysis

Proceedings of the 8th International Conference on Formal Methods

in Software EngineeringOctober 2020, pages 109–118

Ballis D., Baruzzo A., Comini M. A minimalist visual notation for design patterns and antipatterns Fifth International Conference on Information Technology. New Generations (itng 2008). IEEE, 2008. p.51-56.

Elsayed, E.K. and El-Sharawy, E.E., Detecting Design Level Antipatterns; Structure and Semantics in UML Class Diagrams. Journal of Computers, 13(6), pp.638-655. 2018

R Fourati, N Bouassida, HB Abdallah A metric-based approach for anti-pattern detection in UML designs Computer and Information Science 2011, 2011

M. Salehie, S. Li, and L. Tahvildari, A metric-based heuristic framework to detect object-oriented design flaws, in 14th IEEE International Conference on Program Comprehension (ICPC’06), 2006, pp. 159–168.


Refbacks

  • There are currently no refbacks.


Abava  Кибербезопасность IT Congress 2024

ISSN: 2307-8162