SE 450 Software Processes & Product Metrics Activity Metrics.

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

Configuration Management
SOFTWARE TESTING. Software Testing Principles Types of software tests Test planning Test Development Test Execution and Reporting Test tools and Methods.
Automated Software Testing: Test Execution and Review Amritha Muralidharan (axm16u)
Chapter 4 Quality Assurance in Context
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.
Swami NatarajanJune 10, 2015 RIT Software Engineering Activity Metrics (book ch 4.3, 10, 11, 12)
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.
SE 450 Software Processes & Product Metrics Reliability Engineering.
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 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.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
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.
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.
Lecture 17 Software Metrics
Software Quality Chapter Software Quality  How can you tell if software has high quality?  How can we measure the quality of software?  How.
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
Software System Engineering: A tutorial
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.
1 Software testing. 2 Testing Objectives Testing is a process of executing a program with the intent of finding an error. A good test case is in that.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
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.
Software Quality Metrics
©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 12: Software Inspection Omar Meqdadi SE 3860 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Daniel Liu & Yigal Darsa - Presentation Early Estimation of Software Quality Using In-Process Testing Metrics: A Controlled Case Study Presenters: Yigal.
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 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.
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.
Testing Integral part of the software development process.
Swami NatarajanOctober 1, 2016 RIT Software Engineering Software Metrics Overview.
Regression Testing with its types
Software Metrics 1.
Chapter 10: Testing and Quality Assurance
Presentation transcript:

SE 450 Software Processes & Product Metrics Activity Metrics

SE 450 Software Processes & Product Metrics 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. Many metrics can be generated by tools, and don’t require additional effort or process changes. Cheap ways to get additional some useful feedback.

SE 450 Software Processes & Product Metrics Requirements Requirements volatility: Average # of changes per requirement. Requirements changes grouped by source. Requirements density: Number of requirements per function point or KLOC. Indicator of granularity of requirements capture. Number of variations per use case: Indicator of coverage of exception situations. Requirements defects classification.

SE 450 Software Processes & Product Metrics Requirements Defects Classification Can classify requirements defects: Requirements discovery: missed requirements, misunderstood requirements. Indicators of elicitation effectiveness. Requirements errors: consistency, completeness, specification errors. Effectiveness of requirements 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

SE 450 Software Processes & Product Metrics 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!

SE 450 Software Processes & Product Metrics Object-Oriented 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.

SE 450 Software Processes & Product Metrics 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?

SE 450 Software Processes & Product Metrics 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 development. Most practitioners have not caught up with this yet.

SE 450 Software Processes & Product Metrics Test Metrics: Coverage Black box: Requirements coverage: test cases per requirement. Works with use cases / user stories / numbered requirement. Equivalence class coverage. Extent of coverage of equiv classes of input parameters. Combinations of equiv class coverage. This is the real challenge. Glass box: Function coverage Statement coverage Path coverage Tools that automatically generate coverage statistics.

SE 450 Software Processes & Product Metrics 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.

SE 450 Software Processes & Product Metrics 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.

SE 450 Software Processes & Product Metrics Configuration Management Defect classification can provide insight into sources of CM problems. Also, “Configuration Status Accounting” (CSA): Tool-based cross-check of expected progress. As project moves through different phases, would expect different documents to be generated / modified. CSA reports which files being modified Powerful, advanced technique. 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.

SE 450 Software Processes & Product Metrics 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.

SE 450 Software Processes & Product Metrics 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.

SE 450 Software Processes & Product Metrics 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.