HÀ THỊ HẢO
NGHIÊN CỨU HỆ THỐNG QUẢN LÝ CHẤT LƯỢNG PHẦN MỀM VÀ ÁP DỤNG ĐÁNH GIÁ CHẤT LƯỢNG TRONG CỦA PHẦN MỀM
VÍ ĐIỆN TỬ OMIPAY
LUẬN VĂN THẠC SĨ
NGÀNH: CÔNG NGHỆ THÔNG TIN
CHUYÊN NGÀNH: HỆ THỐNG THÔNG TIN QUẢN LÝ
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. PHÙNG VĂN ỔN
Hà Nội - 2021
LỜI CAM ĐOAN
Tôi cam đoan bài luận văn là toàn bộ kết quả quá trình nghiên cứu của cá nhân tôi.
Quá trình xây dựng nội dung của luận văn này tôi đã dựa vào thành quả nghiên cứu và có tham khảo và dùng các tài liệu, thông tin thu thập được trên những trang tạp chí và các trang web theo danh mục tài liệu tham khảo. Tất cả tài liệu tham khảo cho luận văn được liệt kê có xuất xứ rõ ràng, công khai và được trích dẫn hợp pháp.
Tôi sẽ hoàn toàn chịu trách nhiệm, các hình thức kỷ luật theo quy định về lời cam đoan của mình cho luận văn này.
Tác giả luận văn
Hà Thị Hảo
LỜI CẢM ƠN
Tôi chân thành cảm ơn các thầy cô Khoa Công nghệ thông tin, ngành Quản lý hệ thống thông tin, các anh chị cán bộ Phòng Đào tạo và Công tác Sau đại học Trường Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội đã luôn đồng hành, tạo điều kiện thuận lợi cho tôi trong thời gian học tập tại trường và nghiên cứu luận văn.
Học viên xin chân thành cảm ơn Tiến sỹ Phùng Văn Ổn, thầy là người đã trực tiếp và luôn tận tình hướng dẫn, định hướng nghiên cứu cho luận văn, luôn tạo động lực cho học viên cố gắng hoàn thành luận văn.
Tôi chân thành cảm ơn các anh chị quản lý, đồng nghiệp và gia đình đã luôn khuyến khích, sát cánh và tạo điều kiện giúp học viên có thời gian học tập và nghiên cứu để tôi có được kết quả như ngày hôm nay.
Trân trọng cảm ơn!
Tác giả luận văn
Hà Thị Hảo
Mục lục
LỜI CAM ĐOAN LỜI CẢM ƠN Mục lục
Danh mục các từ viết tắt Danh mục các bảng biểu Danh mục các hình vẽ
MỞ ĐẦU 1
Chương 1. TỔNG QUAN HỆ THỐNG QUẢN LÝ CHẤT LƯỢNG SẢN PHẨM
PHẦN MỀM 2
1.1. Chất lượng sản phẩm phần mềm và quản lý chất lượng sản phẩm phần mềm 2
1.1.1 Khái niệm phần mềm 2
1.1.2 Chất lượng phần mềm 2
1.1.3 Quản lý chất lượng sản phẩm phần mềm 4
1.1.4 Chất lượng sản phẩm phần mềm và vòng đời phát triển phần mềm 5
1.1.5 Đảm bảo chất lượng sản phẩm phần mềm 6
1.2. Quy trình phát triển sản phẩm phần mềm 7
1.2.1 Khái niệm 7
1.2.2 Quy trình chung phát triển sản phẩm phần mềm 8
1.2.3 Mô hình thác nước 9
1.2.4 Mô hình chữ V 9
1.2.5 Mô hình xoắn ốc 9
1.2.6 Mô hình tiếp cận lặp 10
1.2.7 Mô hình tăng trưởng 11
1.2.8 Mô hình phát triển ứng dụng nhanh 11
1.2.9 Mô hình Agile 12
1.2.10 Mô hình Scrum 12
1.3. Yêu cầu về đánh giá chất lượng phần mềm 13
1.3.1 Tầm quan trọng của đánh giá chất lượng sản phẩm phần mềm 13 1.3.2 Các tiêu chuẩn quốc tế về chất lượng phần mềm 14
1.3.3 Các tiêu chuẩn chất lượng phần mềm Việt Nam 17
1.4. Mô hình quản lý chất lượng sản phẩm phần mềm 18
Chương 2. PHƯƠNG PHÁP ĐÁNH GIÁ VÀ QUY TRÌNH ĐÁNH GIÁ CHẤT
LƯỢNG PHẦN MỀM 22
2.1 Phương pháp đánh giá chất lượng sản phẩm phần mềm 22 2.1.1 Các phép đánh giá chất lượng trong và đánh giá chất lượng ngoài 22
2.1.2 Các phép đánh giá chất lượng sử dụng 23
2.2 Các giai đoạn có thể đánh giá chất lượng sản phẩm phần mềm 24
2.3 Quy trình đánh giá chất lượng phần mềm 25
2.4 Thiết kế đánh giá chất lượng 31
2.5 Các tiêu chí đánh giá chất lượng phần mềm 33
2.6 Độ đo các tiêu chí 33
Chương 3. ĐÁNH GIÁ CHẤT LƯỢNG TRONG VÍ ĐIỆN TỬ OMIPAY 37
3.1 Giới thiệu Ví điện tử OmiPay 37
3.1.1 Giới thiệu chung 37
3.1.2 Đối tượng khách hàng sử dụng Ví điện tử OmiPay 38
3.1.3 Các tính năng Ví điện tử OmiPay 39
3.2 Xây dựng quy trình và tiêu chí đánh giá chất lượng trong Ví điện tử OmiPay 40
3.2.1 Phạm vi đánh giá 40
3.2.2 Lựa chọn các tiêu chí đánh giá chất lượng trong Ví điện tử OmiPay 40
3.3 Phương pháp và công thức đánh giá các tiêu chí 42
3.3.1 Tính chức năng 42
3.3.2 Tính tin cậy 43
3.3.3 Tính khả dụng 44
3.3.4 Tính hiệu quả 48
3.3.5 Tính khả chuyển 50
3.4 Đánh giá chất lượng trong cho phần mềm ví điện tử OmiPay theo từng tiêu chí 51 3.4.1 Tính chức năng - tính phù hợp: Tính đầy đủ chức năng (Metric 8.1.1) 51 3.4.2 Tính chức năng – tuân thủ chức năng: Tuân thủ chức năng (Metric 8.1.5) 53 3.4.3 Tính tin cậy – tính hoàn thiện: Tính đầy đủ của kiểm thử (Metric 8.2.1) 61 3.4.4 Tính khả dụng – Tính dễ hiểu: Tính hoàn chỉnh của mô tả (Metric 8.3.1) 62 3.4.5 Tính khả dụng – Tính dễ hiểu: Chức năng hiển thị (Metric 8.3.1) 70 3.4.6 Tính khả dụng – khả năng vận hành: Kiểm tra tính hợp lệ của dữ liệu đầu
vào (Metric 8.3.3) 72
3.4.7 Tính khả dụng – khả năng vận hành: Khả năng hủy bỏ thao tác của người
dùng (Metric 8.3.3) 74
3.4.8 Tính khả dụng – khả năng vận hành: Khả năng giám sát tình trạng vận hành
(Metric 8.3.3) 75
3.4.9 Tính hiệu quả - hành vi thời gian: Thời gian phản hồi (Metric 8.4.1) 76 3.4.10 Tính hiệu quả - sử dụng tài nguyên: Sử dụng bộ nhớ (Metric 8.4.2) 78 3.4.11 Tính hiệu quả - sử dụng tài nguyên: Sử dụng đường truyền (Metric 8.4.2)
79
3.4.12 Tính khả chuyển – khả năng cài đặt: Tính dễ cài đặt lại và Tính Linh hoạt
trong cài đặt (Metric 8.6.2) 79
3.5 Đánh giá kết quả 80
3.6 Đề xuất phương pháp cải thiện chất lượng phần mềm Ví điện tử OmiPay. 80
KẾT LUẬN 82
TÀI LIỆU THAM KHẢO 83
Danh mục các từ viết tắt
Từ viết tắt Định nghĩa
AIS Hệ thống thông tin nghiệp vụ kế toán Công ty OmiPay Công ty sở hữu Ví điện tử OmiPay
DN Doanh Nghiệp
ĐBTT Đảm bảo thanh toán
ĐVCNTT Đơn vị chấp nhận thanh toán
IEC Ủy ban kỹ thuật điện quốc tế (International Electrotechnical Commission)
ISO Tổ chức tiêu chuẩn hoá quốc tế (International Organization for Standardization)
KTTC Kế toán tài chính
MSB Ngân hàng thương mại cổ phần Hàng hải Việt Nam
NHNN Ngân hàng nhà nước
TCVN Tiêu chuẩn Việt Nam
TGTT Trung gian thanh toán
TKNH Tài khoản Ngân hàng
Danh mục các bảng biểu
Bảng 1.1 Các tham số phần mềm [2] 17
Bảng 3.1 Các tiêu chí đánh giá chất lượng trong Ví điện tử OmiPay 41 Bảng 3.2 Công thức đánh giá Tính đầy đủ chức năng (Metric 8.1.1) 42 Bảng 3.3 Công thức đánh giá Tuân thủ chức năng (Metric 8.1.5) 43 Bảng 3.4 Công thức đánh giá Tuân thủ chức năng (Metric 8.2.1) 43 Bảng 3.5 Công thức đánh giá Tuân thủ chức năng (Metric 8.3.1) [7] 45 Bảng 3.6 Công thức đánh giá Tuân thủ chức năng (Metric 8.3.1) 45 Bảng 3.7 Công thức đánh giá Kiểm tra tính hợp lệ của dữ liệu đầu vào (Metric 8.3.3) 46 Bảng 3.8 Công thức đánh giá Khả năng hủy bỏ thao tác của người dùng (Metric 8.3.3) 47 Bảng 3.9 Công thức đánh giá Khả năng giám sát tình trạng vận hành (Metric 8.3.3) 47 Bảng 3.10 Công thức đánh giá thời gian phản hồi (Metric 8.4.1) 48 Bảng 3.11 Công thức đánh giá Sử dụng bộ nhớ tài nguyên (Metric 8.4.2) 49 Bảng 3.12 Công thức đánh giá Sử dụng đường truyền (Metric 8.4.2) 49 Bảng 3.13 Công thức đánh giá Dễ cài đặt lại (Metric 8.6.2) 50 Bảng 3.14 Công thức đánh giá Tính linh hoạt trong cài đặt (Metric 8.6.2) 51 Bảng 3.15 Bảng thực nghiệm đánh giá Tính đầy đủ chức năng (Metric 8.1.1) 51 Bảng 3.16 Bảng thực nghiệm đánh giá Tính đầy đủ của kiểm thử (Metric 8.2.1) 61 Bảng 3.17 Bảng thực nghiệm đánh giá Chức năng hiển thị (Metric 8.3.1) 70 Bảng 3.18 Bảng thực nghiệm đánh giá Tính hợp lệ của dữ liệu đầu vào (Metric 8.3.3) 73 Bảng 3.19 Bảng đánh giá Khả năng hủy bỏ thao tác của người dùng (Metric 8.2.1) 74 Bảng 3.20 Bảng đánh giá Khả năng giám sát tình trạng vận hành (Metric 8.3.3) 75 Bảng 3.21 Bảng thực nghiệm đánh giá Thời gian phản hồi (Metric 8.4.1) 76 Bảng 3.22 Bảng thực nghiệm đánh giá Khả năng cài đặt (Metric 8.6.2) 80
Danh mục các hình vẽ
Hình 1.1 Hoạt động quản lý hệ thống chất lượng sản phẩm phần mềm 4 Hình 1.2 Quy trình chung phát triển sản phẩm phần mềm 8
Hình 1.3 Mô hình thác nước 9
Hình 1.4 Mô hình chữ V 9
Hình 1.5 Mô hình xoắn ốc 10
Hình 1.6 Mô hình tiếp cận lặp 10
Hình 1.7 Mô hình tăng trưởng 11
Hình 1.8 Mô hình RAD 11
Hình 1.9 Mô hình Agile 12
Hình 1.10 Mô hình Scrum 13
Hình 1.11 Mối liên hệ giữa tiêu chuẩn ISO 9126 và ISO 14598. [2] 15 Hình 1.12 Khung tham số chất lượng sản phẩm phần mềm [4] 16
Hình 1.13 Mô hình quản lý chất lượng[2] 19
Hình 1.14 Mô hình quản lý chất lượng PDCA 20
Hình 1.15 Mô hình chất lượng phần mềm 21
Hình 2.1 Mô hình chất lượng sử dụng [2] 24
Hình 2.2 Chất lượng trong vòng đời sản phẩm [2] 24
Hình 2.3 Quy trình đánh giá chất lượng sản phẩm phần mềm [2] 26
Hình 2.4 Mối quan hệ giữa các phép đánh giá 27
Hình 2.5 Các mức đánh giá cho phép đo 29
Hình 2.6 Thiết kế đánh giá chất lượng phần mềm theo các tiêu chí 31
Hình 2.7 Mô hình các tiêu chí chất lượng [2] 33
Hình 2.8 Tiêu chí chất lượng, tiêu chí con và thuộc tính 34
Hình 3.1 - Quy trình đánh giá tiêu chí 40
Hình 3.2 – Thống kê ví người dùng 54
Hình 3.3 – Thống kê ví người dùng 54
Hình 3.4 – Xem Tài khoản ĐBTT Ví điện tử 55
Hình 3.5 – Xem Tài khoản ĐBTT Ví điện tử 55
Hình 3.6 – Báo cáo tháng – Ví người dùng 56
Hình 3.7 – Báo cáo tháng – Ví người dùng 56
Hình 3.8 – Báo cáo tháng – Giao dịch nạp tiền 57
Hình 3.9 – Báo cáo tháng – Giao dịch nạp tiền 57
Hình 3.10 – Báo cáo tháng – Giao dịch rút tiền 58
Hình 3.11 – Báo cáo tháng – TK ĐBTT Ví điện tử 58
Hình 3.12 – Báo cáo tháng – TK ĐBTT Ví điện tử 59
Hình 3.13 – Báo cáo tháng – Top Ví điện tử 59
Hình 3.14 – Báo cáo tháng – Top Ví điện tử - số lượng giao dịch nhiều nhất 60 Hình 3.15 – Báo cáo tháng – Top Ví điện tử - số lượng giao dịch cao nhất 60
Hình 3.16 – Lưu đồ quy trình nạp tiền 63
Hình 3.17 – Màn hình chức năng nạp tiền (1) 64
Hình 3.18 – Màn hình chức năng nạp tiền (2) 64
Hình 3.19 – Màn hình chức năng nạp tiền (3) 64
Hình 3.20 – Màn hình chức năng nạp tiền (4) 65
Hình 3.21 – Màn hình chức năng nạp tiền (5) 65
Hình 3.22 – Màn hình chức năng nạp tiền (6) 65
Hình 3.23 – Màn hình chức năng nạp tiền (7) 66
Hình 3.24 – Quy trình thiết lập mật khẩu cấp 2 66
Hình 3.25 – Hình thức xác thực giao dịch (1) 67
Hình 3.26 – Hình thức xác thực giao dịch (2) 67
Hình 3.27 – Khai báo mật khẩu giao dịch (1) 68
Hình 3.28 – Khai báo mật khẩu giao dịch (2) 68
Hình 3.29 – Tin nhắn OTP từ hệ thống 69
Hình 3.30 – Khai báo mật khẩu giao dịch (tiếp) 69
Hình 3.31 – Xác thực mật khẩu giao dịch thành công 69
Hình 3.32 – Biểu đồ theo dõi bộ nhớ 78
Hình 3.33 – Biểu đồ theo dõi băng thông (network traffic) 79 Hình 3.34 – Biểu đồ theo dõi đọc/ghi ổ đĩa (Disk read/write) 79
MỞ ĐẦU
Trong lĩnh vực phát triển phần mềm, để nâng cao chất lượng phần mềm, Tổ chức tiêu chuẩn quốc tế ISO (International Organization for Standardization) đã tập trung rất nhiều vào việc xây dựng các tiêu chuẩn chất lượng cho phần mềm. Phương pháp tiếp cận về chất lượng phần mềm của ISO đã có bước tiến mới, toàn diện hơn, phù hợp hơn. Đã đưa ra một loạt các bộ tiêu chuẩn nhằm hướng tới đánh giá chất lượng phần mềm trong vòng đời phát triển của sản phẩm.
Tại Việt Nam vấn đề thực hiện quản lý chất lượng sản phẩm phần mềm để hỗ trợ các công ty, doanh nghiệp tiêu dùng và người sử dụng đã được Bộ Khoa học và Công nghệ ban hành một số tiêu chuẩn Việt Nam để đánh giá sản phẩm phần mềm (có TCVN 8702:2011; TCVN 8708:2011). Các tiêu chuẩn Việt Nam cũng dựa trên các tiêu chuẩn quốc tế như ISO/IEC 9126, ISO/IEC 14598 và nó có thể được dùng chung cho các loại phần mềm dưới góc độ của người phát triển, người kiểm định và người sử dụng.
Cùng với sự bùng nổ về công nghệ thì vai trò ngày càng quan trọng của các hoạt động giao dịch điện tử - thương mại điện tử trong quá trình phát triển kinh tế trên toàn thế giới và việc ứng dụng thương mại điện tử vào hoạt động sản xuất kinh doanh là xu thế tất yếu đối với các quốc gia, các tổ chức, doanh nghiệp, cá nhân trong thời đại hiện nay. Từ năm 2000, Việt Nam liên tục nâng cấp cơ sở hạ tầng, ngày càng hoàn thiện một số hành lang pháp lý và đưa ra thêm nhiều chính sách nhằm hỗ trợ cho việc phát triển Thương mại điện tử. Với sự phát triển của Thương mại điện tử trong những năm qua đặt ra nhu cầu về một hệ thống thanh toán trực tuyến hiện đại về công nghệ và đa dạng về dịch vụ để hỗ trợ doanh nghiệp và người tiêu dùng tân dụng tối đa lợi ích của phương thức kinh doanh mới này. Hiện nay, đã có rất nhiều hệ thống phần mềm thanh toán trực tuyến nhưng vấn đề đặt ra là việc kiểm soát chất lượng các phần mềm này để tránh thất thoát tài nguyên. Do đó để có được phần mềm tốt, chất lượng, tin cậy thì phải có các tiêu chuẩn kiểm soát, đánh giá chất lượng các phần mềm thanh toán điện tử để từ đó có thể hình thành khung tiêu chuẩn chất lượng, khung pháp lý cho các phần mềm thanh toán điện tử.
Vậy mục tiêu chính của đề tài là nghiên cứu quản lý chất lượng phần mềm và thử nghiệm áp dụng đánh giá chất lượng phần mềm đối với dự án Ví điện tử OmiPay. Bài luận có kết cấu bốn chương:
Chương 1. Tổng quan hệ thống quản lý chất lượng sản phẩm phần mềm
Chương 2. Phương pháp đánh giá và quy trình đánh giá chất lượng sản phẩm phần mềm
Chương 3. Đánh giá chất lượng phần mềm ví điện tử OmiPay Kết luận
Chương 1. TỔNG QUAN HỆ THỐNG QUẢN LÝ CHẤT LƯỢNG SẢN PHẨM PHẦN MỀM
1.1. Chất lượng sản phẩm phần mềm và quản lý chất lượng sản phẩm phần mềm 1.1.1 Khái niệm phần mềm
Phần mềm thường được mô tả gồm ba bộ phận là tập các lệnh khi được thực hiện sẽ tạo ra các dịch vụ mang lại kết quả mong muốn cho người dùng và các cấu trúc dữ liệu làm cho chương trình thao tác hiệu quả với các thông tin thích hợp được số hóa và các tài liệu để mô tả thao tác, cách sử dụng và bảo trì phần mềm (hướng dẫn sử dụng, tài liệu kĩ thuật, tài liệu phân tích và thiết kế, kiểm thử,…) [1]
Phần mềm cũng được hiểu là tập lệnh được viết bằng một hoặc nhiều ngôn ngữ lập trình và các dữ liệu liên quan thực hiện một số nhiệm vụ, chức năng hoặc giải quyết một vấn đề cụ thể. Phần mềm thực hiện chức năng bằng cách gửi các gói tin chứa câu lệnh trực tiếp đến phần cứng máy tính hoặc cung cấp dữ liệu cho các chương trình, phần mềm khác.
Phần mềm được phân loại theo các phương thức hoạt động như sau:
• Phần mềm hệ thống: phần mềm vận hành máy tính và các thiết bị điện tử như:
hệ điều hành máy tính Windows, Linux, Unix. Hệ điều hành di động iOS, Android, Windows Phone…
• Phần mềm ứng dụng: để vận hành nghiệp vụ cho doanh nghiệp, trò chơi điện tử…
• Phần mềm dịch mã: gồm trình biên dịch và trình thông dịch, cụ thể là chúng dịch các câu lệnh từ mã nguồn của ngôn ngữ lập trình sang dạng ngôn ngữ máy sao cho thiết bị thực thi có thể hiểu được.
• Nền tảng ứng dụng: như ASP.NET – nền tảng ứng dụng web của Microsoft, cái này hỗ trợ việc tạo ra các ứng dụng web, dịch vụ web.
Phân loại phần mềm theo khả năng hay quyền hạn can thiệp vào mã nguồn:
• Phần mềm mã nguồn đóng: phần mềm có mã nguồn không được công khai. Để sử dụng phần mềm nguồn đóng phải được cấp bản quyền.
• Phần mềm mã nguồn mở: phần mềm có mã nguồn được công bố rộng rãi, công khai, mọi người được sử miễn phí và tiếp tục phát triển phần mềm đó.
1.1.2 Chất lượng phần mềm
Chất lượng phần mềm được định nghĩa bởi bởi nhiều tổ chức và cá nhân khác nhau, trong luận văn này học viên xin trình bày một số định nghĩa tiêu biểu.
a) Định nghĩa theo Pressman:
Theo Roger Pressman, một kỹ sư phần mềm nổi tiếng người Mỹ cho biết: Chất lượng phần mềm được thể hiện khi nó có thể đáp ứng các yêu cầu chức năng, hiệu năng, các chuẩn mực nhất định bằng việc ghi lại rõ ràng các tiêu chuẩn phần mềm vào tài liệu với các đặc tính ngầm định của phần mềm được phát triển chuyên nghiệp.
Định nghĩa này đưa ra ba yêu cầu khi phát triển phần mềm:
• Yêu cầu chức năng cần rõ ràng và sẽ là nhân tố chính quyết định các chất lượng cuối của phần mềm.
• Trong hợp đồng phải đề cập các tiêu chuẩn chất lượng sản phẩm phần mềm
• Các đặc tính ngầm định trong quá trình phát triển cần được đáp ứng kể cả không được đề cập chi tiết trong hợp đồng.
b) Định nghĩa bởi IEEE (1991):
Theo IEEE có 2 định nghĩa như sau:
• Chất lượng phần mềm là mức độ mà hệ thống, thành phần hệ thống hay tiến trình của hệ thống đáp ứng được các đặc tả yêu cầu ban đầu.
• Chất lượng phần mềm là mức độ mà hệ thống, thành phần hệ thống hay tiến trình hệ thống đáp ứng được đặc tả yêu cầu ban đầu và đạt được mong đợi của khách hàng, người dùng.
Phân tích hai định nghĩa của IEEE về chất lượng phần mềm cho thấy:
• Theo định nghĩa đầu: Khi đánh giá chất lượng phần mềm, cách đánh giá và kết quả phụ thuộc hoàn toàn vào tài liệu đặc tả yêu cầu được xác định ở giai đoạn đầu của dự án và bổ sung trong quá trình phát triển, đôi khi có thể bị sai mà chưa phát hiện để điều chỉnh, đôi khi bị thiếu mà chưa được cập nhật, hoặc không rõ ràng cho nên kết quả không như kì vọng, đánh giá một phần mềm có chất lượng thực sự hay không cũng trở thành không chính xác
• Theo định nghĩa thứ hai: Vừa dựa vào đặc tả yêu cầu, vừa đánh gía dựa trên độ hài lòng của khách hàng sẽ có kết quả sát với thực tế hơn, tuy nhiên khách hàng đôi khi không có hiểu biết sâu về công nghệ, những mong muốn của họ đưa ra có thể khó thực thi để áp dụng nên sẽ thay đổi nhiều, thậm chí thay đổi ngay trong giai đoạn cuối hoặc sau đó khó để nghiệm thu. Thực hiện phát triển phần mềm áp dụng đánh giá chất lượng theo cách này sẽ có nhiều khó khăn hơn c) Định nghĩa theo ISO:
Theo định của Tổ chức tiêu chuẩn quốc tế ISO về tiêu chuẩn 8402, "chất lượng phần mềm là khả năng đáp ứng toàn diện nhu cầu của người dùng về tính năng cũng như
công dụng được nêu ra một cách tường minh hoặc không tường minh trong những ngữ cảnh xác định". [2]
Trong định nghĩa này, chất lượng còn chưa cụ thể, thiếu yếu tố định lượng, để hiểu hết nhu cầu của người sử dụng quả thực là rất khó.
1.1.3 Quản lý chất lượng sản phẩm phần mềm a) Khái niệm
Quản lý chất lượng phần mềm là một quá trình quản lý nhằm mục đích phát triển và quản lý chất lượng của phần mềm để đảm bảo sản phẩm đáp ứng tốt nhất các tiêu chuẩn chất lượng mà khách hàng mong đợi và đáp ứng mọi yêu cầu cần thiết của nhà phát triển và quy định.
Các nhà quản lý chất lượng phần mềm yêu cầu phần mềm phải được kiểm tra trước khi phát hành ra thị trường và thực hiện bằng việc đánh giá chất lượng theo quy trình, theo chu kỳ. Công việc của họ không chỉ là đảm bảo phần mềm của họ ở trạng thái tốt cho người dùng mà còn khuyến khích văn hóa chất lượng trong toàn doanh nghiệp.
b) Hoạt động quản lý hệ thống chất lượng sản phẩm phần mềm
Nội dung này bao gồm ba thành phần chính: Đảm bảo chất lượng, lập kế hoạch chất lượng và kiểm soát chất lượng.
Hình 1.1 Hoạt động quản lý hệ thống chất lượng sản phẩm phần mềm v Lập kế hoạch chất lượng
Lập kế hoạch chất lượng: làm rõ các tiêu chuẩn chất lượng của sản phẩm và cách làm để đạt được, phần lớn dựa vào xác định yêu cầu của khách hàng, các thiết kế cho sản phẩm và dịch vụ, các quy trình, biện pháp kiểm soát và phương pháp đánh giá. Kế hoạch
chất lượng cũng có thể đề cập đến thị trường dự kiến, ngày ra mắt sản phẩm, mục tiêu chất lượng, rủi ro dự kiến và chính sách quản lý rủi ro.
v Đảm bảo chất lượng
Đảm bảo chất lượng sản phẩm phần mềm là đánh giá có hệ thống một cách thường xuyên về chất lượng tổng thể, các tiêu chuẩn ngành và tiêu chuẩn quốc gia. Để có thể đảm bảo chất lượng sản phẩm chính là một hoạt động phòng ngừa.
Đảm bảo chất lượng phần mềm thiết lập một tập hợp các quy trình có tổ chức và hợp lý và quyết định rằng các tiêu chuẩn phát triển phần mềm sẽ được ghép nối với các quy trình tổ chức, các nhà phát triển phần mềm có cơ hội tốt hơn để sản xuất phần mềm chất lượng cao hơn. Giai đoạn này có thể bao gồm:
• Khuyến khích các chuẩn quy trình tài liệu, chẳng hạn như sử dụng các mẫu tiêu chuẩn
• Hướng dẫn cách thực hiện các quy trình tiêu chuẩn, chẳng hạn như đánh giá chất lượng;
• Xác định các tiêu chuẩn cần được sử dụng trong các quy trình phát triển phần mềm.
v Kiểm soát chất lượng
Kiểm soát chất lượng là việc kiểm tra và xem xét phần mềm ở các giai đoạn khác nhau để đảm bảo các quy trình và tiêu chuẩn đảm bảo chất lượng ở cả cấp độ tổ chức và dự án đang được tuân thủ. Các hoạt động kiểm tra này được tách biệt một cách tối ưu với nhóm phát triển để có thêm cái nhìn khách quan về sản phẩm cần kiểm tra. Các hoạt động bao gồm:
• Thanh tra và kiểm định thường xuyên theo kỳ;
• Kiểm thử xác minh;
• Kiểm tra chéo;
• Hợp duyệt chất lượng;
• Khảo sát các đối tượng có liên quan.
1.1.4 Chất lượng sản phẩm phần mềm và vòng đời phát triển phần mềm
Việc đo lường chất lượng phần mềm không thể áp dụng dung sai và các kết luận khách quan về việc phần mềm có đáp ứng các thông số kỹ thuật hay không. Tuy nhiên, chất lượng và trạng thái phù hợp với mục đích của phần mềm vẫn có thể được thực hiện theo nhiều cách khác nhau tùy thuộc vào tổ chức và loại dự án đã thực hiện. Điều này được thực hiện thông qua sự hỗ trợ của toàn bộ chu trình phát triển phần mềm, với ý nghĩa là:
• Thu thập các yêu cầu và xác định phạm vi của một dự án phần mềm, tập trung
vào việc xác minh nếu các yêu cầu đã xác định sẽ có thể kiểm tra được;
• Thiết kế giải pháp, tập trung vào việc lập kế hoạch cho một quá trình thử nghiệm. Ví dụ: loại thử nghiệm nào sẽ được thực hiện? thực hiện như thế nào trong bối cảnh của môi trường thử nghiệm và dữ liệu thử nghiệm?
• Triển khai giải pháp được hỗ trợ bởi các trường hợp thử nghiệm và các kịch bản, thực thi chúng và ghi nhận các lỗi, bao gồm cả việc phối hợp giải quyết các lỗi;
• Thực hiện quản lý thay đổi: phải xác minh xem các thay đổi ảnh hưởng như thế nào đến chất lượng của giải pháp đã tạo và sự thay đổi cuối cùng của kế hoạch thử nghiệm
• Kết thúc dự án cần các thử nghiệm tập trung vào xác minh chất lượng tổng thể của giải pháp đã tạo.
Theo khía cạnh khác, vòng đời của sản phẩm phần mềm bắt đầu từ quá trình thực tiễn và thể hiện như sau:
• Nhu cầu để hình thành phần mềm hình thành do quá trình vận hành thực tế
• Nhu cầu này được thể hiện qua các tài liệu yêu cầu và tài liệu đặc tả hệ thống, xác định yêu cầu chất lượng ngoài để thỏa mãn được yêu cầu của người sử dụng;
• Yêu cầu chất lượng ngoài là tiền đề cho yêu cầu chất lượng trong, được thể hiện trong các tiêu chí của phần mềm và có các độ đo chất lượng trong mà phần mềm phải đáp ứng;
• Tới giai đoạn tích hợp chạy thử chất lượng ngoài sẽ được chú trọng để tất cả các độ đo chất lượng ngoài được đảm bảo;
• Khi vận hành vẫn dùng các độ đo ngoài, chất lượng phần mềm trong khi vận hành, sử dụng sẽ tiếp tục được kiểm tra và cải tiến;
• Việc cải tiến sẽ liên tục đến khi phần mềm lạc hậu đến mức cần thay thế bởi phần mềm khác.
1.1.5 Đảm bảo chất lượng sản phẩm phần mềm
Để có được một phần mềm tốt thì cách tiếp cận theo chất lượng quy trình sẽ là tối ưu nhất: có quy trình sản xuất tốt thì sẽ có khả năng sản xuất ra sản phẩm tốt. Các doanh nghiệp thường dựa vào bộ tiêu chí đánh giá trong các tiêu chuẩn quốc tế ISO hay trong các chứng chỉ CMM (Capability Maturity Model) để đo lường chất lượng sản phẩm phần mềm để chứng minh quy trình đảm bảo chất lượng của họ đạt chuẩn đồng thời làm tăng vị thế cạnh tranh.
Những năm cuối thế kỷ 20, ISO đã tập trung rất nhiều vào các tiêu chuẩn chất lượng cho phần mềm và đã tiến thêm một bậc, toàn diện hơn, phù hợp hơn. Kết quả là một loạt
các bộ tiêu chuẩn đã ra đời, nhằm hướng tới đánh giá chất lượng toàn diện trong suốt vòng đời của sản phẩm phần mềm, từ khi phôi thai cho tới lúc lạc hậu cần thay thế. [2]
Theo ISO, chất lượng toàn diện của sản phẩm phần mềm phải được chú ý từ chất lượng quy trình đến chất lượng của các phần mềm nội bộ, so sánh các yêu cầu ban đầu của người dùng với chất lượng sản phẩm khi sử dụng:
• Chất lượng chức năng phần mềm là kết quả đánh giá mức độ phù hợp với một thiết kế nhất định, dựa trên các yêu cầu chức năng, người dùng hoặc thông số kỹ thuật, thường được tiến hành hành và đo bằng kiểm thử phần mềm có thể dung biện pháp tổng hợp thông qua chương trình chấm điểm chất lượng hoặc định lượng.
• Chất lượng cấu trúc sản phẩm phần mềm là đáp ứng yêu cầu phi chức năng (tính mạnh mẽ hay khả năng bảo trì hay mức độ sản xuất phần mềm), đánh giá thông qua kiểm thử bằng cách phân tích cấu trúc phần mềm, hệ thống, mã nguồn và công nghệ.
Phân tích chất lượng cấu trúc và đo lường được thực hiện thông qua việc phân tích mã nguồn, kiến trúc, khuôn khổ phần mềm, lược đồ cơ sở dữ liệu trong mối quan hệ với các nguyên tắc và tiêu chuẩn cùng xác định cấu trúc hệ thống.
Bộ tiêu chuẩn ISO 9001-3 quy định "Quy trình đảm bảo chất lượng" cho các tổ chức làm trong lĩnh vực phát triển phần mềm. Chứng chỉ ISO 9001 xác nhận đơn vị đạt chuẩn quy trình đảm bảo chất lượng. Tiêu chuẩn ISO/IEC 9126 là để đánh giá chất lượng cho sản phẩm phần mềm doanh nghiệp. Cùng đó ở Việt Nam, mô hình CMM cũng rất được quan tâm, tổ chức được cấp chứng chỉ CMM có nghĩa là đã đạt chuẩn tương ứng các cấp độ CMM của chứng chỉ và có khả năng sản xuất phần mềm tốt hơn phần mềm của công ty chưa đạt được chứng chỉ. Mặt khác, cũng có công ty quy trình tốt nhưng sản phẩm phần mềm chất lượng lại không cao cho nên tiếp cận theo chất lượng quy trình chưa toàn diện mà chỉ đang giúp giải quyết ở mức căn bản.
1.2. Quy trình phát triển sản phẩm phần mềm 1.2.1 Khái niệm
Phát triển phần mềm là dùng kĩ thuật lập trình làm yêu cầu của người dùng trở thành sản phẩm, chức năng phần mềm. Để có sản phẩm phần mềm chất lượng thì cần có quy trình phát triển phần mềm hợp lý, đạt tiêu chuẩn chất lượng giúp các hoạt động tương tác với các yếu tố khác nhau nhịp nhàng và đem lại hiệu quả.
Quy trình phát triển sản phẩm phần mềm là chuỗi các hoạt động động có hiệu quả trong cơ sở công nghệ thông tin mà tổ chức muốn tạo ra hệ thống chất lượng đáp ứng hoặc vượt qua kì vọng của khách hàng
• Quy trình chất lượng tốt và hợp lý sẽ tạo ra phần mềm đạt tiêu chuẩn
• Quy trình phát triển sản phẩm phần mềm không chỉ giúp làm tốt chất lượng, năng suất và giá thành phần mềm mà còn tăng tính cạnh tranh, lợi nhuận cho công ty
1.2.2 Quy trình chung phát triển sản phẩm phần mềm
Quy trình chung phát triển phần mềm bao gồm các giai đoạn chính sau:
• Khảo sát và phân tích yêu cầu: tìm hiểu, thu thập thông tin cần thiết đê chuẩn bị cho việc giải quyết các yêu cầu được đặt ra của dự án. Sau đó xác định các thông tin và chức năng xử lý của hệ thống, các chuyên gia sẽ đặc tả sơ bộ các bảng dữ liệu để có cái nhìn khách quan. Qua đó, xác định các giải pháp tốt nhất cho hệ thống đảm bảo đúng các yêu cầu đã khảo.
Hình 1.2 Quy trình chung phát triển sản phẩm phần mềm
• Thiết kế: dựa vào kết quả của quá trình khảo sát và phân tích, các chuyên gia sẽ chuyển hóa vào thiết kế phần mềm trên công cụ để đặc tả thiết kế hệ thống chi tiết.
• Phát triển: xây dựng hệ thống phần mềm theo các thiết kế và yêu cầu đã xác định.
• Kiểm thử: Kiểm chứng các phân hệ, chức năng của sản phẩm, khắc phục lỗi để có một hệ thống thông tin đạt yêu cầu đặt ra.
• Bảo trì: duy trì hệ thống phần mềm hoạt động, điều chỉnh các lỗi nếu có, nâng cấp tính năng hoặc nâng cấp hệ thống và công sức giai đoạn này có thể chiếm 65%-75% chu kỳ sống của phần mềm.
1.2.3 Mô hình thác nước
Mô hình thác nước (Waterfall Model): là mô hình mà các giai đoạn phát triển phần mềm được phát triển theo tính tuần tự. Các giai đoạn sau chỉ được thực hiện khi giai đoạn trước đã kết thúc và không được quay lại giai đoạn trước để xử lí các thay đổi trong yêu cầu, áp dụng vào các dự án ít thay đổi yêu cầu.
Hình 1.3 Mô hình thác nước 1.2.4 Mô hình chữ V
Mô hình chữ V (V- Shaped Model) được mở rộng từ mô hình thác nước, các bước trong quy trình sẽ đi theo hình chữ V. Sử dụng mô hình này khi yêu cầu phần mềm được xác định rõ ràng.
Hình 1.4 Mô hình chữ V 1.2.5 Mô hình xoắn ốc
Mô hình xoắn ốc (Spiral Model) là mô hình kết hợp giữa các tính năng của mô hình kiểu mẫu và mô hình thác nước. Mô hình này sử dụng những giai đoạn tương tự như mô hình thác nước về thứ tự, kế hoạch, đánh giá rủi ro… được sử dụng cho các ứng dụng lớn, ngân sách lớn hoặc dự án phức tạp xây dựng theo các giai đoạn nhỏ hoặc theo nhiều phân đoạn.
Hình 1.5 Mô hình xoắn ốc 1.2.6 Mô hình tiếp cận lặp
Mô hình tiếp cận lặp (Iterative Model) là một mô hình được lặp đi lặp lại các phân đoạn từ khi bắt đầu đến khi kết thúc dự án. Nhà phát triển có thể xem sản phẩm hoàn thành dần dần theo từng phân đoạn, vì vậy một số chi tiết vẫn có thể được đổi mới ở phân đoạn tiếp theo.
Hình 1.6 Mô hình tiếp cận lặp
1.2.7 Mô hình tăng trưởng
Mô hình tăng trưởng (Incremental Model) là các phân đoạn được chia thành nhiều phần, chu kỳ được chia thành các nhóm chức năng nhỏ, dễ quản lý. Các nhóm chức năng sẽ được thực hiện như vòng đời phát triển thông thường. Áp dụng vào dự án đã mô tả, định nghĩa yêu cầu một cách rõ ràng, khách hàng đã có nhu cầu rõ rang về sản phẩm.
Hình 1.7 Mô hình tăng trưởng 1.2.8 Mô hình phát triển ứng dụng nhanh
Mô hình RAD (Rapid Application Development Model) là một phương pháp phát triển phần mềm sử dụng quy hoạch tối thiểu có lợi cho việc tạo mẫu nhanh và mẫu có thể tái sử dụng được. Các chức năng được đồng thời phát triển giống nguyên mẫu sau đó được ráp lại thành sản phẩm hoàn chỉnh. Áp dụng cho những dự án có chức năng rõ ràng, trong khoảng thời gian nhỏ 2-3 tháng, hoặc dự án được sử dụng khi đã có thiết kế mô hình và chi phí cao.
Hình 1.8 Mô hình RAD
1.2.9 Mô hình Agile
Mô hình Agile (Agile Model) là phương pháp phát triển phần mềm linh hoạt và hoàn thiện càng nhanh càng tốt, được cải tiến hơn một số mô hình cũ và các yêu cầu và giải pháp được phát triển lặp, tăng dần thông qua mối liên kết cộng tác của nhóm tự quản và liên chức năng.
Agile chia các tác vụ theo từng khung thời gian ngắn (Sprint từ 1-4 tuần) nhằm mục đích cung cấp cho bản phát hành cuối các tính năng cụ thể. Khi triển khai Agile, chúng ta cần sự tham gia, tương tác của khách hàng. Mô hình này được áp dụng cho các dự án ngắn hạn, yêu cầu thay đổi thường xuyên.
Hình 1.9 Mô hình Agile 1.2.10 Mô hình Scrum
Mô hình Scrum (Scrum Model) là mô hình hướng khách hàng, phát triển phần mềm linh hoạt, chia các yêu cầu ra làm theo từng giai đoạn ngắn 1 đến 4 tuần (sprint) để chỉ làm một số lượng yêu cầu nhất định. Hoàn thành từng giai đoạn cho đến khi hết các yêu cầu.
Mỗi giai đoạn phải lên kế hoạch, lập trình và kiểm thử, cuối cùng là sản phẩm hoàn thiện có thể thử nghiệm và chạy được. Quá trình đó có họp hàng ngày dưới 20 phút để mỗi thành viên báo cáo: Hôm qua đã làm gì? Hôm nay sẽ làm gì? Có gặp khó khăn gì không? Các thành viên bao gồm: Chủ sản phẩm (Product owner – người sở hữu sản phẩm, hiểu rõ nhất về sản phẩm và các yêu cầu phát triển), điều phối viên (Scrum master) và Nhóm phát triển (development team)
Hình 1.10 Mô hình Scrum 1.3. Yêu cầu về đánh giá chất lượng phần mềm
1.3.1 Tầm quan trọng của đánh giá chất lượng sản phẩm phần mềm
Trong thời đại kinh tế công nghệ số hóa ngày nay, các phân mềm đóng vai trò quan trọng cho các doanh nghiệp, tổ chức, con người. Có thể hiểu như là hệ thần kinh số có vai trò chủ chốt điều kiển toàn bộ hoạt động hệ thống thông tin toàn cầu. Đôi khi chỉ có một sai lầm rất nhỏ của phần mềm cũng có thể gây ra những hậu quả nghiêm trọng, khôn lường. Một trong số đó là chỉ vì một dấu phẩy nhầm lẫn trong hệ thống phần mềm điều kiển trung tâm mà tàu vũ trụ Apllo 11 của Mỹ đã nổ tung khi được phóng lên quỹ đạo, gây thiệt hại hàng tỷ USD và còn nghiệm trọng hơn đó là đã ngây thiệp hại về tính mạng con người.
Theo sự nghiên cứu của Viện Công nghệ và Tiêu chuẩn Quốc gia Mỹ (NIST), các lỗi, các lỗ hổng trong các phần mềm không chỉ gây thiệt hại cho người dùng mà hàng năm còn gây ra tổn thất lớn cho nền kinh tế nước Mỹ ước tính khoảng 86,7 tỷ USD. Cũng theo tổ chức này, thử nghiệm để phát hiện và loại bỏ các khiếm khuyết ngay từ quá trình sản xuất phần mềm có thể giảm mức thiệt hại khoảng 35,6 tỷ USD trong tổng số tổn thất trên (chiếm 41%).
Ngành phần mềm Việt Nam đang phát triển mạnh với sự xuất hiện nhiều công ty phần mềm hoặc các công ty chuyển dịch sang lĩnh vực công nghệ phần mềm tạo nên việc nhận thức về hệ thống chất lượng sản phẩm phần mềm, xây dựng các tiêu chuẩn đánh giá và quy trình sản xuất phần mềm theo tiêu chuẩn chất lượng ngày càng trở thành vai trò quan trọng và đúng đắn. Đồng thời, hình thành các bộ khung tiêu chuẩn đánh giá, quy cách đánh giá và kiểm soát chất lượng.
Muốn đánh giá chính xác một sản phẩm phần mềm đã đáp ứng chất lượng cần phải thiết lập tất cả các tiêu chí về bộ tiêu chuẩn chung và phải sử dụng phần mềm trong vận hành thực tế. Vấn đề là phải có tổ chức độc lập để xây dựng các tiêu chí đánh giá chất
lượng phần mềm nhằm hỗ trợ các doanh nghiệp trong việc nâng cao chất lượng sản phẩm phần mềm cũng như việc thống nhất quản lý chất lượng phần mềm trong các doanh nghiệp, tổ chức.
Các doanh nghiệp, tổ chức hoạt động chủ yếu là đánh giá, kiểm soát chất lượng phần mềm phải xây dựng tiêu chuẩn và phương pháp đánh giá chất lượng sản phẩm phần mềm nhằm tư vấn cho các tổ chức phần mềm về quy trình quản lý chất lượng phần mềm, các chỉ tiêu, các tiêu chuẩn đánh giá dựa trên các tiêu chuẩn ISO-9000, ISO-9126, ISO- 14598 …
1.3.2 Các tiêu chuẩn quốc tế về chất lượng phần mềm
Hiện nay trên thế giới có rất nhiều các tiêu chuẩn về chất lượng phần mềm điển hình như ISO, CMM…
v ISO/IEC 9126 là một tiêu chuẩn để đánh giá chất lượng phần mềm được giám sát bởi ISO 25000:2005 dựa trên các khái niệm chung tương đương nhau. ISO/IEC 9126 đưa ra mô hình chất lượng chuẩn để đánh giá các sản phẩm phần mềm. Bộ tiêu chuẩn này bao gồm [4]:
• 9126-1 Đưa ra mô hình chất lượng sản phẩm phần mềm.
• 9126-2 Phép đánh giá chất lượng ngoài.
• 9126-3 Phép đánh giá chất lượng trong.
• 9126-4 Phép đánh giá chất lượng sản phẩm phần mềm trong quá trình sử dụng.
ISO-9126 phân loại tiêu chí và chia nhỏ thành những tiêu chí con (thuộc tính chất lượng), làm cho chúng có khả năng đo đếm được để có thể kiểm định chất lượng chính xác cho phần mềm, bộ tiêu chuẩn này có thể áp dụng đánh giá tất cả các loại sản phẩm phần mềm. Bao gồm:
• Tính năng (Functionality)
• Độ tin cậy (Reliability)
• Tính khả dụng (Usability)
• Tính hiệu quả (Efficiency)
• Khả năng bảo hành bảo trì (Maintainability)
• Tính khả chuyển (Portability)
Chất lượng phần mềm có thể được xác định và đánh giá bởi nhà phát triển phần mềm, các tổ chức sử dụng, hoặc nhân viên phụ trách đánh giá của tổ chức hoặc người đánh giá độc lập. Mô hình chất lượng ISO-9126 có thể được dùng để [4]:
• Kiểm tra tính đáp ứng đối với những yêu cầu đã đặt ra.
• Xác định các yêu cầu phần mềm.
• Xác định các đối tượng thiết kế phần mềm.
• Xác định các đối tượng kiểm thử phần mềm.
• Xác định các tiêu chuẩn đảm bảo chất lượng.
v ISO/IEC 14598 cung cấp mô hình cơ bản để đánh giá chất lượng cho các sản phầm phần mềm và các yêu cầu cho các phương pháp đo và đánh giá sản phẩm phần mềm, bao gồm 6 phần chính dưới tiêu đề chung: Công nghệ thông tin – Đánh giá sản phẩm phần mềm. [2]
• Phần 1: Tổng quan
• Phần 2: Lập kế hoạch và quản lý
• Phần 3: Quy trình cho người phát triển
• Phần 4: Quy trình cho người sử dụng
• Phần 5: Quy trình cho người đánh giá
• Phần 6: Tài liệu các hợp phần đánh giá
ISO/IEC 14598 đưa ra giới thiệu chung và quy trình đánh giá chung cho sản phẩm phần mềm, cung cấp một cái nhìn tổng quát về các tiêu chuẩn và giải thích mối quan hệ giữa ISO/IEC 14598 và mô hình chất lượng trong ISO/IEC 9126 như hình 1.11.
Hình 1.11 Mối liên hệ giữa tiêu chuẩn ISO 9126 và ISO 14598. [2]
Quá trình đánh giá sản phẩm phần mềm trong ISO 14598 dành cho 3 đối tượng khác nhau: người phát triển, người sử dụng và những người đánh giá độc lập có trách nhiệm đánh giá sản phầm phần mềm
• Người phát triển: áp dụng đánh giá các sản phẩm mới, cải tiến các sản phẩm sẵn có. Đáp ứng việc hỗ trợ người phát triển có thể tự đánh sản phẩm phần mềm của mình.
• Người mua sản phẩm: có thể sử dụng bởi các tổ chức có kế hoạch khai thác, tái sử dụng các sản phẩm phần mềm đã có hoặc sắp phát triển để xác định xem sản phẩm phần mềm có chấp nhận được không hoặc để lựa chọn phần mềm thích hợp giữa các sản phẩm cùng chức năng.
• Người đánh giá: tự đánh giá để đưa ra kết luận độc lập về đánh giá chất lượng một sản phẩm phần mềm.
v IEEE 1061 (1992) trình bày phương pháp luận để thiết lập yêu cầu chất lượng cần đạt, đưa ra cách phân tích rõ ràng, cách ứng dụng quy trình vào việc đánh giá các tham số phần mềm.
Đối tượng sử dụng:
• Quản lý dự án cần xác định các yêu cầu chất lượng của hệ thống.
• Người phát triển hệ thống cần thiết kế phù hợp yêu cầu chất lượng.
• Người thẩm định: đánh giá phần mềm đạt được yêu cầu chất lượng không.
• Người vận hành quản lý các thay đổi khi cần nâng cấp sản phẩm.
• Người sử dụng đưa ra mô tả yêu cầu về chất lượng mà họ muốn.
Khung tham số chất lượng sản phẩm phần mềm trong tiêu chuẩn IEEE 1061 – 1992:
Hình 1.12 Khung tham số chất lượng sản phẩm phần mềm [4]
Cần thực hiện các bước:
1. Xây dựng các yêu cầu về chất lượng sản phẩm phần mềm.
2. Xác định tham số.
3. Áp dụng: thu thập thông tin tham số và áp dụng chúng cho từng giai đoạn
Chất lượng phần mềm của hệ thống X
Nhân tố Các phép đo trực
tiếp
Nhân tố Các phép đo trực
tiếp
Nhân tố Các phép đo trực
tiếp
Nhân tố con Nhân tố con Nhân tố con
Phép đo Phép đo Phép đo
phát triển phần mềm.
4. Phân tích kết quả: các kết quả phải được hoàn thiện sau khi phân tích và báo cáo cần điều chỉnh hướng phát triển
5. Chấp nhận tham số phần mềm.
Bảng 1.1 Các tham số phần mềm [2]
Các bước Đầu ra
Xây dựng các yêu cầu chất lượng Tập hợp yêu cầu chất lượng Xác định các tham số chất lượng Thiết lập tập tham số
Phân tích giá thành, lợi ích Áp dụng tham số chất lượng Mô tả thông tin sản phẩm
Tham số/thông tin sản phẩm Ma trận
Lên kế hoạch
Phân tích kết quả tham số Các thay đổi chu trình tổ chức và phát triển Thông qua tham số phần mềm Quá trình thông qua các kết quả
v ISO 12119 đánh giá gói sản phẩm phần mềm, được áp dụng để đánh giá chung cho các tài liệu hướng dẫn, tài liệu mô tả sản phẩm, chương trình và dữ liệu và kiểm thử phần mềm.
Tài liệu mô tả: yêu cầu chung về nội dung, yêu cầu về các chỉ số và yêu cầu kết quả về chất lượng phần mềm đầy đủ 6 tiêu chí như ISO 9126
Hướng dẫn sử dụng: các thông tin cần thiết phải được mô tả trong tài liệu sử dụng và đáp ứng: tính tổng quan, tính đầy đủ, tính thống nhất, tính chính xác, tính dễ hiểu.
Chương trình và dữ liệu: có 06 tiêu chí giống trong mô hình chất lượng của ISO 9126
1.3.3 Các tiêu chuẩn chất lượng phần mềm Việt Nam
Trong nước ta hiện nay cũng có một số tổ chức, doanh nghiệp đưa ra một số tiêu chuẩn có căn cứ vào một số tiêu chuẩn quốc tế. Một số tiêu chí đánh giá chất lượng phần mềm của một số công ty trong nước [2]:
Các doanh nghiệp thuộc Hiệp hội doanh nghiệp phần mềm Việt Nam (VINASA), với mục đích hỗ trợ các doanh nghiệp phần mềm Việt Nam trong việc nâng cao chất lượng của sản phẩm phần mềm cũng như việc thống nhất quản lý chất lượng phần mềm trong các doanh nghiệp thành viên. VINASA đã chính thức thành lập Ban công tác chất lượng VINASA (VINASA Quality Committee -VQC) với nhiệm vụ xây dựng các tiêu chuẩn và đánh giá chất lượng phần mềm Việt Nam và vai trò tư vấn cho các công ty công nghệ các quy trình chất lượng phần mềm, các chỉ tiêu và tiêu chuẩn đánh giá chất lượng
phần mềm dựa trên các tiêu chuẩn (ISO-9000, ISO-9126, ISO-14598...).
Công ty Cổ phần phần mềm Hà Nội (HanoiSoftware) kinh doanh trên các giải pháp phần mềm cho Website thương mại điện tử, phát triển và triển khai các cổng thông tin tích hợp... Áp dụng quản lý chất lượng phần mềm và xây dựng phần mềm dựa theo mô hình chất lượng ISO-9126. [2]
Tập đoàn Bưu chính Viễn thông Việt Nam thực hiện đánh giá sản phẩm phần mềm theo tiêu chuẩn ISO/IEC 12119:1994 về “Yêu cầu và kiểm tra chất lượng phần mềm”. Ví dụ đánh giá về tài liệu : Hướng dẫn sử dụng, tài liệu mô tả sản phẩm và các tài liệu kỹ thuật triển khai, bảo trì hệ thống. Cụ thể như sau:
• Tài liệu mô tả sản phẩm yêu cầu chung về nội dung:
o Yêu cầu trình bày về nhận dạng và chỉ định o Yêu cầu trình bày về chức năng
o Yêu cầu trình bày về độ tin cậy o Yêu cầu trình bày về tính khả dụng o Yêu cầu trình bày về tính hiệu quả o Yêu cầu trình bày về khả năng bảo trì
o Yêu cầu trình bày về khả năng chuyển đổi hệ thống
• Tài liệu hướng dẫn sử dụng yêu cầu cần đánh giá bao gồm:
o Yêu cầu tính đầy đủ o Yêu cầu tính chính xác o Yêu cầu tính thống nhất o Yêu cầu tính dễ hiểu o Yêu cầu tính tổng quan
• Tài liệu hướng dẫn cài đặt, cấu hình hệ thống:
o Phải có các đặc tả về các yêu cầu hệ thống cần thiết trước cài đặt o Các bước thực hiện phải được mô tả rõ ràng
o Phương pháp cùng các đặc tả để xác định việc cài đặt là thành công o Mô tả đầy đủ, chính xác các thiết lập tham số cấu hình để hệ thống
hoạt động đúng mô hình và yêu cầu sử dụng
Các tiêu chí đánh giá về phần mềm của Trung tâm Công nghệ thông tin CDiT thuộc Học viện Bưu chính Viễn thông được xây dựng dựa trên 6 đặc tính chất lượng nêu trong tiêu chuẩn ISO/IEC 9126 và áp dụng tiêu chuẩn ISO/IEC 12119:1994 để đánh giá chung cho các tài liệu hướng dẫn, tài liệu mô tả sản phẩm, chương trình và dữ liệu.
1.4. Mô hình quản lý chất lượng sản phẩm phần mềm
Để quản lý chất lượng có hiệu quả cần có sự tham gia và hợp tác của tất cả thành viên công ty từ người điều hành, quản lý đến công nhân vào trong toàn bộ các hoạt động của
doanh nghiệp như điều tra thị trường, nghiên cứu phát triển sản phẩm, kế hoạch sản xuất, thiết kế, chuẩn bị sản xuất, đặt hàng, chế tạo, kiểm tra, bán hàng hay thương mại,nhân sự và giáo dục. Việc quản lý chất lượng như thế này còn được gọi là quản lý chất lượng toàn doanh nghiệp hay quản lý chất lượng tổng. Vậy quản lý chất lượng được hiểu là các hoạt động với mục đích định hướng và kiểm soát về chất lượng của một tổ chức
ISO định nghĩa mô hình quản lý chất lượng như sau:
• Quản lý chất lượng bao gồm tất cả các hoạt động về chức năng quản lý tổng hợp nhằm thực hiện kế hoạch chất lượng, phương pháp quản lý chất lượng, bảo đảm chất lượng và cải thiện chất lượng trong hệ thống chất lượng sau khi quyết định phương châm, mục tiêu và trách nhiệm của chất lượng.
• Quản lý chất lượng bao gồm những hoạt động hay phương pháp được sử dụng để đảm bảo những yêu cầu về chất lượng sản phẩm.
Hình 1.13 Mô hình quản lý chất lượng[2]
ISO tiếp cận quản lý chất lượng theo cách sử dụng linh hoạt vòng quay quản lý PDCA (Plan: lập kế hoạch, Do: thực hiện, Check: kiểm tra, Action: xử lý). Phương pháp này được áp dụng khá rộng rãi trong quản lý chất lượng của các doanh nghiệp; là chu trình thực hiện thay đổi, theo dõi, lặp đi lặp lại và cải tiến liên tục trong quá trình vận hành sản.
Bước 1: Lập kế hoạch (Plan)
Làm rõ mục tiêu: Quyết định mục tiêu chất lượng, làm rõ các mục tiêu cần làm
Tiêu chuẩn hóa công việc: cần quyết định thực hiện công việc hay cải tiến trước Bước 2: Thực hiện (Do)
Triệt để tiêu chuẩn hóa công việc thành kiến thức và cần lập đi lập lại việc huấn luyện.
Thực thi công việc: Ngoài sự nỗ lực hết mình thì cần thiết phải để “tâm” vào cho công việc.
Hình 1.14 Mô hình quản lý chất lượng PDCA Bước 3: Kiểm tra (Check)
Kiểm tra lại xem thành quả đã đạt được mục tiêu đã đặt ra hay chưa.
Phương án làm thế nào để duy trì tiêu chuẩn đã đạt được trong công việc.
Bước 4: Xử lý (Action)
Xem xét lại tiêu chuẩn của công việc và suy nghĩ cách duy trì tiêu chuẩn đó
Chỉnh sửa để đảm bảo tiêu chuẩn công việc, quản lý và duy trì nó, cải tiến nếu có thể
Tiêu chuẩn quản lý chất lượng phần mềm ISO 9126 đề xuất 3 mô hình chất lượng: Mô hình chất lượng trong, Mô hình chất lượng ngoài và Mô hình chất lượng sử dụng (được mô tả cụ thể ở chương 2, mục 2.1):
Hình 1.15 Mô hình chất lượng phần mềm
Chương 2. PHƯƠNG PHÁP ĐÁNH GIÁ VÀ QUY TRÌNH ĐÁNH GIÁ CHẤT LƯỢNG PHẦN MỀM
2.1 Phương pháp đánh giá chất lượng sản phẩm phần mềm
2.1.1 Các phép đánh giá chất lượng trong và đánh giá chất lượng ngoài
Muốn đánh giá chất lượng trong hay chất lượng ngoài của sản phẩm phần mềm thì người thực hiện đều phải sử dụng một mô hình đánh giá cụ thể để đánh giá theo từng tiêu chí.
Các phép đánh giá chất lượng trong và đánh giá chất lượng ngoài của sản phẩm phần mềm theo ISO-9126 mô tả các tiêu chí và các tiêu chí con cụ thể như sau:
a) Chức năng
Tính chức năng đòi hỏi phần mềm có các chức năng đáp ứng các yêu cầu được xác định rõ hoặc không rõ ràng trong quá trình phần mềm được sử dụng ở những điều kiện môi trường cụ thể. Bao gồm các tiêu chí nhỏ sau:
• Tính phù hợp: là khả năng phần mềm cung cấp các chức năng đáp ứng mục đích của người sử dụng.
• Tính chính xác: phần mềm đáp ứng độ chính xác cần thiết.
• Khả năng tương tác: phần mềm có thể tương tác với hệ thống cụ thể
• Tính bảo mật/an toàn: khả năng phần mềm có thể bảo vệ thông tin và dữ liệu sao cho người, hệ thống không được phép thì không thể truy cập, đọc hay chỉnh sửa chúng.
• Tuân thủ chức năng: đáp ứng theo các chuẩn, quy ước, quy định.
b) Độ tin cậy
Độ tin cậy là khả năng của phần mềm duy trì mức hiệu năng được chỉ định rõ khi sử dụng dưới những điều kiện cụ thể. Bao gồm các tiêu chí nhỏ sau:
• Tính hoàn thiện: Khả năng tránh các kết quả sai.
• Khả năng chịu lỗi: Khả năng phần mềm hoạt động ổn định cả trong trường hợp có lỗi xảy ra hoặc có những vi phạm trong giao diện.
• Khả năng phục hồi: Khả năng phần mềm có thể khôi phục lại hoạt động và khôi phục lại dữ liệu do lỗi gây ra.
• Tính tin cậy: Phần mềm thoả mãn các chuẩn, quy ước, quy định.
c) Tính khả dụng
Tính khả dụng là khả năng phần mềm có thể hiểu được, sử dụng được và hấp dẫn đối với người sử dụng. Bao gồm các tiêu chí nhỏ sau:
• Dễ hiểu: phần mềm dễ được hiểu, được xem phần mềm có hợp không và sử
dụng chúng vào những công việc cụ thể.
• Dễ học: phần mềm dễ để có thể học được.
• Khả năng vận hành: Khả năng của phần mềm dễ vận hành và điều khiển.
• Tính hấp dẫn: Khả năng hấp dẫn người sử dụng của phần mềm.
• Tính khả dụng: Phần mềm thoả mãn các chuẩn, quy ước, quy định.
d) Tính hiệu quả
Tính hiệu quả là khả năng của phần mềm cung cấp hiệu năng thích hợp để tối đa tiết kiệm tài nguyên và tăng hiệu suất công việc trong trường hợp nhất định:
• Thời gian xử lý: thời gian phần mềm đưa ra một trả lời, thời gian xử lý và một tốc độ thông lượng hợp lý cho một công việc và điều kiện cụ thể.
• Sử dụng tài nguyên: mức độ sử dụng nguyên hợp lý để thực hiện công việc trong những điều kiện cụ thể.
• Tính hiệu quả: Thoả mãn các chuẩn, quy ước, quy định.
e) Khả năng bảo trì
Khả năng bảo trì là khả năng của phần mềm cho phép sửa đổi, nâng cấp, sửa chữa, cải tiến cho phù hợp với môi trường, các yêu cầu và chức năng mới, gồm:
• Khả năng phân tích: khả năng chẩn đoán để tìm lỗi, nguyên nhân gây lỗi.
• Khả năng thay đổi được: khả năng chấp nhận thay đổi trong quá trình triển khai.
• Tính ổn định: Khả năng tránh những ảnh hưởng khi chỉnh sửa phần mềm.
• Khả năng kiểm thử được: Khả năng cho phép đánh giá phần mềm
• Khả năng bảo hành bảo trì: Thoả mãn các chuẩn, quy ước, quy định.
f) Tính khả chuyển
Tính khả chuyển là khả năng của phần mềm có thể chuyển được từ môi trường này sang môi trường khác. [4]
• Khả năng thích nghi: phần mềm có thể thích ứng với các môi trường khác nhau mà không cần phải thay đổi.
• Khả năng cài đặt: có thể cài đặt được trên những môi trường cụ thể.
• Khả năng chung sống: có khả năng cùng tồn tại với những phần mềm độc lập khác trong cùng môi trường, cùng chia sẻ tài nguyên.
• Khả năng thay thế được: có khả năng thay thế phần mềm khác khác cùng mục đích và môi trường.
• Tính khả chuyển: Thoả mãn các chuẩn, quy ước, quy định.
2.1.2 Các phép đánh giá chất lượng sử dụng
Các phép đánh giá chất lượng sử dụng của sản phẩm phần mềm theo ISO-9126
được mô phỏng như hình 2.1:
Hình 2.1 Mô hình chất lượng sử dụng [2]
Tính hiệu quả: cho phép người dùng đạt được mục đích một cách chính xác và hoàn toàn, trong điều kiện làm việc cụ thể.
Tính năng suất: khả năng cho phép người dùng sử dụng lượng tài nguyên hợp lý để thu được hiệu quả công việc trong trường hợp cụ thể.
Tính an toàn: khả năng đáp ứng mức độ rủi ro chấp nhận được đối với người sử dụng, phần mềm, thuộc tính, hoặc môi trường trong điều kiện cụ thể.
Tính thoả mãn: khả năng thoả mãn người sử dụng trong từng điều kiện cụ thể.
2.2 Các giai đoạn có thể đánh giá chất lượng sản phẩm phần mềm
Đánh giá sản phẩm phần mềm được thực hiện trong vòng đời phát triển phần mềm.
Đánh giá chất lượng phần mềm bằng cách đo các thuộc tính bên trong, các thuộc tính bên ngoài hoặc các thuộc tính sử dụng.
Quy trình chất lượng nhằm cải tiến chất lượng sản phẩm và chất lượng sử dụng, vì vậy việc đánh giá và cải tiến quy trình cũng là cải tiến chất lượng sản phẩm. Việc đánh giá chất lượng sử dụng và cải tiến sản phẩm có tác động qua lại nhau.
Các thuộc tính trong là yêu cầu tiền đề để đạt được các phản ứng bên ngoài, và các hoạt động bên ngoài thích hợp là yêu cầu tiền đề để đạt được chất lượng sử dụng.
Hình 2.2 Chất lượng trong vòng đời sản phẩm [2]
Quá trình chất lượng
Thuộc tính chất lượng
trong
Thuộc tính chất lượng
ngoài
Thuộc tính chất lượng sử dụng Phụ thuộc Phụ thuộc Phụ thuộc
Quá trình đánh giá Phép đánh giá trong Phép đánh giá ngoài Đánh giá chất lượng sử dụng
Tác động Tác động Tác động
Hoàn cảnh sử dụng
Quá trình Sản phẩm phần mềm Kết quả sản phẩm
phần mềm
Các yêu cầu chất lượng sản phẩm phần mềm sẽ gồm các tiêu chí đánh giá chất lượng trong, chất lượng ngoài và chất lượng sử dụng để đáp ứng yêu cầu người sử dụng, người bảo dưỡng, đơn vị sử dụng và người dùng cuối. Để có một sản phẩm chất lượng tốt đòi hỏi quá trình phát triển phần mềm phải liên tục và luôn có những phản hồi từ người dùng.
Các yêu cầu chất lượng ngoài xác định các mức yêu cầu đối với chất lượng từ bên ngoài, gồm các yêu chất lượng sử dụng. Các yêu cầu chất lượng ngoài được sử dụng như là đích của quá trình kiểm tra tại mỗi giai đoạn phát triển. Các yêu cầu chất lượng ngoài cho tất cả các tiêu chí chất lượng xác định trong phần này nên được đặt trong các đặc tả yêu cầu chất lượng sử dụng phương pháp đo ngoài, nên được chuyển đổi sang các yêu cầu chất lượng trong, và nên được sử dụng như là chuẩn để kiểm tra sản phẩm.[2]
Các yêu cầu chất lượng trong xác định các mức chất lượng yêu cầu từ bên trong sản phẩm, được sử dụng để xác định tiêu chí của các sản phẩm trung gian. Chúng có thể bao gồm các mô hình tĩnh hoặc động, các tài liệu và mã nguồn khác nhau có thể được coi là kết quả đánh giá tại các giai đoạn trong phát triển phần mềm. Được dùng để xác định kế hoạch phát triển, chuẩn đánh giá, các kiểm tra trong quá trình phát triển sản phẩm và có thể dùng một số phương pháp đo mở nằm ngoài phạm vi của ISO/IEC 9126. Các yêu cầu chất lượng trong nên được xác định định lượng qua việc sử dụng phương pháp đo trong.
Chất lượng phần mềm được cải tiến trong quá trình phát triển, kiểm thử, triển khai nhưng bản chất của nó ở chất lượng trong thì không thay đổi nếu như không có sự thiết kế lại.
Chất lượng ngoài là tổng hợp của các tiêu chí của sản phẩm phần mềm từ bên ngoài khi phần mềm hoạt động, được đo kiểm, ước lượng khi kiểm thử sản phẩm trong môi trường giả lập với dữ liệu giả lập bằng phương pháp đo ngoài. Khi kiểm thử các lỗi cần được phát hiện và khắc phục, sau kiểm thử vẫn còn lại một số lỗi. Bởi vì rất khó để sửa chữa kiến trúc và các thiết kế cơ bản của phần mềm, nên chúng thường không thay đổi khi kiểm thử.
Chất lượng sử dụng là đánh giá phần mềm khi sử dụng trong điều kiện cụ thể. Nó xác định phạm vi mà người sử dụng cần đạt được mục đích của mình hơn là xác định các tiêu chí của bản thân phần mềm.
Chất lượng sản phẩm ở các môi trường của người sử dụng khác nhau do nhu cầu và khả năng của họ khác nhau và cả khác nhau giữa các phần cứng và môi trường. Đôi khi, các thuộc tính của phần mềm, xác định bởi người sử dụng trong khi phân tích yêu cầu không đáp ứng được nhu cầu của người sử dụng, là do những thay đổi yêu cầu của người sử dụng và các khó khăn trong việc xác định nhu cầu. [2]
2.3 Quy trình đánh giá chất lượng phần mềm
Quy trình đánh giá chất lượng sản phẩm phần mềm được xây dựng theo ISO/IEC