Overview Introduces a new cohesion metric called Conceptual Cohesion of Classes (C3) and uses this metric for fault prediction Compares a new cohesion.

Slides:



Advertisements
Similar presentations
Overview Functional Testing Boundary Value Testing (BVT)
Advertisements

1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Lecture 11 Instructor Paulo Alencar.
Tutorial 12: Enhancing Excel with Visual Basic for Applications
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Case Studies Instructor Paulo Alencar.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Case Studies Instructor Paulo Alencar.
Prediction of fault-proneness at early phase in object-oriented development Toshihiro Kamiya †, Shinji Kusumoto † and Katsuro Inoue †‡ † Osaka University.
OORPT Object-Oriented Reengineering Patterns and Techniques 7. Problem Detection Prof. O. Nierstrasz.
Object-Oriented Analysis and Design
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
Object Oriented Design
Page 1 Building Reliable Component-based Systems Chapter 7 - Role-Based Component Engineering Chapter 7 Role-Based Component Engineering.
Object-Oriented Metrics. Characteristics of OO ● Localization ● Encapsulation ● Information hiding ● Inheritence ● Object abstraction.
Design Metrics Software Engineering Fall 2003 Aditya P. Mathur Last update: October 28, 2003.
Investigating JAVA Classes with Formal Concept Analysis Uri Dekel Based on M.Sc. work at the Israeli Institute of Technology. To appear:
© S. Demeyer, S. Ducasse, O. Nierstrasz Duplication.1 7. Problem Detection Metrics  Software quality  Analyzing trends Duplicated Code  Detection techniques.
Software Metrics II Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
Object-Oriented Metrics
The Conceptual Coupling Metrics for Object-Oriented Systems
SE 450 Software Processes & Product Metrics Activity Metrics.
1 Complexity metrics  measure certain aspects of the software (lines of code, # of if-statements, depth of nesting, …)  use these numbers as a criterion.
Page 1 Building Reliable Component-based Systems Chapter 18 - A Framework for Integrating Business Applications Chapter 18 A Framework for Integrating.
Unit Testing CS 414 – Software Engineering I Don Bagert Rose-Hulman Institute of Technology January 16, 2003.
Software Metrics.
1 Ivan Marsic Rutgers University LECTURE 16: Class Cohesion Metrics.
MDC Open Information Model West Virginia University CS486 Presentation Feb 18, 2000 Lijian Liu (OIM:
Database System Concepts and Architecture Lecture # 3 22 June 2012 National University of Computer and Emerging Sciences.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis.
Object-Oriented Analysis and Design OVERVIEW. Objectives  Describe Information Systems  Explain the role of a systems analyst  Introduce object-oriented.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis.
Overview of Software Testing 07/12/2013 WISTPC 2013 Peter Clarke.
9/14/2012ISC329 Isabelle Bichindaritz1 Database System Life Cycle.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis.
Detailed design – class design Domain Modeling SE-2030 Dr. Rob Hasker 1 Based on slides written by Dr. Mark L. Hornick Used with permission.
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED D epartment of Software Engineering New Conceptual Coupling and Cohesion Metrics for Object-Oriented.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Measurement & Metrics
Quality Assessment for CBSD: Techniques and A Generic Environment Presented by: Cai Xia Supervisor: Prof. Michael Lyu Markers: Prof. Ada Fu Prof. K.F.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Lecture 23 Instructor Paulo Alencar.
Samad Paydar Web Technology Lab. Ferdowsi University of Mashhad 10 th August 2011.
1/26/2004TCSS545A Isabelle Bichindaritz1 Database Management Systems Design Methodology.
Concepts of Software Quality Yonglei Tao 1. Software Quality Attributes  Reliability  correctness, completeness, consistency, robustness  Testability.
Generic API Test tool By Moshe Sapir Almog Masika.
Software Engineering Research Group, Graduate School of Engineering Science, Osaka University 1 Evaluation of a Business Application Framework Using Complexity.
Supporting Release Management & Quality Assurance for Object-Oriented Legacy Systems - Lionel C. Briand Visiting Professor Simula Research Labs.
E XV IS XML, UMA FERRAMENTA EMBLEMÁTICA NA ANÁLISE DOCUMENTAL Daniela da Cruz, Pedro Rangel Henriques Departamento de Informática Universidade do Minho.
SEMINAR WEI GUO. Software Visualization in the Large.
Distributed Information Systems. Motivation ● To understand the problems that Web services try to solve it is helpful to understand how distributed information.
An Automatic Software Quality Measurement System.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
CSc 461/561 Information Systems Engineering Lecture 5 – Software Metrics.
Using Social Network Analysis Methods for the Prediction of Faulty Components Gholamreza Safi.
Ontology Support for Abstraction Layer Modularization Hyun Cho, Jeff Gray Department of Computer Science University of Alabama
What is this? SE-2030 Dr. Mark L. Hornick 1. Same images with different levels of detail SE-2030 Dr. Mark L. Hornick 2.
UML (Unified Modeling Language)
Static Software Metrics Tool
Experience Report: System Log Analysis for Anomaly Detection
Building Enterprise Applications Using Visual Studio®
Overview Theory of Program Testing Goodenough and Gerhart’s Theory
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Chapter 2 Database System Concepts and Architecture
SysML 2.0 Formalism: Requirement Benefits, Use Cases, and Potential Language Architectures Formalism WG December 6, 2016.
Design Characteristics and Metrics
Object-Oriented Metrics
Design Metrics Software Engineering Fall 2003
Design Metrics Software Engineering Fall 2003
Coupling and Cohesion By Bonnie Ngu.
Software Metrics SAD ::: Fall 2015 Sabbir Muhammad Saleh.
Bug Localization with Combination of Deep Learning and Information Retrieval A. N. Lam et al. International Conference on Program Comprehension 2017.
Chapter 8: Design: Characteristics and Metrics
Software Testing and QA Theory and Practice (Chapter 5: Data Flow Testing) © Naik & Tripathy 1 Software Testing and Quality Assurance Theory and Practice.
Presentation transcript:

ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Case Studies Instructor Paulo Alencar

Overview Introduces a new cohesion metric called Conceptual Cohesion of Classes (C3) and uses this metric for fault prediction Compares a new cohesion metric with an extensive set of existing metrics Presents a large cases study on three open source software systems (e.g., Mozilla v.1.6) Marcus, A., Poshyvanyk, D., Ferenc, F., Using the Conceptual Cohesion of Classes for Fault Prediction in Object-Oriented Systems, IEEE Transactions on Software Engineering, vol. 34, no. 2, March/April, 2008.

Main Results Cohesion is usually measured on structural information extracted solely from the source code (e.g., attribute references and method calls) A new measure for class cohesion is proposed (Conceptual Cohesion of Classes – C3) which captures the conceptual aspects of class cohesion C3 is based on the analysis of textual information in the source code, expressed in comments and identifiers An Information Retrieval (IR) technique is used to extract, represent, and analyze the textual information from source code C3 can be interpreted as a measure of the textual coherence of a class within the context of the system

Main Results Metrics used in comparison: Lack of Cohesion in Methods LCOM4 – number of connected components (access same class variable); LCOM=1 (good), LCOM >= 2 (bad, split) (pairs of methods with no attributes in common) LCOM1 – number of pairs of methods that access disjoint sets of instance variables, add 1 to P; or that share at least one instance variable, add 1 to Q: P –Q if P>0, and 0 otherwise (0 good, >1 may suggest split) LCOM2 – m=#methods, a=# variables, mA=#methods that access the same variable (attribute), sum(mA)= sum over all attributes (0 is good) LCOM2 = 1 – sum(mA)/m*a

Main Results LCOM3 = (m – sum(mA) / a ) (m – 1) (1 to 2 good; 0 bad, split) LCOM5 = # of connected components (methods that access the same variable, or call each other) TCC (tight class cohesion) – NP = maximum number of possible connections = N* (N-1)/2 where N=#methods NDC # direct connections (#edges in connection graph) Access the same class variable, or call trees starting at two methods access the same variables NID # indirect connections (e.g., A-B-C, where A is indirectly connected to C via B) TCC = NDC / NP (1 good)

Main Results LCC (loose class cohesion) – LCC = (NDC + NID) / NP (1 good) Coh – Cohesion metric Coh = sum(v(A) / m * a where v(A) = # of methods that reference attribute A sum(v(A)) = sum over all attributes (1 good) Information-flow-based cohesion – depends on the number of information flows from/to (i.e., access or read) parameter list to/from data structure due to procedures in interfaces (higher is better)

Main Results LSI – Latent Semantic Index - An advanced statistical Information Retrieval method - Central concept: the information about the concepts in which a particular word appears or does not appear provides a way to determine the similarity of meaning of sets of words to each other - It uses a matrix (word x context) based on knowledge in the particular domain of interest

Main Results Conceptual Cohesion of Classes (C3) - Similarity measure for textual coherence of comments and identifiers extracted from source code - C3 for a class C measures conceptual cohesion, the degree to which methods of a class belong together conceptually. - C3 in [0,1] – close to 1 is better - Close to 1 is better: the class most likely implements a single concept or a very small number of related concepts (related in the context of the software system - C3 is closet to 0: the methods in the class most likely implement different concepts

Main Results Example: Class MySecMan (my security manager) from Mozilla v.1.6 The four methods share several terms such as context, pending, exception, error, failure, and security C3 = 0.913 (a very high conceptual cohesion for the MySecMan class)

Main Results Case Studies: - Three open source systems from different domains (developed mostly in C++) - TortoiseCVS v.1.8.21 – an extension of Microsoft Windows Explorer that uses CVS - WinMerge v.2.0.2 – tool for visualization and merging for both files and directories - Mozilla v.1.6 – an open source Web browser

Main Results Research questions: - Question 1: Does C3 capture aspects of class cohesion that are not captured by other structural cohesion metrics? - Question 2: Does the combination of structural cohesion metrics with C3 provide better results in predicting faults in classes that the combinations of structural metrics?

Main Results Principal components and metrics (Question 1) - PC1 is LCOM1, LCOM2, LCOM3, and ICH – metrics that count the number of shared instance variables - PC4 is C3; PC2 is TCC and LCC; PC3 is LCOM5, PC5 is LCOM3 and LCOM4; PC6 is Coh

Main Results Predicting faults in classes (Question 2) – Individual metrics

Main Results Predicting faults in classes (Question 2) – Pairs of cohesion metrics