1 / 12

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. Definition.

Download Presentation

Software Quality

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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.)

  3. 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

  4. 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

  5. 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

  6. 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.)

  7. 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)

  8. 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

  9. 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)

  10. 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

  11. 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

  12. 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.

More Related