CSC 408F/CSC2105F Lecture Notes



Similar documents
Software Engineering: Analysis and Design - CSE3308

Lecture 1: Introduction to Software Quality Assurance

What do you think? Definitions of Quality

Darshan Institute of Engineering & Technology Unit : 7

Chap 1. Software Quality Management

International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research)

SEI Level 2, 3, 4, & 5 1 Work Breakdown Structure (WBS)

Software Engineering Compiled By: Roshani Ghimire Page 1

QUALITY ASSURANCE IN EXTREME PROGRAMMING Plamen Balkanski

V. Phani Krishna et al, / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 2 (6), 2011,

Manufacturing View. User View. Product View. User View Models. Product View Models

Moving from ISO9000 to the Higher Levels of the Capability Maturity Model (CMM)

CSC408H Lecture Notes

Software Engineering 9.1. Quality Control

The Software Development Life Cycle: An Overview. Last Time. Session 8: Security and Evaluation. Information Systems Security Engineering

Introduction to Software Engineering. 8. Software Quality

Process Improvement. Objectives

Your Software Quality is Our Business. INDEPENDENT VERIFICATION AND VALIDATION (IV&V) WHITE PAPER Prepared by Adnet, Inc.

Chapter 24 - Quality Management. Lecture 1. Chapter 24 Quality management

MTAT Software Engineering Management

Quality Management. Lecture 12 Software quality management

CS 1632 SOFTWARE QUALITY ASSURANCE. 2 Marks. Sample Questions and Answers

Quality Management. What is quality? Managing the quality of the software process and products ISO 9000

Software Quality. Software Quality Assurance and Software Reuse. Three Important Points. Quality Factors

Role of Software Quality Assurance in Capability Maturity Model Integration

The Advantages of ISO 9001 Certification

Software Quality Assurance: VI Standards

Page 1 of 7 Effective Date: 12/18/03 Software Supplier Process Requirements

Lecture 8 About Quality and Quality Management Systems

Quality Management. Objectives

Quality Management. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 27 Slide 1

Quality Management. Managing the quality of the software process and products

Definitions. Software Metrics. Why Measure Software? Example Metrics. Software Engineering. Determine quality of the current product or process

Personal Software Process (PSP)

MNLARS Project Audit Checklist

Software Quality Management

Quality Management. Objectives. Topics covered. Process and product quality Quality assurance and standards Quality planning Quality control

How To Understand And Understand The Cmm

Process Models and Metrics

Blueprints 3. Adapted From Step 6 of Workitect s Building Competency Models and HR Applications workshop

Kunal Jamsutkar 1, Viki Patil 2, P. M. Chawan 3 (Department of Computer Science, VJTI, MUMBAI, INDIA)

The Role of Information Technology Studies in Software Product Quality Improvement

Maturity Model. March Version 1.0. P2MM Version 1.0 The OGC logo is a Registered Trade Mark of the Office of Government Commerce

SOFTWARE QUALITY MODELS: A COMPARATIVE STUDY

Certified Software Quality Assurance Professional VS-1085

Measurement Information Model

Future of CMM and Quality Improvement. Roy Ko Hong Kong Productivity Council

Fundamentals of Measurements

Systems Engineering with RUP: Process Adoption in the Aerospace/ Defense Industry

International Journal of Advance Research in Computer Science and Management Studies

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

SOFTWARE QUALITY & SYSTEMS ENGINEERING PROGRAM. Quality Assurance Checklist

Karunya University Dept. of Information Technology

Leveraging CMMI framework for Engineering Services

Develop Project Charter. Develop Project Management Plan

Software testing. Objectives

R214 SPECIFIC REQUIREMENTS: INFORMATION TECHNOLOGY TESTING LABORATORY ACCREDITATION PROGRAM

An Increase in Software Testing Robustness: Enhancing the Software Development Standard for Space Systems

Evaluation of the Iceland State Financial and Human Resource System REPORT OF THE INDIVIDUAL EVALUATOR. Annex 2 SYSTEM AND SOFTWARE QUALITY

CHAPTER 7 SOFTWARE CONFIGURATION MANAGEMENT

Quality Management System Manual

<name of project> Software Project Management Plan

SOFTWARE ENGINEERING IT 0301 Semester V B.Nithya,G.Lakshmi Priya Asst Professor SRM University, Kattankulathur

Design Controls: Are They Worth the Effort?

Technical Manufacturing Corporation (TMC) Quality Manual

Functional Safety Management: As Easy As (SIL) 1, 2, 3

Noorul Islam College of Engineering M. Sc. Software Engineering (5 yrs) IX Semester XCS592- Software Project Management

The Capability Maturity Model for Software, Version 1.1

ITIL-CMM Process Comparison

NATO GUIDANCE ON THE USE OF THE AQAP 2000 SERIES

Translation Service Provider according to ISO 17100

Can a Level 2 or (3) organization be considered ISO compliant? Should SPI be based on CMM or ISO?

Comparative Analysis of Different Software Quality Models

Certified Software Quality Engineer (CSQE) Body of Knowledge

Certification Authorities Software Team (CAST) Position Paper CAST-26

Analysis of Object Oriented Software by Using Software Modularization Matrix

What Are Software Developers Facing?

Plan-Driven Methodologies

Making Sense of Process Improvement Programs and Appraisals

How can I be agile and still satisfy the auditors?

Using Measurement to translate Business Vision into Operational Software Strategies

Revision Date Author Description of change Jun13 Mark Benton Removed Admin. Manager from approval

Software Engineering. So(ware Evolu1on

The IT Service CMM. Presentation overview. IT Service CMM. What it is; what it is not. Using the IT Service CMM. Current status and outlook 19/04/2002

Defining Quality Workbook. <Program/Project/Work Name> Quality Definition

NATO Integrated Quality Requirements for Software throughout the Life Cycle

(Refer Slide Time: 01:52)

So#ware quality assurance - introduc4on. Dr Ana Magazinius

Reaching CMM Levels 2 and 3 with the Rational Unified Process

Software Engineering Reference Framework

DANSE Software Quality Assurance

Transcription:

CSC 408F/CSC2105F Lecture Notes These lecture notes are provided for the personal use of students taking CSC 408H/CSC 2105H in the Fall term 2004/2005 at the University of Toronto. Copying for purposes other than this use and all forms of distribution are expressly prohibited. c David B. Wortman, 1999,2000,2001,2002,2003,2004 c Kersti Wain-Bantin, 2001 c Yijun Yu, 2004 0

Quality Matters Producing quality products has been identified as a key factor in the long term success (i.e. profitability) of organizations. Quality doesn t happen by chance. Quality requires on ongoing commitment by all parties (management, designers, developers). The commitment to quality includes the use of careful development processes. Quality control must be embedded into the process. [The quality movement in Japan. Process quality...] 1

Managing Software Quality Define what quality means for large software systems Measure Quality of a complete or partial system. Devise actions to improve quality of the software Process improvements [Process Performance improvements Productivity improvements] Product Product improvements Monitor Quality during development Software Quality Assurance - a team devoted to encouraging and enforcing quality standards. 2

Defining Software Quality Software quality is defined as 1. Conformance to explicitly stated functional [correctness] and non-functional requirements [performance, security, maintanability, usability, etc.] i.e. Build the software described in the system Requirements and Specifications 2. Conformance to explicitly documented development standards i.e. Build the software the right way 3. Conformance to implicit characteristics that are expected of all professionally developed software i.e. Build software that meets the expectations of a reasonable person in law this is called the principle of merchantability Assessing software quality is often based on subjective criteria. As yet there is no generally accepted computable metric for software quality. Although it has proven difficult to quantify and measure, it is often easy to identify real quality [qualitatively]. 3

Quality Metrics There have been some efforts to develop numerical metrics for software quality. Correctness Formal proof or program verification Unit test, Integration test, System test, Acceptance test Reliability Mean Time Between Failures 4

Complexity Source size or compiled size. Lines of code (LOC) McCabe s complexity: V E 2 for a control flow graph G=(V, E). Halstead s Software Science Information Science N1 N2 log n1 n2 OO Software Metrics Cohesion metrics in Packages, Classes, Methods Coupling metrics in Packages, Classes, Methods 5

Performance Time, in relation to the input size CPU cycles, in relation to the input size Cache misses, in relation to the input size Network delay, system perf. Network throughput, system perf. Space, in relation to the input size Workload, in relation to the input size Network traffic, in relation to the input size 6

Usability Operational usability Memorizing usability Manual completeness Security Types of vulnerabilities Number of vulnerabilities Encryption strength [MD5 story] 7

Quality Tradeoffs References: Y. Yu et al. Software refactorings guided by soft-goales. 1st Refactorings workshop, WCRE, 2003. For the quality requirements modelling tool, see: http://www.cs.toronto.edu/ yijun/openome.html [Question: FORTRAN stands for...? ] Example. Matrix Multiplication real*8 A(512,512),B(512,512),C(512,512) do i = 1, M do j = 1, L do k = 1, N C(i,k) = C(i,k) + A(i,j) * B(j,k) Quality goal: speedup the program 20 times without sacrificing the code complexity 4 times. 8

9

10

11

12

13

Measuring Quality Metrics Loop unrolling real*8 A(512,512),B(512,512),C(512,512) do i = 1, M do j = 1, L do k = 1, N, 4 C(i,k) = C(i,k) + A(i,j) * B(j,k) C(i,k+1) = C(i,k+1) + A(i,j) * B(j,k+1) C(i,k+2) = C(i,k+2) + A(i,j) * B(j,k+2) C(i,k+3) = C(i,k+3) + A(i,j) * B(j,k+3) Loop tiling do i = 1, M, B1 do j = 1, L, B2 do k = 1, N, B3 do ib = i, min(i+b1, M) do jb = j, min(j+b2, L) do kb = k, min(k+b3, N) C(ib,kb) = C(ib,kb)+A(ib,jb)*B(jb,kb) 14

Loop interchanging real*8 A(512,512),B(512,512),C(512,512) do k = 1, N do j = 1, L do i = 1, M C(i,k) = C(i,k) + A(i,j) * B(j,k) Array padding and interchanging real*8 A(515,515),B(515,515),C(515,515) do k = 1, N do j = 1, L do i = 1, M C(i,k) = C(i,k) + A(i,j) * B(j,k)... more transformations (equivalent programs) 15

Measuring Quality Metrics: measured metrics R time CPI L1 L2 V len- vol- (sec.) (10 6 ) (10 6 ) (G) gth ume 1 63.91 64.9 257.9 185.5 4 96 462 2 19.06 20.4 78.6 71.8 4 235 1164 3 4.92 3.36 307.8 1.7 7 185 964 4 1.54 1.33 129.1 47.8 4 96 462 5 5.45 6.30 265.6 12.5 4 96 462 6 1.11 1.23 123.9 44.8 4 96 462 7 3.30 4.28 324.1 2.1 7 312 1682 8 0.89 0.89 81.3 3.0 7 312 1682... 16

Pareto curve and tradeoffs... normalize: R 0 1. 17

Header restructuring project 18

Subjective Quality Factors There has been a lot of work on identifying subjective factors that contribute to software quality. There is a lot of agreement on what factors are important. It is hard to define these factors precisely. McCall developed one of the more widely used taxonomy of software quality attributes Quality Factors - high level quality attributes Quality Criteria - lower level attributes used to help measure quality factors. [level 3? Refer to the Non-Functional Requirements framework by U of Toronto] There is remaining difficulty in mapping what we can measure easily (or at all) into what we want to know about software quality. 19

McCall s Quality Factors a Product Operation Correctness Does it do what I want? Reliability Efficiency Integrity Usability Does it do it accurately all of the time? Will it run on my hardware as well as it can? Is it secure? Can I run it? Product Revision Maintainability Can I fix it? Testability Flexibility Can I test it? Can I change it? Product Transition Portability Will I be able to use it on another machine? Reusability Interoperability Will I be able to reuse some of the software? Will I be able to interface to another system? a van Vliet Table 6.5 20

McCall s Quality Criteria a Access audit Access control Accuracy Communication commonality Completeness Communicativeness Conciseness Consistency Data commonality Error tolerance Execution efficiency Generality Hardware independence Instrumentation Modularity Operability Self-documentation Simplicity Software system independence Storage efficiency Traceability Training Expandability a van Vliet Table 6.2 21

ISO 9126 Standard Another product oriented attempt to define software quality attributes. A user view of software quality. See van Vliet Tables 6.8, 6.3 and 6.4 for a definition of ISO 9126 quality characteristics. ISO 9126 doesn t address software process issues. 22

ISO 9000 A set of quality standards developed so that purchasers of goods can have confidence that suppliers of these goods have produced something of acceptable quality. ISO 9000 certification has become a widely required international standard. Any supplier who is not ISO 9000 certified will find it difficult to sell their goods. The ISO 9000-3 standard describes how to apply the general ISO 9000 standard to the software industry. a The ISO standard addresses design, development, production, installation and maintenance issues. The emphasis in the ISO standard is on documentation of the process and the managing of the process. a See link on course web page for a translation of ISO 9000-3 into English 23

ISO 9001 Components a 1. Management responsibility 11. Control of inspection, measuring, test equipment 2. Quality system 12. Inspection and test status 3. Contract review 13. Control of non-conforming product 4. Design control 14. Corrective and preventive action 5. Document and data control 15. Handling, storage, packaging, preservation, delivery 6. Purchasing 16. Control of Quality records 7. Control of customer-supplied 17. Internal Quality Audits product 8. Product identification 18. Training and traceability 9. Process control 19. Servicing 10. Inspection and testing 20. Statistical techniques a van Vliet Figure 6.10, also see Appendix A 24

ISO 9000 Registration The effort required to obtain ISO 9000 registration varies directly with how closely an organization s process fits the ISO 9000 model. ISO 9000 registration is granted when an accredited inspection organization certifies that the organization s practices conform to the ISO standard. Re-registration is required every 3 years and surveillance audits are performed every 6 months. ISO registration can cost a lot of time, effort and money to achieve. It requires continuing effort to stay registered. 25

A Cynic s View of ISO 9000 Registration ISO 9000 Certification focuses on how well the processes are documented, not on the quality of the process. Many companies do the minimum required to achieve ISO 9000 certification for business reasons, but forget about it as soon as the ISO 9000 inspectors have signed off. ISO 9000 forces companies to act in ways which make things worse for their customers. ISO 9000 is based on the faulty premise that work is best controlled by specifying and controlling procedures. Your product and the processes used to produce it can be absolutely terrible but you can get ISO 9000 certification as long as the processes are well documented. 26

The SEI s Capability Maturity Model The Capability Maturity Model for Software (CMM) is a five level model laying out a generic path to process improvement for a software organization. 1. Initial ad hoc 2. Repeatable basic management. processes 3. Defined management. and engineering processes documented, standardized, integrated, and actually used. 4. Managed measured and monitored and controlled using measurements. 5. Optimizing Continuous process improvement is enabled by quantitative feedback from the process and from piloting innovative ideas and technologies. See Watts Humphrey s Managing the Software Process, Addison-Wesley, Reading, MA, 1989. 27

CMM Levels and Key Process Areas a 1. Initial level No formalized procedures, project plans, cost estimates. Tools not adequately integrated. Many problems overlooked/ignored. Maintenance very difficult Generally ad-hoc processes 2. Repeatable level Requirements management Software Project planning Software project tracking and oversight Software subcontract management Software quality assurance Software configuration management a van Vliet Figure 6.13 28

3. Defined level Organization process focus Organization process definition Training Program Integration software management Software product engineering Intergroup coordination Peer reviews 4. Managed level Quantitative process management Software Quality management 5. Optimizing level Defect prevention Technology change management Process change management 29

People Capability Maturity Model 1. Initial 2. Repeatable Management takes responsibility for managing its people Staffing, Compensation, Training Performance Management Communication Work environment 3. Defined Competency based workforce practices Participatory culture Competency-based practices Career development Competency development Workforce planning Knowledge & skills analysis 30

4. Managed Effectiveness measured and managed High-performance teams developed Organizational performance alignment Organizational-competency management Team-based practices Team building Mentoring 5. Optimizing Continuous knowledge and skills improvement Continuous workforce innovation Coaching Personal competency development 31

Software Quality Assurance (SQA) SQA is a collection of activities during software development that focus on increasing the quality of the software being produced SQA includes Analysis, design, coding and testing methods and tools Formal Technical reviews during software development A multi-tiered testing strategy Control of software documentation and the changes made to it Procedures to ensure compliance with software development standards Software measurement and reporting mechanisms SQA is often conducted by an independent group in the organization Often this group has the final veto over the release of a software product 32

SQA Activities 1. Application of Technical Methods Tools to aid in the production of a high quality specification i.e. specification checkers and verifiers Tools to aid in the production of high-quality designs i.e. design browsers, checkers, cross-references, verifiers Tools to analyze source code for quality 2. Formal Technical Reviews Group analysis of a specification or design to discover errors 3. Software Testing 4. Enforcement of standards Specification and design standards Implementation standards, e.g portability Documentation standards Testing standards 33

5. Control of Change Formal management of changes to the software and documentation Changes require formal request to approving authority Approving authority makes decision on which changes get implemented and when Programmers are not permitted to make unapproved changes to the software Opportunity to evaluate the impact and cost of changes before committing resources Evaluate effect of proposed changes on software quality 6. Measurement Ongoing assessment of software quality Track quality changes as system evolves Warn management if software quality appears to be degrading 34

7. Record Keeping and Reporting Collect output and reports of SQA activities Disseminate reports to software managers Maintain archive of SQA reports Maintain log of software development activity (especially testing) to satisfy legal requirements Maintain institutional memory of the software development effort 35

Reading Assignment van Vliet Chapter 13 36