Module 1 Introduction to Software Quality

SQAM Course, Proficience, IISc


Different Views on Quality
 Hard

to define, Impossible to measure and Easy to recognize  Transparent when present, but easily recognized in absence  Quality is not absolute  Quality is multidimensional  Quality is subject to constraints  Quality is about acceptable compromises  Quality Criteria are not independent, but interact with each other
SQAM Course, Proficience, IISc


Garvin’s Five Definitions of Quality
 

  

Transcendent Definition (Relative Quality): Quality is universally recognizable; it is related to a comparison of features and characteristics of products. Product-Based: Quality is a precise and measurable variable. Differences in quality reflect differences in quantity of some product attribute. User-Based Definition: Quality is “fitness for intended use.” Manufacturing-Based Definition: Quality is “conformance to specifications.” Value-Based Definition: Quality is defined in terms of costs and prices. A quality product is one that provides performance at an acceptable price or conformance at an acceptable costs.

SQAM Course, Proficience, IISc


Quality Revolution or Quality Confusion?

SQAM Course, Proficience, IISc


Poor Quality Practice Results in

SQAM Course, Proficience, IISc


Some Definitions..
ISO: The totality of features and characteristics of a product or service that bear on its ability to satisfy specified or implied needs Fruhauf (1994): Quality is when the customer comes back, not the product

SQAM Course, Proficience, IISc


Software Quality
 The

degree to which a software product posses a specified set of attributes necessary to fulfill a stated purpose(Reifer,1985)  Conformance to customer expectations (Stephen Kan,1995)  Software product must provide functions of a type and at a time when the user needs them. If it does not, nothing else matters. The product must work consistently and reasonably, without which the user will not use it regardless of its other best attributes.( Watts Humprey, 1995)
SQAM Course, Proficience, IISc 7

GE Model (McCall,1977)
Product Revision: 2. 3. 4. Maintainability Flexibility Testability Product Transition: 2. 3. 4. Portability Reusability Interoperability

Product Operations: 2. 3. 4. 5. 6. Correctness Reliability Efficiency Integrity Usability
SQAM Course, Proficience, IISc 8

Software Quality Factors
Product Operations  Correctness Extent to which a program satisfies its specification and fulfills the user’s functional requirements Does it do what I want?  Reliability Extent to which a program can be expected to perform its intended functions with required precision Does itCourse, Proficience,properly all the time? behave IISc SQAM 9

Software Quality Factors
Product Operations (continued)  Efficiency The amount of computing resources required by a program to perform its functions Will it run fast?  Integrity Extent to which access to software or data by unauthorized persons can be controlled Is it secure?  Usability Effort required to learn, operate, prepare input, and interpret output of a program Can I run it easily?
SQAM Course, Proficience, IISc 10

Software Quality Factors
Product Revision  Maintainability Effort required to locate and fix an error in an operational program Can I fix it? Effort required to test a program to ensure it performs its intended functions Can I test it? Effort required to modify an operational program Can I change it?
SQAM Course, Proficience, IISc 11

 Testability

 Flexibility

Software Quality Factors
Product Transition  Portability Effort required to transfer an program from one hardware configuration or software system environment to another Can it run on another machine?  Reusability Effort to which a program can be used in other applications Can I reuse part of the software?  Interoperability Effort required to couple one system with another Can it interface with another system?
SQAM Course, Proficience, IISc 12

Interaction between quality parameters
Criteria Reliability Efficiency Integrity Security Understandability Flexibility Ease of Interfacing Portability User Consultation Accuracy Timeliness Time to use Appeal User flexibility Cost/Benefit User friendliness o √ √ o o o o o √ X √ √ o √ √ X X X X o X o o o √ √ X √ o √ o o X o √ √ X o o o √ o o o √ o o √ X o √ o √ o √ √ o √ √ X X √ o √ o √ √ o o X X √ √ √ o √ o o X X √ o o o o o X o √ √ o o √ X o √ √ √ √ X o √ √ √ o √ √ o √ X √ X √ √ o o √ √ √ o R E o I √ X S √ X √ U o X √ √ F o X o o √ EI o X X X o o P o X X X o o √ U o X √ √ o o √ o A o o √ √ o o X o o T o X X X X X X X X X T o √ o o X X o o o o X A o X o o o o o o o o X √ U o X X X o X o o o o X X √ C o o o o o o o o o o √ o √ o O o X √ X o X o X o o X X √ o √

SQAM Course, Proficience, IISc


Process and product quality
 The

quality of a developed product is influenced by the quality of the production process.  This is important in software development as some product quality attributes are hard to assess.  However, there is a very complex and poorly understood relationship between software processes and product quality.

SQAM Course, Proficience, IISc


Software Quality Assurance
 Activity

of providing to all concerned the evidence needed to establish confidence that the quality function is being performed adequately (Juran,1995)  Quality Assurance is a planned and systematic pattern of all actions necessary to provide adequate confidence that an item or product conforms to established technical requirements (IEEE,1990)
SQAM Course, Proficience, IISc 15

Software Quality Assurance Activities

Monitoring processes and products throughout the software development lifecycle to ensure the quality of the delivered product(s) Monitoring the processes – Provides management with objective feedback regarding process compliance to approved plans, procedures, standards, and analyses Monitoring the products – Focus on the quality of product within each phase of the SDLC  e.g., requirements, test plan, architecture, etc. – Objective: identify and remove defects throughout the lifecycle, as early as possible
SQAM Course, Proficience, IISc 16

Process Assessment

Use of standards and process models has a positive impact on the quality of the software product – Disciplined, controlled development process Examples include: – ISO 9001 – CMMI  CMU SEI, 5 levels – SPICE  Developing a standard for software process assessment  ISO joint committee, Europe, Australia – IEEE 12207
SQAM Course, Proficience, IISc 17

Product Assessment
– Reviews, inspections, walkthroughs, reports, standards – Requirements, analysis, architecture, detailed design – – – –

model, test cases Issue or problem reports Metric reports Traceability reports Documentation, coding standards

SQAM Course, Proficience, IISc


Microsoft View
Have you identified important quality characteristics to your project?  Have you made others aware of project’s quality objectives?  Have you differentiated between External an Internal quality characteristics?  Do you use different error detection techniques?  Do you have a plan to assure quality at each stage of software development?  Is quality measured to say whether it is improving and degrading? (Jim McCarthy, Microsoft Press, 1995)

SQAM Course, Proficience, IISc 19

Software Quality Control
 The

assessment of procedural and product compliance. Independently finding these deficiencies and correcting them assures compliance of the product with the stated requirements (Fisher and Mathew, 1979)  Set of verification activities which at any point in the software development sequence involves assessing whether the current products being produced are technically consistent and compliant with the specification of the previous phase. (Donald Reifer,1985)
SQAM Course, Proficience, IISc 20

Software Quality Control
 Involves

series of inspections, reviews and tests used throughout the software process.  Measurement and feedback loop is important  Activities can be completely automated, entirely manual or combination of both.

SQAM Course, Proficience, IISc


Verification and Validation
 Verification

is the process of evaluating a system to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase.  Validation is the process of evaluating a system or component during or at the end of development process to determine whether it satisfies specified requirements
SQAM Course, Proficience, IISc 22

Software quality management
 Concerned

with ensuring that the required level of quality is achieved in a software product.  Involves defining appropriate quality standards and procedures and ensuring that these are followed.  Should aim to develop a ‘quality culture’ where quality is seen as everyone’s responsibility.

SQAM Course, Proficience, IISc


Practical process quality
 Define

process standards such as how reviews should be conducted, configuration management, etc.  Monitor the development process to ensure that standards are being followed.  Report on the process to project management and software procurer.  Don’t use inappropriate practices simply because standards have been established.

SQAM Course, Proficience, IISc


Typical SQA Role in the organization
 Responsibility

for SQA planning, oversight, recording, analysis and reporting.  Prepare an SQA plan for a project  Participate in the development of project’s process description  Reviews Software Engineering activities to verify compliance with defined software process  Audits the designated software work products  Ensures deviations are recorded and closed  Reports to Senior Management
SQAM Course, Proficience, IISc 25

SQAM Course, Proficience, IISc


Case Analysis
 Compare

ISO 9126 and ISO 12207  How they are related?  To be presented in the next class
Thank you

SQAM Course, Proficience, IISc


Sign up to vote on this title
UsefulNot useful