12
Software Quality Applied throughout SW Engineering Process Encompasses Analysis, design, coding, testing, tools Formal tech reviews Multi-tiered testing strategy Control of Software documents Appliance to standards Measurement and reporting mechanisms

Software Quality

Embed Size (px)

DESCRIPTION

Software Quality. Applied throughout SW Engineering Process Encompasses Analysis, design, coding, testing, tools Formal tech reviews Multi-tiered testing strategy Control of Software documents Appliance to standards Measurement and reporting mechanisms. Definition. - PowerPoint PPT Presentation

Citation preview

Page 1: Software Quality

Software Quality

Applied throughout SW Engineering Process Encompasses

Analysis, design, coding, testing, tools Formal tech reviews Multi-tiered testing strategy Control of Software documents Appliance to standards Measurement and reporting mechanisms

Page 2: Software Quality

Definition

Conformance to explicitly stated functional and performance requirements, explicit standards, and implicit characteristics expected of all professionally developed software Requirements are foundation Follow standards for development of software Implicit requirements (user-friendliness,

maintainability, etc.)

Page 3: Software Quality

11 Major Quality Factors

Correctness – meets specs and objectives Reliability – perform intended function with

required precision (includes robustness) Efficiency - amount of code and resources Integrity – controlled access Usability – effort required to learn/operate

Page 4: Software Quality

Quality Factors cont.

Maintainability – ease locate/fix error Flexibility (modifiability) – ease to modify

operational program Testability – ease to test Portability – works in other environments Interoperability – works with other systems Reusability – ease of reuse

Page 5: Software Quality

History

Sole responsibility of craftsman 1916 Bell Labs – 1st formal QA 1970s Military standards for SQA SQA groups – in house representatives ISO 9000-9001, SEI CMM

Page 6: Software Quality

7 Activities

Application of technical methods and tools (to ensure QA)

Formal technical reviews Software testing Enforcement of standards to process Control of change (configuration

management) Measurement (product and process) Record keeping and reporting (information for

reviews, etc.)

Page 7: Software Quality

Software Reviews

Filter Replace unit testing Catch 75% of design flaws prior to

coding Reduces costs in subsequent steps

Formal technical reviews (meeting of 4-5 people with roles, agenda,…)

Inspections (outside group of people)

Page 8: Software Quality

Software Quality Metrics

Measure a qualitative factor (efficiency, maintainability, …etc.)

Quantitative assessment Product Metrics Examples:

IEEE Standard 982.1 (1988) Air Force DSQI (Design structure quality index) Halstead’s metrics

• Based on # operators and operands

McCabe’s Cyclomatic Complexity (product metric) • V(G) = # regions in flowchart < 10 is upper limit

Page 9: Software Quality

DSQI:

S1 - #modules defined in program architecture S3 - #modules whose correct function depends on

prior processing D1 – 0 if no distinct method used to design, otw 1 D2 – 1 – (S1/S2) DSQI = sum (w1*D1 ..w6*D6)

Page 10: Software Quality

Metrics

Halstead’s product metrics• n1 - # distinct operators

• n2 - # distinct operands

• N1 - # of operators

• N2 - # of operands

• VERY primitive…haven’t been shown to be useful

McCabe’s Cyclomatic Complexity (product metric) – # regions in flowchart V(G) – 10 is upper limit

Page 11: Software Quality

Metrics

Process metrics Number of defects found in review, testing,

release Number of changes made to code to fix bug Number of modules changed to fix bug Rate at which bugs are found in testing… Etc…

Software Maturity Index Based on # modules in current release and #

modules changed, added, deleted in current release

Page 12: Software Quality

Software Maturity Index

SMI = [ Mt – (Fa + Fc + Fd)] / Mt where• Mt - # modules in current release

• Fc - modules changed in current release

• Fa - # modules added

• Fd - # modules deleted

• SMI = 1 is GOOD.