Empirical Software Engineering. Empirical Software Engineering with Examples! is not a topic for examination. Classification.

Size: px
Start display at page:

Download "Empirical Software Engineering. Empirical Software Engineering with Examples! is not a topic for examination. Classification."

Transcription

1 Empirical Software Engineering Empirical Software Engineering with Examples is not a topic for examination a sub-domain of software engineering focusing on experiments on software systems devise experiments on software, in collecting data from these experiments, and elaborate laws and theories from this data (wikipedia) "2 Classification Observed TRUE FALSE Software Quality? (Bugs) Predicted precision = TP/(TP + FP) recall = TP/(TP + FN) TRUE TP FP FALSE FN TN "3 "4

2 Some tests... arithmetic mean mean(2, 3, 4) = 3 mean(0, 3, 6) = 3 standard deviation R "5 "6 Predicting for Eclipse Release Files Number of Packages T. Zimmermann, R. Premraj, and A. Zeller Predicting defects for Eclipse Third International Workshop on Predictor Models in Software Engineering (PROMISE) IEEE Computer Society, , "7 "8

3 methods classes FOUT MLOC NBD PAR VG NOF NOM NSF NSM Used Metrics... Number of method calls (FAN OUT) Method Lines of Code Nested block depth Number of parameters McCabe Cyclomatic Complexity Number of fields Number of methods Number of static fields Number of static methods ACD Number of anonymous type declarations NOI Number of interfaces files NOT Number of classes TLOC Total lines of code packages NOCU Number of files FOUT MLOC NBD PAR VG NOF NOM NSF NSM Spearman correlations ACD NOI NOT TLOC (-) (-) NOCU - - 0,514 0,461 "9 "10 Classification of files Release Testing Precision Recall 2 2, Foutse Khomh, Massimiliano Di Penta, Yann-Gaël Guéhéneuc, Giuliano Antoniol An exploratory study of the impact of antipatterns on class change- and fault-proneness. Empirical Software Engineering 17(3): (2012) "11 "12

4 90 ArgoUML Eclipse Mylyn Rhino AntiSingleton List of AntiPatterns... ClassDataShouldBePrivate SpeculativeGenerality % of classes participating in antipatterns Releases Fig. 1 Percentages of classes participating in antipatterns in the releases of the four systems "13 MessageChain RefusedParentBequest Blob ComplexClass SwissArmyKnife LargeClass LongMethod LazyClass LongParameterList SpaghettiCode "14 Research Questions... Research Questions... What is the relation between anti-patterns change- & defect- proneness What is the relation between kinds change- & defect- proneness "15 "16

5 Research Questions... Research Questions... Does the presence relate to the size of these classes What kind of changes participating or not in anti-patterns "17 "18 are highlighted in gray "19 "20

6 "21 "22 Are the clients of flawed classes (also) defect prone? Working is hard... Authors: Radu & Cristina Marinescu IEEE International Working Conference on Source Code Analysis and Manipulation, 2011

7 ...especially when resources are flawed Clients of Flawed Classes vs. Does any correlation exist in Eclipse? Data Class God Class Class Feature Envy Brain Class has design flaws? Class has provider classes with design flaws has defects (pre and post release)

8 Chi-Square Odds Ratio Mann-Whitney flaws / flawed providers vs. defects Non-parametric statistical tests flawed providers correlates with defects Odds Ratio on HAS NO Odds Ratio on HAS NO HAS HAS NO - NO

9 Odds Ratio on HAS NO Odds Ratio on HAS NO HAS 2-3 HAS NO NO Odds Ratio on HAS NO Percent of classes with... NO HAS NO NO The biggest danger is using flawed classes

10 Percent of classes with... NO NO Percent of classes with NO ions onal t p e Exc xcepti ht e g i l h hig Are the Classes that use Exceptions Defect Prone? Author: Cristina Marinescu 12th International Workshop on Principles on Software Evolution 7th ERCIM Workshop on Software Evolution 2011 NO 42 40

11 WE d l u Sho MO E R CA out? b a RE Exceptions & t in s i x e n o i t ela r r o yc n a s e? s e p o i l D Ec Location, Name, Type Class Class

12 Location, Name, Type Throws, Catches Location, Name, Type Throws, Catches Class Class (Pre&Post Release) Chi-Square & Odds Ratio Non-parametric Statistical Tests No Exceptions The Structure of the Contingency Tables.

13 No Exceptions The Structure of the Contingency Tables. No No Exceptions Exceptions The Structure of the Contingency Tables. No p-value? 0.05 p-value < 0.05 Correlation exists

14 No How Much? No No Exceptions < > No Exceptions < > Exceptions > < Exceptions > < Pre-Release Post-Release Eclipse 2 2,1 3 2,4 2,03 1,98 2,98 2,45 1,69? Correlation exists

15 Improper Usages of Exceptions & Does any correlation exist? Improper Usages = Exceptions handled by Superclasses No Improper Usages Improper Usages No The Structure of the NEW Contingency Tables. Pre-Release Post-Release Eclipse 2 2,1 3 2,18 2,55 2,15 2,94 2,33 1,47

16 Improper Usages & Correlation exists Exceptions & Improper Usages & Correlation exists Nachiappan Nagappan, Brendan Murphy, Victor R. Basili The influence of organizational structure on software quality: an empirical case study. International Conference of Software Engineering, 2008 Conway s Law "63 "64

17 Conway s Law organizations that design systems are constrained to produce systems which are copies of the communication structure of these organizations. Figure 1: Example Organization Structure of Company XYZ" "65 "66 Number of Engineers (NOE) Number of Ex-Engineers (NOEE) N engineers (N*(N-1))/2 communication paths knowledge transfer "67 "68

18 Edit Frequency (EF) Depth of Master Ownership (DMO) total number times the source code was edited Figure 1: Example Organization Structure of Company XYZ" level of ownership (> 75%) ABCA (190/250) "69 "70 Percentage of Org Contributing to development (PO) Level of Organizational Code Ownership (OCO) ratio of the number of people reporting at the DMO level owner relative to the Master org size 7/30 Figure 1: Example Organization Structure of Company XYZ" "71 percents of edits from the org that contains the owner 200/250 Figure 1: Example Organization Structure of Company XYZ" "72

19 Overall Organizational Ownership(OOW) Organizational Intersection Factor(OIF) ratio of the percentage of people at the DMO level making edits relative to the total engineers editing 5/32 Figure 1: Example Organization Structure of Company XYZ" "73 Figure 1: Example Organization Structure of Company XYZ" number of different org that that contribute greater than 10% of edits lower value = better "74 Prediction based on Organizational Structure Precision = 86.2% Recall = 84.0% Ralph Peters, Andy Zaidman Evaluating the Lifespan of Code Smells using Software Repository Mining. European Conference on Software Maintenance and Reengineering, 2012 "75 "76

20 Research Questions (RQ) Engineers are aware of code smells, but are not very concerned with their impact, given the low refactoring activity. RQ1 Are some types of code smells refactored more and quicker than other smell types? "77 "78 Research Questions (RQ1) Research Questions (RQ) God Class Feature Envy Data Class Message Chain Long Parameter List Avg 49,2% 40,39% 55,69% 47,04% 49,41% Sd 12,1% 18,08% 20,79% 18,76% 12,81% RQ2 Are relatively more code smells being refactored at an early or later stage of a system s life cycle? "79 "80

21 Research Questions (RQ) Research Questions (RQ) RQ3 Do some developers refactor more code smells than others and to what extend? RQ4 What refactoring rationales for code smells can be identified? "81 "82 Research Questions (RQ4) Cleaning up dead or obsolete code. Dedicated refactoring. Maintenance activities. Venera Arnaoudova, Massimiliano Di Penta, Giuliano Antoniol, Yann-Gaël Guéhéneuc A New Family of Software Anti-Patterns: Linguistic Anti-Patterns. European Conference on Software Maintenance and Reengineering, 2013 "83 "84

22 Linguistic Antipatterns LAs in software systems are recurring poor practices in the naming, documentation, and choice of identifiers in the implementation of an entity, thus possibly impairing program understanding. A. Does more than it says B. Says more than it does C. Does the opposite D. Contains more than it says E. Says more than it contains F. Contains the opposite "85 "86 A. Get - more than an accessor A. Is - returns more than a Boolean "87 "88

23 A. Set - method returns A. Expecting but not getting a single instance "89 "90 B. Not implemented condition B. Validation method does not confirm "91 "92

24 B. Get method does not return B. Not answered question "93 "94 B. Transform method does not return B. Expecting but not getting a collection "95 "96

25 C. Method name and return type are opposite C. Method signature and comment are opposite "97 "98 D. Contains more than it says E. Says more than it contains 1. Says one but contains many Vector _target; 2. Name suggests Boolean but type does not int[] isreached; private static boolean _stats = true; "99 "100

26 F. Contains the opposite 1. Attribute name and type are opposite MAssociationEnd start = null; 2. Attribute signature and comment are opposite "101 "102

Empirical Software Engineering. Empirical Software Engineering with Examples. Classification. Software Quality. precision = TP/(TP + FP)

Empirical Software Engineering. Empirical Software Engineering with Examples. Classification. Software Quality. precision = TP/(TP + FP) Empirical Software Engineering Empirical Software Engineering with Examples a sub-domain of software engineering focusing on experiments on software systems devise experiments on software, in collecting

More information

Cross-project defect prediction. Thomas Zimmermann Microsoft Research

Cross-project defect prediction. Thomas Zimmermann Microsoft Research Cross-project defect prediction Thomas Zimmermann Microsoft Research Upcoming Events ICSE 2010: http://www.sbs.co.za/icse2010/ New Ideas and Emerging Results ACM Student Research Competition (SRC) sponsored

More information

Mining the Relationship between Anti-patterns Dependencies and Fault-Proneness

Mining the Relationship between Anti-patterns Dependencies and Fault-Proneness Mining the Relationship between Anti-patterns Dependencies and Fault-Proneness Fehmi Jaafar, Yann-Gaël Guéhéneuc, Sylvie Hamel and Foutse Khomh PTIDEJ Team, École Polytechnique de Montréal, QC, Canada

More information

Analysing Anti-patterns Static Relationships with Design Patterns

Analysing Anti-patterns Static Relationships with Design Patterns ECEASST Analysing Anti-patterns Static Relationships with Design Patterns Fehmi Jaafar, Yann-Gaël Guéhéneuc, Sylvie Hamel, and Foutse Khomh Fehmi Jaafar School of Computing, Queen s University, Ontario,

More information

Analysing Anti-patterns Static Relationships with Design Patterns

Analysing Anti-patterns Static Relationships with Design Patterns Analysing Anti-patterns Static Relationships with Design Patterns Fehmi Jaafar, Yann-Gaël Guéhéneuc, and Sylvie Hamel PTIDEJ Team, DIRO, Université de Montréal, QC, Canada LBIT Team, DIRO, Université de

More information

SERG. Analyzing the Impact of Antipatterns on Change-Proneness Using Fine-Grained Source Code Changes

SERG. Analyzing the Impact of Antipatterns on Change-Proneness Using Fine-Grained Source Code Changes Delft University of Technology Software Engineering Research Group Technical Report Series Analyzing the Impact of Antipatterns on Change-Proneness Using Fine-Grained Source Code Changes Daniele Romano,

More information

Are the Classes that use Exceptions Defect Prone?

Are the Classes that use Exceptions Defect Prone? Are the Classes that use Exceptions Defect Prone? Cristina Marinescu LOOSE Research Group Politehnica University of Timişoara, Romania cristina.marinescu@cs.upt.ro ABSTRACT Exception hling is a mechanism

More information

Linguistic Antipatterns: What They Are and How Developers Perceive Them

Linguistic Antipatterns: What They Are and How Developers Perceive Them Empirical Software Engineering manuscript No. (will be inserted by the editor) Linguistic Antipatterns: What They Are and How Developers Perceive Them Venera Arnaoudova Massimiliano Di Penta Giuliano Antoniol

More information

A Code Refactoring Dataset and Its Assessment Regarding Software Maintainability

A Code Refactoring Dataset and Its Assessment Regarding Software Maintainability A Code Refactoring Dataset and Its Assessment Regarding Software Maintainability István Kádár, Péter Hegedűs, Rudolf Ferenc and Tibor Gyimóthy University of Szeged, Hungary Email: {ikadar, hpeter, ferenc,

More information

A Study of Bad Smells in Code

A Study of Bad Smells in Code International Journal for Science and Emerging ISSN No. (Online):2250-3641 Technologies with Latest Trends 7(1): 16-20 (2013) ISSN No. (Print): 2277-8136 A Study of Bad Smells in Code Gurpreet Singh* and

More information

Predicting Vulnerable Software Components

Predicting Vulnerable Software Components Predicting Vulnerable Software Components Stephan Neuhaus, et. al. 10/29/2008 Stuart A Jaskowiak, CSC 682 1 What's in the paper? Introduction Scope of this Work Components and Vulnerabilities Imports and

More information

Adams, Bram 21 MapReduce as a General Framework to Support Research in Mining Software Repositories (MSR) Anbalagan, Prasanth

Adams, Bram 21 MapReduce as a General Framework to Support Research in Mining Software Repositories (MSR) Anbalagan, Prasanth MSR 2009 Detailed Author Index [Page 1/11] A Adams, Bram 21 MapReduce as a General Framework to Support Research in Mining Software Repositories (MSR) Anbalagan, Prasanth 171 On Mining Data Across Software

More information

Impact of Dependency Graph in Software Testing

Impact of Dependency Graph in Software Testing Impact of Dependency Graph in Software Testing Pardeep Kaur 1, Er. Rupinder Singh 2 1 Computer Science Department, Chandigarh University, Gharuan, Punjab 2 Assistant Professor, Computer Science Department,

More information

An Empirical Study of the Effect of File Editing Patterns on Software Quality. Feng Zhang, Foutse Khomh, Ying Zou and Ahmed E.

An Empirical Study of the Effect of File Editing Patterns on Software Quality. Feng Zhang, Foutse Khomh, Ying Zou and Ahmed E. An Empirical Study of the Effect of File Editing Patterns on Software Quality Feng Zhang, Foutse Khomh, Ying Zou and Ahmed E. Hassan Do developers follow some file editing patterns? File Editing Concurrent?

More information

SOFTWARE DEFECT PREDICTION USING PARTICIPATION OF NODES IN SOFTWARE COUPLING

SOFTWARE DEFECT PREDICTION USING PARTICIPATION OF NODES IN SOFTWARE COUPLING SOFTWARE DEFECT PREDICTION USING PARTICIPATION OF NODES IN SOFTWARE COUPLING 1 MARYAM SHEKOFTEH, 2 KEYVAN MOHEBBI, 3 JAVAD KAMYABI 1 Department Of Computer Engineering, Sarvestan Branch, Islamic Azad University,

More information

Exploring the Relationship of History Characteristics and Defect Count: An Empirical Study

Exploring the Relationship of History Characteristics and Defect Count: An Empirical Study Exploring the Relationship of History Characteristics and Defect Count: An Empirical Study Timea Illes-Seifert Institute for Computer Science University of Heidelberg Im Neuenheimer Feld 326, D-69120 Heidelberg

More information

Duplication de code: un défi pour l assurance qualité des logiciels?

Duplication de code: un défi pour l assurance qualité des logiciels? Duplication de code: un défi pour l assurance qualité des logiciels? Foutse Khomh S.W.A.T http://swat.polymtl.ca/ 2 JHotDraw 3 Code duplication can be 4 Example of code duplication Duplication to experiment

More information

Empirical Study on Impact of Developer Collaboration on Source Code

Empirical Study on Impact of Developer Collaboration on Source Code Empirical Study on Impact of Developer Collaboration on Source Code Akshay Chopra University of Waterloo Waterloo, Ontario a22chopr@uwaterloo.ca Parul Verma University of Waterloo Waterloo, Ontario p7verma@uwaterloo.ca

More information

Quality of the Source Code Lexicon

Quality of the Source Code Lexicon Quality of the Source Code Lexicon Venera Arnaoudova Mining & Modeling Unstructured Data in Software Challenges for the Future NII Shonan Meeting, March 206 Psychological Complexity meaningless or incorrect

More information

Static Analysis of C++ Projects with CodeSonar

Static Analysis of C++ Projects with CodeSonar Static Analysis of C++ Projects with CodeSonar John Plaice, Senior Scientist, GrammaTech jplaice@grammatech.com 25 July 2017, Meetup C++ de Montréal Abstract Static program analysis consists of the analysis

More information

Automated Approach for Anti-Pattern Detection

Automated Approach for Anti-Pattern Detection Automated Approach for Anti-Pattern Detection Neha Nanda Computer Science and Engineering Lovely Professional University, Phagwara, Punjab, India nehananda50@gmail.com Rohitt Sharma Computer Science and

More information

CODE smells have been defined by Fowler [14] as symptoms

CODE smells have been defined by Fowler [14] as symptoms 462 IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 41, NO. 5, MAY 2015 Mining Version Histories for Detecting Code Smells Fabio Palomba, Student Member, IEEE, Gabriele Bavota, Member, IEEE Computer Society,

More information

Measuring Complexity

Measuring Complexity Measuring Complexity outline why should we measure the complexity of a software system? what might we want to measure? complexity of the source code within a code module between code modules complexity

More information

SNS College of Technology, Coimbatore, India

SNS College of Technology, Coimbatore, India Support Vector Machine: An efficient classifier for Method Level Bug Prediction using Information Gain 1 M.Vaijayanthi and 2 M. Nithya, 1,2 Assistant Professor, Department of Computer Science and Engineering,

More information

SOFTWARE DEFECT PREDICTION USING IMPROVED SUPPORT VECTOR MACHINE CLASSIFIER

SOFTWARE DEFECT PREDICTION USING IMPROVED SUPPORT VECTOR MACHINE CLASSIFIER International Journal of Mechanical Engineering and Technology (IJMET) Volume 7, Issue 5, September October 2016, pp.417 421, Article ID: IJMET_07_05_041 Available online at http://www.iaeme.com/ijmet/issues.asp?jtype=ijmet&vtype=7&itype=5

More information

Software Metrics. Lines of Code

Software Metrics. Lines of Code Software Metrics Naveed Arshad Lines of Code The total number of lines of executable code in the software program or module being measured But lines of code could mean anything e.g. count only executable

More information

On the Impact of Refactoring Operations on Code Quality Metrics

On the Impact of Refactoring Operations on Code Quality Metrics On the Impact of Refactoring Operations on Code Quality Metrics Oscar Chaparro 1, Gabriele Bavota 2, Andrian Marcus 1, Massimiliano Di Penta 2 1 University of Texas at Dallas, Richardson, TX 75080, USA

More information

By choosing to view this document, you agree to all provisions of the copyright laws protecting it.

By choosing to view this document, you agree to all provisions of the copyright laws protecting it. Copyright [2009] IEEE. Reprinted from Testing: Academic & Industrial Conference - Practice and Research Techniques (TAIC-PART 09), Windsor (UK), September 4-6, 2009, pp. 135-143, IEEE Computer Society

More information

AURA: A Hybrid Approach to Identify

AURA: A Hybrid Approach to Identify : A Hybrid to Identify Wei Wu 1, Yann-Gaël Guéhéneuc 1, Giuliano Antoniol 2, and Miryung Kim 3 1 Ptidej Team, DGIGL, École Polytechnique de Montréal, Canada 2 SOCCER Lab, DGIGL, École Polytechnique de

More information

Further Thoughts on Precision

Further Thoughts on Precision Further Thoughts on Precision David Gray, David Bowes, Neil Davey, Yi Sun and Bruce Christianson Abstract Background: There has been much discussion amongst automated software defect prediction researchers

More information

Appendix to The Health of Software Engineering Research

Appendix to The Health of Software Engineering Research Appendix to The Health of Software Engineering Research David Lo School of Information Systems Singapore Management University Singapore davidlo@smu.edu.sg Nachiappan Nagappan and Thomas Zimmermann Research

More information

Managing Open Bug Repositories through Bug Report Prioritization Using SVMs

Managing Open Bug Repositories through Bug Report Prioritization Using SVMs Managing Open Bug Repositories through Bug Report Prioritization Using SVMs Jaweria Kanwal Quaid-i-Azam University, Islamabad kjaweria09@yahoo.com Onaiza Maqbool Quaid-i-Azam University, Islamabad onaiza@qau.edu.pk

More information

Agenda. Tool-Supported Detection of Code Smells in Software Aspectization. Motivation. Mistakes in Software Aspectization. Advice-related mistakes

Agenda. Tool-Supported Detection of Code Smells in Software Aspectization. Motivation. Mistakes in Software Aspectization. Advice-related mistakes Agenda Tool-Supported Detection of Code Smells in Software Aspectization Péricles Alves and Diogo Santana Recurring Mistakes Code Smells ConcernReCS Tool ConcernReCS Extension 1 Motivation AOP is about

More information

Bug or Not? Bug Report Classification using N-Gram IDF

Bug or Not? Bug Report Classification using N-Gram IDF Bug or Not? Bug Report Classification using N-Gram IDF Pannavat Terdchanakul 1, Hideaki Hata 1, Passakorn Phannachitta 2, and Kenichi Matsumoto 1 1 Graduate School of Information Science, Nara Institute

More information

An empirical study of the effect of file editing patterns on software quality

An empirical study of the effect of file editing patterns on software quality JOURNAL OF SOFTWARE: EVOLUTION AND PROCESS Published online 06 August 2014 in Wiley Online Library (wileyonlinelibrary.com)..1659 An empirical study of the effect of file editing patterns on software quality

More information

Design Quality Assessment in Practice

Design Quality Assessment in Practice Design Quality Assessment in Practice my two hats... Radu Marinescu radum@cs.upt.ro Associate Professor since 006 Co-Founder and Head since 003 http://www.intooitus.com/ Co-Founder (008) Assessment with

More information

A Textual-based Technique for Smell Detection

A Textual-based Technique for Smell Detection A Textual-based Technique for Smell Detection Fabio Palomba1, Annibale Panichella2, Andrea De Lucia1, Rocco Oliveto3, Andy Zaidman2 1 University of Salerno, Italy 2 Delft University of Technology, The

More information

IMPACT OF DEPENDENCY GRAPH IN SOFTWARE TESTING

IMPACT OF DEPENDENCY GRAPH IN SOFTWARE TESTING IMPACT OF DEPENDENCY GRAPH IN SOFTWARE TESTING Pardeep kaur 1 and Er. Rupinder Singh 2 1 Research Scholar, Dept. of Computer Science and Engineering, Chandigarh University, Gharuan, India (Email: Pardeepdharni664@gmail.com)

More information

Maintainability and Agile development. Author: Mika Mäntylä

Maintainability and Agile development. Author: Mika Mäntylä Maintainability and Agile development Author: Mika Mäntylä ISO 9126 Software Quality Characteristics Are the required functions available in the software? How easy is it to

More information

@%'#*+#*+1((1&0(1*#"A*!'#",*.(&/6(/&0-*0"+*.%40"(#6*7"81&40(#1"*(1*./331&(*.18(B0&%*9%806(1&#",* H;2*>0"+#+0(%* C""1*C660+%4#61*DEFG* I0J&#%-%*K0$1(0*

@%'#*+#*+1((1&0(1*#A*!'#,*.(&/6(/&0-*0+*.%40(#6*781&40(#1*(1*./331&(*.18(B0&%*9%806(1&#,* H;2*>0+#+0(%* C1*C660+%4#61*DEFG* I0J&#%-%*K0$1(0* !"#$%&'#()*+%,-#*.(/+#*+#*.0-%&"1* 2#30&(#4%"(1*+#*50(%40(#60*%+*7"81&40(#60* 21((1&0(1*+#*9#6%&60*#"*.6#%":%*50(%40(#6;%

More information

A New Family of Software Anti-Patterns: Linguistic Anti-Patterns

A New Family of Software Anti-Patterns: Linguistic Anti-Patterns A New Family of Software Anti-Patterns: Linguistic Anti-Patterns Venera Arnaoudova 1,2, Massimiliano Di Penta 3, Giuliano Antoniol 2, Yann-Gaël Guéhéneuc 1 1 Ptidej Team, DGIGL, École Polytechnique de

More information

A Detailed Examination of the Correlation Between Imports and Failure-Proneness of Software Components

A Detailed Examination of the Correlation Between Imports and Failure-Proneness of Software Components A Detailed Examination of the Correlation Between Imports and Failure-Proneness of Software Components Ekwa Duala-Ekoko and Martin P. Robillard School of Computer Science, McGill University Montréal, Québec,

More information

The Impact of Code Smells on Software Bugs: a Systematic Literature Review

The Impact of Code Smells on Software Bugs: a Systematic Literature Review Article The Impact of Code Smells on Software Bugs: a Systematic Literature Review Aloisio Sampaio Cairo 1, Glauco de Figueiredo Carneiro 1, *, Miguel Pessoa Monteiro 2 1 Programa de Pós-Graduação em Sistemas

More information

FOR0383 Software Quality Assurance

FOR0383 Software Quality Assurance This method seems much, much bigger than all the other methods. FOR0383 Software Quality Assurance Lecture 15 Code metrics "You cannot control what you cannot measure." Tom DeMarco 2/11/2009 Dr Andy Brooks

More information

When does a Refactoring Induce Bugs? An Empirical Study

When does a Refactoring Induce Bugs? An Empirical Study When does a Refactoring Induce Bugs? An Empirical Study Gabriele Bavota 1, Bernardino De Carluccio 1, Andrea De Lucia 1 Massimiliano Di Penta 2, Rocco Oliveto 3, Orazio Strollo 1 1 University of Salerno,

More information

Effect of Principle Component Analysis and Support Vector Machine in Software Fault Prediction

Effect of Principle Component Analysis and Support Vector Machine in Software Fault Prediction International Journal of Computer Trends and Technology (IJCTT) volume 7 number 3 Jan 2014 Effect of Principle Component Analysis and Support Vector Machine in Software Fault Prediction A. Shanthini 1,

More information

SERG. Using Source Code Metrics to Predict Change-Prone Java Interfaces

SERG. Using Source Code Metrics to Predict Change-Prone Java Interfaces Delft University of Technology Software Engineering Research Group Technical Report Series Using Source Code Metrics to Predict Change-Prone Java Interfaces Daniele Romano and Martin Pinzger Report TUD-SERG-2011-017

More information

Software Design & Evolution. Lecture 04. You cannot control what you cannot measure. Metrics & Problem Detection. Michele Lanza

Software Design & Evolution. Lecture 04. You cannot control what you cannot measure. Metrics & Problem Detection. Michele Lanza Software Design & Evolution Lecture 04 Michele Lanza Metrics & Problem Detection Metrics? Don t trust them Michele Lanza & Radu Marinescu Object-Oriented Metrics in Practice Using Software Metrics to Characterize,

More information

Lightweight Detection of Android-specific Code Smells: the adoctor Project

Lightweight Detection of Android-specific Code Smells: the adoctor Project Lightweight Detection of Android-specific Code Smells: the adoctor Project Fabio Palomba 1, Dario Di Nucci 1, Annibale Panichella 2, Andy Zaidman 3, Andrea De Lucia 1 1 University of Salerno 2 University

More information

Recognizing Antipatterns and Analyzing their Effects on Software Maintainability

Recognizing Antipatterns and Analyzing their Effects on Software Maintainability Recognizing Antipatterns and Analyzing their Effects on Software Maintainability Dénes Bán and Rudolf Ferenc University of Szeged, Department of Software Engineering Árpád tér 2. H-6720 Szeged, Hungary

More information

Research Article Can Faulty Modules Be Predicted by Warning Messages of Static Code Analyzer?

Research Article Can Faulty Modules Be Predicted by Warning Messages of Static Code Analyzer? Hindawi Publishing Corporation Advances in Software Engineering Volume 2012, Article ID 924923, 8 pages doi:10.1155/2012/924923 Research Article Can Faulty Modules Be Predicted by Warning Messages of Static

More information

Chapter 10. Testing and Quality Assurance

Chapter 10. Testing and Quality Assurance Chapter 10 Testing and Quality Assurance Different styles of doing code review Human Reviewer Code Inspection with continuous integration infrastructure Pinger s testing set up Testing Related topics 1.

More information

Classifying Bug Reports to Bugs and Other Requests Using Topic Modeling

Classifying Bug Reports to Bugs and Other Requests Using Topic Modeling Classifying Bug Reports to Bugs and Other Requests Using Topic Modeling Natthakul Pingclasai Department of Computer Engineering Kasetsart University Bangkok, Thailand Email: b5310547207@ku.ac.th Hideaki

More information

Predicting Defects for Eclipse [Revised for Dataset Version 2.0a]

Predicting Defects for Eclipse [Revised for Dataset Version 2.0a] Predicting Defects for Eclipse [Revised for Dataset Version 2.0a] Thomas Zimmermann Saarland University tz@acm.org Rahul Premraj Saarland University premraj@cs.uni-sb.de Andreas Zeller Saarland University

More information

Lessons Learned Breaking the TDD Rules. Nat Pryce github.com/npryce

Lessons Learned Breaking the TDD Rules. Nat Pryce github.com/npryce Lessons Learned Breaking the TDD Rules Nat Pryce http://www.natpryce.com info@natpryce.com @natpryce github.com/npryce You are not allowed to write any production code unless it is to make a failing unit

More information

Can Complexity, Coupling, and Cohesion Metrics be Used as Early Indicators of Vulnerabilities?

Can Complexity, Coupling, and Cohesion Metrics be Used as Early Indicators of Vulnerabilities? Can Complexity, Coupling, and Cohesion Metrics be Used as Early Indicators of Vulnerabilities? Istehad Chowdhury Dept. of Electrical & Computer Eng. Queen s University, Kingston Ontario, Canada, K7L3N6

More information

Using Concept Analysis to Detect Co-Change Patterns

Using Concept Analysis to Detect Co-Change Patterns Using Concept Analysis to Detect Co-Change Patterns In Proceedings of International Workshop on Principles of Software Evolution (IWPSE 2007) Tudor Gîrba Software Composition Group University of Bern Radu

More information

UML Specification and Correction of Object-Oriented Anti-patterns

UML Specification and Correction of Object-Oriented Anti-patterns UML Specification and Correction of Object-Oriented Anti-patterns Maria Teresa Llano and Rob Pooley School of Mathematical and Computer Sciences Heriot-Watt University Edinburgh, United Kingdom {mtl4,rjpooley}@hwacuk

More information

Classification Part 4

Classification Part 4 Classification Part 4 Dr. Sanjay Ranka Professor Computer and Information Science and Engineering University of Florida, Gainesville Model Evaluation Metrics for Performance Evaluation How to evaluate

More information

Lecture 21. Regression Testing Path Spectra. EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim

Lecture 21. Regression Testing Path Spectra. EE 382V Spring 2009 Software Evolution - Instructor Miryung Kim Lecture 21 Regression Testing Path Spectra Today s Agenda (1) Regression Test Selection Path Spectra Presentation by David (skeptic) Presentation by Sidd (advocate) Presentation by Srinivas (skeptic) Today

More information

Package ScottKnottESD

Package ScottKnottESD Type Package Package ScottKnottESD May 8, 2018 Title The Scott-Knott Effect Size Difference (ESD) Test Version 2.0.3 Date 2018-05-08 Author Chakkrit Tantithamthavorn Maintainer Chakkrit Tantithamthavorn

More information

Using FCA to Suggest Refactorings to Correct Design Defects

Using FCA to Suggest Refactorings to Correct Design Defects Using FCA to Suggest Refactorings to Correct Design Defects Naouel Moha, Jihene Rezgui, Yann-Gaël Guéhéneuc, Petko Valtchev, and Ghizlane El Boussaidi GEODES, Department of Informatics and Operations Research

More information

Object Oriented Design Metrics for Predicting Fault Proneness using Naïve Bayes and Random Forest

Object Oriented Design Metrics for Predicting Fault Proneness using Naïve Bayes and Random Forest Proc. of Int. Conf. on Advances in Communication, Network, and Computing, CNC Object Oriented Design Metrics for Predicting Fault Proneness using Naïve Bayes and Random Forest Vaishnavi.J 1, Anousouya

More information

Identifying Utility Functions using Random Forests

Identifying Utility Functions using Random Forests Identifying Utility Functions using Random Forests Tamara Mendes, Marco Tulio Valente, Andre Hora and Alexander Serebrenik UFMG, Belo Horizonte, Brazil Eindhoven University of Technology, Eindhoven, The

More information

A Taxonomy and a First Study of Design Pattern Defects

A Taxonomy and a First Study of Design Pattern Defects A Taxonomy and a First Study of Design Pattern Defects Naouel Moha, Duc-loc Huynh, and Yann-Gaël Guéhéneuc Ptidej Team GEODES - Group of Open and Distributed Systems, Experimental Software Engineering

More information

Refactoring Framework for Instance Code Smell Detection

Refactoring Framework for Instance Code Smell Detection International Journal of Advanced Research in Computer Engineering & Technology (IJARCET) Refactoring Framework for Instance Code Smell Detection D. Raj Kumar, G.M. Chanakya Abstract Code and design smells

More information

Mining Software Evolution to Predict Refactoring

Mining Software Evolution to Predict Refactoring Mining Software Evolution to Predict Refactoring Jacek Ratzinger, Thomas Sigmund Vienna University of Technology Institute of Information Systems A-1040 Vienna, Austria {ratzinger,sigmund}@infosys.tuwien.ac.at

More information

Rule-Based System for Flaw Specification and Detection in Object-Oriented Programs

Rule-Based System for Flaw Specification and Detection in Object-Oriented Programs Rule-Based System for Flaw Specification and Detection in Object-Oriented Programs El Hachemi Alikacem 1 and Houari A. Sahraoui 2 1 Computer Research Institute of Montreal 405, Ogilvy Avenue, Suite 100,

More information

Business Club. Decision Trees

Business Club. Decision Trees Business Club Decision Trees Business Club Analytics Team December 2017 Index 1. Motivation- A Case Study 2. The Trees a. What is a decision tree b. Representation 3. Regression v/s Classification 4. Building

More information

CISC 4631 Data Mining

CISC 4631 Data Mining CISC 4631 Data Mining Lecture 05: Overfitting Evaluation: accuracy, precision, recall, ROC Theses slides are based on the slides by Tan, Steinbach and Kumar (textbook authors) Eamonn Koegh (UC Riverside)

More information

Analysis of Various Software Metrics Used To Detect Bad Smells

Analysis of Various Software Metrics Used To Detect Bad Smells The International Journal Of Engineering And Science (IJES) Volume 5 Issue 6 Pages PP -14-20 2016 ISSN (e): 2319 1813 ISSN (p): 2319 1805 Analysis of Various Software Metrics Used To Detect Bad Smells

More information

Software Metrics and Problem Detection

Software Metrics and Problem Detection Software Metrics and Problem Detection Oscar Nierstrasz Yuriy Tymchuk Selected material by Mircea Lungu Roadmap > Software Metrics Size / Complexity Metrics Quality Metrics > Metric-Based Problem Detection

More information

EasyChair Preprint. A Study on the Use of IDE Features for Debugging

EasyChair Preprint. A Study on the Use of IDE Features for Debugging EasyChair Preprint 111 A Study on the Use of IDE Features for Debugging Afsoon Afzal and Claire Le Goues EasyChair preprints are intended for rapid dissemination of research results and are integrated

More information

Identifying Changed Source Code Lines from Version Repositories

Identifying Changed Source Code Lines from Version Repositories Identifying Changed Source Code Lines from Version Repositories Gerardo Canfora, Luigi Cerulo, Massimiliano Di Penta RCOST Research Centre on Software Technology Department of Engineering - University

More information

Towards Just-in-time Suggestions for Log Changes

Towards Just-in-time Suggestions for Log Changes Noname manuscript No. (will be inserted by the editor) Towards Just-in-time Suggestions for Log Changes Heng Li Weiyi Shang Ying Zou Ahmed E. Hassan Received: date / Accepted: date Abstract Software developers

More information

An Empirical Study of Architectural Decay in Open-Source Software

An Empirical Study of Architectural Decay in Open-Source Software An Empirical Study of Architectural Decay in Open-Source Software Duc M. Le Annual Research Review 4/2017 Center for Systems and Software Engineering Motivation Explicitly manifest as Issues Problems Implicitly

More information

HangMan PBL - Refactoring Use yourupdated (best) version of Hangman(with a dictionary of words).

HangMan PBL - Refactoring Use yourupdated (best) version of Hangman(with a dictionary of words). Use yourupdated (best) version of Hangman(with a dictionary of words). 1. Detect potential problems: a. Metric values out of bounds? (Your code should pass this?) b. Poor object oriented design that gives

More information

Data Mining Classification: Alternative Techniques. Imbalanced Class Problem

Data Mining Classification: Alternative Techniques. Imbalanced Class Problem Data Mining Classification: Alternative Techniques Imbalanced Class Problem Introduction to Data Mining, 2 nd Edition by Tan, Steinbach, Karpatne, Kumar Class Imbalance Problem Lots of classification problems

More information

An Object-Oriented Metrics Suite for Ada 95

An Object-Oriented Metrics Suite for Ada 95 An Object-Oriented Metrics Suite for Ada 95 William W. Pritchett IV DCS Corporation 133 Braddock Place Alexandria, VA 22314 73.683.843 x726 wpritche@dcscorp.com 1. ABSTRACT Ada 95 added object-oriented

More information

Investigating Automatic Static Analysis Results to Identify Quality Problems: an Inductive Study

Investigating Automatic Static Analysis Results to Identify Quality Problems: an Inductive Study Investigating Automatic Static Analysis Results to Identify Quality Problems: an Inductive Study Antonio Vetro 1,2, Nico Zazworka 2, Forrest Shull 2, Carolyn Seaman 2,3, Michele A. Shaw 2 1 Dept. of Control

More information

An experience report on using code smells detection tools

An experience report on using code smells detection tools Università degli Studi di Milano Bicocca DISCo Dipartimento di Informatica, Sistemistica e Comunicazione Francesca Arcelli Fontana, Elia Mariani Andrea Morniroli, Raul Sormani, Alberto Tonello RefTest

More information

An Empirical Study of the Effect of File Editing Patterns on Software Quality

An Empirical Study of the Effect of File Editing Patterns on Software Quality An Empirical Study of the Effect of File Editing Patterns on Software Quality Feng Zhang, Foutse Khomh, Ying Zou, and Ahmed E. Hassan School of Computing, Queen s University, Canada {feng, ahmed}@cs.queensu.ca

More information

A Heuristic-based Approach to Identify Concepts in Execution Traces

A Heuristic-based Approach to Identify Concepts in Execution Traces A Heuristic-based Approach to Identify Concepts in Execution Traces Fatemeh Asadi * Massimiliano Di Penta ** Giuliano Antoniol * Yann-Gaël Guéhéneuc ** * Ecole Polytechnique de Montréal, Canada ** Dept.

More information

Lecture 26: Testing. Software Engineering ITCS 3155 Fall Dr. Jamie Payton

Lecture 26: Testing. Software Engineering ITCS 3155 Fall Dr. Jamie Payton Lecture 26: Testing Software Engineering ITCS 3155 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte Dec. 9, 2008 Verification vs validation Verification:

More information

A Systematic Review of Bad Smells Metrics. Luiz Paulo Coelho Ferreira

A Systematic Review of Bad Smells Metrics. Luiz Paulo Coelho Ferreira A Systematic Review of Bad Smells Metrics Luiz Paulo Coelho Ferreira Motivation One of the main goals in Software Engineering is to transform software development in a process predictable and controlled.

More information

Mixing SNA and Classical Software Metrics for Sub-Projects Analysis.

Mixing SNA and Classical Software Metrics for Sub-Projects Analysis. Mixing SNA and Classical Software Metrics for Sub-Projects Analysis. ROBERTO TONELLI University of Cagliari DIEE P.zza D Armi, 91 Cagliari ITALY roberto.tonelli@dsf.unica.it GIUSEPPE DESTEFANIS University

More information

Empirical Study on Impact of Developer Collaboration on Source Code

Empirical Study on Impact of Developer Collaboration on Source Code Empirical Study on Impact of Developer Collaboration on Source Code Akshay Chopra, Sahil Puri and Parul Verma 03 April 2018 Outline Introduction Research Questions Methodology Data Characteristics Analysis

More information

Mining Frequent Bug-Fix Code Changes

Mining Frequent Bug-Fix Code Changes Mining Frequent Bug-Fix Code Changes Haidar Osman, Mircea Lungu, Oscar Nierstrasz Software Composition Group University of Bern Bern, Switzerland {osman, lungu, oscar@iam.unibe.ch Abstract Detecting bugs

More information

Research on Applications of Data Mining in Electronic Commerce. Xiuping YANG 1, a

Research on Applications of Data Mining in Electronic Commerce. Xiuping YANG 1, a International Conference on Education Technology, Management and Humanities Science (ETMHS 2015) Research on Applications of Data Mining in Electronic Commerce Xiuping YANG 1, a 1 Computer Science Department,

More information

Restructuring. What is restructuring? Tudor Gîrba Reengineering life cycle. What? forward engineering. reverse engineering

Restructuring. What is restructuring? Tudor Gîrba   Reengineering life cycle. What? forward engineering. reverse engineering Restructuring Tudor Gîrba www.tudorgirba.com Reengineering life cycle Reengineering... is the examination and alteration of a subject system to reconstitute it in a new form and the subsequent implementation

More information

0-1 Programming Model-Based Method for Planning Code Review using Bug Fix History

0-1 Programming Model-Based Method for Planning Code Review using Bug Fix History 0-1 Programming Model-Based Method for Planning Code Review using Bug Fix History Hirohisa Aman Center for Information Technology Ehime University Matsuyama, Japan 790 8577 Email: aman@ehime-u.ac.jp Abstract

More information

Fault-Proneness Estimation and Java Migration: A Preliminary Case Study

Fault-Proneness Estimation and Java Migration: A Preliminary Case Study Fault-Proneness Estimation and Java Migration: A Preliminary Case Study Mirco Bianco, Daniel Kaneider, Alberto Sillitti, and Giancarlo Succi Center for Applied Software Engineering, Free University of

More information

Measuring Web Service Interfaces

Measuring Web Service Interfaces Measuring Web Service Interfaces Harry M. Sneed ANECON GmbH, Vienna Harry.Sneed@t-online.de Abstract The following short paper describes a tool supported method for measuring web service interfaces. The

More information

Software Metrics. Kristian Sandahl

Software Metrics. Kristian Sandahl Software Metrics Kristian Sandahl 2 Maintenance Requirements Validate Requirements, Verify Specification Acceptance Test (Release testing) System Design (Architecture, High-level Design) Verify System

More information

Predictive Analysis: Evaluation and Experimentation. Heejun Kim

Predictive Analysis: Evaluation and Experimentation. Heejun Kim Predictive Analysis: Evaluation and Experimentation Heejun Kim June 19, 2018 Evaluation and Experimentation Evaluation Metrics Cross-Validation Significance Tests Evaluation Predictive analysis: training

More information

Refactoring and Rearchitecturing

Refactoring and Rearchitecturing Refactoring and Rearchitecturing Overview Introduction Refactoring vs reachitecting Exploring the situation Legacy code Code written by others Code already written Not supported code Code without automated

More information

A Study on Low Complexity Models to Predict Flaws in the Linux Source Code

A Study on Low Complexity Models to Predict Flaws in the Linux Source Code A Study on Low Complexity Models to Predict Flaws in the Linux Source Code Lucas Kanashiro, Athos Ribeiro FLOSS Competence Center University of São Paulo São Paulo, Brazil {lkd,athoscr}@ime.usp.br David

More information

MACHINE LEARNING BASED METHODOLOGY FOR TESTING OBJECT ORIENTED APPLICATIONS

MACHINE LEARNING BASED METHODOLOGY FOR TESTING OBJECT ORIENTED APPLICATIONS MACHINE LEARNING BASED METHODOLOGY FOR TESTING OBJECT ORIENTED APPLICATIONS N. Kannadhasan and B. Uma Maheswari Department of Master of Computer Applications St. Joseph s College of Engineering, Chennai,

More information

Sociotechnical Information From Software Repositories

Sociotechnical Information From Software Repositories Sociotechnical Information From Software Repositories Marco Aurélio Gerosa UNIVERSITY OF SÃO PAULO, BRAZIL UFU November/ Repositories of repositories 250K projects 93K projects 1 million users 11.3 million

More information

A Case Study on the Similarity Between Source Code and Bug Reports Vocabularies

A Case Study on the Similarity Between Source Code and Bug Reports Vocabularies A Case Study on the Similarity Between Source Code and Bug Reports Vocabularies Diego Cavalcanti 1, Dalton Guerrero 1, Jorge Figueiredo 1 1 Software Practices Laboratory (SPLab) Federal University of Campina

More information