FOR0383 Software Quality Assurance
|
|
- Bennett Oliver
- 5 years ago
- Views:
Transcription
1 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 1
2 Identifying poorly written code How good is the code under development? Fixing defects after a system has been released to a customer can be very expensive. A single bug report can easily require 20 hours of effort before the defect is identified and fix. How should a bug report be written? Code metrics can be used to identify poorly written methods, classes, and packages before release to the customer. Using code metrics involves specifying the method used to make the measurement and the nature of the underlying measurement scale. Does it really make sense to add together complexity measures in the same way we can add two real numbers together? 2 +2 is 4 but is a complexity of 2 + a complexity of 2 = a complexity of 4? 2/11/2009 Dr Andy Brooks 2
3 Warning: code metrics are still not standardized. Researchers are still standardizing code metrics (specifying the method used to make the measurement). Does this metric include or exclude constructor methods? Does this metric include or exclude get and set methods? Does this metric include or exclude // end-of-line comments? Does this metric include or exclude empty lines? Does this metric view the base class as depth 0 or 1? Does this metric include or exclude the API? Does this metric include or exclude default statements? Existing code metric tools can disagree on the method used to make what is supposed to be the same measurement. 2/11/2009 Dr Andy Brooks 3
4 Warning: code metrics are still not fully validated. Researchers are still validating code metrics. Does a high value for a code complexity metric always mean that the code is poorly written? If an application is complex, the code will be complex. Identically functional code rewritten with single identifiers and poor use of spacing and indentation might have the same value for the complexity metric yet be a lot more difficult to understand and maintain. Underlying measurement scales are often not interval: the operation of adding, subtracting, multiplying, and dividing do not have the same meaning as they do for real numbers. This is a controversial issue. The correlation of the values of an individual code metric with defects can often be less than 0.4. The best models to identify poorly written code combine several code metrics. 2/11/2009 Dr Andy Brooks 4
5 fylgnistuðull Some plots illustrating correlations of various sizes ideally, correlations should be > /02/2009 Dr Andy Brooks 5
6 outlier/enfari Identifying outliers can be useful In a box plot, the box contains 50% of the data set. the interquartile range (IQR) 1.5* IQR away from the box, a value is a suspected outlier 3.0*IQR away from the box, a value is deemed an outlier A method, class, or package with an outlier value for a metric is worth examining closely. Ask yourself: Is the code poorly written? Should the code be rewritten? 11/02/2009 Dr Andy Brooks 6
7 as documented for the RefactorIT plug-in for Eclipse LOC Total Lines of Code LOC/ Source Lines of Code SLOC / Effective Lines of Code ELOC The Total Lines of Code metric counts all lines regardless of whether they contain code, comments, or white space. If a class exceeds 1000 lines, it is advisable to split up the class and use delegation. RefactorIT calculates LOC as follows: Method body lines are only counted for a method; class and interface body lines are only counted for a class or interface; lines of all source files belonging to a package are counted for the package. The implications are: Method declarations and Javadoc comments are not counted on the method level. They are counted on the class / interface and package levels. Class or interface declarations and Javadoc comments are not counted on the class / interface level. They are counted on the package level. 2/11/2009 Dr Andy Brooks 7
8 LOC for the class containing the code below is incremented by 17 due to the code lines labelled c and m. LOC for the broadcast method itself is 9 (lines labelled m): c /** c * Sends broadcast message c * c <true> if message successfully sent; c * <false> otherwise. c */ c public boolean broadcast(message message) { m // Sends broadcast message m // to all registered clients m if (!istransportavailable()) { m return false; // Message not sent m } m m gettransport().broadcast(message); m m return true; // Message sent c } 2/11/2009 Dr Andy Brooks 8
9 as documented for the RefactorIT plug-in for Eclipse Comment Lines of Code (CLOC) CLOC counts all lines that contain regular comments and Javadoc comments where empty lines within both kinds of comments are also counted. Furthermore, RefactorIT consider the following factors in the CLOC calculation: Only comments inside a method body are counted for a method. Only regular comments and Javadoc comments inside a class or interface body are counted for classes and interfaces. Regular comments and Javadoc comments of all source files belonging to a package are counted for the package. The implications are: Javadoc comments for a method are not counted on the method level. They are counted on the class / interface and package levels. Javadoc comments for a class or interface are not counted on the class or interface level. They are counted on the package level. 2/11/2009 Dr Andy Brooks 9
10 RefactorIT recommends a commenting of at least 20% of the code and a maximum of 40%. In the following example we have a broadcast method where CLOC is 4 (lines labelled m) and totally for this class CLOC is incremented by 10 (lines labelled c and m): c /** c * Sends broadcast message c * c <true> if message successfully sent; c * <false> otherwise. c */ public boolean broadcast(message message) { m m // Sends broadcast message // to all registered clients if (!istransportavailable()) { m return false; // Message not sent } gettransport().broadcast(message); m return true; // Message sent } 2/11/2009 Dr Andy Brooks 10
11 as documented for the RefactorIT plug-in for Eclipse þétta athugasemda Density of Comments (DC) Density of Comments (DC) provides the ratio of comment lines (CLOC) to all lines (LOC). Hence, DC = CLOC / LOC. The density of comments value will be between 0.0 and 1.0 and it can be used as a quality indicator to see how much of the code is commented. RefactorIT recommends a commenting of at least 20% of the code and a maximum of 40%. Thus, the lower limit for density of comments is 0.2 and the upper recommended value is 0.4. Confer with CLOC and LOC to see how RefactorIT evaluates these values. 2/11/2009 Dr Andy Brooks 11
12 as documented for the RefactorIT plug-in for Eclipse Response for Class (RFC) The RFC is the "Number of Distinct Methods and Constructors invoked by a Class." The response set of a class is the set of all methods and constructors that can be invoked as a result of a message sent to an object of the class. This set includes the methods in the class, inheritance hierarchy, and methods that can be invoked on other objects. The RFC for a class should usually not exceed 50 although it is acceptable to have a RFC up to 100. RefactorIT recommends a default threshold from 0 to 50 for a class. If the RFC for a class is large, it means that there is a high complexity. For example, if a method call on a class can result in a large number of different method calls on the target and other classes. It can be hard to test the behaviour of the class and to debug problems since comprehending class behaviour requires a deep understanding of the potential interactions that objects of the class can have with the rest of the system. 2/11/2009 Dr Andy Brooks 12
13 as documented for the RefactorIT plug-in for Eclipse Depth in Tree (DIT) In Java, all classes have java.lang.object as their ultimate super class, which is defined to have a depth of 0. So a class that immediately extends java.lang.object has a metric value of 1. Any of its subclasses will have a value of 2 and so on. DIT is defined in RefactorIT for classes and interfaces as follows: All interface types have a depth of 1 The class java.lang.object has a depth of 0 All other classes have a depth of 1 plus the depth of their super class The deeper a class is in the hierarchy, the greater the number of methods and state variables it is likely to inherit, which makes it more difficult to predict its behaviour. It becomes more specialised and it can be hard to understand a system with many inheritance layers. However, there is a greater potential reuse of inherited methods. If there is a majority of DIT values bellow 2, it may represent poor exploitation of the advantages of OO design and inheritance. RefactorIT recommends a maximum DIT value of 5 since deeper trees constitute greater design complexity as more methods and classes are involved. 2/11/2009 Dr Andy Brooks 13
14 DIT /11/2009 Dr Andy Brooks 14
15 as documented for the RefactorIT plug-in for Eclipse The Dependency Inversion Principle (DIP) The DIP metric calculates the ratio of dependencies that have abstract classes or interfaces as a target to the total amount of dependencies for a class. DIP ranges from 0.0 to 1.0 where 1.0 means that all of the dependencies, the analysed class has, depend on abstract classes or interfaces. Although the DIP states that all dependencies in a program should have an abstract class or an interface as a target, this is usually not going to be the case. Somebody has to create the instances of concrete classes and modules that will depend on these classes. If a concrete class is not going to change much then it is more or less harmless to depend on it. 2/11/2009 Dr Andy Brooks 15
16 <<extends>> <<depends on>> <<depends on>> AirportDialog is an abstract class. Airport and AirportException are concrete classes. The DIP metric value is 1/3 = 0,33. 2/11/2009 Dr Andy Brooks 16
17 as documented for the RefactorIT plug-in for Eclipse LOCM Lack of Cohesion of Methods cohesion/samfesta This is a measure for the cohesiveness of a class (calculated using the Henderson-Sellers method, LOCM-HS). Henderson-Sellers method If (m(a) is the number of methods accessing an attribute A, calculate the average of m(a) for all attributes, subtract the number of methods m and divide the result by (1-m). A low value indicates a cohesive class and a value close to 1 indicates a lack of cohesion and suggests the class might better be split into a number of (sub)classes. 2/11/2009 Dr Andy Brooks 17
18 LOCM HS m( A) m (1 m) Suppose a class has 9 attributes and 9 methods. If each attribute is accessed by only one method, LOCM-HS = 1 If each attribute is accessed on average by five methods, LOCM-HS = 0,5 If each attribute is accessed on average by all nine methods, LOCM-HS = 0 2/11/2009 Dr Andy Brooks 18
19 as documented for the RefactorIT plug-in for Eclipse McCabe's Cyclomatic Complexity (V(G) also known as CC) Introduced by Thomas McCabe in 1976, cyclomatic complexity measures the number of linearlyindependent paths through a program module. This metric is computed as follows: Each function has a base complexity of 1 Each atomic condition adds 1 Each case block of switch adds 1 If V(G) is larger than 10, consider to split the method up. The more complex the program the harder it is to test and comprehend. This metric can additionally be interpreted as the cost of producing test cases for the code. 2/11/2009 Dr Andy Brooks 19
20 // in the beginning: V(G) = 1 // +2 conditions, V(G) = 3: if ((i > 13) (i < 15)) { System.out.println("Hello, there!"); // +3 conditions, V(G) = 6: while ((i > 0) ((i > 100) && (i < 999))) {... } } do not count short-circuit evaluation & // +1 condition, V(G) = 7 i = (i == 10)? 0 : 1; switch(a) { case 1: // +1, V(G) = 8 break; case 2: // +1, V(G) = 9 case 3: // +1, V(G) = 10 break; default: throw new RuntimeException("a = " + a); } 2/11/2009 Dr Andy Brooks 20
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 informationCHAPTER 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 informationQuantify the project. Better Estimates. Resolve Software crises
Quantify the project Quantifying schedule, performance,work effort, project status Helps software to be compared and evaluated Better Estimates Use the measure of your current performance to improve your
More informationEffective 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 informationMetrics 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 informationRisk-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 informationARiSA First Contact Analysis
ARiSA First Contact Analysis Applied Research In System Analysis - ARiSA You cannot control what you cannot measure Tom DeMarco Software Grail Version 1.3 Programming Language Java 1.4 Date 2 nd of December,
More informationObject 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 informationA 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 informationSoftware 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 informationIndex. Index. More information. block statements 66 y 107 Boolean 107 break 55, 68 built-in types 107
A abbreviations 17 abstract class 105 abstract data types 105 abstract method 105 abstract types 105 abstraction 92, 105 access level 37 package 114 private 115 protected 115 public 115 accessors 24, 105
More informationMeasuring 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 informationUsing 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 informationCHAPTER 4 OBJECT ORIENTED COMPLEXITY METRICS MODEL
64 CHAPTER 4 OBJECT ORIENTED COMPLEXITY METRICS MODEL 4.1 INTRODUCTION Customers measure the aspects of the final product to determine whether it meets the requirements and provides sufficient quality.
More informationClass 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 informationJava Overview An introduction to the Java Programming Language
Java Overview An introduction to the Java Programming Language Produced by: Eamonn de Leastar (edeleastar@wit.ie) Dr. Siobhan Drohan (sdrohan@wit.ie) Department of Computing and Mathematics http://www.wit.ie/
More informationWhat are Metrics?! Functions, that assign a precise numerical value to. Detecting Design Problems using Metrics
Detecting Design Problems using Metrics What are Metrics?! Functions, that assign a precise numerical value to! Products (Software)! Resources (Staff, Tools, Hardware)! Processes (Software development).
More informationReusability 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 informationVisualizing 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 informationJAVA MOCK TEST JAVA MOCK TEST II
http://www.tutorialspoint.com JAVA MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to Java Framework. You can download these sample mock tests at your
More informationAnalysis 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 informationBy: Eng. Mohammed T. Abo Alroos
By: Eng. Mohammed T. Abo Alroos Use Case Points The formula for calculating UCP is composed of three variables: 1. Unadjusted Use Case Points (UUCP), which measures the complexity of the functional requirements
More informationObject 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 information2IS55 Software Evolution. Software metrics (2) Alexander Serebrenik
2IS55 Software Evolution Software metrics (2) Alexander Serebrenik Administration Assignment 5: Deadline: May 22 1-2 students Next week NO CLASS Next class May 15 / SET / W&I 2-5-2012 PAGE 1 Sources /
More informationKostis 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 informationAn 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 informationMeasuring 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 informationMeasurement. Joseph Spring. Based on Software Metrics by Fenton and Pfleeger
Measurement Joseph Spring Based on Software Metrics by Fenton and Pfleeger Discussion Measurement Direct and Indirect Measurement Measurements met so far Measurement Scales and Types of Scale Measurement
More informationConstruction: High quality code for programming in the large
Construction: High quality code for programming in the large Paul Jackson School of Informatics University of Edinburgh What is high quality code? High quality code does what it is supposed to do......
More informationMETRIC ATTITUDE PLUG-IN FOR ECLIPSE USER GUIDE
METRIC ATTITUDE PLUG-IN FOR ECLIPSE USER GUIDE Metric Attitude Pag. 0 CONTENTS CONTENTS... 1 INTRODUCTION... 2 ECLIPSE... 2 1. INSTALLING ECLIPS FOR WINDOWS SYSTEM... 3 2. INSTALLING METRIC ATTITUDE...
More informationStatic Metrics. Feature Brief
SOFTWARE QUALITY ASSURANCE TOOLS & TECHNOLOGY PROFESSIONAL SERVICES ACADEMY P a g e 1 Feature Brief Static Metrics Cantata provides a full and unique suite of intelligent testing capabilities for the efficient
More informationTaxonomy 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 informationInvestigation 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 informationResearch 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 informationIntroduction 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 informationChapter 3. Interactive Software Development Assistants Logic-based Software Representation. Logic-based Software Analysis
Advanced Logic Programming Summer semester 2012 R O O T S Chapter 3. Logic-based Analysis Interactive Development Assistants Logic-based Representation Logic-based Analysis Logic-based Transformation Motivation
More information16 Multiple Inheritance and Extending ADTs
Object-Oriented Design Lecture 16 CS 3500 Fall 2009 (Pucella) Tuesday, Nov 10, 2009 16 Multiple Inheritance and Extending ADTs We looked last time at inheritance and delegation as two ways to reuse implementation
More informationObject-oriented metrics 1
Advanced Object-Oriented Design Lecture 4 Object-oriented metrics Bartosz Walter 1. Motivation and goals 2. omplexity metrics 3. Metrics for Object-Oriented Design (MOOD suite)
More informationManagement. Software Quality. Dr. Stefan Wagner Technische Universität München. Garching 28 May 2010
Technische Universität München Software Quality Management Dr. Stefan Wagner Technische Universität München Garching 28 May 2010 Some of these slides were adapted from the tutorial "Clone Detection in
More informationSoftware 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 information17 Multiple Inheritance and ADT Extensions
Object-Oriented Design Lecture 17 CS 3500 Spring 2010 (Pucella) Friday, Mar 19, 2010 17 Multiple Inheritance and ADT Extensions We looked last time at inheritance and delegation as two ways to reuse implementation
More informationDepth-wise Hashing with Deep Hashing Structures. A two dimensional representation of a Deep Table
Proceedings of Student Research Day, CSIS, Pace University, May 9th, 2003 Depth-wise Hashing with Deep Hashing Structures Edward Capriolo Abstract The objective of this research is to implement a variation
More informationINNOVATIVE ENGINEERING TECHNIQUE OF OBJECT ORIENTED SOFTWARE DEVELOPMENT
Shrivastava etal.//vol. 3, /41-46 INNOVATIVE ENGINEERING TECHNIQUE OF OBJECT ORIENTED SOFTWARE DEVELOPMENT Divya Prakash Shrivastava* & R.C. Jain** Received: 26th Aug. Revised: 15th Nov.. Accepted: th
More informationSoftware Testing Fundamentals. Software Testing Techniques. Information Flow in Testing. Testing Objectives
Software Testing Fundamentals Software Testing Techniques Peter Lo Software Testing is a critical element of software quality assurance and represents the ultimate review of specification, design and coding.
More informationCS111: PROGRAMMING LANGUAGE II
1 CS111: PROGRAMMING LANGUAGE II Computer Science Department Lecture 8(a): Abstract Classes Lecture Contents 2 Abstract base classes Concrete classes Dr. Amal Khalifa, 2014 Abstract Classes and Methods
More informationPrincipal 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 informationEffectiveness 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 informationM301: Software Systems & their Development. Unit 4: Inheritance, Composition and Polymorphism
Block 1: Introduction to Java Unit 4: Inheritance, Composition and Polymorphism Aims of the unit: Study and use the Java mechanisms that support reuse, in particular, inheritance and composition; Analyze
More informationObject-Oriented Concepts and Design Principles
Object-Oriented Concepts and Design Principles Signature Specifying an object operation or method involves declaring its name, the objects it takes as parameters and its return value. Known as an operation
More information[Sample] Quality Report: <<project>>
Client: Document no: Author: XYZ-001-D01-A Byran Wills-Heath [Sample] Overall Score Habitability Scalability Reliability BLUEFRUIT is a Registered Trade Mark of Absolute Software Ltd Registered
More informationWeiss Chapter 1 terminology (parenthesized numbers are page numbers)
Weiss Chapter 1 terminology (parenthesized numbers are page numbers) assignment operators In Java, used to alter the value of a variable. These operators include =, +=, -=, *=, and /=. (9) autoincrement
More informationER E P S I M S USING OO METRICS AND RIGI TO EVALUATE JAVA SOFTWARE TARJA SYST A AND PING YU DEPARTMENT OF COMPUTER SCIENCE UNIVERSITY OF TAMPERE
N S ER E P S I M TA S UN A I S I T VER USING OO METRICS AND RIGI TO EVALUATE JAVA SOFTWARE TARJA SYST A AND PING YU DEPARTMENT OF COMPUTER SCIENCE UNIVERSITY OF TAMPERE REPORT A-1999-9 UNIVERSITY OF TAMPERE
More informationProcedia 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 information17.11 Bean Rules persistent
17.10 Java Beans Java beans are a framework for creating components in Java. AWT and Swing packages are built within this framework Made to fit in with graphic development environments such as Jbuilder
More informationLecture 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 informationJ2EE 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 informationHugbúnaðarverkefni 2 - Static Analysis
Time to do some refactoring of my Java. Hugbúnaðarverkefni 2 - Static Analysis Fyrirlestrar 7 & 8 A Refactoring Micro-Example 15/01/2006 Dr Andy Brooks 1 Case Study Dæmisaga Reference A Refactoring Micro-Example,
More informationEINDHOVEN UNIVERSITY OF TECHNOLOGY
EINDHOVEN UNIVERSITY OF TECHNOLOGY Department of Mathematics & Computer Science Exam Programming Methods, 2IP15, Wednesday 17 April 2013, 09:00 12:00 TU/e THIS IS THE EXAMINER S COPY WITH (POSSIBLY INCOMPLETE)
More informationCSE115 / CSE503 Introduction to Computer Science I. Dr. Carl Alphonce 343 Davis Hall Office hours:
CSE115 / CSE503 Introduction to Computer Science I Dr. Carl Alphonce 343 Davis Hall alphonce@buffalo.edu Office hours: Thursday 12:00 PM 2:00 PM Friday 8:30 AM 10:30 AM OR request appointment via e-mail
More informationStudent Performance Q&A:
Student Performance Q&A: 2004 AP Computer Science A Free-Response Questions The following comments on the 2004 free-response questions for AP Computer Science A were written by the Chief Reader, Chris
More informationAUTOMATION AND EVALUATION OF SOFTWARE FAULT PREDICTION
School of Innovation Design and Engineering Västerås, Sweden Thesis for the Degree of Master of Science in Engineering - Software Engineering 15.0 credits AUTOMATION AND EVALUATION OF SOFTWARE FAULT PREDICTION
More informationBCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 5 Diploma in IT OBJECT ORIENTED PROGRAMMING
BCS THE CHARTERED INSTITUTE FOR IT BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 5 Diploma in IT OBJECT ORIENTED PROGRAMMING Wednesady 23 rd March 2016 Afternoon Answer any FOUR questions out of SIX. All
More information4 CoffeeStrainer Virtues and Limitations
In this chapter, we explain CoffeeStrainer s virtues and limitations and the design decisions that led to them. To illustrate the points we want to make, we contrast CoffeeStrainer with a hypothetical,
More informationINHERITANCE AND TYPE HIERARCHIES. Prof. Chris Jermaine
INHERITANCE AND TYPE HIERARCHIES Prof. Chris Jermaine cmj4@cs.rice.edu 1 I ve Argued OO Is About Abstraction Type hierarchies: methodology to provide for abstraction in OOP 2 I ve Argued OO Is About Abstraction
More informationRefactoring Practice: How it is and How it Should be Supported
Refactoring Practice: How it is and How it Should be Supported Zhenchang Xing and EleniStroulia Presented by: Sultan Almaghthawi 1 Outline Main Idea Related Works/Literature Alignment Overview of the Case
More informationContents. I. Classes, Superclasses, and Subclasses. Topic 04 - Inheritance
Contents Topic 04 - Inheritance I. Classes, Superclasses, and Subclasses - Inheritance Hierarchies Controlling Access to Members (public, no modifier, private, protected) Calling constructors of superclass
More information2IS55 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 informationInheritance and Polymorphism
Object Oriented Programming Designed and Presented by Dr. Ayman Elshenawy Elsefy Dept. of Systems & Computer Eng.. Al-Azhar University Website: eaymanelshenawy.wordpress.com Email : eaymanelshenawy@azhar.edu.eg
More informationOn 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 informationTHE ADHERENCE OF OPEN SOURCE JAVA PROGRAMMERS TO STANDARD CODING PRACTICES
THE ADHERENCE OF OPEN SOURCE JAVA PROGRAMMERS TO STANDARD CODING PRACTICES Mahmoud O. Elish Department of Computer Science George Mason University Fairfax VA 223-44 USA melish@gmu.edu ABSTRACT The use
More informationA 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 informationCSC207 Week 3. Larry Zhang
CSC207 Week 3 Larry Zhang 1 Announcements Readings will be posted before the lecture Lab 1 marks available in your repo 1 point for creating the correct project. 1 point for creating the correct classes.
More informationInheritance (Part 5) Odds and ends
Inheritance (Part 5) Odds and ends 1 Static Methods and Inheritance there is a significant difference between calling a static method and calling a non-static method when dealing with inheritance there
More informationEvolutionary Decision Trees and Software Metrics for Module Defects Identification
World Academy of Science, Engineering and Technology 38 008 Evolutionary Decision Trees and Software Metrics for Module Defects Identification Monica Chiş Abstract Software metric is a measure of some
More informationApplication 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 informationPREDICTION 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 informationReviewing for the Midterm Covers chapters 1 to 5, 7 to 9. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013
Reviewing for the Midterm Covers chapters 1 to 5, 7 to 9 Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013 2 Things to Review Review the Class Slides: Key Things to Take Away Do you understand
More informationException Handling Generics. Amit Gupta
Exception Handling Generics Amit Gupta Announcements Project 2 deadline 18 th Feb 9 pm. TA Consulting hours Mon Thurs B146 6 9 pm Exam 1 : Feb 15 4:30 5:20 pm Project 1 grading Exception Handling Computer
More informationOBJECT ORIENTED PROGRAMMING. Abstract Class And Interface
OBJECT ORIENTED PROGRAMMING Abstract Class And Interface by Dr. Nor Saradatul Akmar Zulkifli Faculty of Computer Systems & Software Engineering saradatulakmar@ump.edu.my OER Object Oriented Programming
More informationClasses, interfaces, & documentation. Review of basic building blocks
Classes, interfaces, & documentation Review of basic building blocks Objects Data structures literally, storage containers for data constitute object knowledge or state Operations an object can perform
More informationDesign 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 informationCMSC 132: Object-Oriented Programming II
CMSC 132: Object-Oriented Programming II Java Support for OOP Department of Computer Science University of Maryland, College Park Object Oriented Programming (OOP) OO Principles Abstraction Encapsulation
More informationOO Package Design Principles
4 4.1 Packages Introduction 4.2 Packages in UML 4.3 Three Package Design Principles 4.4 Development Environment (Three more principles) 4.5 Summary 1 4.1 Packages Introduction What is a package? Classes
More informationInheritance. Inheritance Reserved word protected Reserved word super Overriding methods Class Hierarchies Reading for this lecture: L&L
Inheritance Inheritance Reserved word protected Reserved word super Overriding methods Class Hierarchies Reading for this lecture: L&L 9.1 9.4 1 Inheritance Inheritance allows a software developer to derive
More informationObject-Oriented Design
Object-Oriented Design Lecturer: Raman Ramsin Lecture 15: Object-Oriented Principles 1 Open Closed Principle (OCP) Classes should be open for extension but closed for modification. OCP states that we should
More informationWhy Design by Contract! CS 619 Introduction to OO Design and Development. Design by Contract. Fall 2012
Why Design by Contract What s the difference with Testing? CS 619 Introduction to OO Design and Development Design by Contract Fall 2012 Testing tries to diagnose (and cure) defects after the facts. Design
More informationComparing Software Abstractions Baby Steps. Michael Hansen Lab Lunch Talk 2011
Comparing Software Abstractions Baby Steps Michael Hansen Lab Lunch Talk 2011 Comparing Abstractions Need objective comparison method Libraries (OpenGL vs. Direct3D) Language constructs ( -expressions,
More informationProgramming II (CS300)
1 Programming II (CS300) Chapter 05: Inheritance and Interfaces MOUNA KACEM mouna@cs.wisc.edu Spring 2018 Inheritance and Interfaces 2 Introduction Inheritance and Class Hierarchy Polymorphism Abstract
More informationJava Programming with Eclipse
One Introduction to Java 2 Usage of Java 3 Structure of Java 4 Flexibility of Java Programming 5 Using the Eclipse Software 6 Two Running Java in Eclipse 7 Introduction 8 Using Eclipse 9 Workspace Launcher
More informationHow 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 informationCode Reuse: Inheritance
Object-Oriented Design Lecture 14 CSU 370 Fall 2008 (Pucella) Tuesday, Nov 4, 2008 Code Reuse: Inheritance Recall the Point ADT we talked about in Lecture 8: The Point ADT: public static Point make (int,
More information6.001 Notes: Section 6.1
6.001 Notes: Section 6.1 Slide 6.1.1 When we first starting talking about Scheme expressions, you may recall we said that (almost) every Scheme expression had three components, a syntax (legal ways of
More informationObject 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 informationJava Programming Tutorial 1
Java Programming Tutorial 1 Every programming language has two defining characteristics: Syntax Semantics Programming Writing code with good style also provides the following benefits: It improves the
More informationProgram development plan
Appendix A Program development plan If you are spending a lot of time debugging, it is probably because you do not have an effective program development plan. A typical, bad program development plan goes
More informationLab 2: Object-Oriented Design 12:00 PM, Jan 31, 2018
CS18 Integrated Introduction to Computer Science Fisler, Nelson Contents Lab 2: Object-Oriented Design 12:00 PM, Jan 31, 2018 1 Terminology 1 2 Class Hierarchy Diagrams 2 2.1 An Example: Animals...................................
More informationSoftware Metrics for Package Remodularisation
Software Metrics for Package Remodularisation (Des métriques logicielles pour la remodularisation de packages) Deliverable: 1.1 - Cutter ANR 2010 BLAN 0219 02 Stéphane Ducasse, Nicolas Anquetil, Usman
More informationTesting. Unit, integration, regression, validation, system. OO Testing techniques Application of traditional techniques to OO software
Testing Basic ideas and principles Traditional testing strategies Unit, integration, regression, validation, system OO Testing techniques Application of traditional techniques to OO software Testing-11,
More informationVragen. 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 informationReferences: internet notes; Bertrand Meyer, Object-Oriented Software Construction; 10/14/2004 1
References: internet notes; Bertrand Meyer, Object-Oriented Software Construction; 10/14/2004 1 Assertions Statements about input to a routine or state of a class Have two primary roles As documentation,
More information