Theory Lecture Plan Software Quality Management Lecture 1 Software Engineering TDDC88/TDDC93 Autumn 008 Department of Computer and Information Science Linköping University, Sweden davbr@ida.liu.se L1 - Course Introduction and Overview L - Project Management L3 - Requirements L4 - Acceptance Testing and Quality Factors L5 UML L6 - Design Patterns L7 - System Design and Architecture L8 - Testing Theory L9 - Testing in Practice L10 - Inspection L11 - Software Life Cycles and Configuration Management L1 - Software Quality Management L13 - Course Summary, Exam examples, Questions I A Software Life-cycle Model Which part will we talk about today? 3 Maintenance Agenda - What will you learn today? 4 Requirements Validate Requirements, Verify Specification Acceptance Test (Release testing) System Design (Architecture, High-level Design) Verify System Design System Testing (Integration testing of modules) Module Design (Program Design, Detailed Design) Verify Module Design Verify Implementation Module Testing (Integration testing of units) I Implementation of Units (classes, procedures, functions) Unit testing Project Management, Software Quality Assurance (SQA), Supporting Tools, Education I I 1
5 Do you remember? 6 More on measurement Transcendent something we learn to recognize Product-based measurable variable Usage-based in the eyes of the beholder Manufacturing-based conformance to requirements Value-based market sets the value Many Manyopinions Statistical techniques I I Rehearsal: Quality factors 7 Research predicting troubles 8 Correctness Reliability lecture 4 Efficiency Usability lecture 4 Integrity Maintainability Flexibility Testability Security Portability Reusability Interoperability Survivability Safety Manageability Supportability Replaceability Functionality Regression analysis from empirical material Often a linear combination between size and complexity Size can be measured in: lines of code (KLOC) function points Halstead software science How can you measure these factors? Ideas: http://www.ida.liu.se/~tddc93/timetable/metrics.html I I
Measuring complexity 9 Example 10 Cyclomatic number V(G) = e n + e = number of edges (arcs) n = number of nodes Due to McCabe(76) I 1 II 3 III IV 4 5 V 6 VI 7 8 VII 9 VIII 10 11 IX 1 X 13 14 V(G) = 14 11 + = 5 XI I I Metrics based on change, system A 11 Function points 1 100 Accumulated TR (%) 80 60 40 Language-neutral combination of size and complexity Mostly used for administrative information systems Growing interest, but still a closed community best 0 random opechgdens sigchgdens attrchgdens chgdens 0 0 0 40 60 80 100 Accumulated size (%) I I 3
Factors in function point analysis 13 Example 14 UOQ UO Source: Source: Galin Galin004 Number of user inputs - distinct input applications, not online queries. Weight: 4 Number of user outputs distinct output applications: reports, lists. Weight: 5 Number of user online queries requiring action by the system. Weight: 4 Number of logical files any group of information maintained for the user. Weight: 10 Number of external interfaces any computer-readable I/O. Weight: 7. Sometimes a file might be counted twice. UI UI LF LF UOQ UOQ UO UO comp. UI UO UOQ LF EI CFP count 3 3 weight 4 5 4 10 7 points 8 15 1 0 14 69 EI EI I I 15 ISO 9000-3 16 General Quality Management Principles A guideline to apply ISO 9001 to software industry, which is built on the principles: Principle 1 Customer focus Principle Leadership Principle 3 Involvement of people Principle 4 Process approach Principle 5 System approach to management Principle 6 Continual improvement Principle 7 Factual approach to decision making Principle 8 Mutually beneficial supplier relationships I I 4
Management 17 Six sigma 18 What s get measured gets done Importance of feed-back Non-personal software Creating a passion for quality Live as you learn Incentive system Involve customers Set prioritized goals Quality is everybody s responsibility Document how you will work with quality Improve continuously =TQM Statistical process control The variance of approved products should lie +/- 3 standard deviation from the mean = 3.4 faults per million Define Measure Analyze Variant of the Shewhart cycle Improve Control I I 19 0 QFD I I I 5
Inspections in quality assurance 1 TickIT Appraisal defect detection Assurance prediction of defects Control adjust the process Improvement: reduce variation, increase precision Analysis Design Coding Test-cases An interpretation of ISO 9001 for software, a standard set of requirements on the competence and behavior of certification auditors, a standardized training course for certification auditors, a registration scheme for approved certification auditors, a system for accrediting certification bodies for conducting TickIT certifications, a logotype to be used on certificates to show TickIT certification. Inspection data Inspection Inspection Inspection data data data I Inspection data http://www.tickit.org/ I illustration only CMMI 3 PA CMMI 4 1: Initial 5: Optimising 4: Managed 3: Defined : Repeatable Each level has process areas. Requirements Management Analyzes requirements Verify plans and products against requirements Project Planning Plan: activities, resources and schedules Use the plan to achieve commitment and approval at all levels Project Monitoring and Control Progress control: Initiate changes to solve problems Update plans I I 6
PA CMMI (continued) 5 PA CMMI3 6 Supplier Agreement Management Manage contracts, progress control, quality assurance. Measurement and Analysis Develop, initiate, analyse and complete measurements to support progress control Process and Product Quality Assurance Develop, implement and follow up application of SQA tools for processes and software products Configuration Management Develop, implement and operate a CM system Assure integrity of work products, report changes, test configuration I Requirements Development Elicit, specify, analyze and validate requirements. Technical Solution Analyze and select solutions to components or the system as a whole Implement solution Product Integration Integrate components from various sources Verification Assure that the product and components comply with specifications Validation Assure that the product fullfils customers actual needs I PA CMMI3 (continued) 7 PA CMMI3 (continued) 8 Organizational Process Focus Understand the organizations process and need for process Improve the process where necessary Organizational Process Definition Develop and maintain: Documents and tools for processes Organizational Training Define needed competence Make competence inventory Make a gap analysis Schedule training I Integrated Project Management Assure that all levels share: project goals, planning and progress control process Integrated Teaming Form teams with relevant members Govern team operation and external communication Risk Management see lecture Decision Analysis and Resolution Evaluate project alternatives according to criteria Structured decisions selecting project implementation alternatives Organizational Environment for Integration Approach and infrastructure for team collaboration I 7
QIP 9 Experience factory 30 1. Set quantifiable goals. Select processes 3. Run processes 4. Measure objectives 5. Analyse measurements 6. Package experience I I Wisdom 31 Summary - What have we learned today? 3 communication Started thinking about measurements Process-oriented quality management CMMI and other software initiatives infrastructure performance I I 8
Further reading - References 33 Galin, Daniel (004). Software Quality Assurance From theory to implementation, Pearson Education. ISBN 0-01-70945-7 I 9