Skip to main content

The Impact of Pair Programming and Test-Driven Development on Package Dependencies in Object-Oriented Design — An Experiment

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 4034))

Abstract

Background: Test-driven development (TDD) and pair programming are software development practices popularized by eXtreme Programming methodology. The aim of the practices is to improve software quality.

Objective: Provide an empirical evidence of the impact of both practices on package dependencies playing a role of package level design quality indicators.

Method: An experiment with a hundred and eighty eight MSc students from Wroclaw University of Technology, who developed finance-accounting system in different ways (CS — classic solo, TS — TDD solo, CP — classic pairs, TP — TDD pairs).

Results: It appeared that package level design quality indicators (namely package dependencies in an object-oriented design) were not significantly affected by development method.

Limitations: Generalization of the results is limited due to the fact that MSc students participated in the study.

Conclusions: Previous research revealed that using test-driven development instead of classic (test-last) testing approach had statistically significant positive impact on some class level software quality indicators (namely CBO and RFC metrics) in case of solo programmers as well as pairs. Combined results suggest that the positive impact of test-driven development on software quality may be limited to class level.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Beck, K.: Test Driven Development: By Example. Addison-Wesley, Reading (2002)

    Google Scholar 

  2. Williams, L., Kessler, R.: Pair Programming Illuminated. Addison-Wesley, Reading (2002)

    Google Scholar 

  3. Beck, K.: Extreme Programming Explained: Embrace Change, 2nd edn. Addison-Wesley, Reading (2004)

    Google Scholar 

  4. Nosek, J.T.: The case for collaborative programming. Communications of the ACM 41(3), 105–108 (1998)

    Article  Google Scholar 

  5. Williams, L., Kessler, R.R., Cunningham, W., Jeffries, R.: Strengthening the case for pair programming. IEEE Software 17(4), 19–25 (2000)

    Article  Google Scholar 

  6. Williams, L.: The Collaborative Software Process. PhD thesis, University of Utah (2000)

    Google Scholar 

  7. Nawrocki, J.R., Wojciechowski, A.: Experimental evaluation of pair programming. In: ESCOM 2001: European Software Control and Metrics, pp. 269–276 (2001)

    Google Scholar 

  8. Nawrocki, J.R., Jasiński, M., Olek, L., Lange, B.: Pair Programming vs. Side-by-Side Programming. In: Richardson, I., Abrahamsson, P., Messnarz, R. (eds.) EuroSPI 2005. LNCS, vol. 3792, pp. 28–38. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  9. Williams, L., Maximilien, E.M., Vouk, M.: Test-Driven Development as a Defect-Reduction Practice. In: ISSRE 2003: Proceedings of the 14th International Symposium on Software Reliability Engineering, Washington, DC, USA, pp. 34–48. IEEE Computer Society, Los Alamitos (2003)

    Chapter  Google Scholar 

  10. Maximilien, E.M., Williams, L.A.: Assessing Test-Driven Development at IBM. In: ICSE 2003: Proceedings of the 25th International Conference on Software Engineering, pp. 564–569. IEEE Computer Society, Los Alamitos (2003)

    Google Scholar 

  11. George, B., Williams, L.A.: An Initial Investigation of Test Driven Development in Industry. In: SAC 2003: Proceedings of the 2003 ACM Symposium on Applied Computing, pp. 1135–1139. ACM, New York (2003)

    Google Scholar 

  12. George, B., Williams, L.A.: A structured experiment of test-driven development. Information and Software Technology 46(5), 337–342 (2004)

    Article  Google Scholar 

  13. Madeyski, L.: Preliminary Analysis of the Effects of Pair Programming and Test-Driven Development on the External Code Quality. In: Zieliński, K., Szmuc, T. (eds.) Software Engineering: Evolution and Emerging Technologies. Frontiers in Artificial Intelligence and Applications, vol. 130, pp. 113–123. IOS Press, Amsterdam (2005)

    Google Scholar 

  14. Müller, M.M., Hagner, O.: Experiment about test-first programming. IEE Proceedings - Software 149(5), 131–136 (2002)

    Article  Google Scholar 

  15. Müller, M.M.: Are Reviews an Alternative to Pair Programming? In: EASE 2003: Conference on Empirical Assessment In Software Engineering (2003)

    Google Scholar 

  16. Müller, M.M.: Are Reviews an Alternative to Pair Programming? Empirical Software Engineering 9(4), 335–351 (2004)

    Article  Google Scholar 

  17. Janzen, D.S.: Software Architecture Improvement through Test-Driven Development. In: OOPSLA 2005: Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pp. 222–223. ACM Press, New York (2005)

    Chapter  Google Scholar 

  18. Kaufmann, R., Janzen, D.: Implications of Test-Driven Development: A Pilot Study. In: OOPSLA 2003: Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pp. 298–299. ACM Press, New York (2003)

    Chapter  Google Scholar 

  19. Madeyski, L.: An empirical analysis of the impact of pair programming and test-driven development on CK design complexity metrics. Technical Report PRE I31/05/P-004, Institute of Applied Informatics, Wroclaw University of Technology (2005)

    Google Scholar 

  20. Chidamber, S.R., Kemerer, C.F.: A Metrics Suite for Object Oriented Design. IEEE Transactions on Software Engineering 20(6), 476–493 (1994)

    Article  Google Scholar 

  21. Hulkko, H., Abrahamsson, P.: A Multiple Case Study on the Impact of Pair Programming on Product Quality. In: ICSE 2005: Proceedings of the 27th International Conference on Software Engineering, pp. 495–504. ACM Press, New York (2005)

    Chapter  Google Scholar 

  22. Object Mentor, Inc.: Test Driven Development (2005), http://www.objectmentor.com/writeUps/TestDrivenDevelopment

  23. Wikipedia, the free encyclopedia: Test-driven development (2005), http://en.wikipedia.org/wiki/Test_driven_development

  24. Wikipedia, the free encyclopedia: Pair programming (2005), http://en.wikipedia.org/wiki/Pair_programming

  25. Martin, R.C.: OO Design Quality Metrics, An Analysis of Dependencies (1994)

    Google Scholar 

  26. Martin, R.C.: Agile Software Development, Principles, Patterns, and Practices. Prentice-Hall, Englewood Cliffs (2004)

    Google Scholar 

  27. Wroclaw University of Technology, e-Informatyka and Tigris developers: aopmetrics project (2005), http://aopmetrics.tigris.org/

  28. Briand, L.C., Wüst, J., Ikonomovski, S.V., Lounis, H.: Investigating quality factors in object-oriented designs: an industrial case study. In: ICSE 1999: Proceedings of the 21st International Conference on Software Engineering, pp. 345–354. IEEE Computer Society Press, Los Alamitos (1999)

    Chapter  Google Scholar 

  29. Emam, K.E., Melo, W.L., Machado, J.C.: The Prediction of Faulty Classes Using Object-Oriented Design Metrics. Journal of Systems and Software 56(1), 63–75 (2001)

    Article  Google Scholar 

  30. Wohlin, C., Runeson, P., Höst, M., Ohlsson, M.C., Regnell, B., Wesslén, A.: Experimentation in Software Engineering: An Introduction. Kluwer Academic Publishers, Norwell (2000)

    MATH  Google Scholar 

  31. Williams, L.A., Kessler, R.R.: All I really need to know about pair programming I learned in kindergarten. Commun. ACM 43(5), 108–114 (2000)

    Article  Google Scholar 

  32. Erdogmus, H., Morisio, M., Torchiano, M.: On the Effectiveness of the Test-First Approach to Programming. IEEE Transactions on Software Engineering 31(3), 226–237 (2005)

    Article  Google Scholar 

  33. Shadish, W.R., Cook, T.D., Campbell, D.T.: Experimental and Quasi-Experimental Designs for Generalized Causal Inference. Houghton Mifflin (2002)

    Google Scholar 

  34. Kitchenham, B., Pfleeger, S.L., Pickard, L., Jones, P., Hoaglin, D.C., Emam, K.E., Rosenberg, J.: Preliminary Guidelines for Empirical Research in Software Engineering. IEEE Transactions on Software Engineering 28(8), 721–734 (2002)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Madeyski, L. (2006). The Impact of Pair Programming and Test-Driven Development on Package Dependencies in Object-Oriented Design — An Experiment. In: Münch, J., Vierimaa, M. (eds) Product-Focused Software Process Improvement. PROFES 2006. Lecture Notes in Computer Science, vol 4034. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11767718_24

Download citation

  • DOI: https://doi.org/10.1007/11767718_24

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-34682-1

  • Online ISBN: 978-3-540-34683-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics