120 likes | 239 Views
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.
E N D
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.