You are on page 1of 52

Software quality engineering

lecture 1
Contact Information

 Email: rubabjavaid@ucp.edu.pk
 Office C007 – C Block

 Office Hours
◦ TBA
Assessments
 Class Participation 8% (individual/in Pair)
 Project 7 % (Group based)
 Quiz 15% (Total = 6 )
 Assignment 10% (Total = 4)
 Mid Term 20%
 Final 40 %
Nature of Course
 Software Quality Engineering
◦ Software Quality Assurance
◦ Software Testing

 Nature of Areas
◦ SQA  Case Study based learning
◦ ST  Application Based Learning

How to make this course a learning success?


Points to hold on to
Strong Communication
 Active Participation

 Feedback … Feedback… Feedback !!!

 Two Career opportunities 


Recap of some previous concepts.
 What is software?
Software
What is the difference between software
Product & other industrial Product?
What is the difference between software
Product & other industrial Product?

 Complexity
 Visibility
SDLC Aims for
 High Quality
 Satisfying Customer Expectations
 Fulfill Cost Estimates
 Fulfill Time Estimate
Quality

 1. What is Quality?
Quality

 1. What is Quality?

◦ Synonym: Excellence, Superiority, Class, Grade


◦ Antonym: Inferior
Quality

 1. What is Quality?

 2. Do you want Quality in a product you want


to buy?
Fair Selection
 Criteria?
Quality

“Everybody seems to understand it, everybody


wants it and yet everyone has a different
perception of quality”

(Kitchenham)

16
QUALITY

 Different people different understanding and


perception about quality
◦ User?
◦ Developer?
◦ Maintenance Team?
◦ Customer?
Software Quality

■ Software Quality is
1. The degree to which a system, component, or
process meets specified requirements, and
2. The degree to which a system, component, or
process meets customer or user needs or
expectations (IEEE)

18
Software Quality Engineering
 An integrated approach to software quality, reliability,
and safety is described that is termed ‘software quality
engineering’.

 It encompasses the two levels of quality assurance


technology generally recognized in manufacturing,
namely, product inspection & process control.
So, what will be Software Quality
Assurance?
 Assurance means …

 How will you assure?


 What will happen if we will not do SQA?
Why Quality Assurance?

21
Why SQA?

 “Either you can do it right or you can do it


over again.”
Software Quality Assurance

Software Quality Assurance (SQA) is


■ A planned and systematic pattern of all actions necessary to
provide adequate confidence that an item or product conforms to
established technical requirements.
■ A set of activities designed to evaluate the process by which
products are developed or manufactured. (IEEE 610)

23
Software Quality
 What do we mean by quality software?
Quality Factors

◦ The various factors, which influence the software,


are termed as software factors

◦ Several models of software quality factors and


their categorization have been suggested over the
years. The classic model of software quality
factors, suggested by McCall, consists of 11
factors (McCall et al., 1977).
Quality Factors
 External
◦ Correctness, Usability, Efficiency, Reliability,
Integrity, Adaptability, Robustness

 Internal
◦ Maintainability, Readability, Testability, Reusability,
Portability, Flexibility, Understandability
McCall’s Factor Model
 This model classifies all software requirements into 11 software quality
factors. The 11 factors are grouped into three categories – product
operation, product revision, and product transition factors.

• Product operation factors − Correctness, Reliability, Efficiency, Integrity,


Usability.
• Factors that deal with the requirements that directly affect the daily
operation of the software

• Product revision factors − Maintainability, Flexibility, Testability.


•  Factors which are required for testing and maintenance of the
software.

• Product transition factors − Portability, Reusability, Interoperability.


• Factors that deals with the adaptation of software to other
environments and its interaction with other software systems
1- Product Operation Factors

◦Correctness –
The extent to which a software meets its requirements specification.
◦Efficiency –
The amount of hardware resources and code the software, needs to perform a
function.
◦Integrity –
The extent to which the software can control an unauthorized person from the
accessing the data or software.
◦Reliability –
The extent to which a software performs its intended functions without failure.
◦Usability –
The extent of effort required to learn, operate and understand the functions of the
software.
2- Product Revision Factors

• Maintainability –
The effort required to detect and correct an error during maintenance phase.
• Flexibility –
The effort needed to improve an operational software program.
• Testability –
The effort required to verify a software to ensure that it meets the specified
requirements.
Business Goals or Quality Attributes

 Business Goals are quality attributes the system is expected to


exhibit, For example:
 Minimizing the cost of development
 Time to market
 Cost and Schedule: The cost of the system with respect to time to
market
 Marketability: The use of the system with respect to market
competition.
 Appropriateness for Organization: Availability of the human
resource, allocation of expertise, and alignment of team and
software structure.
3- Product Transition Factors…

 .
• Portability –
The effort required to transfer a program from one platform to another.
• Re-usability –
The extent to which the program’s code can be reused in other applications.
• Interoperability –
The effort required to integrate two systems with one another.
Factors – A few more examples!
Usability
Usability
0
Correctness
Reliability
Integrity
Adaptability
Accuracy
Robustness
Maintainability
 Add features
 Remove defects
 Improve performance
 Change features
Maintainability
Flexibility
 An interface for visually impaired needs to be
added
 Warehouse inventory  hotel management

system
 EMS  BISE
Portability
 Same app for different OS/HW.

 Some other examples ??


Reusability
Readability
Testability
Understandability
What to do ??
 Some makes life easier for user some for programmer.

 You need to know quality characteristics.

 You need to prioritize them according to your system

 They may overlap in some scenarios.

 They may affect each other.


◦ If not flexible .. Then not usable.
◦ Focus on Correctness hurts robustness.
◦ Focus on adaptability helps robustness.
Study reference
 Unit 3: software quality factors
 Software Quality Assurance From theory to

implementation Daniel Galin

You might also like