1 Software Quality CIS 375 Bruce R. Maxim UM-Dearborn.

Slides:



Advertisements
Similar presentations
These courseware materials are to be used in conjunction with Software Engineering: A Practitioners Approach, 6/e and are provided with permission by R.S.
Advertisements

Design Concepts and Principles
Design Creative Process of transferring the problem into a solution
Developed by Reneta Barneva, SUNY Fredonia Product Metrics for Software.
Software Metrics II Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
R&D SDM 1 Metrics How to measure and assess software engineering? 2009 Theo Schouten.
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.
Technical Metrics for Software Chapter 18. Chapter Assistance -- Michael Jager January 9, Chapter Outline D Software Quality D A Framework.
OHT 3.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The need for comprehensive software quality requirements Classification.
The analysis steps. Problem Analysis Sub-problem 3 Sub-problem 2 Sub-problem nSub-problem 1.
Software Process and Product Metrics
Planning and Tracking Software Quality Yordan Dimitrov Telerik Corporation
Introduction to Software Testing
1 Software Testing Techniques CIS 375 Bruce R. Maxim UM-Dearborn.
University of Toronto Department of Computer Science © 2001, Steve Easterbrook CSC444 Lec22 1 Lecture 22: Software Measurement Basics of software measurement.
Software Quality SEII-Lecture 15
Managing Software Quality
Quality Assurance ITEC Rick Price. Expectations This course is not purely a lecture course – Classroom participation is a large portion – Everyone.
Requirements specification Copyright, 2001 © Jerzy R. Nawrocki Quality Management.
Chapter 15 Software Product Metrics
CSE 303 – Software Design and Architecture
Software Quality Applied throughout SW Engineering Process Encompasses ▫ Analysis, design, coding, testing, tools ▫ Formal tech reviews ▫ Multi-tiered.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
1 These slides are designed to accompany Software Engineering: A Practitioner’s Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Software Measurement & Metrics
1. Software Metric- A definition 2. Types of Software metrics 3. Frame work of product metrics 4. Product metrics.
Version control – Project repository, version management capability, make facility, issue/bug tracking Change control Configuration audit – compliments.
Software Engineering Quality What is Quality? Quality software is software that satisfies a user’s requirements, whether that is explicit or implicit.
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
1 Chapter 15 Product Metrics for Software Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Basic of Software Testing Presented by The Smartpath Information System An ISO 9001:2008 Certified Organization
Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?
Drexel University CS 451 Software Engineering Winter Yuanfang Cai Room 104, University Crossings
Software Quality Metrics
1 SYSC Software Project Management: Software Quality1 Software Quality & Metrics Software Quality & Metrics Sources: 1.Roger S. Pressman, Software.
OHT 1.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The uniqueness of software quality assurance The environments for which.
Chapter 10 Software Engineering. Understand the software life cycle. Describe the development process models. Understand the concept of modularity in.
Software quality factors
Quality Factors Chapter Three. Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?
1 Quality Attributes of Requirements Documents Lecture # 25.
Measurement and quality assessment Framework for product metrics – Measure, measurement, and metrics – Formulation, collection, analysis, interpretation,
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 15a: Product Metrics for Software Software Engineering: A Practitioner’s Approach, 6/e Chapter.
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 Testing and Quality Assurance 1. What is the objectives of Software Testing?
Hussein Alhashimi. “If you can’t measure it, you can’t manage it” Tom DeMarco,
Software reviews Cost impact of software defects Defect amplification model Review metrics and their use – Preparation effort (E p ), assessment effort.
Metrics "A science is as mature as its measurement tools."
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
TOTAL QUALITY MANAGEMENT
Rekayasa Perangkat Lunak Part-10
Rekayasa Perangkat Lunak
Software Quality Assurance Software Quality Factor
McCall’s Quality Factors
Lecture 15: Technical Metrics
For University Use Only
Chapter 30 Product Metrics
Software engineering.
مقدمه اي بر مهندسي نيازمنديها
Rekayasa Perangkat Lunak
Software Quality Engineering CS- 449
Introduction to Software Testing
Thursday’s Lecture Chemistry Building Musspratt Lecture Theatre,
Chapter 19 Technical Metrics for Software
Software Engineering: A Practitioner’s Approach, 6/e Chapter 15 Product Metrics for Software copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
6. Software Metrics.
Presentation transcript:

1 Software Quality CIS 375 Bruce R. Maxim UM-Dearborn

2 Software Quality Principles Conformance to software requirements is the foundation from which quality is measured. Specified standards define a set of development criteria that guide the manner in which software is engineered. Software quality is suspect when a software product conforms to its explicitly stated requirements and fails to conform to the customer's implicit requirements (e.g. ease of use).

3 McCall’s Quality Factors Product Operation –Correctness –Efficiency –Integrity –Reliability –Usability Product Revision –Flexibility –Maintainability –Testability Product Transition –Interoperability –Portability –Reusability

4 McCall’s Quality Factors

5 McCall’s Software Metrics Auditability Accuracy Communication commonality Completeness Consistency Data commonality Error tolerance Execution efficiency Expandability Generality Hardware independence Instrumentation Modularity Operability Security Self-documentation Simplicity Software system independence Traceability Training

6 FURPS Quality Factors Functionality Usability Reliability Performance Supportability

7 ISO 9126 Quality Factors Functionality Reliability Usability Efficiency Maintainability Portability

8 Measurement Process - 1 Formulation –derivation of software measures and metrics appropriate for software representation being considered Collection –mechanism used to accumulate the date used to derive the software metrics Analysis –computation of metrics

9 Measurement Process - 2 Interpretation –evaluation of metrics that results in gaining insight into quality of the work product Feedback –recommendations derived from interpretation of the metrics is transmitted to the software development team

10 Technical Metric Formulation The objectives of measurement should be established before collecting any data. Each metric is defined in an unambiguous manner. Metrics should be based on a theory that is valid for the application domain. Metrics should be tailored to accommodate specific products and processes

11 Software Metric Attributes Simple and computable Empirically and intuitively persuasive Consistent and objective Consistent in use of units and measures Programming language independent Provides an effective mechanism for quality feedback

12 Representative Analysis Metrics Function-based metrics Bang metric –function strong or data strong Davis specification quality metrics

13 Specification Quality Metrics - 1 n n = n f + n nf n n = requirements & specification. n f = functional. n nf = non-functional. Specificity, Q 1 = n ai /q r n ai = # of requirements with reviewer agreement.

14 Specification Quality Metrics - 2 Completeness, Q 2 = n u / (n i * n s ) n u = unique functions. n i = # of inputs. n s = # of states. Overall completeness, Q 3 = n c / (n c + n nv ) n c = # validated & correct. n nv = # not validated.

15 Representative Design Metrics - 1 Architectural design metrics –Structural complexity (based on module fanout) –Data complexity (based on module interface inputs and outputs) –System complexity (sum of structural and data complexity) –Morphology (number of nodes and arcs in program graph) –Design structure quality index (DSQI)

16 Representative Design Metrics - 2 Component-level design metrics –Cohesion metrics (data slice, data tokens, glue tokens, superglue tokens, stickiness) –Coupling metrics (data and control flow, global, environmental) –Complexity metrics (e.g. cyclomatic complexity) Interface design metrics (e.g. layout appropriateness)

17 Halstead’s Software Science Source Code Metrics Overall program length Potential minimum algorithm volume Actual algorithm volume –number of bits used to specify program Program level –software complexity Language level –constant for given language

18 Testing Metrics Metrics that predict the likely number of tests required during various testing phases Metrics that focus on test coverage for a given component

19 Estimating Number of Errors Error Seeding - 1 (s / S) = (n / N) S = # of seeded errors s = # seeded errors found N = # of actual errors n = # of actual errors found so far

20 Estimating Number of Errors Error Seeding – 2 E(1) = (x / n) = (# of real errors found by 1/ total # of real errors) = q / y = (# errors found by both / # real errors found by 2) E(2) = (y / n) = q / x = (# real errors found by both / # found by 1) n = q/(E(1) * E(2))

21 Estimating Number of Errors Error Seeding – 3 Assume x = 25 y = 30 q = 15 E(1) = (15 / 30) =.5 E(2) = (15 / 25) =.6 n = [15 / (.5)(.6)] = 50 errors

22 Software Confidence S = # of seeded errors. N = # of actual errors. C (confidence level) = 1 if n > N C (confidence level) = [S / (S – N + 1)] if n <= N Example: N = 0 and S = 10 C = 10/(10 – 0 + 1) = 10/11  91%

23 Confidence Example How many seeded errors need to be used and found to have a 90% confidence a program is bug free? N = 0 C = S/(S – 0 + 1) = 98/100 Solving for S S = 49

24 Failure Intensity Suppose that intensity is proportional to # of faults or errors present at the start of testing. –function A has 90% of duty time –function B has 10% of duty time Suppose there are 100 total errors 50 in A, 50 in B (.9)50K + (.1)50K = 50K (.1)50K = 5K or (.9)50k = 45K

25 Maintenance Metrics Software Maturity Index SMI = [M t = (F a + F c + F d )]/M t M t = number of modules in current release. F a = modules added. F c = modules changed. F d = modules deleted. SMI approaches 1.0 as product begins to stabilize