1 / 17

Do Crosscutting concerns cause defects?

Marc Eaddy , Thomas Zimmermann, Kaitlin Sherwood, Vibhav Garg , Gail Murphy, Nachiappan Nagappan , Alfred Aho IEEE Transactions on Software Engineering July-Aug. 2008. Do Crosscutting concerns cause defects?. Reviewed By : Paul Varcholik University of Central Florida

gyan
Télécharger la présentation

Do Crosscutting concerns cause defects?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Marc Eaddy, Thomas Zimmermann, Kaitlin Sherwood, VibhavGarg, Gail Murphy, NachiappanNagappan, Alfred Aho IEEE Transactions on Software Engineering July-Aug. 2008 Do Crosscutting concerns cause defects? Reviewed By: Paul Varcholik University of Central Florida pvarchol@ist.ucf.edu EEL 6883 – Software Engineering II Spring 2009

  2. What is Crosscutting? • Implementation, of a concern, that is scattered across the program • A concern is any consideration that can impact the implementation of a program. • Features from a feature list • Requirements • Design patterns and design elements for a UML design document • Low-level programming concerns • Language • Coding Style • Algorithms

  3. Research Question • How much does the amount that a concern is crosscutting affect the number of defects in a program? • Hypothesis The more scattered a concern’s implementation is, the more defects it will have, regardless of the implementation size. • Examined through three extensive case studies

  4. Why Might Crosscutting Concerns Cause Defects? • A crosscutting concern is: • Harder to implement and modify • Multiple – possibly unrelated – locations in the code have to be found and updated simultaneously • Harder to understand • Developers must mentally untangle the code

  5. Why Might Crosscutting Concerns Cause Defects? • Crosscutting first emerges when the developer creates – perhaps without realizing it – a concern implementation plan. • Maintainers may proceed without a full understanding of the scattered nature of the implementation.

  6. Prior Work • Several empirical studies • Evidence that crosscutting concerns degrade code quality because they negatively impact internal quality metrics • Program size • Coupling • Separation of concerns (modularization)

  7. Additional Terminology • A concern is scattered if it is related to multiple target elements. • A concern is tangled if both it and at least one other concern are related to the same target element.

  8. Model • Concern – an item from a program’s non-executable specification • Program Elements • Classes • Fields • Methods • Defect – a software bug

  9. Concern Metrics

  10. Methodology • Reverse Engineer the concern-code mapping (subjective) • Mine thebug-code mapping • Infer the bug-concern mapping

  11. Case Studies • Mylyn-Bugzilla • Eclipse plug-in • Rhino • JavaScipt/ECMAScript interpreter and compiler • iBATIS • Object-Relational mapping

  12. Spearman Correlation Coefficients Range: -1.0 (a perfect negative correlation) to 1.0 (a perfect positive correlation)

  13. Conclusion • All three studies showed a moderate-to-strong correlation between the degree of scattering and the number of defects. Concern scattering is correlated with defects. • But does it cause defects? Three criteria for causality: • Cause must precede the effect • A correlation must exist • The correlation must not be spurious

  14. Strengths • Novel (appears to be first empirical study to examine crosscutting-defect correlation) • Well written • Solid statistical analysis • Technically sound methodology • Simple, but important, hypothesis

  15. Weaknesses • Small study size (3 projects) • Human analyst for estimating concern-code mapping • Questionable techniques for identifying concerns(requirements) • Some misstatements in the paper • Do these results generalize? (e.g. across languages)

  16. Final Thoughts • Study needs to be replicated • Can defects be reduced by reducing crosscutting? • Why does crosscutting occur? • Programming technology • Developer aptitude • Inherent complexity of the concern

  17. Do Crosscutting Concerns Cause Defects? Marc Eaddy, Thomas Zimmermann, Kaitlin Sherwood, VibhavGarg, Gail Murphy, NachiappanNagappan, Alfred Aho IEEE Transactions on Software Engineering July-Aug. 2008 Reviewed By: Paul Varcholik University of Central Florida pvarchol@ist.ucf.edu EEL 6883 – Software Engineering II Spring 2009 Questions?

More Related