skip to main content
10.1145/2465478.2465480acmconferencesArticle/Chapter ViewAbstractPublication PagescomparchConference Proceedingsconference-collections
research-article

Leveraging design rules to improve software architecture recovery

Published:17 June 2013Publication History

ABSTRACT

In order to recover software architecture, various clustering techniques have been created to automatically partition a software system into meaningful subsystems. While these techniques have demonstrated their effectiveness, we observe that a key feature within most software systems has not been fully exploited: most well-designed systems follow strong architectural design rules that split the overall system into modules. These design rules are often manifested as special program constructs, such as shared data structures or abstract interfaces, which should not belong to any of the subordinate modules. We contribute a new perspective of architecture recovery based on this rationale, which enables the combination of design-rule-based clustering with other clustering techniques, as well as enabling the splitting of a large system into subsystems. We evaluated our approach both quantitatively and qualitatively, using both open source and real industrial software projects.

References

  1. P. Andritsos and V. Tzerpos. Information-theoretic software clustering. IEEE Transactions on Software Engineering, 31(2):150--165, Feb. 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. N. Anquetil and T. Lethbridge. Recovering software architecture from the names of source files. Journal of Software Maintenance, 11(3):201--221, May 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. N. Anquetil and T. C. Lethbridge. Experiments with clustering as a software remodularization method. In Proc. 6th Working Conference on Reverse Engineering, pages 235--255, Oct. 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. C. Y. Baldwin and K. B. Clark. Design Rules, Vol. 1: The Power of Modularity. MIT Press, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Y. Cai, D. Iannuzzi, and S. Wong. Leveraging design structure matrices in software design education. In Proc. 24th Conference on Software Engineering Education and Training, pages 179--188, May 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Y. Cai and K. J. Sullivan. Modularity analysis of logical design models. In Proc. 21st IEEE/ACM International Conference on Automated Software Engineering, pages 91--102, Sept. 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. S. Ducasse and D. Pollet. Software architecture reconstruction: A process-oriented taxonomy. IEEE Transactions on Software Engineering, 35(4):573--591, July 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. T. Eisenbarth, R. Koschke, and D. Simon. Derivation of feature component maps by means of concept analysis. In Proc. 5th European Conference on Software Maintenance and Reengineering, pages 176--179, Mar. 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. E. T. Freeman, E. Robson, B. Bates, and K. Sierra. Head First Design Patterns. O'Reilly Media, Oct. 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. E. Gamma, R. Helm, R. Johnson, and J. M. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Nov. 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Y.-G. Guéhéneuc and G. Antoniol. DeMIMA: A multilayered approach for design pattern identification. IEEE Transactions on Software Engineering, 34(5):667--684, May 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. M. Harman, S. Swift, and K. Mahdavi. An empirical study of the robustness of two module clustering fitness functions. In Proc. Genetic and Evolutionary Computation Conference, pages 1029--1036, June 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. D. H. Hutchens and V. R. Basili. System structure analysis: Clustering with data bindings. IEEE Transactions on Software Engineering, 11(8):749--757, Aug. 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. R. Koschke and T. Eisenbarth. A framework for experimental evaluation of clustering techniques. In Proc. 8th International Workshop on Program Comprehension, pages 201--210, June 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. J. I. Maletic and N. Valluri. Automatic software clustering via latent semantic analysis. In Proc. 14th IEEE/ACM International Conference on Automated Software Engineering, pages 251--254, Oct. 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. S. Mancoridis, B. S. Mitchell, Y.-F. Chen, and E. R. Gansner. Bunch: A clustering tool for the recovery and maintenance of software system structures. In Proc. 15th IEEE International Conference on Software Maintenance, pages 50--59, Aug. 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. O. Maqbool and H. A. Babri. The weighted combined algorithm: A linkage algorithm for software clustering. In Proc. 8th European Conference on Software Maintenance and Reengineering, pages 15--24, Mar. 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. O. Maqbool and H. A. Babri. Hierarchical clustering for software architecture recovery. IEEE Transactions on Software Engineering, 33(11):759--780, Nov. 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. B. S. Mitchell and S. Mancoridis. Comparing the cecompositions produced by software clustering algorithms using similarity measurements. In Proc. IEEE International Conference on Software Maintenance, pages 744--753, Nov. 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. B. S. Mitchell and S. Mancoridis. On the automatic modularization of software systems using the Bunch tool. IEEE Transactions on Software Engineering, 32(3):193--208, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. D. L. Parnas. On the criteria to be used in decomposing systems into modules. Communications of the ACM, 15(12):1053--8, Dec. 1972. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. D. Riehle. Framework Design: A Role Modeling Approach. PhD thesis, ETH Zurich, 2000.Google ScholarGoogle Scholar
  23. M. Saeed, O. Maqbool, H. A. Babri, S. Z. Hassan, and S. M. Sarwar. Software clustering techniques and the use of combined algorithm. In Proc. 7th European Conference on Software Maintenance and Reengineering, pages 301--306, Mar. 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. K. Sartipi, K. Kontogiannis, and F. Mavaddat. Architectural design recovery using data mining techniques. In Proc. 4th European Conference on Software Maintenance and Reengineering, pages 129--139, Feb. 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. M. Shtern and V. Tzerpos. Refining clustering evaluation using structure indicators. In Proc. 25th IEEE International Conference on Software Maintenance, pages 297--305, Sept. 2009.Google ScholarGoogle ScholarCross RefCross Ref
  26. C. Tjortjis, L. Sinos, and P. J. Layzell. Facilitating program comprehension by mining association rules from source code. In Proc. 11th International Workshop on Program Comprehension, pages 125--133, May 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. P. Tonella. Concept analysis for module restructuring. IEEE Transactions on Software Engineering, 27(4):351--363, Apr. 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. P. Tonella and G. Antoniol. Object oriented design mpattern inference. In Proc. IEEE International Conference on Software Maintenance, pages 230--238, Sept. 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. N. Tsantalis, A. Chatzigeorgiou, G. Stephanides, and S. T. Halkidis. Design pattern detection using similarity scoring. IEEE Transactions on Software Engineering, 32(11):896--909, Nov. 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. V. Tzerpos and R. C. Holt. ACDC: An algorithm for comprehension-driven clustering. In Proc. 7th Working Conference on Reverse Engineering, pages 258--267, Nov. 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. S. Wong. On the Interplay of Architecture and Collaboration on Software Evolution and Maintenance. PhD thesis, Drexel University, Dec. 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. S. Wong, Y. Cai, G. Valetto, G. Simeonov, and K. Sethi. Design rule hierarchies and parallelism in software development tasks. In Proc. 24th IEEE/ACM International Conference on Automated Software Engineering, pages 197--208, Nov. 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. J. Wu, A. E. Hassan, and R. C. Holt. Comparison of clustering algorithms in the context of software bevolution. In Proc. 21st IEEE International Conference on Software Maintenance, pages 525--535, Sept. 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Leveraging design rules to improve software architecture recovery

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      QoSA '13: Proceedings of the 9th international ACM Sigsoft conference on Quality of software architectures
      June 2013
      180 pages
      ISBN:9781450321266
      DOI:10.1145/2465478

      Copyright © 2013 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 17 June 2013

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      QoSA '13 Paper Acceptance Rate17of42submissions,40%Overall Acceptance Rate46of131submissions,35%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader