Change and Fault Proneness in an Object-Oriented Software System

Size: px
Start display at page:

Download "Change and Fault Proneness in an Object-Oriented Software System"

Transcription

1 Change and Fault Proneness in an Object-Oriented Software System Aditya Joshi, Sagar Patil, Omkar Shelke and Aniket Purandare Guided by Prof. Vaishali Nandedkar University of Pune Department of Information Technology, PVPIT Bavdhan Abstract Object-Oriented software development is a complex task that requires significant efforts from potentially thousands of developers to produce a fault free product. Dormant faults may result in inefficient software particularly in large scale systems. Since modern codebases are millions of lines long, it is difficult to go through each module to determine potential and existing errors. If developers know which classes are more prone to faults, it will be easier for them to debug them. In our proposed system, we use OOP metrics to predict change and fault proneness in an OOP based system. Keywords: change proneness, fault proneness I. INTRODUCTION Early stage detection of fault and change prone classes influences developer productivity non trivially. In our system, we examine both the change and fault proneness of a class. Change proneness of a class is defined as the probability of a class to undergo a change in its source code in its next release. We can estimate this by the extent of changes in previous releases. It has also been observed empirically that there is a positive corelation between object oriented metrics and change proneness. Along with concrete classes, we build a system that predicts the change proneness of interfaces. Interfaces, unlike classes, have a lower likelihood of changing as given software evolves. Fault proneness is defined as the probability that there will be a fault in one or more modules of a class. We use a supervised machine learning based approach to predict fault proneness. Random forest is an effective ensemble based algorithm that has proved to be an excellent method for classification and regression problems. We apply the same to predict fault proneness of a class. Since software modules and their dependencies can be represented as a directed graph, we represent our modules as nodes and a directed edge from node i to j indicates that node i is dependent on node j. We pre-process this graph and find strongly connected components. Every node in this graph is in a distinct connected component. Modules in the same connected components are highly dependent on Aditya Joshi: 1adityajoshi@gmail.com Sagar Patil: sagarvp 1@rediffmail.com Omkar Shelke: om shelke@yahoo.co.in Aniket Purandare: purandareaniket@gmail.com Fig. 1. Overall system overview each other, and hence changes or faults might propogate from one module in a component to another. Developers can also package highly dependent components together and abstract it away, thus making packages loosely coupled and following principles of an ideal object oriented system. II. PROPOSED SYSTEM The system we describe has three main components, one that finds the change proneness, another that finds fault proneness and the last one that finds strongly connected components in a software graph. Further, the change proneness module consists of two sub modules, one that analyses history based change proneness, and the other that evaluates source code based metrics. We have also developed a sub module that works exclusively to predict changes in interfaces. In the fault proneness module, we use Random Forests to predict faulty modules. This algorithm falls under the category of supervised machine learning, and requires two phases of processing. First, the input is a set of vectors, called the training data. After this phase, the software automatically classifies input files as fault prone or not fault fault prone. Finally, we process the software graph and find the strongly connected components using the Kosaraju Sharir algorithm. A. Change proneness In this section, we describe the two techniques used to calculate the probability of the change proneness of an input 650

2 Algorithm 1 History Based Change Proneness 1: procedure HISTORY BASED 2: counter 0 3: n number of files in revision log 4: i 0 (index of revision files) 5: ɛ numerical threshold 6: loop: 7: if i < n then 8: if LCS(i, i + 1) > ɛ then 9: counter counter : goto loop. 11: close; 12: i i + 1. return counter. n Fig. 2. History based change proneness class. The third technique is used to calculate the change proneness of an interface. 1) History based: For an input class, we extract the data of past releases which can be obtained from the release log or a version control system. For every consecutive release, we examine if changes have been made. We consider a random variable X that takes on a value of 1 if there are non trivial changes from release t i to t i+1. We determine that a change has occured by using a variant of the (LCS) longest common subsequence algorithm, which is a common algorithm to find out how similar two strings are. We do this for all consecutive releases, and then determine the probability of changes in the next release as simply P h (i) = Number of changes Number of releases where h indicates that the probability is based on the history log. The algorithm to determine whether non trivial changes have occured from release t i to t i+1 is described below. Let there be n releases for a particular class. Let arr be the array that contains the locations of the different releases. 2) Source code Based: Source code based changes are based on two types of changes, changes that are caused due the class itself, and changes that are propogated to the concerned class due to its dependencies with other classes. We extract OOP metrics of a class using a tool called antlr, which compiles the java source code and extracts variables, methods etc in accordance with a custom context free grammar for java. We denote the change proneness of a class i as P s (i) where the subscript s indicates that the probability is based on the source code. In our system, P s (i) depends on a number of OOP metrics such as Weighted Methods per class, Coupling between Objects (CBO), number of variables, number of methods, and Response for a class (RFC). Weighted methods per class (WMC) is defined as the sum of the cyclomatic complexities of all the methods in a class. Coupling between objects (CBO) includes efferent coupling, which is the number of classes the given class depends upon, and afferent coupling, which is the number of classes that depend upon the given class. The Response for Class (RFC) metric is the total number of methods that can potentially be executed in response to a message received by an object of a class. The final change proneness based on source code is based on the following formula: P s (i) = 1 e λxit In the formula above, λ is a suitable constant that is empirically observed in the past data. t indicates the amount of time units before the next release in which every time unit can potentially alter the class. For simplicity, we consider t = 1, that is, we consider the probability for change proneness of a class i in the next release. Here, x i is a linear combination of all the metrics given above with a certain weight. For instance, if the given metrics of a class are m 1, m 2,... m n and the corresponding weights are w 1, w 2,... w n, then the linear combination for the class i is given by 651

3 Algorithm 2 Source code Based Change Proneness 1: procedure SOURCE BASED 2: files file array from the package 3: λ Suitable constant 4: t 1 (to calculuate change proness of next release) 5: for file i in files do 6: m 1 CBO 7: m 2 RFC 8: m 3 WMC 9: w 1 Weight (Importance) of CBO 10: w 2 Weight (Importance) of RFC 11: w 3 Weight (Importance) of WMC 12: x i m 1.w 1 + m 2.w 2 + m 3.w 3 13: P s (i) 1 e λxit B. Fault proneness Fig. 3. Source code based change proneness x i = m 1.w 1 + m 2.w m n.w n = n m j.w j j=1 Finally, to calculate the total change proness of a class i, we take an average of the change proneness obtained by the history based and source based approach, which is given by 3) Interface: P final (i) = P s(i) + P h (i) 2 We use metrics such as CBO (Coupling Between Objects), LCOM (Lack of Cohesion Of Methods), NOC (Number Of Children), WMC (Weighted Methods per Class) to predict the change proneness of interfaces. Along with these object oriented metrics, we use certain external cohesion metrics for interfaces like IUC (Interface usage cohesion). After extracting these metrics, we use the same formula and algorithm described above to find the change proneness of the given interface. 1) Random Forest: Random forests are an ensemble learning method for classification (and regression) that operate by constructing a multitude of decision trees at training time and outputting the class that is the mode of the classes output by individual trees. A decision tree is a commonly used machine learning technique to classify data. However, with a single decision tree, there is a significant variance from the true probability. Hence, we use multiple decision trees and average the result. This is a powerful cutting edge modern machine learning technique. In our system, we classify classes as either fault prone or non fault prone based on a five component vector. The output is the probability of a class to be fault prone. The components in our system are the same as described for change proneness, namely, WMC, RFC, CBO, number of variables and number of methods. At each node, we have to make a binary decision. If the concerned component of the vector is lesser than the threshold, we go left, else we go right. The algorithm to build a random forest is described below: The entropy function finds out which attribute we should split the data by and this is selected using Shannon s Entropy formula. The attribute that provides that maximum gain in entropy is selected and data is split accordingly. After building n trees, for every class that we want to classify, we simply traverse all the trees sequentially, and find the average probability that the class if fault prone. C. Strongly Connected Components In our internal representation of classes, a class was represented as a node. We refer to classes as nodes in our discussion. A directed edge from node i to node j indicates that node i was dependent on node j. We said that a node i depends on node j if an object of node j 652

4 Algorithm 3 Fault proneness - Random forest training 1: procedure BUILD TREE(NODE, VECTORS) 2: vectors current array of vectors 3: n current node 4: attributes remaining attributes 5: if leaf node reached then 6: for vector i in vectors do 7: if i is fault prone then 8: n.pos n.pos + 1 9: if i is not fault prone then 10: n.neg n.neg : threshold attribute with max shannon entropy 12: less array whose attribute is less than threshold 13: more array whose attribute is more than threshold 14: for vector i in vectors do 15: if i.attr < threshold then 16: less i (add to the less array) 17: if i.attr threshold then 18: more i (add to the more array) Build Tree(n.left, less) Build Tree(n.right, more) 19: procedure BUILD FOREST 20: forest array of trees 21: vectors current array of vectors (training data) 22: for i to n do forest[i] = Build Tree(i, vectors) was called in node i. In graph theory, node i is said to be strongly connected to node j if there is a directed path from node i to node j and from node j to node i. This property is transitive, that is, if i is strongly connected to j and j is strongly connected to k, then i is strongly connected to k. Thus, every graph can be split to such strongly connected components. In our representation, we split our nodes (classes) into these strongly connected components using a linear time algorithm proposed by Kosaraju Sharir. Nodes belonging to a particular strongly connected component are highly dependent on each other, and software developers can pay attention to all the components in a subset of a node that is supposed to be faulty as bugs in this node can get propogated to other nodes in the same subset. In the figure 4, classes a,b and e are in one component, classes f and g are in one component and classes c,d and h are in the last component. Algorithm 4 Fault proneness - Random forest classification 1: procedure CLASSIFY(NODE, VECTOR) 2: n curent node 3: if n is leaf then n.pos return n.pos + n.neg 4: attribute threshold attribute type of current node 5: vector attribute value of the attribute of vector 6: if vector attribute < attribute threshold then Classify(n.left, vector) 7: if vector attribute attribute threshold then Classify(n.right, vector) Fig. 4. Strongly connected classes 653

5 Fig. 5. Change proneness results Fig. 7. Fault proneness results This will greatly reduce the effort taken to detect faults in todays large scale software systems. ACKNOWLEDGMENT We take this opportunity to thank our project guide Prof. Vaishali S. Nandedkar, Head, Department of Information Technology, PVPIT Pune for her valuable guidance in the completion of this project. REFERENCES Fig. 6. Dependency graph of classes III. RESULTS AND OBSERVATIONS We include results obtained by our project using an implementation of a Randomized Queue and a Deque which is available here: In the following table, CP indicates Change proneness and FP indicates fault proneness. FP is calculated using our training data obtained from sample past projects. Class CP FP Deque 28.8 % % Randomized Queue % % Subset 5.82 % % Results are presented in Fig 5, Fig 6 and Fig 7. jfreechart and jung libraries were used for the visualization of the data. IV. CONCLUSION Thus, our proposed system uses ensemble based techniques to classify a class as either fault prone or not. We also use a probabilistic approach to predict the change proneness of a class and interface. Finally, we identify strongly connected software modules, so these can be packaged together and errors from highly fault prone class can be prevented. [1] Sharafat, A.R., Tahvildari, L. A Probabilistic Approach to Predict Changes in Object-Oriented Software Systems, IEEE [2] Lan Guoy, Yan Maz, Bojan Cukicy, Harshinder Singh, Robust Prediction of Fault-Proneness by Random Forests [3] Kaur, A., Application of Random Forest in Predicting Fault-Prone Classes [4] Romano, D. ; Pinzger, M. Software Maintenance (ICSM), th IEEE International Conference on Using source code metrics to predict change-prone Java interfaces. [5] Nikolaos Tsantalis, Alexander Chatzigeorgiou,Member, IEEE Computer Society, and George Stephanides,Member, IEEE Computer Society Predicting the Probability of Change in Object-Oriented Systems [6] Todd L. Graves, Alan F. Karr, J.S. Marron, and Harvey Siy,Predicting Fault Incidence Using Software Change History IEEE TRANSAC- TIONS ON SOFTWARE ENGINEERING, VOL. 26, NO. 7, JULY [7] Daniele Romano Software Engineering Research Group Delft University of Technology The Netherlands, Martin Pinzger Software Engineering Research Group Delft University of Technology The Netherlands,Using Source Code Metrics To Predict Change-Prone Java Interface, th IEEE International Conference on Software Maintenance (ICSM). [8] Shyam R. Chidamber and Chris F Kemerer, A Metrics Suite For Object Oriented Design,IIIE TRANSCATION OF SOFTWARE ENGINEER- ING, VOL 20,NO. 6,JUNE [9] Sunint K. Khalsa, Proceedings of the World Congress on Engineering 2009 Vol I WCE 2009, July 1-3, 2009, London, U.K [10] Parvinder S. Sandhu, Satish Kumar Dhiman, Anmol Goyal, World Academy of Science, Engineering and Technology 60, 2009 [11] Hans Christian Benestad, Department of Informatics Faculty of Mathematics and Natural Sciences University of Oslo March 2009 [12] Toshi hi ro Kami ya, Shi nj i Kusumoto and Katsuro Inoue Graduate School of Engi neeri ng Sci ence, Osaka Uni versi ty 1-3 Machi kaneyama, Toyonaka, Osaka, , Japan. [13] Jaana Lindroos, Helsinki, 1 St of December 2004 Seminar on Quality Models for Software Engineering Department of Computer Science UNIVERSITY OF HELSINKI 654

Technical Metrics for OO Systems

Technical Metrics for OO Systems Technical Metrics for OO Systems 1 Last time: Metrics Non-technical: about process Technical: about product Size, complexity (cyclomatic, function points) How to use metrics Prioritize work Measure programmer

More information

Evaluation of a Business Application Framework Using Complexity and Functionality Metrics

Evaluation of a Business Application Framework Using Complexity and Functionality Metrics Evaluation of a Business Application Framework Using Complexity and Functionality Metrics Hikaru Fujiwara 1, Shinji Kusumoto 1, Katsuro Inoue 1, Toshifusa Ootsubo 2 and Katsuhiko Yuura 2 1 Graduate School

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

Application of Object Oriented Metrics to Java and C Sharp: Comparative Study

Application of Object Oriented Metrics to Java and C Sharp: Comparative Study International Journal of Computer Applications (9 888) Volume 64 No., February Application of Object Oriented Metrics to Java and C Sharp: Comparative Study Arti Chhikara Maharaja Agrasen College,Delhi,India

More information

Introduction to software metics

Introduction to software metics Introduction to software metics Alexander Voigt Version_05_21 Technische Universität Dresden Institut für Kern- und Teilchenphysik /01234/546 78994:!"##$%&'$()*+,%&-,,$)*.$ IKTP Computing Kaffee 12 December

More information

Reusability Metrics for Object-Oriented System: An Alternative Approach

Reusability Metrics for Object-Oriented System: An Alternative Approach Reusability Metrics for Object-Oriented System: An Alternative Approach Parul Gandhi Department of Computer Science & Business Administration Manav Rachna International University Faridabad, 121001, India

More information

1 Introduction. Abstract

1 Introduction. Abstract An MVC-based Analysis of Object-Oriented System Prototyping for Banking Related GUI Applications Correlationship between OO Metrics and Efforts for Requirement Change Satoru Uehara, Osamu Mizuno, Yumi

More information

CHAPTER 4 HEURISTICS BASED ON OBJECT ORIENTED METRICS

CHAPTER 4 HEURISTICS BASED ON OBJECT ORIENTED METRICS CHAPTER 4 HEURISTICS BASED ON OBJECT ORIENTED METRICS Design evaluation is most critical activity during software development process. Design heuristics are proposed as a more accessible and informal means

More information

Risk-based Object Oriented Testing

Risk-based Object Oriented Testing Risk-based Object Oriented Testing Linda H. Rosenberg, Ph.D. Ruth Stapko Albert Gallo NASA GSFC SATC NASA, Unisys SATC NASA, Unisys Code 302 Code 300.1 Code 300.1 Greenbelt, MD 20771 Greenbelt, MD 20771

More information

Investigation of Metrics for Object-Oriented Design Logical Stability

Investigation of Metrics for Object-Oriented Design Logical Stability Investigation of Metrics for Object-Oriented Design Logical Stability Mahmoud O. Elish Department of Computer Science George Mason University Fairfax, VA 22030-4400, USA melish@gmu.edu Abstract As changes

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

Metrics and OO. SE 3S03 - Tutorial 12. Alicia Marinache. Week of Apr 04, Department of Computer Science McMaster University

Metrics and OO. SE 3S03 - Tutorial 12. Alicia Marinache. Week of Apr 04, Department of Computer Science McMaster University and OO OO and OO SE 3S03 - Tutorial 12 Department of Computer Science McMaster University Complexity Lorenz CK Week of Apr 04, 2016 Acknowledgments: The material of these slides is based on [1] (chapter

More information

Principal Component Analysis of Lack of Cohesion in Methods (LCOM) metrics

Principal Component Analysis of Lack of Cohesion in Methods (LCOM) metrics Principal Component Analysis of Lack of Cohesion in Methods (LCOM) metrics Anuradha Lakshminarayana Timothy S.Newman Department of Computer Science University of Alabama in Huntsville Abstract In this

More information

A Study of Software Metrics

A Study of Software Metrics International Journal of Computational Engineering & Management, Vol. 11, January 2011 www..org 22 A Study of Software Metrics Gurdev Singh 1, Dilbag Singh 2, Vikram Singh 3 1 Assistant Professor, JIET

More information

Effective Modular Design

Effective Modular Design CSC40232: SOFTWARE ENGINEERING Professor: Jane Cleland Huang Metrics sarec.nd.edu/courses/se2017 Department of Computer Science and Engineering Effective Modular Design Modular design Reduces complexity

More information

Empirical Evaluation and Critical Review of Complexity Metrics for Software Components

Empirical Evaluation and Critical Review of Complexity Metrics for Software Components Proceedings of the 6th WSEAS Int. Conf. on Software Engineering, Parallel and Distributed Systems, Corfu Island, Greece, February 16-19, 2007 24 Empirical Evaluation and Critical Review of Complexity Metrics

More information

Application of a Fuzzy Inference System to Measure Maintainability of Object-Oriented Software

Application of a Fuzzy Inference System to Measure Maintainability of Object-Oriented Software Application of a Fuzzy Inference System to Measure Maintainability of Object-Oriented Software Nasib Singh Gill and Meenakshi Sharma Department of Computer Science & Applications Maharshi Dayanand University,

More information

A Comparative Study on State Programming: Hierarchical State Machine (HSM) Pattern and State Pattern

A Comparative Study on State Programming: Hierarchical State Machine (HSM) Pattern and State Pattern A Comparative Study on State Programming: Hierarchical State Machine (HSM) Pattern and State Pattern A. Cüneyd Tantuğ and Özdemir Kavak Abstract State machines can be implemented by using several methods.

More information

Effectiveness of software metrics for object-oriented system

Effectiveness of software metrics for object-oriented system Available online at www.sciencedirect.com Procedia Technology 6 (2012 ) 420 427 2nd International Conference on Communication, Computing & Security [ICCCS-2012] Effectiveness of software metrics for object-oriented

More information

A k-means Based Approach for Prediction of Level of Severity of Faults in Software System

A k-means Based Approach for Prediction of Level of Severity of Faults in Software System A k-means Based Approach for Prediction of Level of Severity of Faults in Software System Jaspreet Kaur, Parvinder S. Sandhu Abstract Fault-proneness of a software module is the probability that the module

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

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

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

Effects of Dependency Injection on Maintainability. Kate Razina

Effects of Dependency Injection on Maintainability. Kate Razina Effects of Dependency Injection on Maintainability Kate Razina Overview Introduction Maintainability Dependency Injection Hypothesis Research Measuring Maintainability Data Collection Results Conclusion

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

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

2IS55 Software Evolution. Software metrics (3) Alexander Serebrenik

2IS55 Software Evolution. Software metrics (3) Alexander Serebrenik 2IS55 Software Evolution Software metrics (3) Alexander Serebrenik Sources / SET / W&I 19-3-2013 PAGE 1 From imperative to OO All metrics so far were designed for imperative languages Applicable for OO

More information

Taxonomy Dimensions of Complexity Metrics

Taxonomy Dimensions of Complexity Metrics 96 Int'l Conf. Software Eng. Research and Practice SERP'15 Taxonomy Dimensions of Complexity Metrics Bouchaib Falah 1, Kenneth Magel 2 1 Al Akhawayn University, Ifrane, Morocco, 2 North Dakota State University,

More information

Assessing Package Reusability in Object-Oriented Design

Assessing Package Reusability in Object-Oriented Design , pp.75-84 http://dx.doi.org/10.14257/ijseia.2014.8.4.09 Assessing Package Reusability in Object-Oriented Design Vinay Singh 1 and Vandana Bhattacherjee 2 1 Usha Martin Academy, Ranchi, India 2 Birla Institute

More information

OPEN source software systems are becoming evermore

OPEN source software systems are becoming evermore IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 31, NO. 10, OCTOBER 2005 897 Empirical Validation of Object-Oriented Metrics on Open Source Software for Fault Prediction Tibor Gyimóthy, Rudolf Ferenc,

More information

ISSN: [Gupta* et al., 6(5): May, 2017] Impact Factor: 4.116

ISSN: [Gupta* et al., 6(5): May, 2017] Impact Factor: 4.116 IJESRT INTERNATIONAL JOURNAL OF ENGINEERING SCIENCES & RESEARCH TECHNOLOGY OBJECT ORIENTED DESIGN METRICS FOR DESIGN AND COMPLEXITY ANALYSIS Sonam Gupta*, Prof. Anish Lazrus * Shri Shankaracharya group

More information

Using Metrics To Manage Software Risks. 1. Introduction 2. Software Metrics 3. Case Study: Measuring Maintainability 4. Metrics and Quality

Using Metrics To Manage Software Risks. 1. Introduction 2. Software Metrics 3. Case Study: Measuring Maintainability 4. Metrics and Quality Using Metrics To Manage Software Risks 1. Introduction 2. Software Metrics 3. Case Study: Measuring Maintainability 4. Metrics and Quality 1 1. Introduction Definition Measurement is the process by which

More information

Quality Metrics Tool for Object Oriented Programming

Quality Metrics Tool for Object Oriented Programming Quality Metrics Tool for Object Oriented Programming Mythili Thirugnanam * and Swathi.J.N. Abstract Metrics measure certain properties of a software system by mapping them to numbers (or to other symbols)

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

Towards Cohesion-based Metrics as Early Quality Indicators of Faulty Classes and Components

Towards Cohesion-based Metrics as Early Quality Indicators of Faulty Classes and Components 2009 International Symposium on Computing, Communication, and Control (ISCCC 2009) Proc.of CSIT vol.1 (2011) (2011) IACSIT Press, Singapore Towards Cohesion-based Metrics as Early Quality Indicators of

More information

Software Testing: A Craftsman s Approach, 4 th Edition. Chapter 16 Software Complexity

Software Testing: A Craftsman s Approach, 4 th Edition. Chapter 16 Software Complexity Chapter 16 Software Complexity Levels of Software Complexity Unit Level Topological (cyclomatic) complexity, based on a program graph Decisional complexity, a refinement of topological complexity, based

More information

International Journal of Advance Research in Engineering, Science & Technology

International Journal of Advance Research in Engineering, Science & Technology Impact Factor (SJIF): 4.542 International Journal of Advance Research in Engineering, Science & Technology e-issn: 2393-9877, p-issn: 2394-2444 Volume 4, Issue5,May-2017 Software Fault Detection using

More information

CS 229 Midterm Review

CS 229 Midterm Review CS 229 Midterm Review Course Staff Fall 2018 11/2/2018 Outline Today: SVMs Kernels Tree Ensembles EM Algorithm / Mixture Models [ Focus on building intuition, less so on solving specific problems. Ask

More information

Object Oriented Metrics. Impact on Software Quality

Object Oriented Metrics. Impact on Software Quality Object Oriented Metrics Impact on Software Quality Classic metrics Lines Of Code Function points Complexity Code coverage - testing Maintainability Index discussed later Lines of Code KLOC = 1000 Lines

More information

Behavioral Dependency Measurement for Change-proneness Prediction in UML 2.0 Design Models

Behavioral Dependency Measurement for Change-proneness Prediction in UML 2.0 Design Models Annual IEEE International Computer Software and Applications Conference Behavioral Dependency Measurement for Change-proneness Prediction in UML 2.0 Design Models Ah-Rim Han, Sang-Uk Jeon, Doo-Hwan Bae

More information

International Journal of Software and Web Sciences (IJSWS)

International Journal of Software and Web Sciences (IJSWS) International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research) ISSN (Print): 2279-0063 ISSN (Online): 2279-0071 International

More information

Procedia Computer Science

Procedia Computer Science Procedia Computer Science 00 (2009) 000 000 Procedia Computer Science www.elsevier.com/locate/procedia INSODE 2011 Theoretical Analysis for the Impact of Including Special Methods in Lack-of-Cohesion Computation

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

Visualizing Software Metrics for increased Refactoring

Visualizing Software Metrics for increased Refactoring Visualizing Software Metrics for increased Refactoring Paul Steneram Bibby ada08pst@student.lu.se Fredrik Palmquist dat11fpa@student.lu.se March 7, 2016 Keywords: Agile Development, Code Complexity, Refactoring

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

Class Break Point Determination Using CK Metrics Thresholds

Class Break Point Determination Using CK Metrics Thresholds P a g e 73 Vol.10 Issue 14 (Ver.1.0) November 2010 Class Break Point Determination Using CK Metrics Thresholds Dr. E. Chandra 1, P. Edith Linda 2 GJCST Classification D.2.8 Abstract-The design and development

More information

Vragen. Intra-modular complexity measures. The uses relation. System structure: inter-module complexity

Vragen. Intra-modular complexity measures. The uses relation. System structure: inter-module complexity Vragen Intra-modular complexity measures Wat wordt bedoeld met het ontwerpsprincipe: Anticipate obsolence? Wat is het voordeel van strong cohesion en weak coupling? Wat is het gevolg van hoge complexiteit

More information

Software Testing. 1. Testing is the process of demonstrating that errors are not present.

Software Testing. 1. Testing is the process of demonstrating that errors are not present. What is Testing? Software Testing Many people understand many definitions of testing :. Testing is the process of demonstrating that errors are not present.. The purpose of testing is to show that a program

More information

SELECTED TOPICS in APPLIED COMPUTER SCIENCE

SELECTED TOPICS in APPLIED COMPUTER SCIENCE A Tool for Detecting Detects on Class Implementation in Object Oriented Program on the Basis of the Law of Demeter: Focusing on Dependency between Packages RYOTA CHIBA, HIROAKI HASHIURA and SEIICHI KOMIYA

More information

Measuring the quality of UML Designs

Measuring the quality of UML Designs Measuring the quality of UML Designs Author: Mr. Mark Micallef (mmica@cs.um.edu.mt) Supervisor: Dr. Ernest Cachia (eacaci@cs.um.edu.mt) Affiliation: University of Malta (www.um.edu.mt) Keywords Software

More information

Dynamic Clustering of Data with Modified K-Means Algorithm

Dynamic Clustering of Data with Modified K-Means Algorithm 2012 International Conference on Information and Computer Networks (ICICN 2012) IPCSIT vol. 27 (2012) (2012) IACSIT Press, Singapore Dynamic Clustering of Data with Modified K-Means Algorithm Ahamed Shafeeq

More information

Reliability of Software Fault Prediction using Data Mining and Fuzzy Logic

Reliability of Software Fault Prediction using Data Mining and Fuzzy Logic Reliability of Software Fault Prediction using Data Mining and Fuzzy Logic Vaibhav Agrawal Amity University Madhya Pradesh, Gwalior vagrawal@gwa.amity.edu Abstract: In this paper we proposed unsupervised

More information

International Journal of Software and Web Sciences (IJSWS)

International Journal of Software and Web Sciences (IJSWS) International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research) ISSN (Print): 2279-0063 ISSN (Online): 2279-0071 International

More information

Automatic Generation of Graph Models for Model Checking

Automatic Generation of Graph Models for Model Checking Automatic Generation of Graph Models for Model Checking E.J. Smulders University of Twente edwin.smulders@gmail.com ABSTRACT There exist many methods to prove the correctness of applications and verify

More information

Tutorial 1 Answers. Question 1

Tutorial 1 Answers. Question 1 Tutorial 1 Answers Question 1 Complexity Software in it what is has to do, is often essentially complex. We can think of software which is accidentally complex such as a large scale e-commerce system (simple

More information

Kostis Kapelonis Athens Greece, March 2010

Kostis Kapelonis Athens Greece, March 2010 Quality Metrics: GTE, CAP and CKJM Kostis Kapelonis Athens Greece, March 2010 Menu More Quality metrics: Google Testability Explorer (Starter) Code Analysis Plugin (Main Course) CKJM metrics (Dessert)

More information

SOFTWARE COMPLEXITY MEASUREMENT USING MULTIPLE CRITERIA ABSTRACT

SOFTWARE COMPLEXITY MEASUREMENT USING MULTIPLE CRITERIA ABSTRACT SOFTWARE COMPLEXITY MEASUREMENT USING MULTIPLE CRITERIA Bhaskar Raj Sinha, Pradip Peter Dey, Mohammad Amin and Hassan Badkoobehi National University, School of Engineering, Technology, and Media 3678 Aero

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

An Object Oriented Runtime Complexity Metric based on Iterative Decision Points

An Object Oriented Runtime Complexity Metric based on Iterative Decision Points An Object Oriented Runtime Complexity Metric based on Iterative Amr F. Desouky 1, Letha H. Etzkorn 2 1 Computer Science Department, University of Alabama in Huntsville, Huntsville, AL, USA 2 Computer Science

More information

Finding Extract Method Refactoring Opportunities by Analyzing Development History

Finding Extract Method Refactoring Opportunities by Analyzing Development History 2017 IEEE 41st Annual Computer Software and Applications Conference Finding Extract Refactoring Opportunities by Analyzing Development History Ayaka Imazato, Yoshiki Higo, Keisuke Hotta, and Shinji Kusumoto

More information

SOFTWARE PRODUCT QUALITY SOFTWARE ENGINEERING SOFTWARE QUALITY SOFTWARE QUALITIES - PRODUCT AND PROCESS SOFTWARE QUALITY - QUALITY COMPONENTS

SOFTWARE PRODUCT QUALITY SOFTWARE ENGINEERING SOFTWARE QUALITY SOFTWARE QUALITIES - PRODUCT AND PROCESS SOFTWARE QUALITY - QUALITY COMPONENTS SOFTWARE PRODUCT QUALITY Today: - Software quality - Quality Components - Good software properties SOFTWARE ENGINEERING SOFTWARE QUALITY Today we talk about quality - but what is quality? Suitable Fulfills

More information

Basic Concepts And Future Directions Of Road Network Reliability Analysis

Basic Concepts And Future Directions Of Road Network Reliability Analysis Journal of Advanced Transportarion, Vol. 33, No. 2, pp. 12.5-134 Basic Concepts And Future Directions Of Road Network Reliability Analysis Yasunori Iida Background The stability of road networks has become

More information

Logical Rhythm - Class 3. August 27, 2018

Logical Rhythm - Class 3. August 27, 2018 Logical Rhythm - Class 3 August 27, 2018 In this Class Neural Networks (Intro To Deep Learning) Decision Trees Ensemble Methods(Random Forest) Hyperparameter Optimisation and Bias Variance Tradeoff Biological

More information

Mondrian Forests: Efficient Online Random Forests

Mondrian Forests: Efficient Online Random Forests Mondrian Forests: Efficient Online Random Forests Balaji Lakshminarayanan Joint work with Daniel M. Roy and Yee Whye Teh 1 Outline Background and Motivation Mondrian Forests Randomization mechanism Online

More information

Analysis of Cohesion and Coupling Metrics for Object Oriented System

Analysis of Cohesion and Coupling Metrics for Object Oriented System 2016 IJSRSET Volume 2 Issue 2 Print ISSN : 2395-1990 Online ISSN : 2394-4099 Themed Section: Engineering and Technology Analysis of Cohesion and Coupling Metrics for Object Oriented System Annushri Sethi

More information

Keywords: Abstract Factory, Singleton, Factory Method, Prototype, Builder, Composite, Flyweight, Decorator.

Keywords: Abstract Factory, Singleton, Factory Method, Prototype, Builder, Composite, Flyweight, Decorator. Comparative Study In Utilization Of Creational And Structural Design Patterns In Solving Design Problems K.Wseem Abrar M.Tech., Student, Dept. of CSE, Amina Institute of Technology, Shamirpet, Hyderabad

More information

Research Article ISSN:

Research Article ISSN: Research Article [Agrawal, 1(3): May, 2012] IJESRT INTERNATIONAL JOURNAL OF ENGINEERING SCIENCES & RESEARCH TECHNOLOGY Use Of Software Metrics To Measure And Improve The Quality Of The Software Design

More information

DETECTING SIMPLE AND FILE CLONES IN SOFTWARE

DETECTING SIMPLE AND FILE CLONES IN SOFTWARE DETECTING SIMPLE AND FILE CLONES IN SOFTWARE *S.Ajithkumar, P.Gnanagurupandian, M.Senthilvadivelan, Final year Information Technology **Mr.K.Palraj ME, Assistant Professor, ABSTRACT: The objective of this

More information

Object Oriented Measurement

Object Oriented Measurement Object Oriented Measurement Diego Chaparro González dchaparro@acm.org Student number: 59881P 17th January 2003 Abstract This document examines the state of art in software products measurement, with focus

More information

Software complexity Methodologies Comparisons. Paper Reference Number: 6 Name of the Presenter: masoud rafighi

Software complexity Methodologies Comparisons. Paper Reference Number: 6 Name of the Presenter: masoud rafighi 1 Software complexity Methodologies Comparisons Masoud Rafighi 1, Nasser Modiri 2 1 Taali, Qom, Iran; 2 Zanjan Azad University, Zanjan, Iran; Paper Reference Number: 6 Name of the Presenter: masoud rafighi

More information

NETWORK FAULT DETECTION - A CASE FOR DATA MINING

NETWORK FAULT DETECTION - A CASE FOR DATA MINING NETWORK FAULT DETECTION - A CASE FOR DATA MINING Poonam Chaudhary & Vikram Singh Department of Computer Science Ch. Devi Lal University, Sirsa ABSTRACT: Parts of the general network fault management problem,

More information

ARTICLE; BIOINFORMATICS Clustering performance comparison using K-means and expectation maximization algorithms

ARTICLE; BIOINFORMATICS Clustering performance comparison using K-means and expectation maximization algorithms Biotechnology & Biotechnological Equipment, 2014 Vol. 28, No. S1, S44 S48, http://dx.doi.org/10.1080/13102818.2014.949045 ARTICLE; BIOINFORMATICS Clustering performance comparison using K-means and expectation

More information

How to Realization Architectural testing model using Measurement Metrics

How to Realization Architectural testing model using Measurement Metrics How to Realization Architectural testing model using Measurement Metrics Lalji Prasad 1, Sarita Singh Bhadauria 2 1 TRUBA College of Engineering & Technology/ Computer Science &Engineering, INDORE, INDIA

More information

Obfuscation Studio Executive

Obfuscation Studio Executive PROCEEDINGS OF WORLD ACADEMY OF SCIENCE, ENGINEERING AND TECHNOLOGY VOLUME 1 DECEMBER 25 ISSN 137-6884 Obfuscation Studio Executive Siarhei Petryk, and Vyacheslav Yarmolik Abstract New software protection

More information

Tree-based methods for classification and regression

Tree-based methods for classification and regression Tree-based methods for classification and regression Ryan Tibshirani Data Mining: 36-462/36-662 April 11 2013 Optional reading: ISL 8.1, ESL 9.2 1 Tree-based methods Tree-based based methods for predicting

More information

A New Pool Control Method for Boolean Compressed Sensing Based Adaptive Group Testing

A New Pool Control Method for Boolean Compressed Sensing Based Adaptive Group Testing Proceedings of APSIPA Annual Summit and Conference 27 2-5 December 27, Malaysia A New Pool Control Method for Boolean Compressed Sensing Based Adaptive roup Testing Yujia Lu and Kazunori Hayashi raduate

More information

J2EE Development Best Practices: Improving Code Quality

J2EE Development Best Practices: Improving Code Quality Session id: 40232 J2EE Development Best Practices: Improving Code Quality Stuart Malkin Senior Product Manager Oracle Corporation Agenda Why analyze and optimize code? Static Analysis Dynamic Analysis

More information

Predicting Messaging Response Time in a Long Distance Relationship

Predicting Messaging Response Time in a Long Distance Relationship Predicting Messaging Response Time in a Long Distance Relationship Meng-Chen Shieh m3shieh@ucsd.edu I. Introduction The key to any successful relationship is communication, especially during times when

More information

Ensemble Learning: An Introduction. Adapted from Slides by Tan, Steinbach, Kumar

Ensemble Learning: An Introduction. Adapted from Slides by Tan, Steinbach, Kumar Ensemble Learning: An Introduction Adapted from Slides by Tan, Steinbach, Kumar 1 General Idea D Original Training data Step 1: Create Multiple Data Sets... D 1 D 2 D t-1 D t Step 2: Build Multiple Classifiers

More information

On Refactoring Support Based on Code Clone Dependency Relation

On Refactoring Support Based on Code Clone Dependency Relation On Refactoring Support Based on Code Dependency Relation Norihiro Yoshida 1, Yoshiki Higo 1, Toshihiro Kamiya 2, Shinji Kusumoto 1, Katsuro Inoue 1 1 Graduate School of Information Science and Technology,

More information

Analysis of the Test Driven Development by Example

Analysis of the Test Driven Development by Example Computer Science and Applications 1 (2013) 5-13 Aleksandar Bulajic and Radoslav Stojic The Faculty of Information Technology, Metropolitan University, Belgrade, 11000, Serbia Received: June 18, 2013 /

More information

SBKMMA: Sorting Based K Means and Median Based Clustering Algorithm Using Multi Machine Technique for Big Data

SBKMMA: Sorting Based K Means and Median Based Clustering Algorithm Using Multi Machine Technique for Big Data International Journal of Computer (IJC) ISSN 2307-4523 (Print & Online) Global Society of Scientific Research and Researchers http://ijcjournal.org/ SBKMMA: Sorting Based K Means and Median Based Algorithm

More information

Uncertain Data Classification Using Decision Tree Classification Tool With Probability Density Function Modeling Technique

Uncertain Data Classification Using Decision Tree Classification Tool With Probability Density Function Modeling Technique Research Paper Uncertain Data Classification Using Decision Tree Classification Tool With Probability Density Function Modeling Technique C. Sudarsana Reddy 1 S. Aquter Babu 2 Dr. V. Vasu 3 Department

More information

Supervised Learning Classification Algorithms Comparison

Supervised Learning Classification Algorithms Comparison Supervised Learning Classification Algorithms Comparison Aditya Singh Rathore B.Tech, J.K. Lakshmipat University -------------------------------------------------------------***---------------------------------------------------------

More information

Improving the quality of software cohesion metrics through dynamic analysis

Improving the quality of software cohesion metrics through dynamic analysis Improving the quality of software cohesion metrics through dynamic analysis Ravneet kaur, Amritsar Department of Computer Science, Lovely Professional university, Phagwara, India Abstract - Class cohesion

More information

7. Boosting and Bagging Bagging

7. Boosting and Bagging Bagging Group Prof. Daniel Cremers 7. Boosting and Bagging Bagging Bagging So far: Boosting as an ensemble learning method, i.e.: a combination of (weak) learners A different way to combine classifiers is known

More information

INFREQUENT WEIGHTED ITEM SET MINING USING NODE SET BASED ALGORITHM

INFREQUENT WEIGHTED ITEM SET MINING USING NODE SET BASED ALGORITHM INFREQUENT WEIGHTED ITEM SET MINING USING NODE SET BASED ALGORITHM G.Amlu #1 S.Chandralekha #2 and PraveenKumar *1 # B.Tech, Information Technology, Anand Institute of Higher Technology, Chennai, India

More information

A novel algorithm to determine the leaf (leaves) of a binary tree from its preorder and postorder traversals

A novel algorithm to determine the leaf (leaves) of a binary tree from its preorder and postorder traversals Journal of Algorithms and Computation journal homepage: http://jac.ut.ac.ir A novel algorithm to determine the leaf (leaves) of a binary tree from its preorder and postorder traversals N. Aghaieabiane

More information

Faster parameterized algorithms for Minimum Fill-In

Faster parameterized algorithms for Minimum Fill-In Faster parameterized algorithms for Minimum Fill-In Hans L. Bodlaender Pinar Heggernes Yngve Villanger Technical Report UU-CS-2008-042 December 2008 Department of Information and Computing Sciences Utrecht

More information

The Comparison of CBA Algorithm and CBS Algorithm for Meteorological Data Classification Mohammad Iqbal, Imam Mukhlash, Hanim Maria Astuti

The Comparison of CBA Algorithm and CBS Algorithm for Meteorological Data Classification Mohammad Iqbal, Imam Mukhlash, Hanim Maria Astuti Information Systems International Conference (ISICO), 2 4 December 2013 The Comparison of CBA Algorithm and CBS Algorithm for Meteorological Data Classification Mohammad Iqbal, Imam Mukhlash, Hanim Maria

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

HOW AND WHEN TO FLATTEN JAVA CLASSES?

HOW AND WHEN TO FLATTEN JAVA CLASSES? HOW AND WHEN TO FLATTEN JAVA CLASSES? Jehad Al Dallal Department of Information Science, P.O. Box 5969, Safat 13060, Kuwait ABSTRACT Improving modularity and reusability are two key objectives in object-oriented

More information

7. Decision or classification trees

7. Decision or classification trees 7. Decision or classification trees Next we are going to consider a rather different approach from those presented so far to machine learning that use one of the most common and important data structure,

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

CLASSIFYING SOFTWARE FAULTS THROUGH BOOLEAN CLASSIFICATION MODEL BASED ON DISCRETIZED DEFECT DATASETS

CLASSIFYING SOFTWARE FAULTS THROUGH BOOLEAN CLASSIFICATION MODEL BASED ON DISCRETIZED DEFECT DATASETS CLASSIFYING SOFTWARE FAULTS THROUGH BOOLEAN CLASSIFICATION MODEL BASED ON DISCRETIZED DEFECT DATASETS Pooja Kapoor 1, Deepak Arora 1 and Ashwani Kumar 2 1 Department of Computer Science and Engineering,

More information

PREDICTION OF SOFTWARE DEFECTS USING OBJECT-ORIENTED METRICS

PREDICTION OF SOFTWARE DEFECTS USING OBJECT-ORIENTED METRICS International Journal of Civil Engineering and Technology (IJCIET) Volume 9, Issue 1, January 2018, pp. 889 899, Article ID: IJCIET_09_01_087 Available online at http://http://www.iaeme.com/ijciet/issues.asp?jtype=ijciet&vtype=9&itype=1

More information

Concept Tree Based Clustering Visualization with Shaded Similarity Matrices

Concept Tree Based Clustering Visualization with Shaded Similarity Matrices Syracuse University SURFACE School of Information Studies: Faculty Scholarship School of Information Studies (ischool) 12-2002 Concept Tree Based Clustering Visualization with Shaded Similarity Matrices

More information

CMPSCI 240 Reasoning Under Uncertainty Homework 4

CMPSCI 240 Reasoning Under Uncertainty Homework 4 CMPSCI 240 Reasoning Under Uncertainty Homework 4 Prof. Hanna Wallach Assigned: February 24, 2012 Due: March 2, 2012 For this homework, you will be writing a program to construct a Huffman coding scheme.

More information

IDENTIFYING COUPLING METRICS AND IMPACT ON SOFTWARE QUALITY

IDENTIFYING COUPLING METRICS AND IMPACT ON SOFTWARE QUALITY IDENTIFYING COUPLING METRICS AND IMPACT ON SOFTWARE QUALITY Vinay Singh #1, Vandana Bhattacherjee *2 # Department of IT, Usha Martin Academy Ranchi, India 1 mailtovsingh@yahoo.co.in * Department of CS

More information

Refactoring Support Based on Code Clone Analysis

Refactoring Support Based on Code Clone Analysis Refactoring Support Based on Code Clone Analysis Yoshiki Higo 1,Toshihiro Kamiya 2, Shinji Kusumoto 1 and Katsuro Inoue 1 1 Graduate School of Information Science and Technology, Osaka University, Toyonaka,

More information