บทที่ 10 การจัดการคุณภาพ quality management) · about the...

37
บทที่ 10 การจัดการคุณภาพ (Quality Management) วิชา วิศวกรรมซอฟต์แวร์ (04-06-306) เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306) 1

Upload: others

Post on 21-Mar-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

บทที่ 10

การจัดการคุณภาพ (Quality Management)

วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306) 1

Page 2: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

วัตถุประสงค์การเรียนรู ้

• เพื่อให้ผู้เรียนมีความรู้ความเข้าใจเกี่ยวกับการจัดการคุณภาพ และตัวชี้วัดซอฟต์แวร์เบื้องต้นได ้

• เพื่อให้ผู้เรียนมีความรู้ความเข้าใจเกี่ยวกับกระบวนการในการจัดการคุณภาพ และการก าหนดตัวช้ีวัดซอฟต์แวร์ซอฟต์แวร์ได้

2 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

Page 3: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

หัวข้อ

• บทน า (Overview)

• การจัดการคุณภาพ (Quality Management)

• มาตรฐานซอฟต์แวร์ (Software Standard)

• การทวนสอบและตรวจสอบ (Reviews and Inspections)

• การวัดและตัวชี้วัดซอฟต์แวร์ (Software measurement and metrics)

• สรุป (Summary)

3 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

Page 4: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

บทน า (Overview)

Problems with software quality

• Development • Delivered • Dissatisfaction

Software Quality management,

principle concerns

• Organization level

• Project level • Quality plan

Terms • Quality

assurance (QA) • Quality Control • QA Team

4 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

Page 5: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

Quality management and Software development

เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306) 5

ที่มา: Lan Sommerville, Software Engineering Ninth Edition, 2011.

Page 6: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

Quality Plan

• Product introduction A description of the product, its intended market, and the quality expectations for the product.

• Product plans The critical release dates and responsibilities for the product, along with plans for distribution and product servicing.

• Process descriptions The development and service processes and standards that should be used for product development and management.

• Quality goals The quality goals and plans for the product, including an identification and justification of critical product quality attributes.

• Risks and risk management The key risks that might affect product quality and the actions to be taken to address these risks.

6 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

Page 7: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

Software Quality

1. requirements engineering, it is difficult to write complete and unambiguous software specifications. Software developers and customers may interpret the requirements in different ways and it may be impossible to reach agreement on whether or not software conforms to its specification.

2. specifications usually integrate requirements from several classes of stakeholders. These requirements are inevitably a compromise and may not include the requirements of all stakeholder groups. The excluded stakeholders may therefore perceive the system as a poor quality system, even though it implements the agreed requirements.

3. impossible to measure certain quality characteristics directly and so they cannot be specified in an unambiguous way.

7 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

Page 8: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

Software Quality (ต่อ)

8 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

คุณสมบัติทุกประการของสินค้าหรือบริการที่สามารถตอบสนองต่อความต้องการของลูกค้าได้ทั้งทางตรงและทางอ้อม [ISO8402: 1994]

ระดับที่คุณลักษณะบางอย่างของผลิตภัณฑ์ที่ก าหนดขึ้นมา สามารถเติมเต็มหรือตอบสนองความต้องการและความคาดหวังของผู้ใช้ได้ [ISO9001-00]

คุณภาพ (Quality)

การที่ผลิตภัณฑ์ถูกผลิตขึ้นมาตรงตามข้อก าหนดคุณลักษณะที่ได้ออกแบบไว้เป็นรูปธรรม และนามธรรม ซึ่งเป็นสิ่งจ าเป็นที่จะท าให้ซอฟต์แวร์มีคุณภาพ จึงส่งผลให้ต้องมีกรรมวิธีในการวัด

และมีการก าหนดเงื่อนไขต่าง ๆ เพื่อประเมินผลคุณลักษณะของซอฟต์แวร์

Page 9: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

System’s Characteristics

1. Have programming and documentation standards been followed in the development process?

2. Has the software been properly tested?

3. Is the software sufficiently dependable to be put into use?

4. Is the performance of the software acceptable for normal use?

5. Is the software usable?

6. Is the software well structured and understandable?

9 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

Page 10: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

Software Quality Attributes

10 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

ที่มา: Lan Sommerville, Software Engineering Ninth Edition, 2011. เพ่ิมเติม: ISO/IEC 9126-1

Flexibility

Page 11: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

กิจกรรมย่อยที่ 10.1 Software Quality Attributes

• จากเอกสารหน้า 10 ก าหนดให้ค้นคว้าข้อมูลเกี่ยวกับ Software Quality Attributes ตามที่ระบุมาอย่างน้อยคุณลักษณะละ 3 ข้อ

11 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

Page 12: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

Process-based quality

12 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

ที่มา: Lan Sommerville, Software Engineering Ninth Edition, 2011.

• Configuring • Setting up • Operations

Maintenance

Page 13: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

Software Standard

• Software standards are important for three reasons: – Standards capture wisdom that is of value to the

organization

– Standards provide a framework for defining what ‘quality’ means in a particular setting

– Standards assist continuity when work carried out by one person is taken up and continued by another

13 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

Page 14: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

Software Standard (ต่อ)

• There are two related types of software engineering standard that may be defined and used in software quality management:

14 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

Product standards

• Apply to the software product being developed

• Include: document standards

• structure of requirements documents

• documentation standards

• standard comment header for an object class definition

• coding standards, define how a programming language should be used

Process standards

• Define the processes that should be followed during software development

• Encapsulate good development practice

• Process standards may include definitions of specification, design and validation processes, process support tools, and a description of the documents that should be written

Page 15: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

Software Standard (ต่อ)

15 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

ที่มา: Lan Sommerville, Software Engineering Ninth Edition, 2011.

Page 16: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

16 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

ที่มา: http://www.oracle.com/technetwork/articles/java/index-137868.html

Writing Doc Comments Format of a Doc Comment

Page 17: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

Software Standard (ต่อ)

• Involve software engineers in the selection of product standards

• Review and modify standards regularly to reflect changing technologies

• Provide software tools to support standards

17 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

To minimize dissatisfaction and to encourage buy-in to standards, quality managers who set the standards should therefore take the following steps:

Page 18: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

The ISO 9001 standards framework

• international set of standards that can be used in the development of quality management systems in all industries, called ISO 9000

• ISO 9000 standards can be applied to a range of organizations from manufacturing through to service industries

• ISO 9001, the most general of these standards, applies to organizations that design, develop, and maintain products, including software

• ISO 9001 standard was originally developed in 1987, with its most recent revision in 2008

• ISO 9001 standard is not itself a standard for software development but is a framework for developing software standards

18 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

Page 19: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

ISO 9001 core processes

19 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

ที่มา: Lan Sommerville, Software Engineering Ninth Edition, 2011.

Page 20: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

ISO 9001 and quality management

20 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

ที่มา: Lan Sommerville, Software Engineering Ninth Edition, 2011.

Page 21: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

Reviews and Inspections

• QA activities that check the quality of project deliverables

• involves examining the software, documentation and records of the process to discover errors and omissions

• group of people examine the software and its associated documentation

– Review team

– Project managers

• Quality reviews are based on documents that have been produced during the software development process

21 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

Page 22: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

The software review process

22 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

ที่มา: Lan Sommerville, Software Engineering Ninth Edition, 2011.

Page 23: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

The review process

23 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

• concerned with review planning and review preparation

Pre-review activities

• document or program being reviewed should ‘walk through’

The review meeting

• involve fixing software bugs, refactoring software

• issues and problems raised during the review must be addressed

Post-review activities

Page 24: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

Program inspections

• ‘peer reviews’ where team members collaborate to find bugs in the program that is being developed

• Inspections may be part of the software verification and validation processes

• Inspections can discover problems with tests and so improve the effectiveness of these tests in detecting program bugs

• Checklist [Gilb and Graham, 1993] of common programming errors is often used to focus the search for bugs

24 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

Page 25: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

An inspection checklist

25 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

ที่มา: Lan Sommerville, Software Engineering Ninth Edition, 2011.

Page 26: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

กิจกรรมย่อยที่ 10.2 An inspection checklist

• จากเอกสารหน้า 25 ก าหนดให้อธิบายและยกตัวอย่างประกอบรายการ inspection ส าหรับการตรวจสอบคุณภาพของซอฟต์แวร์อย่างน้อย 2 คลาส (Fault class) มาให้เข้าใจ

26 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

Page 27: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

Software measurement and metrics

• Software measurement is concerned with deriving a numeric value or profile for an attribute of a software component, system, or process.

• By comparing these values to each other and to the standards that apply across an organization, you may be able to draw conclusions about the quality of software, or assess the effectiveness of software processes, tools, and methods.

• The long-term goal of software measurement is to use measurement in place of reviews to make judgments about software quality.

• A software metric is a characteristic of a software system, system documentation, or development process that can be objectively measured.

• Software metrics may be either control metrics or predictor metrics

27 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

Page 28: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

Software measurement and metrics (ต่อ)

• There are two ways in which measurements of a software system may be used:

– To assign a value to system quality attributes By measuring the characteristics of system components, such as their cyclomatic complexity, and then aggregating these measurements, you can assess system quality attributes, such as maintainability.

– To identify the system components whose quality is substandard Measurements can identify individual components with characteristics that deviate from the norm.

28 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

Page 29: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

Software measurement and metrics (ต่อ)

• Relationships between internal and external software

29 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

ที่มา: Lan Sommerville, Software Engineering Ninth Edition, 2011.

Page 30: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

Software measurement and metrics (ต่อ)

• If the measure of the internal attribute is to be a useful predictor of the external software characteristic, three conditions must hold (Kitchenham, 1990):

– The internal attribute must be measured accurately

– A relationship must exist between the attribute that can be measured and the external quality attribute that is of interest

– This relationship between the internal and external attributes must be understood, validated, and expressed in terms of a formula or model

30 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

Page 31: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

Software measurement and metrics (ต่อ)

• Product metrics fall into two classes:

– Dynamic metrics, which are collected by measurements made of a program in execution. These metrics can be collected during system testing or after the system has gone into use

– Static metrics, which are collected by measurements made of representations of the system, such as the design, program, or documentation

31 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

Page 32: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

Static software product metrics

32 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

ที่มา: Lan Sommerville, Software Engineering Ninth Edition, 2011.

Page 33: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

The CK object-oriented metrics suite: Summarizes Chidamber and Kemerer’s suite (sometimes called the CK suite) of

six objectoriented metrics (1994).

33 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

ที่มา: Lan Sommerville, Software Engineering Ninth Edition, 2011.

Page 34: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

กิจกรรมย่อยที่ 10.3 Static software product metrics

• จากเอกสารหน้า 32-33 ก าหนดให้ค้นคว้า เพื่ออธิบายและยกตัวอย่างประกอบรายการ software product metrics ส าหรับช้ีวัดคุณภาพของซอฟต์แวร์มาอย่างน้อย 3 ตัวชี้วัด (Metrics) มาให้เข้าใจ

34 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

Page 35: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

สรุป (Summary)

• ศึกษาเรียนรู้เกี่ยวกับ – การประกันคุณภาพ (Quality Management)

– มาตรฐานซอฟต์แวร์ (Software Standard)

– การทวนสอบและตรวจสอบ (Reviews and Inspections)

– การวัดและตัวชี้วัดซอฟต์แวร์ (Software measurement and metrics)

35 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

Page 36: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

กิจกรรมท้ายบท

• จงบอกความหมายหรือให้ค าจ ากัดความของการจัดการคุณภาพ (Quality Management) การวางแผนคุณภาพ (Quality Planning) และมาตรฐานซอฟต์แวร์ (Software Standard) มาให้เข้าใจ

• จงอธิบายถึงคุณลักษณะของตัวช้ีวัดซอฟต์แวร์ มาให้เข้าใจพร้อมทั้งยกตัวอย่างประกอบ

• จงค้นคว้าและศึกษาเกี่ยวกับมาตรฐาน ISO 9000 และ ISO 9001 เพื่ออธิบายและบอกถึงแนวปฏิบัติของมาตรฐานดังกล่าว มาให้เข้าใจ

36 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)

Page 37: บทที่ 10 การจัดการคุณภาพ Quality Management) · about the quality of software, or assess the effectiveness of software processes, tools, and

เอกสารอ้างอิง

• กิตติ ภักดัวัฒนะกุล, วิศวกรรมซอฟต์แวร์ (Software Engineering), กรุงเทพฯ: เคทีพี คอมพ์ แอนด์ คอนซัลท์, 2552.

• Lan Sommerville, Software Engineering Ninth Edition, Pearson Education, Inc., publishing as Addison-Wesley, 2011.

37 เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306)