CS350 Lecture 5 Software Quality -...

41
CS350 Lecture 5 Software Quality Doo-Hwan Bae SoC, KAIST [email protected]

Transcript of CS350 Lecture 5 Software Quality -...

Page 1: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

CS350 Lecture 5Software Quality

Doo-Hwan Bae

SoC, KAIST

[email protected]

Page 2: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

SW Quality Definitions

• The degree of conformance to explicit or implicit requirements and expectations.

• By IEEE• The degree to which a system, component, or process meets

customer or user needs or expectations

• By ISTQB(Int’l Software Testing Qualifications Board)• The totality of functionality and features of a software product that

bear on its ability to satisfy stated or implied needs

Page 3: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

SQA and SQC

• SW Quality Assurance(SQA): • a set of activities for ensuring quality in software engineering

processes

• Project management, configuration management, requirements development/management, estimation, software design, testing,..

• SW Quality Control(SQC):• a set of activities for ensuring quality in software products

• Reviews, Testing

• SQA oriented for prevention, SQC oriented for detection

Page 4: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

4

Why is software quality different from other types of quality (hardware)?

• Software has no physical existence.

• The lack of knowledge of client needs at the start.

• The change of client needs over time.

• The rapid rate of change in both h/w and s/w.

• The high expectation of customers, particularly w.r.t. adaptability.

Page 5: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

5

Some Insights about Quality

• Quality is not absolute

• Quality is multidimensional

• Quality is subject to constraints (people, money, time, tool)

• Quality is about acceptable compromises

• Quality criteria are not independent

Page 6: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

6

Quality Factors: Various Perspectives

Sponsor Maintainer

User

Page 7: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

Software Quality and Business Mind

• Is it possible to produce ‘defect-zero’ software?

• A Japaness company’s dilemma• specialized in embedded products

• not able to use MS windows

• comparison with Microsoft

Page 8: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

8

Internal and External Quality

• Distinction is not sharp

• External Quality:

- Visible to the users of the system

• Internal Quality:

- Concerns the developers of the system

Page 9: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

9

Product and Process Qualities

• Use a process to produce the s/w product. • Quality process helps to produce quality product

• Product quality: external • Functionality

• Usability

• Efficiency

• Reliability, etc

• Process quality: internal • Effectiveness of methods, tools

• Use of standards

• Management, etc

Page 10: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

SW Quality Standards

• ISO 9126 : product

• ISO 14598 : process

• ISO25000: ISO9126 + ISO14598

Page 11: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

ISO25000:SQuaRE

Page 12: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

12

Representative Qualities

• Correctness, Reliability, Robustness, Safety

• Performance

• User Friendliness

• Verifiability

• Maintainability

• Reusability

• Portability

• Understandability

• Interoperability

• Productivity

• Timeliness

• Visibility

Page 13: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

13

Correctness, Reliability, and Robustness

• Open used interchangeably, meaning that the degree of the application's performing its functions as expected.

• However, they are different slightly from each other.

• In addition, “safety” becomes important.

Page 14: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

Correctness

• Correct if the program behaves according to the specification of the functions

• Assumptions• A specification of the system is available

• It is possible to determine unambiguously if a program meets he specification.

Page 15: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

15

Reliability

• The ability of a system to perform its requested functions under stated conditions whenever required

• Can define in terms of statistical behavior: MTTF, MTBF

Page 16: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

16

Robustness

• The degree to which a system continues to function in the presence of invalid inputs or stressful environmental conditions.

• Robust if it behaves reasonably, even in circumstances that were not anticipated in the requirements specification.

• “graceful degradation”

Page 17: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

Safety

• A sub-category of robustness specifically concerned with avoiding certain bad behaviors.• Undesired outcomes are called “hazards.”

• Safety Engineering is concerned with identifying and preventing hazards.• Ex: A nuclear reactor meltdown

Page 18: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

Dependability Properties

• Correctness: Consistency of implementation with specification

• Reliability: Likelihood of correct functioning

• Robustness: Acceptable behavior in unusual circumstances

• Safety: Absence of unacceptable behaviors

Page 19: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

SW Safety in Manufacturing Products

• ISO26262• Road vehicles – Functional Safety

• International standard for functional safety of electrical and/or electronic systems in automobiles

• Functional Safety explained• The detection of smoke by sensors and the ensuing intelligent

activation of a fire suppression system

• The activation of a level switch in a tank containing a flammable liquid, when a potentially dangerous level has been reached, which causes a valve to be closed to prevent further liquid entering the tank and thereby preventing the liquid in the tank from overflowing.

Page 22: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

Dependability Properties

robust

reliable

correct safe

Page 23: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

23

Performance

• Equates performance with efficiency(space, time).

• Affects the usability of the system.

• Evaluation• Measurement (monitoring)

• Analysis

• Simulation

• Q: When do we need to estimate performance?

• Application of performance to process --> Productivity

Page 24: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

24

User Friendliness

• Ease to use

• Ease with which the system can be configured and adapted to the hardware environment.

Page 25: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

Verifiability

• Verifiable if its properties can be verified safely

• Performed either by formal analysis methods or through testing

Page 26: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

26

Maintainability

• Maintenance• Corrective

• Adaptive

• Perfective

• Software evolution ( instead of maintenance)

• Repairability and Evolvability

Page 27: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

27

Reusability

• Use existing components to build a new product.

• Examples: Scientific libraries, X window, Motif, etc

• Reuse levels• People• Requirements • Design• Code

• Object-oriented technology: best buy

• Application to process• Software methodology• Life cycle model

Page 28: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

28

Portability

• Portable if it can run in different environments• hardware platforms

• software platforms

Page 29: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

Understandability

• An internal product quality

• Object-oriented paradigm claims ease to understand

• Very important quality characteristics for maintenance and collaborative development

Page 30: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

30

Interoperability

• Ability of a system to coexist and cooperate with other systems

• Open system concept

Page 31: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

Productivity

• A quality of the software production process

• Difficult to measure: simple measure: LOC(Line Of Code)

Page 32: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

32

Timeliness

• Ability to deliver a product on time.

• Requires • careful scheduling,

• accurate work estimation and

• clearly specified milestones.

Page 33: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

Visibility

• Visible if all of its steps and current status are documented

• Allows to weigh the impact of their actions and thus guides them in making decisions.

Page 34: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

Additional Quality,…

• There is one important quality missed here.

• What is it?

Page 35: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

35

Quality Requirements in Specific Application Areas

• Information Systems

• Real-time Systems

• Distributed Systems

• Embedded Systems

Page 36: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

36

Information Systems

• Storage and retrieval of data

• Examples: banking systems, library-cataloging systems, etc.

• Qualities• Data integrity

• Security

• Data availability

• Transaction performance

Page 37: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

37

Real-Time Systems

• Respond within a predefined and strict time periods

• Examples: factory-monitoring systems, missile guidance systems, mouse-handling software

• Control-oriented

• Scheduling• Deadline

• Priority

• Hard and soft real-times

• Quality• Respond time requirements (correctness criterion)

Page 38: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

38

Distributed Systems

• The degree of distribution• Data

• Control

• Hardware

• Examples: middleware in client/server systems, groupware, etc.

• Qualities• System availability

Page 39: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

39

Embedded Systems

• Software is one of many components.

• Has no interface to end-user.

• Examples: Airplanes, robots, microwave ovens, dishwashers, automobiles,etc.

Page 40: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

40

Discussions

• Discuss the relationship between testing and quality?

Page 41: CS350 Lecture 5 Software Quality - KAISTse.kaist.ac.kr/wp-content/uploads/2017/02/CS350_07_Lecture-5.pdf · Reusability •Use existing components to build a new product. •Examples:

41

References

• http://www.sqa.net/iso9126.html

• http://iso25000.com/index.php/en/iso-25000-standards