skip to main content
10.1145/1454474.1454485acmconferencesArticle/Chapter ViewAbstractPublication PagesadaConference Proceedingsconference-collections
research-article

Dynamic analysis of Ada programs for comprehension and quality measurement

Published: 26 October 2008 Publication History

Abstract

During maintenance and particularly during corrective and perfective tasks, systems tend to exhibit a weight gain. As a result, their quality tends to degrade. Software comprehension is vital in order to assess system quality. In this paper, we aim at deploying dynamic analysis of Ada programs for obtaining comprehension, and applying measurements to assess their quality. Program instrumentation is performed non-intrusively by AspectAda, an aspect-oriented extension to Ada which we discussed in earlier work. Events which are required for this analysis are captured as execution traces. We have defined a relational database schema to save execution traces, and a set of queries to obtain measures of quality metrics. New Ada-specific metrics are introduced and existing metrics have been adopted from the literature. Automation is also provided as a proof of concept through a prototypical tool which provides information on the run-time behavior of the system, performs measurements and provides visualization of the run-time behavior of the system through a call graph. An open source Ada program is used as a case study to demonstrate our approach.

References

[1]
E. B. Allen and T. M. Khoshgoftaar. Measuring coupling and cohesion: An information-theory approach. In Proceedings of the 6th IEEE International Software Metrics Symposium (METRICS), pages 119--127, Boca Raton, Florida, USA, November 1999.
[2]
Ada Static Analysis Tool. http://www.adastat.com/
[3]
E. Arisholm. Dynamic coupling measures for object-oriented software. In Proceedings of the 8th International Symposium on Software Metrics (METRICS), 2002.
[4]
E. V. Berard. Essays on object-oriented software engineering. Prentice-Hall Inc., Upper Saddle River, NJ, USA, 1st edition, 1993.
[5]
J. M. Bieman and B.-K. Kang. Cohesion and reuse in an object-oriented system. SIGSOFT Software Engineering Notes, 20(SI):259--262, 1995.
[6]
L. C. Briand, J. W. Daly, and J. K. Wust. A unified framework for cohesion measurement in object-oriented systems. In Proceedings of the 4th IEEE International Software Metrics Symposium (METRICS), pages 43--53, 1997.
[7]
L. C. Briand, J. W. Daly, and J. K. Wust. A unified framework for coupling measurement in object-oriented systems. IEEE Transactions on Software Engineering, 25(1):91--121, 1999.
[8]
L. C. Briand, S. Morasca, and V. R. Basili. Measuring and assessing maintainability at the end of high level design. In Proceedings of the 9th International Conference on Software Maintenance (ICSM), pages 88--97, Washington, DC, USA, 1993. IEEE Computer Society.
[9]
L. C. Briand, S. Morasca, and V. R. Basili. Property-based software engineering measurement. IEEE Transactions on Software Engineering, 22(1):68--86, 1996.
[10]
H. S. Chae, Y. R. Kwon, and D. H. Bae. A cohesion measure for object-oriented classes. Software Practice and Experience, 30(12):1405--1431, 2000.
[11]
J. R. Cherniack, H. S. Dhama, and J. F. Fandozzi. Tool for computing cohesion and coupling in Ada programs: DIANA dependent part. In Proceedings of the 12th Ada-Europe International Conference (Ada-Europe), pages 180--196, London, UK, 1993. Springer-Verlag.
[12]
S. R. Chidamber and C. F. Kemerer. A metrics suite for object oriented design. IEEE Transactions on Software Engineering, 20(6):476--493, 1994.
[13]
E. S. Cho, C. J. Kim, S. D. Kim, and S. Y. Rhew. Static and dynamic metrics for effective object clustering. In Proceedings of the 5th Asia Pacific Software Engineering Conference (APSEC), Washington, DC, USA, 1998. IEEE Computer Society.
[14]
M. Deters and R. K. Cytron. Introduction of program instrumentation using aspects. In Proceedings of the OOPSLA Workshop on Advanced Separation of Concerns in Object-Oriented Systems, 2001.
[15]
F. B. e Abreu and M. Goulao. Coupling and cohesion as modularization drivers: Are we being over-persuaded? In Proceedings of the 5th European Conference on Software Maintenance and Reengineering (CSMR), pages 47--57, 2001.
[16]
M. D. Ernst. Static and dynamic analysis: Synergy and duality. In Proceedings of the ICSE Workshop on Dynamic Analysis (WODA), 2003.
[17]
L. Etzkorn and H. Delugach. Towards a semantic metrics suite for object-oriented design. In Proceedings of the Technology of Object-Oriented Languages and Systems (TOOLS), Washington, DC, USA, 2000. IEEE Computer Society.
[18]
R. E. Filman and D. P. Friedman. Aspect-oriented programming is quantification and obliviousness. In Proceedings of the OOPSLA Workshop on Advanced Separation of Concerns in Object-Oriented Systems, 2000.
[19]
M. Fowler, K. Beck, J. Brant, W. Opdyke, and D. Roberts. Refactoring: Improving the design of existing code. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1999.
[20]
A. Foyen, E. Arisholm, and L. C. Briand. Dynamic coupling measurement for object-oriented software. IEEE Transactions on Software Engineering, 30(8):491--506, 2004.
[21]
GDB: The GNU Project Debugger. http://sourceware.org/gdb/, Last Updated in 2007.
[22]
J.-F. Gélinas, M. Badri, and L. Badri. A cohesion measure for aspects. Journal of Object Technology, 5(7):75--95, September-October 2006.
[23]
GNAT GPL. Website https://libre.adacore.com.
[24]
S. L. Graham, P. B. Kessler, and M. K. McKusick. gprof: A call graph execution profiler. In Proceedings of the SIGPLAN Symposium on Compiler Construction, pages 120--126, 1982.
[25]
T. Gschwind and J. Oberleitner. Improving dynamic data analysis with aspect-oriented programming. In Proceedings of the 7th European Conference on Software Maintenance and Reengineering (CSMR), 2003.
[26]
A. Hamou-Lhadj and T. C. Lethbridge. Compression techniques to simplify the analysis of large execution traces. In Proceedings of the 10th International Workshop on Program Comprehension (IWPC), pages 159--168, 2002.
[27]
A. Hamou-Lhadj, T. C. Lethbridge, and L. Fu. Challenges and requirements for an effective trace exploration tool. In Proceedings of the 12th IEEE International Workshop on Program Comprehension (IWPC), Washington, DC, USA, 2004. IEEE Computer Society.
[28]
Y. Hassoun, R. Johnson, and S. Counsell. A dynamic runtime coupling metric for meta-level architectures. In Proceedings of the 8th European Conference on Software Maintenance and Reengineering (CSMR), pages 47--57, 2004.
[29]
Henderson-Seller. Software Metrics. Prentice Hall, U.K., 1996.
[30]
M. Hitz and B. Montazeri. Measuring coupling and cohesion in object-oriented systems. In Proceedings of the International Symposium on Applied Corporate Computing (ISACC), 1995.
[31]
ISO International Organization for Standardization. ISO 8402:1994, Quality management and quality assurance, 1994.
[32]
ISO International Organization for Standardization. ISO/IEC 9126-1:2001(E), Software engineering - Product quality, Part 1: Quality model, 2001.
[33]
G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold. An overview of AspectJ. In Proceedings of the 15th European Conference on Object-Oriented Programming (ECOOP), 2001.
[34]
G. Kiczales, J. Lamping, A. Menhdhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In Proceedings of the 11th European Conference on Object-Oriented Programming (ECOOP), 1997.
[35]
S. Kramer and H. Kaindl. Coupling and cohesion metrics for knowledge-based systems using frames and rules. ACM Transactions on Software Engineering and Methodology, 13(3):332--358, 2004.
[36]
D. B. Lange and Y. Nakamura. Object-oriented program tracing and visualization. IEEE Computer, 30(5):63--70, 1997.
[37]
J. Laski, W. Stanley, and J. Hurst. Dependency analysis of Ada. In Proceedings of the ACM SIGAda International Conference on Ada (SIGAda), pages 263--275, 1998.
[38]
Y. S. Lee and B. S. Liang. Measuring the coupling and cohesion of an object-oriented program based on information flow. In Proceedings of the International Conference on Software Quality (ICSQ), pages 47--57, 1995.
[39]
W. Li and S. Henry. Object-oriented metrics that predict maintainability. Journal of Systems and Software, 23(2):111--122, 1993.
[40]
J. I. Maletic and A. Marcus. Supporting program comprehension using semantic and structural information. In Proceedings of the 23rd International Conference on Software Engineering (ICSE), pages 103--112, 2001.
[41]
A. Marcus and D. Poshyvanyk. The conceptual cohesion of classes. In Proceedings of the 21st IEEE International Conference on Software Maintenance (ICSM), pages 133--142, Washington, DC, USA, 2005. IEEE Computer Society.
[42]
B. Meyer. Object-oriented software construction. Prentice Hall, Upper Saddle River, NJ, USA, 2nd edition, May 1997.
[43]
T. M. Meyers and D. Binkley. Slice-based cohesion metrics and software intervention. In Proceedings of the 11th Working Conference on Reverse Engineering (WCRE), pages 256--265, Washington, DC, USA, 2004. IEEE Computer Society.
[44]
Minitab Software Maintenance Updates. Website http://www.minitab.com/support/maintenance/.
[45]
D. L. Parnas. Software aging. In Proceedings of the 16th International Conference on Software Engineering (ICSE), pages 279--287, 1994.
[46]
S. Patel, W. Chu, and R. Baxter. A measure for composite module cohesion. In Proceedings of the 14th International Conference on Software Engineering (ICSE), pages 38--48, New York, NY, USA, 1992. ACM.
[47]
W. D. Pauw, D. Lorenz, J. Vlissides, and M. Wegman. Execution patterns in object-oriented visualization. In Proceedings of the 4th Conference on Object-Oriented Technologies and Systems (COOTS), pages 219--234. USENIX, 1998.
[48]
K. H. Pedersen and C. Constantinides. AspectAda: Aspect oriented programming for Ada 95. Ada Letters, XXV(4):79--92, 2005.
[49]
D. Poshyvanyk and A. Marcus. The conceptual coupling metrics for object-oriented systems. In Proceedings of the 22nd IEEE International Conference on Software Maintenance (ICSM), pages 469--478, 2006.
[50]
R. S. Pressman. Software Engineering: A Practitioner's Approach. McGraw-Hill, Inc., New York, NY, USA, 2nd edition, 1986.
[51]
W. W. Pritchett. Applying object-oriented metrics to Ada 95. Ada Letters, XVI(5):48--58, 1996.
[52]
W. W. Pritchett. An object-oriented metrics suite for Ada 95. Ada Letters, XXI(4):117--126, 2001.
[53]
A. Raza, G. Vogel, and E. Plödereder. Bauhaus - A tool suite for program analysis and reverse engineering. In Proceedings of the 11th International Conference on Reliable Software Technologies (Ada-Europe), pages 71--82, 2006.
[54]
S. Rugaber. Program comprehension for reverse engineering. In Proceedings of the AAAI Workshop on AI and Automated Program Understanding, 1992.
[55]
J. Rumbaugh, I. Jacobson, and G. Booch. The Unified Modeling Language Reference Manual. Addison-Wesley, 1998.
[56]
W. Stevens, G. Myers, and L. Constantine. Structured design. IBM Systems Journal, 13(2):115--139, 1997.
[57]
A. von Mayrhauser and A. M. Vans. Program comprehension during software maintenance and evolution. IEEE Computer, 28(8):44--55, 1995.
[58]
R. J. Walker, G. C. Murphy, B. N. Freeman-Benson, D. Wright, D. Swanson, and J. Isaak. Visualizing dynamic software system information through high-level models. In Proceedings of the 13th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pages 271--283, 1998.
[59]
J. Wang, Y. Zhou, L. Wen, Y. Chen, H. Lu, and B. Xu. DMC: A more precise cohesion measure for classes. Information and Software Technology, 47(3):167--180, March 2005.
[60]
B. Xu, Z. Chen, and J. Zhao. Measuring cohesion of packages in Ada 95. Ada Letters, XXIV(1):62--67, 2004.
[61]
A. Zeller. Program analysis: A hierarchy. In Proceedings of the ICSE Workshop on Dynamic Analysis (WODA), pages 6--9, 2003.
[62]
J. Zhao. Measuring coupling in aspect-oriented systems. In Proceedings of the 10th IEEE International Software Metrics Symposium (METRICS), 2004.
[63]
J. Zhao and B. Xu. Measuring aspect cohesion. In Proceedings of the 7th International Conference on Fundamental Approaches to Software Engineering (FASE), 2004.
[64]
Y. Zhou, L. Wen, J. Wang, Y. Chen, H. Lu, and B. Xu. DRC: A dependence relationships based cohesion measure for classes. In Proceedings of the 10th Asia-Pacific Software Engineering Conference Software Engineering Conference (ASPEC), Washington, DC, USA, 2003. IEEE Computer Society.
[65]
Y. Zhou, B. Xu, J. Zhao, and H. Yang. ICBMC: An improved cohesion measure for classes. In Proceedings of the 18th International Conference on Software Maintenance (ICSM), 2002.

Cited By

View all
  • (2012)A systematic mapping study on dynamic metrics and software qualityProceedings of the 2012 IEEE International Conference on Software Maintenance (ICSM)10.1109/ICSM.2012.6405289(326-335)Online publication date: 23-Sep-2012

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SIGAda '08: Proceedings of the 2008 ACM annual international conference on SIGAda annual international conference
October 2008
150 pages
ISBN:9781605582740
DOI:10.1145/1454474
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 26 October 2008

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. dynamic program analysis
  2. program comprehension
  3. quality measurement and metrics

Qualifiers

  • Research-article

Conference

SIGAda '08: ACM SIGAda Annual International Conference
October 26 - 30, 2008
OR, Portland, USA

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)0
Reflects downloads up to 30 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2012)A systematic mapping study on dynamic metrics and software qualityProceedings of the 2012 IEEE International Conference on Software Maintenance (ICSM)10.1109/ICSM.2012.6405289(326-335)Online publication date: 23-Sep-2012

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media