Bài 9 - Quản lý chất lượng phần mềm. Bài giảng bao gồm các nội dung: Khái niệm về chất lượng phần mềm và đảm bảo chất lượng phần mềm, rà soát kỹ thuật - formal technical review, độ đo chất lượng - software Quality metrics, đánh giá độ tin cậy, tránh lỗi và thứ lỗi...Mời các bạn cùng tham khảo.
Quản lý chất lượng phần mềm BM CNPM – Khoa CNTT – HVKTQS 10/2012 Outline Khái niệm chất lượng phần mềm đảm bảo chất lượng phần mềm Rà soát kỹ thuật - Formal technical review Độ đo chất lượng - Software Quality metrics Đánh giá độ tin cậy Tránh lỗi thứ lỗi - Fault tolerance and avoidance (reliability and availability) Khái niệm chung Từ điển American Heritage định nghĩa chất lượng "một đặc tính thuộc tính đó" Với quan niệm thuộc tính mục, chất lượng đề cập đến đặc tính đo lường - điều mà so sánh với đại lượng chuẩn biết đến chiều dài, màu sắc, tính chất điện Tuy nhiên, phần mềm, biết rộng rãi thực thể trí tuệ, khó khăn để định nghĩa chất lượng so với đối tượng vật lý Chất lượng phần mềm định nghĩa là: Sự phù hợp phần mềm với yêu cầu chức năng, hiệu suất, với tiêu chuẩn phát triển quy định rõ ràng văn phù hợp với đặc điểm ngầm định tất phần mềm phát triển chuyên nghiệp Software quality management Quan tâm đến việc đảm bảo mức độ yêu cầu chất lượng tuân thủ sản phẩm phần mềm Liên quan đến việc xác định tiêu chuẩn, thủ tục chất lượng phù hợp đảm bảo việc chúng tuân thủ Có mục đích để phát triển "văn hóa chất lượng", theo chất lượng xem trách nhiệm người Đảm bảo chất lượng Quality Assurance Đảm bảo chất lượng bao gồm chức kiểm toán báo cáo quản lý Mục tiêu đảm bảo chất lượng cung cấp cho công việc quản lý liệu cần thiết để nhận thông tin chất lượng sản phẩm, từ có nhìn sâu sắc tự tin chất lượng sản phẩm đáp ứng mục tiêu Nếu liệu cung cấp thơng qua đảm bảo chất lượng vấn đề, trách nhiệm ban quản lý để giải vấn đề áp dụng nguồn lực cần thiết để giải vấn đề chất lượng Thiết lập thủ tục cho tổ chức thiết lập tiêu chuẩn chất lượng SQA Activities Đảm bảo chất lượng phần mềm bao gồm loạt nhiệm vụ liên quan tới nhóm người: Các kỹ sư phần mềm, người thực cơng việc kỹ thuật; Nhóm SQA có trách nhiệm lập kế hoạch đảm bảo chất lượng, giám sát, lưu trữ hồ sơ, phân tích, báo cáo Software engineers Software engineers address quality (and perform quality assurance and quality control activities) by applying solid technical methods and measures, conducting formal technical reviews, and performing well-planned software testing The SQA group Chuẩn bị kế hoạch SQA cho dự án Tham gia vào cơng việc mơ tả q trình phần mềm dự án Rà soát hoạt động kỹ nghệ phần mềm để xác minh tính phù hợp với q trình phần mềm xác định Kiểm tốn sản phẩm phần mềm định để xác minh tuân thủ với quy định chúng phần trình phần mềm Đảm bảo độ lệch sản phẩm phần mềm thực tế đặc tả ghi chép xử lý văn Ghi chép lại không phù hợp báo cáo cho người quản lý cấp cao ISO 9000 Là tập hợp chuẩn quốc tế đảm bảo chất lượng Có thể áp dụng cho loạt tổ chức từ sở sản xuất đến ngành dịch vụ ISO 9000 mô tả yếu tố hệ thống đảm bảo chất lượng cách tổng quát Những yếu tố bao gồm cấu tổ chức, thủ tục, quy trình, nguồn lực cần thiết để lập kế hoạch chất lượng, kiểm soát chất lượng, đảm bảo chất lượng cải tiến chất lượng Tuy nhiên, ISO 9000 không mô tả tổ chức cần làm để đạt yếu tố chất lượng ISO 9001 ISO 9001 tiêu chuẩn đảm bảo chất lượng áp dụng cho cơng nghệ phần mềm Tiêu chuẩn chứa 20 yêu cầu phải có cho hệ thống đảm bảo chất lượng hiệu Tiêu chuẩn ISO 9001 áp dụng cho tất lĩnh vực kỹ thuật, hướng dẫn đặc biệt ISO (ISO 9000-3) phát triển giúp giải thích tiêu chuẩn để sử dụng q trình phần mềm Các yêu cầu mô tả chủ đề trách nhiệm quản lý, hệ thống chất lượng, rà soát hợp đồng, kiểm soát việc thiết kế, kiểm soát tài liệu liệu, nhận dạng sản phẩm truy xuất nguồn gốc, kiểm sốt q trình, tra, thử nghiệm, hoạt động khắc phục phòng ngừa, kiểm soát hồ sơ chất lượng, kiểm toán chất lượng nội bộ, đào tạo, dịch vụ kỹ thuật thống kê Để tổ chức phát triển phần mềm nhận tiêu chuẩn ISO 9001, phải thiết lập sách thủ tục để giải yêu cầu (và yêu cầu khác) sau chứng minh sách thủ tục tuân thủ ISO 9001 mơ hình tổng qt q trình chất lượng Đối với tổ chức khác phải có điều chỉnh phù hợp Một số tiêu chuẩn để đánh giá sản phẩm phần mềm Tiêu chuẩn 4: Tính sáng tạo Sản phẩm phải mẻ độc đáo Nếu phát triển cũ phải hay đồng thời phải cung cấp chức tốt so với có Tiêu chuẩn 5: Tính an tồn Sản phẩm phần mềm phải có chế bảo mật chống xâm phạm, chép trộm làm biến dạng chương trình Có chế bảo vệ đối tượng mà phát sinh quản lý, có chế hồi phục có cố Tiêu chuẩn 6: Tính đầy đủ tồn vẹn Sản phẩm thực đầy đủ yêu cầu khách hàng Các chức phải có tính đối xứng, nghĩa là: có tạo lập có xố bỏ, có mở có đóng, có cho phép trở về, … Tiêu chuẩn 7: Tính độc lập với thiết bị Sản phẩm sử dụng nhiều loại máy khác sử dụng nhiều thiết bị kèm khác Độc lập với cấu trúc đối tượng mà phát sinh Tiêu chuẩn 8: Tính phổ dụng Có thể sử dụng rộng rãi nhiều lĩnh vực nhiều chế độ làm việc Tiêu chuẩn 9: Tính dễ học dễ sử dụng, cải tiến Sản phẩm hợp với yêu cầu người dùng ngôn ngữ, hệ thống chức (menu), thông báo, cú pháp đơn giản, rõ ràng, dễ nhớ, dễ thao tác, dễ tăng cường chức năng, dễ mở rộng cải tiến ISO 9126 Quality Factors Functionality Mức độ mà phần mềm đáp ứng yêu cầu, thể qua thuộc tính sau: tính phù hợp, độ xác, khả tương tác, tính tuân thủ, an ninh toàn Reliability Lượng thời gian mà phần mềm sẵn sàng cho sử dụng, thể qua thuộc tính sau: trưởng thành, khả chịu lỗi, khả phục hồi Usability Phần mềm sử dụng dễ dàng, thể qua thuộc tính sau: dễ hiểu, dễ học, dễ thao tác Efficiency Phần mềm sử dụng tài nguyên hệ thống cách tối ưu, thể qua thuộc tính con: thời gian thực hiện, lượng tài nguyên sử dụng Maintainability Phần mềm dễ sửa chữa, thể qua thuộc tính con: khả phân tích được, dễ thay đổi, ổn định, kiểm thử Portability Phần mềm dễ chuyển từ môi trường sang môi trường khác, thể qua thuộc tính con: tính thích ứng, dễ cài đặt, tính phù hợp, dễ thay Độ tin cậy phần mềm Độ tin cậy phần mềm độ đo mức độ tốt dịch vụ mà hệ thống cung cấp Độ tin cậy phần mềm đặc trưng hệ thống, hệ số tỉ lệ nghịch số thất bại phần mềm Để đo độ tin cậy phần mềm ta tiến hành cách sau Một số cách đo độ tin cậy phần mềm: Tính xác suất xuất thành công hay thất bại Đo độ dài khoảng thời gian trung bình hai lần thất bại liên tiếp Khả sẵn sàng hoạt động lại hệ thống Internal and external attributes The measurement process A software measurement process may be part of a quality control process Data collected during this process should be maintained as an organisational resource Once a measurement database has been established, comparisons across projects become possible Tránh lỗi Phần mềm khơng có lỗi: phần mềm thỏa mãn yêu cầu người sử dụng Vì để phát triển phần mềm khơng có lỗi người ta phải tuân theo yếu tố sau: Phát triển phần mềm dựa đặc tả hệ thống xác Phải dựa che dấu bao gói thơng tin Tăng cường việc duyệt lại trình phát triển phần mềm Đưa chất lượng lên hàng đầu Lập kế hoạch cẩn thận cho thử nghiệm hệ thống để phát lỗi tiềm ẩn chưa phát trình duyệt lại Tránh lỗi Việc xây dựng phần mềm không lỗi việc làm đắt đỏ Việc tìm phát lỗi tốn nhiều thời gian cơng sức Vì đơi người ta chấp nhận phần mềm với số lỗi nhỏ giá bán thấp chút cố gắng sửa để bán với giá cao chút Có số cấu trúc hay gây lỗi, là: lệnh nhảy khơng điều kiện goto, cấu trúc số thực dấu phẩy động, trỏ, đệ qui, xử lí song song, ngắt… Những cấu trúc nhiều tốn làm cho chương trình ngắn gọn, hiệu nhiên cấu trúc hay gây lỗi.Vì sử dụng phải thận trọng Thứ lỗi (tolerance): Có số phần mềm tiềm ẩn số lỗi nhỏ khơng đáng kể, khó để khắc phục => coi phần mềm khơng có lỗi Việc làm gọi thứ lỗi Để thứ lỗi, người ta phải tiến hành số hành động sau: Phát lỗi Đánh giá mức độ thiệt hại Phục hồi sau gặp lỗi Phục hồi tiến : Chỉnh sửa trạng thái lỗi Phục hồi lùi : Lui trạng thái an tồn trước gặp lỗi Chữa lỗi Các lỗi mắc phải trình thiết kế cài đặt phần mềm Lỗi thứ 1: Lỗi ý đồ thiết kế sai Đây lỗi nặng Hệ thống mà xây dựng đáp ứng yêu cầu khách hàng Lỗi thứ 2: Lỗi phân tích yêu cầu không đầy đủ lệch lạc Đây lỗi thường xảy Thực tế cho thấy, người làm chun mơn khơng hiểu sâu tin học nên không cung cấp thông tin cần thiết cho người làm tin học Ngược lại, người làm tin học không hiểu hết chuyên môn nghiệp vụ khách hàng Do mà việc thu thập thơng tin khơng đầy đủ thiếu xác Chính mà dễ mắc lỗi Lỗi khắc phục gặp gỡ hai bên giải đáp điều mơ hồ Lỗi thứ 3: Lỗi hiểu sai chức Đây lỗi thường hay mắc phải hệ thống có chức hay lĩnh vực có tính chun mơn cao Các từ chun ngành Dẫn đến khó hiểu nhà phát triển phần mềm + Ví dụ: Đối với phân số, cài đặt để đỡ rắc rối ta quan niệm Tử_số Z (số nguyên); Mẫu_số N (số tự nhiên) Như biểu thức 3/-4 hiểu thương hai số nguyên Khi cài đặt, người ta không ý đến chuyện này, mắc lỗi Các lỗi mắc phải trình thiết kế cài đặt phần mềm Lỗi thứ 4: Lỗi bỏ sót chức Lỗi nhà phát triển phần mềm hay mắc phải, điều kiện thời gian chun mơn có hạn, đơi chức khơng thể đưa cách đầy đủ Lỗi hạn chế (khơng phải khắc phục tất cả) qua thời gian làm việc nhiều với khách hàng, mà ta biết nhiều thơng tin + Ví dụ: Khi thực phép toán với Phân_số ta quên rút gọn phân số; không khởi tạo; kiểm tra phép chia cho số 0, … + Một khía cạnh khác nữa, việc thiết kế hướng đối tượng (sẽ nghiên cứu sau), ta cần phải tuân theo nguyên lý hướng đối tượng (chủ yếu tính che dấu thơng tin kế thừa): ta phải biết cách để truy nhập đến thành phần đối tượng Lỗi thứ 5: Lỗi đối tượng chịu tải Lỗi xảy hàm thủ tục cấp thấp xây dựng lên thủ tục khác Lỗi lỗi nặng, kéo theo sai xót loạt hàm thủ tục khác + Xét nguyên lý mức độ lỗi lỗi nặng ý đồ thiết kế sai thủ tục chịu tải mức thấp Các lỗi mắc phải q trình thiết kế cài đặt phần mềm Lỗi thứ 6: Lỗi lây lan Đây lỗi virus lây từ chương trình sang chương trình khác Ví dụ, thư viện có chương trình bị lỗi Nếu ta gọi thủ tục có lỗi Lỗi thứ 7: Lỗi cú pháp Lỗi sinh việc viết sai quy định văn phạm Những lỗi thường chương trình dịch thơng báo dịch theo nguyên lý an toàn: lỗi nhỏ phải xử lý dịch đến Các lỗi mắc phải trình thiết kế cài đặt phần mềm Lỗi thứ 8: Lỗi hiệu ứng phụ Lỗi xảy việc sử dụng hàm, thủ tục hay chương trình con, có phép tính biến đổi chương trình nằm ngồi ý muốn người lập trình Xét ví dụ sau: Var x, y, z : real; Function FF : real; Begin X := 10 + 2*x; FF := x + y/5; End; Begin Write(' x = '); readln(x); Write(' y = '); readln(y); Z := FF; Writeln(' 10 + 2*', x, '+', y, '/5 = ', z); End Chương trình sai x biến tồn cục nên tác động tồn chương trình Có nhiều cách sửa cách sửa chương trình cách thêm biến phụ biến địa phương Hay cách chuyển đổi lại cách in (vì kết đúng) Để tránh hiệu ứng phụ ta cần phải tuân theo: Tất biến khai báo chương trình biến địa phương Tất tham biến hình thức truyền theo tham trị chương trình dù có trùng tên với biến tồn cục khơng làm thay đổi giá trị biến tồn cục Đối với phép tính làm thay đổi giá trị biến phải dùng biến phụ Tài liệu tham khảo R Pressman, Kỹ nghệ phần mềm Tập 1, 2, NXB Giáo dục, Hà Nội, 1997 (Người dịch: Ngô Trung Việt) R Pressman, Software Engineering: A Practioner’s Approach 5th Ed., McGraw-Hill, 2001 Chapters 8, 9, 19, 24 I Sommerville, Software Engineering 5th Ed., Addison-Wesley, 1995 Chapters 24, 29 ... Khái niệm chất lượng phần mềm đảm bảo chất lượng phần mềm Rà soát kỹ thuật - Formal technical review Độ đo chất lượng - Software Quality metrics Đánh giá độ tin cậy Tránh lỗi thứ lỗi - Fault tolerance... phát triển thành phần Cho phép lượng hóa phần mềm trình phần mềm Là đơn vị đo cho phần mềm q tình phần mềm Có thể sử dụng để dự đốn thuộc tính sản phẩm kiểm sốt q trình phần mềm Một số tiêu chuẩn... chức kiểm toán báo cáo quản lý Mục tiêu đảm bảo chất lượng cung cấp cho công việc quản lý liệu cần thiết để nhận thông tin chất lượng sản phẩm, từ có nhìn sâu sắc tự tin chất lượng sản phẩm đáp ứng