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.
- ADA. 2022. ADA-Example-Repository. https://github.com/MRHMisu/ ADA-Example-Repository. [Online], [Accessed: 2022-03-10]. Google Scholar
- ADA. 2022. ADA-Wiki. https://github.com/alexandar1000/ADA/wiki. [Online], [Accessed: 2022-03-10]. Google Scholar
- AmazeFileManager. 2022. GitHub. https://github.com/TeamAmaze/ AmazeFileManager. [Online], [Accessed: 2022-03-02]. Google Scholar
- AnExplorer. 2022. GitHub. https://github.com/1hakr/AnExplorer. [Online], [Accessed: 2022-03-02]. Google Scholar
- Maurício Aniche. 2015. Java code metrics calculator (CK). Available in https://github.com/mauricioaniche/ck/. Google Scholar
- 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 ScholarDigital Library
- 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 Scholar
- Judith Barnard. 1998. A new reusability metric for object-oriented software. Software Quality Journal 7, 1 ( 1998 ), 35-50. Google ScholarDigital Library
- 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 Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- CoCoin. 2022. GitHub. https://github.com/Nightonke/CoCoin. [Online], [Accessed: 2022-03-02]. Google Scholar
- CodeMR. 2022. CodeMR. https://www.codemr.co.uk/. [Online], [Accessed: 2022-03-02]. Google Scholar
- Al Danial. 2022. CLOC: Count Lines Of Code. https://github.com/ AlDanial/cloc. [Online], [Accessed: 2022-03-02]. Google Scholar
- Devopedia. 2022. "Cohesion vs Coupling.". https://devopedia.org/ cohesion-vs-coupling. [Online], [Accessed: 2022-03-02]. Google Scholar
- Harpal Dhama. 1995. Quantitative models of cohesion and coupling in software. Journal of Systems and Software 29, 1 ( 1995 ), 65-74. Google ScholarDigital Library
- Harpal S. Dhama. 1995. Quantitative models of cohesion and coupling in software. J. Syst. Softw. 29, 1 ( 1995 ), 65-74. Google ScholarDigital Library
- Eclipse. 2012-2022. Eclipse JGit: Java Implementation of Git. https://www.eclipse.org/jgit. Accessed: 2022-03-03. Google Scholar
- Eclipse Foundation. 2022. Eclipse JDT Core. https://projects.eclipse. org/projects/eclipse.jdt. [Online], [Accessed: 2022-03-02]. Google Scholar
- Eclipse Foundation. 2022. JDT Core. https://wiki.eclipse.org/JDT_Core. [Online], [Accessed: 2022-03-02]. Google Scholar
- InstaMaterial. 2022. GitHub. https://github.com/frogermcs/ InstaMaterial. [Online], [Accessed: 2022-03-02]. Google Scholar
- Javasymbolsolver. 2022. Javasymbolsolver. https://github.com/ javaparser/javasymbolsolver. [Online], [Accessed: 2022-03-02]. Google Scholar
- KISS. 2022. GitHub. https://github.com/Neamar/KISS. [Online], [Accessed: 2022-03-02]. Google Scholar
- Wei Li. 1998. Another metric suite for object-oriented programming. J. Syst. Softw. 44, 2 ( 1998 ), 155-162. Google ScholarDigital Library
- Minimal-Todo. 2022. GitHub. https://github.com/avjinder/MinimalTodo. [Online], [Accessed: 2022-03-02]. Google Scholar
- MLManager. 2022. GitHub. https://github.com/javiersantos/ MLManager. [Online], [Accessed: 2022-03-02]. Google Scholar
- MovieGuide. 2022. GitHub. https://github.com/esoxjem/MovieGuide. [Online], [Accessed: 2022-03-02]. Google Scholar
- Omni-Notes. 2022. GitHub. https://github.com/federicoiosue/OmniNotes. [Online], [Accessed: 2022-03-02]. Google Scholar
- Terence Parr. 2013. The definitive ANTLR 4 reference. Pragmatic Bookshelf. Google Scholar
- 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 Scholar
- 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 Scholar
- Renaud Pawlak, Martin Monperrus, Nicolas Petitprez, Carlos Noguera, and Lionel Seinturier. 2022. Spoon. http://spoon.gforge.inria.fr/. [Online], [Accessed: 2022-03-02]. Google Scholar
- Pedometer. 2022. GitHub. https://github.com/j4velin/Pedometer. [Online], [Accessed: 2022-03-02]. Google Scholar
- Roger S Pressman. 2005. Software engineering: a practitioner's approach. Palgrave macmillan. Google Scholar
- 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 Scholar
- Soot. 2022. http://www.sable.mcgill.ca/. https://github.com/Sable/soot. [Online], [Accessed: 2022-03-02]. Google Scholar
- SoundRecorder. 2022. GitHub. https://github.com/dkim0419/ SoundRecorder. [Online], [Accessed: 2022-03-02]. Google Scholar
- D. Spinellis. 2005. Tool writing: a forgotten art? (software tools). IEEE Software 22, 4 ( 2005 ), 9-11. Google Scholar
- 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 ScholarDigital Library
- superCleanMaster. 2022. GitHub. https://github.com/joyoyao/ superCleanMaster. [Online], [Accessed: 2022-03-02]. Google Scholar
- Timber. 2022. GitHub. https://github.com/naman14/Timber. [Online], [Accessed: 2022-03-02]. Google Scholar
- 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 ScholarDigital Library
- Federico Tomassetti, N Smith, C Maximilien, and S Kirsch. 2022. JavaParser. https://javaparser.org/. [Online], [Accessed: 2022-03-02]. Google Scholar
- Adam Tornhill. 2022. CodeMaat. https://github.com/adamtornhill/ code-maat. [Online], [Accessed: 2022-03-02]. Google Scholar
- Travel-Mate. 2022. GitHub. https://github.com/project-travel-mate/ Travel-Mate. [Online], [Accessed: 2022-03-02]. Google Scholar
- 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 ScholarDigital Library
- wally. 2022. GitHub. https://github.com/Musenkishi/wally. [Online], [Accessed: 2022-03-02]. Google Scholar
- 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 Scholar
Index Terms
- ADA: a tool for visualizing the architectural overview of open-source repositories
Recommendations
A refactoring tool for Ada 95
SIGAda '04: Proceedings of the 2004 annual ACM SIGAda international conference on Ada: The engineering of correct and reliable software for real-time & distributed systems using Ada and related technologiesRefactoring is a technique for restructuring code to improve its design. A tool for automatically applying refactoring transformations to Ada 95 programs is described. The tool is based on a language-neutral static-analysis toolset named CodeSurfer, and ...
Scalable and systematic detection of buggy inconsistencies in source code
OOPSLA '10Software developers often duplicate source code to replicate functionality. This practice can hinder the maintenance of a software project: bugs may arise when two identical code segments are edited inconsistently. This paper presents DejaVu, a highly ...
Revisiting reopened bugs in open source software systems
AbstractReopened bugs can degrade the overall quality of a software system since they require unnecessary rework by developers. Moreover, reopened bugs also lead to a loss of trust in the end-users regarding the quality of the software. Thus, predicting ...
Comments