skip to main content
10.1145/3520313.3534659acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
research-article

ADA: a tool for visualizing the architectural overview of open-source repositories

Published:14 June 2022Publication History

ABSTRACT

Writing highly maintainable and efficient software code is becoming increasingly difficult, especially while following the rapid, agile development process and working in a distributed team. One of the key indicators of that inefficient software design is a high degree of code coupling, which leads to unwanted side-effects during refactoring and acts as a burden during future development. To alleviate these problems, we developed a visualization tool, ADA, that statically analyzes an open-source repository and seeks to address the issue of code coupling by providing developers with a powerful graphic representation. ADA showcases the relationships and the degree of inter-connectivity between the classes. ADA will ultimately guide developers to instantly locate the coupled area and assist them in decoupling it.

References

  1. ADA. 2022. ADA-Example-Repository. https://github.com/MRHMisu/ ADA-Example-Repository. [Online], [Accessed: 2022-03-10]. Google ScholarGoogle Scholar
  2. ADA. 2022. ADA-Wiki. https://github.com/alexandar1000/ADA/wiki. [Online], [Accessed: 2022-03-10]. Google ScholarGoogle Scholar
  3. AmazeFileManager. 2022. GitHub. https://github.com/TeamAmaze/ AmazeFileManager. [Online], [Accessed: 2022-03-02]. Google ScholarGoogle Scholar
  4. AnExplorer. 2022. GitHub. https://github.com/1hakr/AnExplorer. [Online], [Accessed: 2022-03-02]. Google ScholarGoogle Scholar
  5. Maurício Aniche. 2015. Java code metrics calculator (CK). Available in https://github.com/mauricioaniche/ck/. Google ScholarGoogle Scholar
  6. Erik Arisholm, Lionel C. Briand, and Audun Føyen. 2004. Dynamic Coupling Measurement for Object-Oriented Software. IEEE Trans. Software Eng. 30, 8 ( 2004 ), 491-506. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. David F. Bacon and Peter F. Sweeney. 1996. Fast Static Analysis of C++ Virtual Function Calls. In Proceedings of the 1996 ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages & Applications (OOPSLA '96), San Jose, California, USA, October 6-10, 1996, Lougie Anderson and James Coplien (Eds.). ACM, 324-341. Google ScholarGoogle Scholar
  8. Judith Barnard. 1998. A new reusability metric for object-oriented software. Software Quality Journal 7, 1 ( 1998 ), 35-50. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Thomas P Bowen, Jonathan V Post, and J Tsai. 1983. Software quality measurement for distributed systems. Techn. rep. RADS-TR/ Rome air development center. USA ( 1983 ). Google ScholarGoogle Scholar
  10. Richard H. Carver, Steve Counsell, and Reuben V. Nithi. 1998. An Evaluation of the MOOD Set of Object-Oriented Software Metrics. IEEE Trans. Software Eng. 24, 6 ( 1998 ), 491-496. Google ScholarGoogle Scholar
  11. Shyam R. Chidamber and Chris F. Kemerer. 1991. Towards a Metrics Suite for Object Oriented Design. SIGPLAN Not. 26, 11 (Nov. 1991 ), 197-211. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. S. R. Chidamber and C. F. Kemerer. 1994. A metrics suite for object oriented design. IEEE Transactions on Software Engineering 20, 6 ( 1994 ), 476-493. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. CoCoin. 2022. GitHub. https://github.com/Nightonke/CoCoin. [Online], [Accessed: 2022-03-02]. Google ScholarGoogle Scholar
  14. CodeMR. 2022. CodeMR. https://www.codemr.co.uk/. [Online], [Accessed: 2022-03-02]. Google ScholarGoogle Scholar
  15. Al Danial. 2022. CLOC: Count Lines Of Code. https://github.com/ AlDanial/cloc. [Online], [Accessed: 2022-03-02]. Google ScholarGoogle Scholar
  16. Devopedia. 2022. "Cohesion vs Coupling.". https://devopedia.org/ cohesion-vs-coupling. [Online], [Accessed: 2022-03-02]. Google ScholarGoogle Scholar
  17. Harpal Dhama. 1995. Quantitative models of cohesion and coupling in software. Journal of Systems and Software 29, 1 ( 1995 ), 65-74. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Harpal S. Dhama. 1995. Quantitative models of cohesion and coupling in software. J. Syst. Softw. 29, 1 ( 1995 ), 65-74. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Eclipse. 2012-2022. Eclipse JGit: Java Implementation of Git. https://www.eclipse.org/jgit. Accessed: 2022-03-03. Google ScholarGoogle Scholar
  20. Eclipse Foundation. 2022. Eclipse JDT Core. https://projects.eclipse. org/projects/eclipse.jdt. [Online], [Accessed: 2022-03-02]. Google ScholarGoogle Scholar
  21. Eclipse Foundation. 2022. JDT Core. https://wiki.eclipse.org/JDT_Core. [Online], [Accessed: 2022-03-02]. Google ScholarGoogle Scholar
  22. InstaMaterial. 2022. GitHub. https://github.com/frogermcs/ InstaMaterial. [Online], [Accessed: 2022-03-02]. Google ScholarGoogle Scholar
  23. Javasymbolsolver. 2022. Javasymbolsolver. https://github.com/ javaparser/javasymbolsolver. [Online], [Accessed: 2022-03-02]. Google ScholarGoogle Scholar
  24. KISS. 2022. GitHub. https://github.com/Neamar/KISS. [Online], [Accessed: 2022-03-02]. Google ScholarGoogle Scholar
  25. Wei Li. 1998. Another metric suite for object-oriented programming. J. Syst. Softw. 44, 2 ( 1998 ), 155-162. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Minimal-Todo. 2022. GitHub. https://github.com/avjinder/MinimalTodo. [Online], [Accessed: 2022-03-02]. Google ScholarGoogle Scholar
  27. MLManager. 2022. GitHub. https://github.com/javiersantos/ MLManager. [Online], [Accessed: 2022-03-02]. Google ScholarGoogle Scholar
  28. MovieGuide. 2022. GitHub. https://github.com/esoxjem/MovieGuide. [Online], [Accessed: 2022-03-02]. Google ScholarGoogle Scholar
  29. Omni-Notes. 2022. GitHub. https://github.com/federicoiosue/OmniNotes. [Online], [Accessed: 2022-03-02]. Google ScholarGoogle Scholar
  30. Terence Parr. 2013. The definitive ANTLR 4 reference. Pragmatic Bookshelf. Google ScholarGoogle Scholar
  31. Terence J. Parr and Russell W. Quong. 1995. ANTLR: A predicated-LL (k) parser generator. Software: Practice and Experience 25, 7 ( 1995 ), 789-810. Google ScholarGoogle Scholar
  32. Renaud Pawlak, Martin Monperrus, Nicolas Petitprez, Carlos Noguera, and Lionel Seinturier. 2015. Spoon: A Library for Implementing Analyses and Transformations of Java Source Code. Software: Practice and Experience 46 ( 2015 ), 1155-1179. Google ScholarGoogle Scholar
  33. Renaud Pawlak, Martin Monperrus, Nicolas Petitprez, Carlos Noguera, and Lionel Seinturier. 2022. Spoon. http://spoon.gforge.inria.fr/. [Online], [Accessed: 2022-03-02]. Google ScholarGoogle Scholar
  34. Pedometer. 2022. GitHub. https://github.com/j4velin/Pedometer. [Online], [Accessed: 2022-03-02]. Google ScholarGoogle Scholar
  35. Roger S Pressman. 2005. Software engineering: a practitioner's approach. Palgrave macmillan. Google ScholarGoogle Scholar
  36. Dan Radigan. 2022. Escaping the black hole of technical debt. https:// www.atlassian.com/agile/software-development/technical-debt. [Online], [Accessed: 2022-03-03]. Google ScholarGoogle Scholar
  37. Soot. 2022. http://www.sable.mcgill.ca/. https://github.com/Sable/soot. [Online], [Accessed: 2022-03-02]. Google ScholarGoogle Scholar
  38. SoundRecorder. 2022. GitHub. https://github.com/dkim0419/ SoundRecorder. [Online], [Accessed: 2022-03-02]. Google ScholarGoogle Scholar
  39. D. Spinellis. 2005. Tool writing: a forgotten art? (software tools). IEEE Software 22, 4 ( 2005 ), 9-11. Google ScholarGoogle Scholar
  40. Vijay Sundaresan, Laurie J. Hendren, Chrislain Razafimahefa, Raja Vallée-Rai, Patrick Lam, Etienne Gagnon, and Charles Godin. 2000. Practical virtual method call resolution for Java. In Proceedings of the 2000 ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages & Applications (OOPSLA 2000 ), Minneapolis, Minnesota, USA, October 15-19, 2000. ACM, 264-280. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. superCleanMaster. 2022. GitHub. https://github.com/joyoyao/ superCleanMaster. [Online], [Accessed: 2022-03-02]. Google ScholarGoogle Scholar
  42. Timber. 2022. GitHub. https://github.com/naman14/Timber. [Online], [Accessed: 2022-03-02]. Google ScholarGoogle Scholar
  43. Saurabh Tiwari and Santosh Singh Rathore. 2018. Coupling and Cohesion Metrics for Object-Oriented Software: A Systematic Mapping Study. In Proceedings of the 11th Innovations in Software Engineering Conference, ISEC 2018, Hyderabad, India, February 09-11, 2018. ACM, 8 : 1-8 : 11. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Federico Tomassetti, N Smith, C Maximilien, and S Kirsch. 2022. JavaParser. https://javaparser.org/. [Online], [Accessed: 2022-03-02]. Google ScholarGoogle Scholar
  45. Adam Tornhill. 2022. CodeMaat. https://github.com/adamtornhill/ code-maat. [Online], [Accessed: 2022-03-02]. Google ScholarGoogle Scholar
  46. Travel-Mate. 2022. GitHub. https://github.com/project-travel-mate/ Travel-Mate. [Online], [Accessed: 2022-03-02]. Google ScholarGoogle Scholar
  47. Raja Vallée-Rai, Phong Co, Etienne Gagnon, Laurie Hendren, Patrick Lam, and Vijay Sundaresan. 2010. Soot: A Java bytecode optimization framework. In CASCON First Decade High Impact Papers. 214-224. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. wally. 2022. GitHub. https://github.com/Musenkishi/wally. [Online], [Accessed: 2022-03-02]. Google ScholarGoogle Scholar
  49. Sherif M. Yacoub, Hany H. Ammar, and Tom Robinson. 1999. Dynamic Metrics for Object Oriented Designs. In 6th IEEE International Software Metrics Symposium (METRICS 1999 ), 4-6 November 1999, Boca Raton, FL, USA. IEEE Computer Society, 50-61. Google ScholarGoogle Scholar

Index Terms

  1. ADA: a tool for visualizing the architectural overview of open-source repositories

    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
      SOAP 2022: Proceedings of the 11th ACM SIGPLAN International Workshop on the State Of the Art in Program Analysis
      June 2022
      50 pages
      ISBN:9781450392747
      DOI:10.1145/3520313

      Copyright © 2022 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: 14 June 2022

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Overall Acceptance Rate11of11submissions,100%

      Upcoming Conference

      PLDI '24
    • Article Metrics

      • Downloads (Last 12 months)26
      • Downloads (Last 6 weeks)5

      Other Metrics

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader