Skip to main content
Log in

Component Dependency in Object-Oriented Software

  • Regular Paper
  • Published:
Journal of Computer Science and Technology Aims and scope Submit manuscript

Abstract

Component dependency is an important software measure. It is directly related to software understandability, maintainability, and reusability. Two important parameters in describing component dependency are the type of coupling between two components and the type of the dependent component. Depending upon the different types of coupling and the type of the dependent components, there can be different effects on component maintenance and component reuse. In this paper, we divide dependent components into three types. We then classify various component dependencies and analyze their effects on maintenance and reuse. Based on the classification, we present a dependency metric and validate it on 11 open-source Java components. Our study shows that a strong correlation exists between the measurement of the dependency of the component and the effort to reuse the component. This indicates that the classification of component dependency and the suggested metric could be further used to represent other external software quality factors.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Caldiera G, Basili V R. Identifying and qualifying reusable software components. IEEE Computer, 1991, 24(2): 61–70.

    Google Scholar 

  2. Basili V R, Briand L C, Melo W L. A validation of object-oriented design metrics as quality indicators. IEEE Trans. Software Engineering, 1996, 22(10): 751–761.

    Article  Google Scholar 

  3. Briand L C, Morasca S, Basili V R. Defining and validating measures for object-based high level design. IEEE Trans. Software Engineering, 1999, 25(5): 722–743.

    Article  Google Scholar 

  4. Briand L, Wuest J, Lounis H. Using coupling measurement for impact analysis in object-oriented systems. In Proc. 19th IEEE Conf. Software Maintenance, Oxford, UK, 1999, pp.475–482.

  5. EL Emam K, Melo W, Machado J C. The prediction of faulty classes using object-oriented design metrics. Journal of Systems and Software, 2001, 56(1): 63–75.

    Article  Google Scholar 

  6. Harrison R, Counsell S, Nithi R V. Experimental assessment of the effect of inheritance on the maintainability of object-oriented systems. Journal of Systems and Software, 2000, 52(2/3): 173–179.

    Article  Google Scholar 

  7. Price M W, Demurjian S A. Analyzing and measuring reusability in object-oriented design. In Proc. 12th ACM SIGPLAN Conf. Object-Oriented Programming, Systems, Languages, and Applications, Atlanta, Georgia, 1997, pp.22–33.

  8. Biggerstaff T J, Perlis A J. Software Reusability: Concepts and Models. New York: ACM Press, NY, 1989.

    MATH  Google Scholar 

  9. Briand L, Morasca S, Basili V R. Defining and validating high-level design metrics. Computer Science Technical Report Series, Vol. CS-TR-3301, University of Maryland at College Park, College Park, MD, 1994.

  10. Card D N, Glass R L. Measuring Software Design Quality. Upper Saddle River: Prentice-Hall, NJ, 1990.

    Google Scholar 

  11. Dandashi F. Software engineering: Theory, application and practice: A method for assessing the reusability of object-oriented code using a validated set of automated measurements. In Proc. the 17th ACM Symposium on Applied Computing, Madrid, Spain, 2002, pp.997–1003.

  12. Berns G M. Assessing software maintainability. Communications of the ACM, 1984, 27(1): 14–23.

    Article  Google Scholar 

  13. Gibson V R, Senn J A. System structure and software maintenance performance. Communications of the ACM, 1989, 32(3): 347–358.

    Article  Google Scholar 

  14. Banker R D, Datar S M, Kemerer C F, Zweig, D. Software complexity and maintenance costs. Communications of the ACM, 1993, 36(11): 81–94.

    Article  Google Scholar 

  15. Stevens W P, Myers G J, Constantine L L. Structured design. IBM Systems Journal, 1974, 13(2): 115–139.

    Article  Google Scholar 

  16. Page-Jones M. The Practical Guide to Structured Systems Design, New York: Yourdon Press, 1980.

    Google Scholar 

  17. Kafura D G, Henry S M. Software quality metrics based on interconnectivity. Journal of Systems and Software, 1981, 2(2): 121–131.

    Article  Google Scholar 

  18. Selby R W, Basili V R. Analyzing error-prone system structure. IEEE Trans. Software Engineering, 1991, 17(2): 141–152.

    Article  Google Scholar 

  19. Offutt J, Harrold M J, Kolte P. A software metric system for module coupling. Journal of System and Software, 1993, 20(3): 295–308.

    Article  Google Scholar 

  20. Eder J, Kappel G, Schrefl M. Coupling and cohesion in object-oriented systems. Technical Report, University of Klagenfurt, 1994.

  21. Briand L C, Daly J W, Wust J K. A unified framework for coupling measurement in object-oriented systems. IEEE Trans. Software Engineering, 1999, 25(1): 91–121.

    Article  Google Scholar 

  22. Offutt J, Abdurazik A, Schach S R. Coupling-based maintenance metrics for object-oriented software. Submitted for publication.

  23. Schach S R, Jin B, Wright D R et al. Quality impacts of clandestine common coupling. Software Quality Journal, 2003, 11(3): 211–218.

    Article  Google Scholar 

  24. Meyer B. Applying design by contract. IEEE Computer, 1992, 25(10): 40–51.

    Google Scholar 

  25. Spooner D. The Impact of Inheritance on Security in Object-Oriented Database Systems. Database Security, II: Status and Prospects, Landwehr C (ed.), North-Holland, 1989.

  26. Hassoun Y, Johnson R, Counsell S. A dynamic runtime coupling metric for meta-level architectures. In Proc. 8th Euromicro Working Conf. Software Maintenance and Reengineering, 2004, pp.339–346.

  27. Bruegge B, Dutoit A H. Object-Oriented Software Engineering Using UML, Patterns, and Java. Upper Saddle River: Pearson Prentice Hall, NJ, 2004.

    Google Scholar 

  28. Yu L. Understanding component co-evolution with a study on Linux. Empirical Software Engineering, 2007, 12(2): 123–141.

    Article  Google Scholar 

  29. Gamma E, Helm R, Johnson R et al. Design Patterns: Elements of Reusable Object-Oriented Software. Reading: Addison-Wesley, MA, 1994.

    Google Scholar 

  30. Johnson R, Foote B. Designing reusable classes. Journal of Object-Oriented Programming, 1988, 1(2): 22–35.

    Google Scholar 

  31. The Apache Jakarta Project. 2006. http://jakarta.apache.org/.

  32. Martin R C. Design principles and design patterns. http://www.objectmentor.com/resources/articles/Principles_and_Patterns.PDF, 2000.

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Li-Guo Yu.

Electronic supplementary material

Rights and permissions

Reprints and permissions

About this article

Cite this article

Yu, LG., Ramaswamy, S. Component Dependency in Object-Oriented Software. J Comput Sci Technol 22, 379–386 (2007). https://doi.org/10.1007/s11390-007-9058-y

Download citation

  • Received:

  • Revised:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11390-007-9058-y

Keywords

Navigation