Software Quality Applied throughout SW Engineering Process Encompasses

advertisement
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

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.)
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
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
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
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.)
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)
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
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)
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
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
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.
Download