Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

An automated approach for noise identification to assist software architecture recovery techniques

Published: 01 September 2015 Publication History

Abstract

We propose an automated methodology for noise detection.We assist SAR approaches to identify classes that obscure the system structure.We do not require a user defined threshold for noise detection.Our approach performs well in both complex and modularized designs.The tool implementing the proposed approach is freely available for download. Software systems' concrete architecture often drifts from the intended architecture throughout their evolution. Program comprehension activities, like software architecture recovery, become very demanding, especially for large and complex systems due to the existence of noise, which is created by omnipresent and utility classes that obscure the system structure. Omnipresent classes represent crosscutting concerns, utilities or elementary domain concepts. The identification and filtering of noise is a necessary preprocessing step before attempting program comprehension techniques, especially for undocumented systems. In this paper, we propose an automated methodology for noise identification. Our methodology is based on the notion that noisy classes are widely used in a system, directly or indirectly. We combine classes' usage significance with their participation in the system's subgraphs, in order to identify the classes that are persistently used. Usage significance is measured according to Component Rank, a well-established metric in the literature, which ranks software artifacts according to their usage significance. The experimental results show that the proposed methodology successfully captures classes that produce noise and improves the results of existing algorithms for software systems' architectural decomposition.

References

[1]
S. Ducasse, D. Pollet, Software architecture reconstruction: a process-oriented taxonomy, IEEE Trans. Softw. Eng., 35 (2009) 573-591.
[2]
M. Shtern, V. Tzerpos, Clustering methodologies for software engineering, Adv. Softw. Eng (2012).
[3]
D. Pollet, S. Ducasse, L. Poyet, I. Alloui, S. Cimpan, H. Verjus, Towards a process-oriented software architecture reconstruction taxonomy, 2007.
[4]
S. Chardigny, A. Seriai, Software architecture recovery process based on object-oriented source code and documentation, 2010.
[5]
O. Maqbool, H. Babri, Hierarchical clustering for software architecture recovery, IEEE Trans. Softw. Eng., 33 (2007) 759-780.
[6]
S. Mancoridis, B. Mitchell, Y. Chen, E. Gansner, Bunch: a clustering tool for the recovery and maintenance of software system structures, 1999.
[7]
B. Mitchell, S. Mancoridis, On the automatic modularization of software systems using the bunch tool, IEEE Trans. Softw. Eng., 32 (2006) 193-208.
[8]
H. Muller, J. Uhl, Composing subsystem structures using (k., 2)-partite graphs, 1990.
[9]
H. Muller, M. Orgun, S. Tilley, J. Uhl, A reverse-engineering approach to subsystem structure identification, J. Softw. Maint. Res. Pract., 5 (1993) 181-204.
[10]
J. Luo, L. Zhang, J. Sun, A hierarchical decomposition method for object-oriented systems based on identifying omnipresent clusters, 2005.
[11]
Z. Wen, V. Tzerpos, Software clustering based on omnipresent object detection, 2005.
[12]
L. Zhang, J. Luo, H. Li, J. Sun, H. Mei, A biting-down approach to hierarchical decomposition of object-oriented systems based on structure analysis, J. Softw. Maint. Evol., 22 (2010) 567-596.
[13]
M. Lungu, M. Lanza, O. Nierstrasz, Evolutionary and collaborative software architecture recovery with softwarenaut, Sci. Comput. Program, 79 (2014) 204-223.
[14]
H. Pirzadeh, L. Alawneh, A. Hamou-Lhadj, Quality of the source code for design and architecture recovery techniques: Utilities are the problem, 2009.
[15]
B. Dit, M. Revelle, M. Gethers, D. Poshyvanyk, Feature location in source code: a taxonomy and survey, J. of Softw.: Evol. and Process, 25 (2013) 53-95.
[16]
K. Inoue, R. Yokomori, T. Yamamoto, M. Matsushita, S. Kusumoto, Ranking significance of software components based on use relations, IEEE Trans. Softw. Eng., 31 (2005) 213-225.
[17]
V. Tzerpos, R. Holt, Acdc: an algorithm for comprehension-driven clustering, 2000.
[18]
A. Hamou-Lhadj, E. Braun, D. Amyot, T. Lethbridge, Recovering behavioral design models from execution traces, 2005.
[19]
A. Hamou-Lhadj, T. Lethbridge, Summarizing the content of large traces to facilitate the understanding of the behaviour of a software system, 2006.
[20]
P. Dugerdil, J. Repond, Automatic generation of abstract views for legacy software comprehension, 2010.
[21]
C. Patel, A. Hamou-Lhadj, J. Rilling, Software clustering using dynamic analysis and static dependencies, 2009.
[22]
M. Marin, A.V. Deursen, L. Moonen, Identifying crosscutting concerns using fan-in analysis, ACM Trans. Softw. Eng. Methodol., 17 (2007) 1-37.
[23]
E.W. Dijkstra, A note on two problems in connexion with graphs, Numerische Mathematik, 1 (1959) 269-271.
[24]
G. Kakarontzas, E. Constantinou, A. Ampatzoglou, I. Stamelos, Layer assessment of object-oriented software: a metric facilitating white-box reuse, J. Syst. Softw., 86 (2013) 349-366.
[25]
M. Lanza, R. Marinescu, Object-Oriented Metrics in Practice, Springer, 2006.
[26]
Elmer F.-J., Classycle: Analysing Tools for Java Class and Package Dependencies. Online}. Available: http://classycle.sourceforge.net/.
[27]
R. Tarjan, Depth-first search and linear graph algorithms, SIAM J. Comput., 1 (1972) 146-160.
[28]
N. Medvidovic, V. Jakobac, Using software evolution to focus architectural recovery, Automated Softw. Eng., 13 (2006) 225-256.
[29]
R. Vasa, M. Lumpe, P. Branch, O. Nierstrasz, Comparative analysis of evolving software systems using the gini coefficient, 2009.
[30]
J. Garcia, I. Ivkovic, N. Medvidovic, A comparative analysis of software architecture recovery techniques, 2013.
[31]
R. Bittencourt, D. Guerrero, Comparison of graph clustering algorithms for recovering software architecture module views, 2009.
[32]
A. Corazza, S.D. Martino, G. Scanniello, A probabilistic based approach towards software system clustering, 2010.
[33]
R. Naseem, O. Maqbool, S. Muhammad, Improved similarity measures for software clustering, 2011.
[34]
V. Tzerpos, R. Holt, Mojo: a distance metric for software clustering, 1999.
[35]
Z. Wen, V. Tzerpos, An effectiveness measure for software clustering algorithms, 2004.
[36]
C. Stoermer, L. O'Brien, C. Verhoef, Moving towards quality attribute driven software architecture reconstruction, 2003.

Cited By

View all
  • (2024)Darcy: Automatic Architectural Inconsistency Resolution in JavaIEEE Transactions on Software Engineering10.1109/TSE.2024.339643350:6(1639-1657)Online publication date: 3-May-2024
  • (2019)Detection and repair of architectural inconsistencies in JavaProceedings of the 41st International Conference on Software Engineering10.1109/ICSE.2019.00067(560-571)Online publication date: 25-May-2019

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Journal of Systems and Software
Journal of Systems and Software  Volume 107, Issue C
September 2015
220 pages

Publisher

Elsevier Science Inc.

United States

Publication History

Published: 01 September 2015

Author Tags

  1. Noise identification
  2. Omnipresent classes
  3. Software architecture recovery

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 09 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Darcy: Automatic Architectural Inconsistency Resolution in JavaIEEE Transactions on Software Engineering10.1109/TSE.2024.339643350:6(1639-1657)Online publication date: 3-May-2024
  • (2019)Detection and repair of architectural inconsistencies in JavaProceedings of the 41st International Conference on Software Engineering10.1109/ICSE.2019.00067(560-571)Online publication date: 25-May-2019

View Options

View options

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media