Swami NatarajanJune 10, 2015 RIT Software Engineering Activity Metrics (book ch 4.3, 10, 11, 12)

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

Configuration Management
Testing and Quality Assurance
Automated Software Testing: Test Execution and Review Amritha Muralidharan (axm16u)
1 In-Process Metrics for Software Testing Kan Ch 10 Steve Chenoweth, RHIT Left – In materials testing, the goal always is to break it! That’s how you know.
SBSE Course 3. EA applications to SE Analysis Design Implementation Testing Reference: Evolutionary Computing in Search-Based Software Engineering Leo.
Figures – Chapter 24.
Software Quality Engineering Roadmap
Object-Oriented Analysis and Design Lecture 10 Implementation (from Schach, “O-O and Classical Software Engineering”)
Software Metrics II Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
Swami NatarajanJune 17, 2015 RIT Software Engineering Reliability Engineering.
Introduction to Quality Engineering
Defect Removal Metrics
SWE Introduction to Software Engineering
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
SE 450 Software Processes & Product Metrics Software Metrics Overview.
RIT Software Engineering
SE 450 Software Processes & Product Metrics 1 Defect Removal.
SE 450 Software Processes & Product Metrics Activity Metrics.
SE 555 Software Requirements & Specification Requirements Validation.
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
EXAMPLES OF METRICS PROGRAMS
Software Process and Product Metrics
Comp 587 Parker Li Bobby Kolski. Automated testing tools assist software engineers to gauge the quality of software by automating the mechanical aspects.
Chapter 20: Defect Classification and Analysis  General Types of Defect Analyses.  ODC: Orthogonal Defect Classification.  Analysis of ODC Data.
University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec22 1 Lecture 22: Software Measurement Basics of software measurement.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
Software Quality Chapter Software Quality  How can you tell if software has high quality?  How can we measure the quality of software?  How.
Quality Planning & Defect Estimation
Cmpe 589 Spring Software Quality Metrics Product  product attributes –Size, complexity, design features, performance, quality level Process  Used.
CPIS 357 Software Quality & Testing
Prologue: The Software Process. Main Phases of Software Process 1. Requirements Analysis (answers “WHAT?”) Specifying what the application must do 2.
CS4723 Software Validation and Quality Assurance
Chapter 13: Implementation Phase 13.3 Good Programming Practice 13.6 Module Test Case Selection 13.7 Black-Box Module-Testing Techniques 13.8 Glass-Box.
Software Estimation and Function Point Analysis Presented by Craig Myers MBA 731 November 12, 2007.
Software Engineering Software Process and Project Metrics.
SWEN 5430 Software Metrics Slide 1 Quality Management u Managing the quality of the software process and products using Software Metrics.
Software Measurement & 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.”
1Software Measurement Advanced Software Engineering COM360 University of Sunderland © 2001.
1 Pop Quiz What is an Orthogonal Defect? Which is more precise: predictive models or management models? Why? Essay: Why are metrics and models an important.
OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
1 Metrics and lessons learned for OO projects Kan Ch 12 Steve Chenoweth, RHIT Above – New chapter, same Halstead. He also predicted various other project.
Software Reliability Research Pankaj Jalote Professor, CSE, IIT Kanpur, India.
Chapter 3: Software Project Management Metrics
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
Daniel Liu & Yigal Darsa - Presentation Early Estimation of Software Quality Using In-Process Testing Metrics: A Controlled Case Study Presenters: Yigal.
Software Quality Metrics III. Software Quality Metrics  The subset of metrics that focus on quality  Software quality metrics can be divided into: End-product.
Software Engineering Saeed Akhtar The University of Lahore.
1 Experience from Studies of Software Maintenance and Evolution Parastoo Mohagheghi Post doc, NTNU-IDI SEVO Seminar, 16 March 2006.
Chapter 24 객체지향 응용프로그램 테스팅 Testing Object-Oriented Applications 임현승 강원대학교 Revised from the slides by Roger S. Pressman and Bruce R. Maxim for the book.
1 Software Quality Engineering. 2 Quality Management Models –Tools for helping to monitor and manage the quality of software when it is under development.
Software Quality Assurance and Testing Fazal Rehman Shamil.
9/8/99Lecture 51 CIS 4251 / CIS 5930 SOFTWARE DEVELOPMENT Fall 1999 Sept. 8, 1999 Marge Holtsinger.
OOAD UNIT V B RAVINDER REDDY PROFESSOR DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING.
 Software Testing Software Testing  Characteristics of Testable Software Characteristics of Testable Software  A Testing Life Cycle A Testing Life.
T EST T OOLS U NIT VI This unit contains the overview of the test tools. Also prerequisites for applying these tools, tools selection and implementation.
Software Testing Sudipto Ghosh CS 406 Fall 99 November 23, 1999.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Tool Support for Testing Classify different types of test tools according to their purpose Explain the benefits of using test tools.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
Swami NatarajanOctober 1, 2016 RIT Software Engineering Software Metrics Overview.
Regression Testing with its types
Software Metrics 1.
Chapter 24 Testing Object-Oriented Applications
Chapter 19 Testing Object-Oriented Applications
Chapter 19 Testing Object-Oriented Applications
Chapter 10: Testing and Quality Assurance
Presentation transcript:

Swami NatarajanJune 10, 2015 RIT Software Engineering Activity Metrics (book ch 4.3, 10, 11, 12)

Swami NatarajanJune 10, 2015 RIT Software Engineering Overview Metrics that indicate how well we are performing various activities –Requirements, Design, Coding, Testing, Maintenance, Configuration Management, Quality Engineering Most of these are relatively crude indicators –Outlier values indicate possible problems –Good values not conclusive indicators of goodness –Most do not measure actual quality of output Just provide detection of some kinds of problems –Sort of like MS-Word’s green lines to indicate grammar problems Most metrics can be generated by tools, and don’t require additional effort or process changes –Cheap ways to get additional some useful feedback

Swami NatarajanJune 10, 2015 RIT Software Engineering Requirements Requirements volatility –Average # of req changes per requirement –Requirements changes grouped by source Requirements density –Number of requirements per function point / KLOC –Indicator of granularity of req capture Number of variations per use case –Indicator of coverage of exception situations Requirements defects classification (see next slide)

Swami NatarajanJune 10, 2015 RIT Software Engineering Req defects classification Can classify requirements defects –Req discovery: missed reqs, misunderstood reqs Indicators of elicitation effectiveness –Req errors: consistency, completeness, specification errors Effectiveness of req analysis & specification –Team-originated updates & enhancements Effectiveness of arch & solution design practices Effectiveness of specification (cases not considered) –Customer-originated updates Can’t control / opportunities for improving elicitation Can do this for any of the activities –Same concept as DRE

Swami NatarajanJune 10, 2015 RIT Software Engineering Design metrics Cohesion Coupling Fan-in / fan-out –Number of methods called by each method –Keep within control limits Low fan-out indicates too much hierarchy High fan-out indicates too many dependencies –Not absolute rules at all! Think about how controller/façade patterns affect this!

Swami NatarajanJune 10, 2015 RIT Software Engineering O-O Design Metrics - Average method size: less is good - Number of methods per class: within control limits - Number of instance variables per class: within limits - Class hierarchy nesting level: < 7 (guideline) - Number of subsystem/subsystem relationships –less is good? Control limits? - Number of class/class relationships within subsystem –high is good – indicates higher cohesion - Instance variable grouping among methods –may indicate possibility of splits

Swami NatarajanJune 10, 2015 RIT Software Engineering Code complexity metrics Comment density –Does not tell you quality of comments! Cyclomatic complexity –Number of operators / line, procedure –Tells you more about code writing style –Extreme values might indicate problems –Supposedly useful to estimate complexity of software and expected error rates Less applicable to O-O than procedural coding Software science –A set of equations that try to derive parametric relationships among different software parameters, and create estimates of “difficulty”, expected effort, faults etc. –Not really proven empirically, and of unclear value?

Swami NatarajanJune 10, 2015 RIT Software Engineering Historical perspective Much of the early work in metrics was on code complexity and design complexity –Of rather limited value, since it quickly gets prescriptive about coding practices, and its outputs are indicators at best Runs easily into various religious arguments Even now, this is what people think of when you mention metrics Metrics has now moved on to measuring –Customer view of product –Aspects that give you clearer insight into improving dev. Most practitioners have not caught up with this yet…

Swami NatarajanJune 10, 2015 RIT Software Engineering Test metrics: Coverage Black box –Requirements coverage: test cases per req Works with use cases / user stories / numbered req –Equivalence class coverage Extent of coverage of equiv classes of input params –Combinations of equiv class coverage This is the real challenge Glass box –Function coverage –Statement coverage –Path coverage Tools that automatically generate coverage stats

Swami NatarajanJune 10, 2015 RIT Software Engineering Test progress S-curve –Histogram of number of test cases attempted / successful Test defects arrival rate –Similar to reliability growth curves Test defect backlog curve –Cumulative defects not yet fixed –Shows effectiveness of resolving bugs Number of crashes over time –Similar to reliability curve, but not so formal

Swami NatarajanJune 10, 2015 RIT Software Engineering Maintenance Metrics Fix backlog –Age of open and closed problems –Backlog mgmt index: closed rate / arrivals rate –Fix response time: mean time from open to closed Fixing effectiveness: (1 - % of bad fixes) Fixing delinquency: % closed within acceptable response time

Swami NatarajanJune 10, 2015 RIT Software Engineering Configuration Management Defect classification can provide insight into sources of CM problems Also, “Configuration status accounting” (CSA) –Tool-based cross-check of expected progress progress –As project moves through different phases, would expect different docs to be generated / modified –CSA reports which files being modified If pre-configured which expected modifications, can flag discrepancies Can go deeper and look at extent of modifications Also useful to monitor which files modified during bug fixes, hence which regression tests need to run Powerful, advanced technique

Swami NatarajanJune 10, 2015 RIT Software Engineering Quality Engineering Assessment results –Red/yellow/green on practices in each area E.g. requirements, planning, CM etc. Classifying defects: defects related to “not following process” Shape of various curves –E.g. wide variations in estimation accuracy or defect injection rates might show non-uniform practices

Swami NatarajanJune 10, 2015 RIT Software Engineering In-Process metrics Metrics can help us determine whether projects went well and where problems are Some metrics only meaningful after the project is done e.g. productivity, cycletime Other metrics can be used to diagnose problems while project in progress, or to ensure that activities are done right –Most activity metrics are used that way –Defect density, even DRE defect removal patterns can be used that way, but need to be careful –Many metrics not fully available till end of project, but can monitor how the metric evolves as project proceeds Most in-process metrics are like dashboard gauges: out-of-range values indicate problems, but “good” values do not guarantee health

Swami NatarajanJune 10, 2015 RIT Software Engineering Summary Activity metrics help us to gauge quality of activities –Most are useful as indicators, but crude and inconclusive –Cheap to generate, so good benefit/cost –Don’t “work to the metrics”! People constantly coming up with new ones