Reviewed By: Paul Varcholik University of Central Florida EEL 6883 – Software Engineering II Spring 2009 Marc Eaddy, Thomas Zimmermann,

Slides:



Advertisements
Similar presentations
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
Advertisements

Object-Oriented Software Development CS 3331 Fall 2009.
ASTA Aspect Software Testing Assistant Juha Gustafsson, Juha Taina, Jukka Viljamaa University of Helsinki.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development.
Computing Department On the Impact of Aspectual Decompositions on Design Stability: An Empirical Study Phil Greenwood 1 Co-authors:
Learning Objectives 1 Copyright © 2002 South-Western/Thomson Learning Data Analysis: Bivariate Correlation and Regression CHAPTER sixteen.
1 Predicting Bugs From History Software Evolution Chapter 4: Predicting Bugs from History T. Zimmermann, N. Nagappan, A Zeller.
Correlation Chapter 9.
What causes bugs? Joshua Sunshine. Bug taxonomy Bug components: – Fault/Defect – Error – Failure Bug categories – Post/pre release – Process stage – Hazard.
C82MCP Diploma Statistics School of Psychology University of Nottingham 1 Designing Experiments In designing experiments we: Manipulate the independent.
Writing Good Software Engineering Research Papers A Paper by Mary Shaw In Proceedings of the 25th International Conference on Software Engineering (ICSE),
Social Research Methods
Software maintenance Managing the processes of system change.
Chapter 9 – Software Evolution and Maintenance
Deriving AO Software Architectures using the AO-ADL Tool Suite Luis Fernández, Lidia Fuentes, Mónica Pinto, Juan A. Valenzuela Universidad de Málaga
© 2011 Pearson Prentice Hall, Salkind. Introducing Inferential Statistics.
Correlation and Correlational Research Slides Prepared by Alison L. O’Malley Passer Chapter 5.
Does Distributed Development Affect Software Quality???? An Empirical Case Study of Windows Vista Christian Bird, Premkumar Devanbu, Harald Gall, Brendan.
Cmpe 589 Spring Software Quality Metrics Product  product attributes –Size, complexity, design features, performance, quality level Process  Used.
Generalization through a series of replicated experiments on maintainability Erik Arisholm.
“Enhancing Reuse with Information Hiding” ITT Proceedings of the Workshop on Reusability in Programming, 1983 Reprinted in Software Reusability, Volume.
Correlation.
Learning Objective Chapter 14 Correlation and Regression Analysis CHAPTER fourteen Correlation and Regression Analysis Copyright © 2000 by John Wiley &
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Chapter 6 : Software Metrics
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
Reviewed By: Paul Varcholik University of Central Florida EEL 6883 – Software Engineering II Spring 2009 Wojciech James Dzidek, Erik.
By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development 1.
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
On the Modularity Assessment of Aspect- Oriented Multi-Agent Systems Product Lines: a Quantitative Study Camila Nunes
Software Quality Metrics
Examining Relationships in Quantitative Research
AOP-1 Aspect Oriented Programming. AOP-2 Aspects of AOP and Related Tools Limitation of OO Separation of Concerns Aspect Oriented programming AspectJ.
©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 1 Chapter 21 Software Evolution.
Regression MBA/510 Week 5. Objectives Describe the use of correlation in making business decisions Apply linear regression and correlation analysis. Interpret.
1 An Aspect-Oriented Implementation Method Sérgio Soares CIn – UFPE Orientador: Paulo Borba.
An Automatic Software Quality Measurement System.
© Copyright McGraw-Hill Correlation and Regression CHAPTER 10.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution 1.
Lecture 10: Correlation and Regression Model.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Using Social Network Analysis Methods for the Prediction of Faulty Components Gholamreza Safi.
Chapter 8: Aspect Oriented Programming Omar Meqdadi SE 3860 Lecture 8 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
MSE Portfolio Presentation 1 Doug Smith November 13, 2008
Estimating “Size” of Software There are many ways to estimate the volume or size of software. ( understanding requirements is key to this activity ) –We.
Experimentation in Computer Science (Part 2). Experimentation in Software Engineering --- Outline  Empirical Strategies  Measurement  Experiment Process.
CHAPTER OVERVIEW Say Hello to Inferential Statistics The Idea of Statistical Significance Significance Versus Meaningfulness Meta-analysis.
Criteria for selection of a data collection instrument. 1.Practicality of the instrument: -Concerns its cost and appropriateness for the study population.
Correlation They go together like salt and pepper… like oil and vinegar… like bread and butter… etc.
1 Modularity Analysis of Use Case Implementations Fernanda d’Amorim Advisor: Paulo Borba.
Week 6: Software Design HNDIT Software Engineering Software Design Learning Outcomes  Understand the activities involved in the Design process.
Thesis Proposal Defense 12/13/06 Marc Eaddy. 12/13/2006Thesis Proposal2 Motivation Modularity is unnecessarily limited by the presence of crosscutting.
Presented by Lu Xiao Drexel University Quantifying Architectural Debt.
Bivariate Association. Introduction This chapter is about measures of association This chapter is about measures of association These are designed to.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Realizing quality improvement through test driven development: Results and experiences of four industrial teams. by Nachiappan Nagappan, E Mchael Maximillien,
Chapter 8 Introducing Inferential Statistics.
by C.A. Conley and L. Sproull
Correlation & Regression
Applications of Data Mining in Software Engineering
Object Oriented Programming & Mathematics
Correlation and Regression
Chapter 9 – Software Evolution and Maintenance
Structuring Adaptive Applications using AspectJ and AOM
Scatter Graphs Spearman’s Rank correlation coefficient
CORRELATION & REGRESSION compiled by Dr Kunal Pathak
Presentation transcript:

Reviewed By: Paul Varcholik University of Central Florida EEL 6883 – Software Engineering II Spring 2009 Marc Eaddy, Thomas Zimmermann, Kaitlin Sherwood, Vibhav Garg, Gail Murphy, Nachiappan Nagappan, Alfred Aho IEEE Transactions on Software Engineering July-Aug. 2008

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

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

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

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.

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)

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.

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

Concern Metrics Bug CountNumber of unique bugs associated with the concern. Program Element Contribution (CONT) Lines of code in the program element associated with the concern. Lines of Concern Code (LOCC) Total number of LOC that contribute to the implementation of the concern. Concern Diffusion over Components (CDC) Number of classes that contribute to the implementation of a concern and other classes and aspects with access them. Concern Diffusion over Operations (CDO) Number of methods which contribute to a concern’s implementation plus the number of other methods and advice accessing them. Degree of Scattering across Classes (DOSC) Degree to which the concern code is distributed across classes (0 to 1). 0 – all code is in one class 1 – codes is equally divided among all classes Degree of Scattering across Methods (DOSM) Degree to which the concern code is distributed across methods (0 to 1).

Methodology 1. Reverse Engineer the concern-code mapping (subjective) 2. Mine the bug-code mapping 3. Infer the bug-concern mapping

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

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

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: 1. Cause must precede the effect 2. A correlation must exist 3. The correlation must not be spurious

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

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)

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

Marc Eaddy, Thomas Zimmermann, Kaitlin Sherwood, Vibhav Garg, Gail Murphy, Nachiappan Nagappan, Alfred Aho IEEE Transactions on Software Engineering July-Aug Reviewed By: Paul Varcholik University of Central Florida EEL 6883 – Software Engineering II Spring 2009