Static Software Metrics Tool

Slides:



Advertisements
Similar presentations
David Woo (dxw07u).  What is “White Box Testing”  Data Processing and Calculation Correctness Tests  Correctness Tests:  Path Coverage  Line Coverage.
Advertisements

Figures – Chapter 24.
Software engineering for real-time systems
Software Metrics II Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
Software metrics Selected key concepts. Introduction Motivation:  Management:  Appraisal  Assurance  Control  Improvement  Research:  Cause-effect.
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.
28/06/2015Dr Andy Brooks1 MSc Software Maintenance MS Viðhald hugbúnaðar Fyrirlestur 42 Maintainability Index Revisited.
3. Software product quality metrics The quality of a product: -the “totality of characteristics that bear on its ability to satisfy stated or implied needs”.
Testing Dr. Andrew Wallace PhD BEng(hons) EurIng
Cyclomatic Complexity Dan Fleck Fall 2009 Dan Fleck Fall 2009.
University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec22 1 Lecture 22: Software Measurement Basics of software measurement.
IMaGix 4D Presented by: Elliott Harrington Derek Larson Matt Heinzelman Cheneng Vang.
Software Quality Applied throughout SW Engineering Process Encompasses ▫ Analysis, design, coding, testing, tools ▫ Formal tech reviews ▫ Multi-tiered.
CSC 480 Software Engineering Lecture 14 Oct 16, 2002.
By: TARUN MEHROTRA 12MCMB11.  More time is spent maintaining existing software than in developing new code.  Resources in M=3*(Resources in D)  Metrics.
Product Metrics An overview. What are metrics? “ A quantitative measure of the degree to which a system, component, or process possesses a given attribute.”
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Lecture 23 Instructor Paulo Alencar.
OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties.
Software Quality Metrics
CSC 480 Software Engineering Lecture 15 Oct 21, 2002.
Software Metrics Cmpe 550 Fall Software Metrics.
CSc 461/561 Information Systems Engineering Lecture 5 – Software Metrics.
Software Metrics.
Software Engineering 2004 Jyrki Nummenmaa 1 SOFTWARE PRODUCT QUALITY Today: - Software quality - Quality Components - ”Good” software properties.
Design - programming Cmpe 450 Fall Dynamic Analysis Software quality Design carefully from the start Simple and clean Fewer errors Finding errors.
CSC 480 Software Engineering Testing - I. Plan project Integrate & test system Analyze requirements Design Maintain Test units Implement Software Engineering.
Software Engineering – University of Tampere, CS DepartmentJyrki Nummenmaa SOFTWARE PRODUCT QUALITY Today: - Software quality -
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 Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Fall 2014 (both sections) Assignment #1 Feedback Elapsed time (How long): –Ranged from 45 minutes to 10 days –About 1/4 said less than 1 day –About 1/2.
Software Metric Tools Joel Keyser, Jacob Napp, Carey Norslien, Stephen Owings, Tristan Paynter.
Survey of Tools to Support Safe Adaptation with Validation Alain Esteva-Ramirez School of Computing and Information Sciences Florida International University.
Metrics "A science is as mature as its measurement tools."
Object Oriented Metrics
Cyclomatic complexity (or conditional complexity) is a software metric (measurement). Its gives the number of indepented paths through strongly connected.
Martin Hoffman Monica Hoffman. Goal To determine if a correlation exists between specified internal and dependability (external) metrics.
CS223: Software Engineering Lecture 21: Unit Testing Metric.
by C.A. Conley and L. Sproull
Metrics of Software Quality
Cyclomatic Complexity
Assessment of Geant4 Software Quality
Software Metrics 1.
Software Testing.
Course Notes Set 12: Object-Oriented Metrics
CPSC 873 John D. McGregor GQM.
Object-Oriented Metrics
Design Metrics Software Engineering Fall 2003
Celia Chen1, Lin Shi2, Kamonphop Srisopha1
Design Metrics Software Engineering Fall 2003
Lecture 17 Software Metrics
Cyclomatic Complexity
Cyclomatic Complexity
Objects First with Java
Software Testing (Lecture 11-a)
Cyclomatic Complexity
CS223: Software Engineering
Human Complexity of Software
Halstead software science measures and other metrics for source code
Chapter 1 Introduction(1.1)
Mid Term II Review.
Cyclomatic Complexity
Presented by Trey Brumley and Ryan Carter
In the Senior Design Center
Chapter 19 Technical Metrics for Software
CS5103 Software Engineering
Software Metrics SAD ::: Fall 2015 Sabbir Muhammad Saleh.
Software Metrics using EiffelStudio
Coupling Interaction: It occurs due to methods of a class invoking methods of other classes. Component Coupling: refers to interaction between two classes.
Chapter 7 Software Testing.
SeeSoft A Visualization Tool..
Presentation transcript:

Static Software Metrics Tool For Java Course Project CS 6367 Fall 2016 Aaron Leonard

Why software metrics? Relation between software quality, measurements, and metrics Static Java software metrics tool Supported metrics Unsupported metrics Final plan Questions

What/Why software metrics? Software quality, measurements, and metrics Metrics are how to measure quality Can be applied to project management

Software quality, measurements, and metrics How good or how bad is my software Many conflicting definitions We can define attributes of quality and try to measure them Complexity Maintainability Presence of errors

Software quality, measurements, and metrics Quantitative indication of some attribute we’re trying to measure Complexity How long to understand this code? Relative to another? Scale of 1 to 10? Number of hours? Maintainability How hard is it to add some feature / fix some bug? Presence of errors Number of bugs

Software quality, measurements, and metrics Quantitative value of some measurement Where measurement indicates some attribute we're really interested in Give a concrete value that really is observed Some metrics may apply to more than one measurement Some experts may disagree on the usefulness of a given metric

Java software metrics tool Static software metrics Just need to analyse the program source code off-line Using ASM framework As opposed to metrics derived from runtime behavior Time executing, memory, CPU load, exceptions thrown, etc… Test suite quality (you have to actually run it) Code coverage (studied much in the class)

Supported metrics

Lines of code Baseline for many attributes Complexity Maintainability Number of errors Analogous to statement coverage in test suite metrics

Comments Presence of/lines of comment Related to maintainability

McCabe cyclomatic complexity Number of paths in the control flow graph Analogous to branch coverage in test suite metrics Higher value is “more complex”

Halstead metrics Based on number of operations and operands Measures Complexity Maintenance Number of bugs

Halstead volume Length = |operators| + |operands| Vocabulary = |distinct(operators)| + |distinct(operands)| Volume = Length * log(vocabulary) Amount of code written Larger for same lines of code implies more complex code

Halstead Effort, Time, Bugs Difficulty = distinct(operators)| / 2 * |operands| / |distinct(operands)| How hard the code is to understand Effort = Difficulty * Volume How hard is it to write the same code from scratch Time = Effort / 18 Value in seconds Bugs = Volume / 3000

Maintainability index Show maintainability on scale of 1 to 100 Composition of other metrics (171 - 5.2 ln(Halstead volume) - 0.23 * Cyclomatic complexity - 16.2 * ln(Lines of code)) * 100 / 171 Derivation Expert engineers rate software maintainability on scale of 1 to 100 Statistical analysis to combine the existing metrics to fit the expert opinion

Not supported Other complexity metrics Data flow Comment quality metrics Is the comment useful? Or noise Object Oriented design metrics Design reusability Coupling Cohesion

Final implementation plan Given a java .class directory, create an HTML report of the supported metrics Report would show break down by each package, class, and method All supported metrics are implemented But the report generation is not finished Finish final report write up

Questions / comments