Bài giảng Đảm bảo chất lượng phần mềm - Chương 3: Các chuẩn chất lượng phần mềm cung cấp cho người học các kiến thức: Chuẩn (standard) là gì, một số hệ thống chuẩn trong CNPM, quan điểm trong QLCL,... Mời các bạn cùng tham khảo nội dung chi tiết.
Trang 1Đảm bảo chất lượng phần mềm
Software Quality Assurance
Chương 3: CÁC CHUẨN CHẤT LƯỢNG
PHẦN MỀM
PGS TS Trần Cao Đệ
Bộ môn Công nghệ phần mềm Khoa CNTT&TT – Đại học Cần Thơ
Trang 2Chuẩn (standard) là gì?
Wikimedia: a standard is a basic for comparison Standards are made either by many people that agree on something, or if some organization makes it so
• Khái niệm chuẩn: (trong lĩnh vực CNPM) chuẩn là một định nghĩa đầy đủ,
rõ ràng một kỹ thuật, qui trình hoặc thủ tục bởi một nhóm các nhà cung cấp dịch vụ hay sản phẩm
• Chuẩn làm cho các sản phẩm, dịch vụ có nguồn gốc khác nhau có thể so sánh được hay nối kết được
– Giúp đảm bảo chất lượng cao (bằng cách check các yêu cầu của chuẩn)
– Chỉ ra được chất lượng sản phẩm.
– Gia tăng tính đồng bộ giữa các nhóm và đào tạo nhân viên mới
– Cung cấp hướng dẫn thực hành tốt/đúng- tránh sai lầm trong quá khứ
– Cung cấp sự bảo hộ về mặt luật pháp.
• Hai loại chuẩn
– Thực tế (de facto)
– Luật (de jure)
Trang 3Một số hệ thống chuẩn trong CNPM
International Organization for Standardization
Software Engineering Institute’s (SEI)
Capability Maturity Model
Trang 4Giới thiệu một số chuẩn trong CNPM
– Terminology: IEEE Std 610.12:1990 Standard of Software Engineering Terminology
– Technical: ISO/IEC 8631:1989 Program Constructs and Conventions for their Representation
– Quality management
ISO 9000-3 Quality Management and Quality Assurance Standards - Part 3: Guidelines for the application of 9001 to the development, supply, installation and maintenance of computer software
– Quality measurement
IEEE Std 1061-1992 Standard for Software Quality Metrics Methodology
– General project management
IEE Std 1058.1-1987 Standard for Software Project Management Plans
– Producing plans
IEEE Std 1059-1993 Guide for Software Verification and Validation Plans
Trang 5Giới thiệu các chuẩn trong CNPM (tt)
Trang 6Một số chuẩn IEEE quan trọng cho SQA
IEEE 610.12-1990 (R2002) Standard Glossary of Software Engineering Terminology
IEEE 730-2002 Standard for Software Quality Assurance Plans
IEEE 828-1998 Standard for Software Configuration Management Plans
IEEE 829-1998 Standard for Software Test Documentation
IEEE 830-1998 Recommended Practice for Software Requirements Specifications
IEEE 1008-1987 (R1993, R2002) Standard for Software Unit Testing
IEEE 1012-1998 Standard for Software Verification and Validation
IEEE 11016-1998 Recommended Practice for Software Design Descriptions
IEEE 1028-1997 (R2002) Standard for Software Reviews
IEEE 1045-1992 (R2002) Standard for Software Productivity Metrics
IEEE 1058-1998 Standard for Software Project Management Plans
IEEE 1061-1998 (R2004) Standard for Software Quality Metrics Methodology
IEEE 1074-1997 Standard for Developing Software Life Cycle Processes
IEEE 1220-1998 Standard for the Application and Management of the Systems Engineering Process
IEEE 1490-2003 Adoption of PMI Standard: A Guide to the Project Management Body of
Knowledge
IEEE 1517-1999 (R2004) Standard for Information Technology – Software Life Cycle
Processes - Reuse Processes
Trang 7Quan điểm trong QLCL
Requirements document structure Submission of documents to CM
Method header format Version release process
Java programming style Project plan approval process
Project plan format Change control process
Trang 8ISO 9000
Trang 9Chuỗi ISO 9000
cho đến các ngành công nghiệp dịch vụ
– ISO 9000: Fundamentals and vocabulary
– ISO 9001: Requirements
– ISO 9004: Guidelines for performance improvements ISO
phần mềm.
và nó phải được cụ thể hóa ở mỗi tổ chức dùng chuẩn này.
Trang 10Chuỗi ISO 9000 (tt)
• ISO 9001:2000 - “Quality Management Systems –Requirements”
• ISO 90003:2004 – “Software engineering – Guidelines for the
application of ISO 9001:2000 to computer software”
– Cung cấp các hướng dẫn (về chất lượng) cho dành hợp đồng, cung
ứng, phát triển, vận hành, bảo trì phần mềm và các dịch vụ có liên quan
• cross-refers to
– ISO 12207 Life Cycle Models; to support software project activities
– ISO TR 15504 Software Process Assessment; to support the
measurement of processes and continual improvement
– ISO 14143 Functional Size Measurement
Trang 11Triết lý của ISO 9000
• Tài liệu hóa cái gì bạn làm
– Lưu ý làm cho phù hợp các đòi hỏi của
– Để kiểm tra và xác nhận, công nhận chuẩn
Trang 12ISO 9001
• Quản trị tổ chức như là một hệ thống các qui trình liên quan
nhau Người quản lí sẽ lập kế hoạch cho các qui trình này; xác định mối quan hệ giữa chúng; thiết lập mục tiêu; đo
lường tiến trình và thực hiện cải tiến.
• Thiết lập một số tiêu chí chất lượng:
– Tập hợp các mục tiêu chất lượng (Set quality goals)
– Đảm bảo các đòi hỏi của khách hàng được hiểu và thỏa mãn (Ensure customer
requirements are understood and met)
– Đào tạo đội ngũ làm việc(Train employees)
– Kiểm soát quá trình sản xuất (Control your production processes)
– Mua từ các nhà cung cấp khác có khả năng cung cấp SP chất lượng (Purchase from suppliers that can provide quality product)
– Sửa lỗi và đảm bảo chúng không xảy ra nữa (Correct problems and make sure they do not happen again)
• Nếu tất cả các tiêu chí đều được thỏa, công ty sẽ được đăng
kí cấp chứng chỉ ISO 9001
Trang 13Yêu cầu của ISO 9001 (REQUIREMENTS)
1 Chính sách về chất lượng phải được xác định và tài liệu hóa; đồng thời
phải đảm bảo chính sách này được thông suốt ở mọi cấp trong tổ chức
2 Mọi qui trình kiểm soát chất lượng đều phải được tài liệu hóa
3 Mọi hợp đồng cung cấp hàng hóa, dịch vụ phải có sự kí kết rằng nhà
phát triển có khả năng giao hàng
4 Phải có qui trình xét duyệt, phê chuẩn thiết kế và các tài liệu khác
5 Thành phần nào trong hệ thống cung cấp cho khách hàng mà đến từ
bên thứ ba phải có qui trình, qui định để đảm bảo, kiểm tra và xác nhận chất lượng
6 Mỗi một sản phẩm đều có thể nhận diện được cùng với các thành phần
của nó
7 Tiến trình tạo ra sản phẩm hoàn chỉnh phải được lên kế hoạch và kiểm
soát
8 Thanh tra và kiểm thử (mã nguồn) phải được thực hiện suốt quá trình
phát triển, hoàn thiện trước khi bàn giao Thanh tra và kiểm thử cũng phải được thực hiện trên thành phần thu được từ bên thứ 3
Trang 14Yêu cầu của ISO 9001 (tt)
9 Thiết bị dùng trong quá trình sản xuất cũng phải được kiểm soát là hợp
chuẩn
10 Trạng thái kiểm tra mọi thành phần trong hệ thống và cả hệ thống phải
được ghi chép rõ ràng, đầy đủ
11 Thận trọng để đảm bảo rằng mọi phần tử được biết là có lỗi không bị sử
dụng một cách tình cờ
12 Khi phát hiện lỗi, các biện pháp cần thiết phải được thực hiện để loại bỏ
lỗi và đảm bảo rằng lỗi đó sẽ không xuất hiện nữa
13 Có qui định thỏa đáng về sử dụng, lưu trữ, bảo quản, đóng gói và
Trang 15ISO 9001 Sections
• Section 4: General Requirements
– Requirements for the overall Quality Management System
• Section 5: Management Responsibility
– Requirements for Management and their role in the Quality
Management System
• Section 6: Resource Management
– Requirements for resources including personnel, training, the facility and work environment
• Section 7: Product Realization
– Requirements for the production of the product or service, including planning, customer related processes, design, purchasing, and
process control
• Section 8: Measurement, Analysis and Improvement
– Requirements on monitoring processes and improving those
Trang 16ISO 90003
Chứa các hướng dẫn để áp dụng các phần tử đặc tả
trong ISO 9001, ISO 9002, and ISO 9003 vào phần
mềm
Trang 17ISO 9000 và Quản lí chất lượng
Project 1 quality plan
Project 2 quality plan
Project 3 quality plan
Project quality management
Organisation quality man ual
ISO 9000 quality models
Organisation quality pr ocess
is used to de velop instantiated as
instantiated as
documents
Supports
Trang 18ISO 9126
Trang 19ISO 9126
• 3 góc nhìn về chất lượng SP phần mềm:
– Chất lượng trong (Internal Quality)
là các đặc tính của SP phần mềm từ góc nhìn bên trong trong suốt quá trình phát triển hoặc bảo trì (ví dụ code, kiến trúc)
– Chất lượng ngoài (External Quality)
là các đặc tính của SP phần mềm từ góc nhìn bên ngoài thông qua thực thi chương trình
– Chất lượng dùng (Quality in Use)
là góc nhìn của người dùng về chất lượng SP phần mềm khi dùng
nó trong một môi trường, hoàn cảnh cụ thể Nó phản ánh mức độ
mà người dùng có thể hoàn thành mục tiêu của họ trong một hoàn cảnh cụ thể hơn là đánh giá các đặc tính của bản thân phần mềm
• Chất lượng trong xác định chất lượng ngoài, chất lượng ngoài ảnh hưởng đến chất lượng dùng
Trang 20ISO9126 Standards
• ISO/IEC 9126-1:2001 Software engineering Product quality
Part 1: Quality model
• ISO/IEC TR 9126-2:2003 Software engineering Product
quality Part 2: External metrics
• ISO/IEC TR 9126-3:2003 Software engineering Product
quality Part 3: Internal metrics
• ISO/IEC TR 9126-4:2004 Software engineering Product
quality Part 4: Quality in use metrics
Trang 21Khung chất lượng (Quality Framework)
User quality needs
External quality Requirements
Internal quality Requirements
Validation
Verification
Trang 22Chất lượng trong vòng đời phần mềm
Trang 23ISO 9126: chất lượng trong và ngoài
Trang 24Chức năng PM (Functionality)
Functionality : Khả năng của phần mềm cung cấp các chức năng tương ứng với yêu cầu đã được phát biểu và suy diễn khi phần mềm được dùng trong các điều kiện cụ thể.
– Suitability (thích hợp) – Khả năng phần mềm cung cấp tập các chức năng phù hợp với công việc và mục đích của người dùng đã được đặc tả
– Accuracy (chính xác)- Khả năng phần mềm cung cấp kết quả hoặc hiệu ứng đúng đắn hoặc được đồng ý với độ chính xác đòi hỏi
– Interoperability (tương tác)- Khả năng phần mềm trong tương tác với
1 hoặc nhiều hệ thống khác được đặc tả
– Security (an toàn) - Khả năng phần mềm bảo vệ thông tin, dữ liệu sao cho người hoặc hệ thống không được phép thì không truy cập được
và người hoặc êệ thống được phép thì truy cập được
– Functional Compliance (thỏa chuẩn chức năng) – Khả năng phần
mềm thỏa mãn chuẩn, qui ước hoặc các qui định luật pháp về chức năng
Trang 25Reliability (tin cậy)
Reliability - Khả năng phần mềm đạt được một mức độ hiệu quả xác định khi dùng trong một điều kiện cụ thể
hóc vì lỗi phần mềm
• Đo bằng tần xuất hỏng (Frequency of failure)
một mức độ hiệu quả xác định trong trường hợp có lỗi hoặc có sự xâm hại trên giao diện đã được đặc tả
độ hiệu quả hoặc phục hồi dữ liệu bị ảnh hưởng trực tiếp trong
trường hợp có hỏng hóc
mềm thỏa mãn chuẩn, qui ước hoặc các qui định luật pháp về độ tin cậy
• Availability (tính sẳn dùng) là tổ hợp của maturity, fault
Trang 26– Usability compliance (thỏa mãn chuẩn về dùng được).
• Chú ý: trong trường hợp ứng dụng web, tính dùng được còn bao gồm cả truy cập được.
Trang 27Efficiency (hiệu quả)
Efficiency – khả năng phần mềm trong hiệu quả sử
dụng nguồn lực, tài nguyên máy tính trong những điều kiện cụ thể.
– Time behavior (đáp ứng về thời gian)- thời gian thao tác hoặc trả lời hoặc tần xuất đứt quãng khi thực hiện các
chức năng trong một điều kiện cụ thể.
– Resource utilization (dùng tài nguyên) số lượng tài nguyên
và kiểu tài nguyên dùng phù hợp.
– Efficiency compliance (thỏa mãn chuẩn về hiệu quả).
Trang 28Bảo trì được - Maintainability
Maintainability – Khả năng sửa đổi được phần mềm, bao gồm sửa lỗi, cải tiến để đáp ứng các thay đổi về môi trường hoặc trong đặc
tả chức năng
– Analyzability (phân tích được) – khám xét được sự phụ thuộc hoặc nguyên nhân hỏng hóc
– Changeability (thay đổi được)
– Stability (ổn định)- tránh được hiệu ứng lề từ việc thay đổi trong phần mềm
– Testability (kiểm tra được) – kiểm tra, kiểm chứng được phần mềm
đã sửa đổi
– Maintainability Compliance (thỏa mãn chuẩn về tính bảo trì được)
Trang 29Khả chuyển - Portability
Portability – Khả năng phần mềm chuyển từ môi trường này sang môi trường khác
– Adaptability (thích ứng)- thích ứng trong các môi trường khác nhau
không cần hành động hoặc phương tiện nào khác
– Installability – (cài đặt được)
– Co-existence (cùng tồn tại)- cùng tồn tại với các phần mềm độc lập
khác và chia sẻ tài nguyên
– Replaceability (thay thế được), ví dụ IE8 thay IE7
– Portability Compliance (thỏa mãn chuẩn về khả chuyển)
Trang 30Chất lượng dùng - Quality in use
Quality in use
Effectiveness Productivity Safety Satisfaction
• Effectiveness (hiệu quả): khả năng phần mềm cho phép người dùng hoàn thành mục đích xác định với độ chính xác và đầy đủ trong ngữ cảnh được dùng
• Productivity (hiệu suất): cho phép người dùng trả một lượng phù hợp
về tài nguyên liên quan tới mục đích dùng
• Safety (an toàn): mức độ rủi ro phù hợp về tổn hại con người, công việc kinh doanh, của cải, …
• Satisfaction (thỏa mãn người dùng)
Trang 31CMM
Trang 32Five maturity levels
Process characterized for
projects and is often
Focus on continuous process improvement
Optimizing
Quantitatively Managed
Trang 33đó với các dự án tương tự.
3 Defined: Qui trình phần mềm cho các hoạt động kỹ nghệ và quản
lí được tài liệu hóa, chuẩn hóa và tích hợp vào trong qui trình
chuẩn của tổ chức Mọi dự án dùng một phiên bản đã được duyệt
và ban hành trong tổ chức để phát triển và bảo trì phần mềm.
4 Managed: Các độ đo cho qui trình phần mềm và chất lượng sản phẩm được tập hợp Cả qui trình và sản phẩm đều được hiểu và kiểm soát định lượng.
5 Optimizing: Cải tiến qui trình 1 cách liên tục được thực hiện dựa trên các phản hồi định lượng từ qui trình và từ các sáng kiến, phát minh công nghệ.
Trang 34• Thành công phụ thuộc vào người giỏi làm việc đúng đắn
• Khó trụ được khi người giỏi bỏ đi
• Nhiều công ty phần mềm ở mức này
Trang 35Level 2
• Qui trình được thiết lập
• Kế hoạch cho dự án mới được thiết lập
dựa trên những cái tương tự trước đó
• Kiểm soát và quản lí cơ bản
• Theo dõi giá và lịch biểu
• Xác định các vấn đề
• Sản phẩm được chuẩn hóa: kiểu viết
code, kiểu test
• Kiểm soát và quản lí dự án cơ bản
– Quản lí yêu cầu khách hàng
– Kế hoạch dự án
– Điều hành và kiểm soát dự án
– Quản lí hợp đồng với nhà cung cấp
– Đảm bảo chất lượng qui trình và sản
phẩm
– Quản lí cấu hình
Trang 36Level 3
• Qui trình công nghệ phần mềm và quản
lí được định nghĩa và tài liệu hóa
• Đội ngũ nhân viên có thể đo lường qui
trình khi cần
• Tiếp cận tới chuẩn hóa.
• Kiểm tra chéo.
• Có hạ tầng cho qui trình công nghệ và
– Phát triển các yêu cầu khách hàng
– Giải quyết các vấn đề kỹ thuật
Trang 37Level 4
• Đo lường và phân tích qui trình
• Dữ liệu đo lường được dùng để thiết lập qui trình mới
• Qui trình định lượng được và dự báo được.
• Các cải tiến có thể nhìn thấy ở đây.
• Có hiểu biết 1 cách định lượng cho cả qui trình và sản phẩm đang xây dựng
– Đánh giá hiệu quả của qui trình thuộc tổ chức
– Quản lí dự án 1 cách định lượng.
Trang 38Level 5
• Qui trình được thiết lập và đo được.
• Các cải tiến liên tục dựa trên các phản hồi
• Có thể phân tích nguyên nhân hỏng hóc và nguyên nhân
• Có thể đạt tiến độ đã thiết lập
• Tiếp tục trưởng thành
• Các vấn đề về cả tổ chức và dự án phải được đề
cập và thiết lập các cải tiến liên tục, định lượng:
– Phân tích nguyên nhân và hậu quả
– Sáng kiến của tổ chức và triển khai.
Trang 39CMM in a big picture
Trang 40Phạm vi qui trình chính
Key Process Areas
• Xác định một tập các hoạt động mà khi thực hiện đồng loạt
nó hoàn thành các mục tiêu quan trọng để nâng cao khả
năng của qui trình
• (KPA) Được định nghĩa để tập trung vào một mức trưởng
thành
• Xác định các vấn đề cần phải giải quyết để đạt mức trưởng
thành