2.3.1. Chất lƣợng phần mềm dựa trên giá trị (VBSQ).
2.3.1.1. Định nghĩa thuộc tính chất lượng phần mềm dựa trên giá trị.
VBSQ (value-based software quality): chất lƣợng phần mềm dựa trên giá trị. Thuộc tính chất lƣợng phần mềm dựa trên giá trị đƣợc định nghĩa khác với cách định nghĩa truyền thống trong đó chúng đƣợc tham chiếu trực tiếp tới những giá trị của các đối tƣợng quan trọng. Những định nghĩa truyền thống nhƣ thời gian trung bình giữa các lỗi MTBF (Mean Time Between Failures) cho độ tin cậy đƣợc tham chiếu tới các đặc tính mà các đối tƣợng dựa vào nhƣ: độ chính xác, hiệu năng. Các định nghĩa này đi xa hơn so với những định nghĩa truyền thống không những để thay đổi trong mô tả mà còn để phân biệt giữa sự phụ thuộc giá trị của các đối tƣợng. Các định nghĩa cũng cố gắng mang lại sự sắp xếp về các thuật ngữ nhƣ độ an toàn, sự tồn tại, tính bảo mật, tính riêng tƣ.
a. Các thuộc tính protection: tính an toàn, tính bảo mật, tính riêng tư.
Có rất nhiều định nghĩa khác nhau về tính an toàn, tính bảo mật, tính riêng tƣ. Chúng ta sẽ đề xuất định nghĩa chúng dựa trên giá trị sao cho ít mơ hồ nhất, thích hợp với những chuẩn hiện tại, và hợp lý. Ta có bảng định nghĩa về tính an toàn, tính bảo mật, tính riêng tƣ nhƣ sau:
Bảng 2.1: Khung định nghĩa về tính an toàn, tính bảo mật, tính riêng tƣ
Bản chất rủi ro
Nguyên nhân rủi ro Quá trinh xác thực,
nguyên nhân tự nhiên
Quá trình không xác thực
Rủi ro vật lý Tính an toàn Tính an toàn, bảo mật
Rủi ro thông tin Tính riêng tƣ Tính riêng tƣ, bảo mật
Định nghĩa hiện tại về độ an toàn, bảo mật, riêng tư
Sử dụng IEEE-1228 [IEEE 1994] theo tiêu chuẩn dựa trên Kế hoạch an toàn phần mềm. Định nghĩa về “độ an toàn phần mềm” là “tự do từ các mối nguy hiểm phần mềm”; “mối nguy hiểm” là tình trạng của phần mềm mà xảy ra sự cố; và “sự cố” là "một sự kiện không có kế hoạch hay một loạt các sự kiện mà kết quả là gây chết, thiệt hại, hƣ hỏng hệ thống".
Vì vậy, định nghĩa về độ an toàn tập trung vào việc bảo vệ các thực thể vật lý (gây chết, tổn thƣơng, thiệt hại tới thiết bị, tài sản hoặc môi trƣờng). Ngƣợc lại, định nghĩa về "bảo mật thông tin" trong NIST đặc biệt công bố 800-37 tập trung vào việc bảo vệ tài sản công nghệ thông tin. Nó định nghĩa là "Việc bảo vệ thông tin và hệ thống thông tin từ những truy cập trái phép, sử dụng, tiết lộ, làm gián đoạn, sửa đổi, hoặc tiêu huỷ để cung cấp bảo mật, tính toàn vẹn và tính sẵn sàng". Bảo vệ về "tính bảo mật" bao gồm sự riêng tƣ cá nhân và thông tin độc quyền. "Integrity" bảo vệ chống lại thông tin sửa đổi không đúng và tiêu huỷ. "Sẵn sàng" bảo vệ kịp thời và truy cập thông tin đáng tin cậy.
Định nghĩa dựa trên giá trị về độ an toàn, bảo mật, riêng tư:
Định nghĩa dựa trên giá trị về độ an toàn, bảo mật và sự riêng tƣ nhƣ sau: Một hệ thống cung cấp độ an toàn để giảm sự mất mát giá trị kỳ vọng của các bên liên quan do các nguyên nhân hỏng thiết bị hoặc môi trƣờng.
Một hệ thống cung cấp độ bảo mật để giảm sự mất mát giá trị (loss of value) kỳ vọng của các bên liên quan từ việc truy cập trái phép, sử dụng, tiết lộ thông tin, gián đoạn, sửa đổi hoặc phá hoại thông tin bao gồm những thiệt hại về tài chính.
Một hệ thống cung cấp tính riêng tƣ để giảm sự mất mát giá trị kỳ vọng của các bên liên quan từ việc truy cập trái phép, sử dụng hoặc tiết lộ thông tin, thay đổi thông tin cá nhân bao gồm tổn thất về tài chính và mất danh tiếng.
b. Các thuộc tính Robustness: độ tin cậy, tính sẵn sàng. Độ tin cậy
Một hệ thống cung cấp độ tin cậy đến mức tối đa hóa khả năng hệ thống cung cấp mức mong muốn về dịch vụ (tính chính xác, hiệu quả, hiệu năng) đối với một cấu hình hoạt động hệ thống trong một khoảng thời gian nhất định.
Nhƣ vậy, định nghĩa này có nghĩa là số thể hiện độ tin cậy sẽ khác nhau đối với cùng một hệ thống và cấu hình hoạt động, nếu các bên liên quan khác nhau yêu cầu trên hệ thống sẽ mong muốn mức về dịch vụ khác nhau. Điều này dẫn tới khó có thể có một giá trị duy nhất phù hợp về độ tin cậy. Nhƣng các giá trị số khác nhau cho các bên liên quan thấy rằng hệ thống có đủ tin cậy hay không.
Tính sẵn sàng
Một hệ thống cung cấp tính sẵn sàng trong phạm vi nó tối ƣu hóa khoảng thời gian mà hệ thống sẽ cung cấp mức mong muốn về dịch vụ với một cấu hình hoạt động.
Cũng giống nhƣ độ tin cậy, tính sẵn sàng sẽ thay đổi theo các đối tƣợng với những mức mong muốn về dịch vụ khác nhau (nó cũng thay đổi theo các cấu hình hoạt động khác nhau). Tính sẵn sàng đƣợc tính bằng MTBF/(MTBF + MTTR).
MTBF: thời gian trung bình giữa các lỗi (Mean Time Between failure). MTTR: thời gian trung bình để sửa lỗi (Mean Time to repair).
c. Thuộc tính chất lượng dịch vụ: Hiệu suất, độ chính xác, khả năng sử dụng Hiệu suất
Một hệ thống cung cấp hiệu suất trong phạm vi tối đa hóa giá trị xử lý thông tin trong những nguồn lực sẵn có (bộ xử lý, thiết bị lƣu trữ, băng thông…) đƣợc sử dụng để xử lý khối lƣợng công việc của hệ thống (số lƣợng và phân phối dịch vụ đƣợc yêu cầu/chức năng trong một khoảng thời gian). Hay một định nghĩa khác là: một hệ thống cung cấp hiệu suất trong phạm vi mà nó cung cấp cho các bên liên
quan lƣợng thông tin mong muốn với việc sử dụng nguồn tài nguyên giới hạn và thời gian đáp ứng tối thiểu.
Các bên liên quan khác nhau sẽ có giá trị khác nhau về hiệu năng hệ thống (thời gian đáp ứng, mức độ chính xác) khi chúng phụ thuộc vào hệ thống theo các cách khác nhau. Hơn nữa, ngay cả các giá trị mong muốn của cùng đối tƣợng có thể khác nhau với bối cảnh hoạt động khác nhau. Vì vậy, một metric phù hợp cho tất cả về hiệu năng là không thể.
Độ chính xác
Độ chính xác là một thƣớc đo trung tính sử dụng nhƣ là một giới hạn chấp nhận đƣợc trong thuộc tính dựa trên giá trị nhƣ độ tin cậy và hiệu suất. Một hệ thống cung cấp độ chính xác tới mức mà nó giảm thiểu sự khác biệt giữa kết quả tính toán khi chuyển giao và số lƣợng trên thế giới thực mà chúng đại diện.
Khả năng sử dụng
Một hệ thống cung cấp khả năng sử dụng nghĩa là nó tối đa hóa giá trị của khả năng hƣởng lợi từ khả năng của một hệ thống đối với các cấu hình hoạt động của hệ thống (xác suất phân bố tần số giao dịch, khối lƣợng công việc, ...)
Việc đo khả năng sử dụng sẽ dựa trên nhiều yếu tố: tránh dùng sai, tính có thể kiểm soát, dễ hiểu, dễ học…Một hệ thống phần mềm có thể đƣợc truy cập theo nhiều cách khác nhau bới nhiều đối tƣợng. Ví dụ, quản trị hệ thống có thể truy cập vào một giao diện khác với những gì mà ngƣời sử dụng thông thƣờng truy cập. Do đó, phép đo khả năng sử dụng nên thay đổi theo từng đối tƣợng sử dụng hệ thống.
2.3.1.2. Các metrics chất lượng phần mềm dựa trên giá trị.
Khi những hệ thống phần mềm khác nhau có những đối tƣợng liên quan khác nhau và tồn tại nhiều chuỗi hoạt động trong hệ thống phần mềm, những mẫu chất lƣợng phần mềm truyền thống không đƣợc thích hợp nữa. Dựa vào những định nghĩa về chất lƣợng phần mềm dựa trên giá trị đƣợc mô tả ở phần trƣớc, những value-based metric đƣợc đề xuất để đo chất lƣợng phần mềm đạt đƣợc. Những thành phần chính của metric chất lƣợng dựa trên giá trị đƣợc tóm tắt nhƣ sau:
2. Có Qj các thuộc tính chất lƣợng phần mềm quyết định thành công của các bên liên quan phụ thuộc vào.
3. Các kịch bản liên quan đến mỗi thuộc tính Qj
4. Ma trận lƣu các đối tƣợng có thể chấp nhận mức ALj, mong muốn ở mức
DLj, phụ thuộc vào Pij của thuộc tính chất lƣợng Qij là mức độ Aj thể hiện
mức của thuộc tính Qj.
Bảng 2.2: Số liệu dựa trên giá trị cho thuộc tính chất lƣợng phần mềm Thuộc tính chất lƣợng Liên quan đến kịch bản Mức độ chấp nhận Mức độ mong muốn Sự phụ thuộc của các bên liên quan
Mức độ thực tế S1 S2 … Si … Sn A1 Q1 AL1 DL1 P11 P21 … Pi1 … Pn1 A2 Q2 AL2 DL2 P12 P22 … Pi2 … Pn2 A3 … … … … … … … … Qj ALj DLj P1j P2j … Pij … Pnj Aj … … … … … … … … Qn ALn DLn P1n P2n … Pin … Pnn Ann
2.3.2. Các mô hình chất lƣợng phần mềm dựa trên giá trị (VBSQM)
Mô hình chất lƣợng phần mềm sẽ cần thiết để hỗ trợ các đối tƣợng trong việc quyết định mức độ chấp nhận hay mong muốn cho mỗi thuộc tính chất lƣợng và ƣớc lƣợng chi phí, giá trị, ROI (return-on-investment) và những rủi ro để đạt đƣợc chúng. Mặt khác, tồn tại sự cạnh tranh giữa các thuộc tính chất lƣợng phần mềm. Vì vậy, xác định đầu tƣ chất lƣợng phần mềm bao nhiêu là đủ cũng cần để hỗ trợ phân tích sự cân bằng giữa các thuộc tính chất lƣợng phần mềm khác nhau. Thông qua đó, luận văn phát triển một mô hình chất lƣợng phần mềm dựa trên giá trị (VBSQM – Value-Based Software Quality Model) để lập luận về ROI của chất lƣợng phần mềm và thực hiện kết hợp phân tích rủi ro sử dụng Cocomo II, Coqualmo và tiếp cận dựa trên giá trị.
2.3.2.1. Thành phần của VBSQM
VBSQM tích hợp quan hệ ƣớc lƣợng chi phí (CER’s - Cost Estimating Relationships) từ mô hình xây dựng chi phí Cocomo II; quan hệ ƣớc lƣợng các thuộc tính chất lƣợng phần mềm (QER’s) từ mô hình xây dựng chất lƣợng Coqualmo (Constructive Quality Model); và quan hệ ƣớc lƣợng giá trị (VER’s) cung cấp bởi các đối tƣợng của hệ thống. Toàn bộ cấu trúc của VBSQM nhƣ hình sau:
Hình 2.4: Cấu trúc của mô hình chất lượng phần mềm dựa trên giá trị.
Trong phần này, tổng kết các kết quả theo kinh nghiệm về chi phí của việc đạt đƣợc giới hạn của một số thuộc tính chất lƣợng phần mềm.
a. Quan hệ giữa Cocomo II và Coqualmo
Đối với độ tin cậy, tham số CER của RELY cung cấp cầu nối để đánh giá chất lƣợng phần mềm, thể hiện bằng sự ảnh hƣởng của lỗi phần mềm. Từ CER dịch sang QER dựa trên kinh nghiệm cho thuộc tính độ tin cậy ở dạng thời gian trung bình giữa các sự cố (MTBF) theo giờ (xem hình 2.1). Hình 2.1 cũng cho thấy quan hệ giữa nỗ lực để đạt đƣợc mức độ tin cậy tƣơng ứng. Ví dụ, phát triển phần mềm cho ngƣời dùng với tổn thất có thể lấy lại đƣợc dễ dàng thì MTBF là 10 giờ và chi phí
sẽ là 0.92. Phát triển phần mềm cho các tổ chức tài chính thì MTBF phải là 10 nghìn giờ (~ 417 ngày) và chi phí tƣơng ứng là 1.10.
Quan hệ giữa Cocomo II và Coqualmo dựa trên xếp hạng Coqualmo với mức độ đầu tƣ về gỡ lỗi qua phân tích tự động, xem xét chéo hay thực hiện kiểm thử tƣơng ứng với sự xếp hạng thuộc tính RELY ở Cocomo II (xem hình 2.1). Sự tƣơng ứng giữa xếp hạng RELY ở Cocomo II và xếp hạng khả năng gỡ lỗi dựa trên việc ánh xạ các hoạt động đƣợc thực hiện ở các pha trong chu trình phát triển phần mềm nhƣ bảng sau:
Bảng 2.3: Quan hệ RELY Rating và các pha trong chu trình phát triển phần mềm RELY Rating Phân tích và thiết kế Thiết kế chi tiết Code và Unit Test Tích hợp và test
Very Low Chi tiết thấp, ít
kiểm định Thiết kế cơ bản Không có thủ tục test Không có thủ tục test
Low Thông tin cơ
bản
Thông tin chi tiết vừa phải
Thủ tục test nhỏ
Thủ tục test nhỏ
High
Tài liệu chi tiết, có lên kế hoạch kiểm thử
Tài liệu chi tiết, có thẩm định
Thủ tục test chi tiết, có tài liệu
Thủ tục test chi tiết và tài liệu
Very High
Tài liệu chi tiết, chuẩn, có giao diện
Tài liệu đƣợc thẩm định chi tiết, giao diện, thiết kế test Thủ tục test chi tiết và có thẩm định Thủ tục test rất chi tiết, có tài liệu
Đối với xếp hạng Very Low đến Extra High, VBSQM cung cấp hai cách để áp dụng quan hệ giữa Cocomo II và Coqualmo. Một là đặc tả xếp hạng Cocomo II RELY và giả định cùng một mức đầu tƣ trong phân tích tự động xem xét chéo và thực hiện kiểm thử, trong trƣờng hợp này nỗ lực tƣơng ứng và MTBF sẽ đƣợc sử dụng. Hoặc đặc tả mức đầu tƣ cho việc phân tích tự động, xem xét chéo và thực
hiện kiểm thử. Dựa trên nỗ lực phân phối cho 3 kỹ thuật gỡ lỗi, chúng ta có thể tính toán giá trị trung bình Coqualmo giống nhƣ xếp hạng RELY trong Cocomo II. Chúng ta cũng có thể sử dụng tham số khác nhƣ PRICE, SEER, SLIM trong Cocomo II và thực hiện giống nhƣ RELY CER. Quan hệ giữa Cocomo II và Coqualmo cũng tạo ra cách liên hệ giữa việc đầu tƣ vào độ tin cậy của phần mềm và giá trị MTBF của hệ thống (nhƣ hình 2.1).
b. Mô hình chất lượng dựa trên giá trị (Value-based Software Quality Model – VBSQM)
VBSQM cần chất lƣợng phần mềm ban đầu VER đƣợc cung cấp bởi các bên liên quan đến hệ thống, để ƣớc lƣợng chi phí đầu tƣ và mức chất lƣợng phần mềm cho kết quả dòng lợi ích và ƣớc tính ROI. Giả sử rằng các bên liên quan đã thực hiện phân tích các trƣờng hợp kinh doanh cơ sở giá trị cho các thành phần giá trị khác nhau (lợi nhuận, sự thỏa mãn khách hàng, thời gian thực hiện) nhƣ một hàm về khả năng xử lý thông tin theo thời gian ở mức độ thuộc tính chất lƣợng phần mềm cơ bản. VBSQM tập hợp những thành phần giá trị vào một dòng giá trị theo từng giai đoạn thời gian tổng thể, bao gồm các chi phí theo từng giai đoạn thời gian (chi phí khả năng IP cộng với các khoản đầu tƣ chất lƣợng phần mềm) và chuẩn hoá bằng cách sử dụng công thức giá trị hiện tại để tạo ra thời gian theo từng giai đoạn của hồ sơ ROI.
Một giá trị giữa mối quan hệ sẵn có điển hình có thể xuất hiện nhƣ một chức năng của sản phẩm thể hiện trong hình 2.2. Dƣới một mức đầu tƣ nhất định, với lợi nhuận trong có sẵn không tránh khỏi bị phá. Vƣợt quá mức độ này, có một phân đoạn cao trở lại, nhƣng tại một số điểm, tăng trƣởng đáng kể về tính sẵn có không ảnh hƣởng đến mức thất vọng của ngƣời sử dụng, kết quả trong một phân đoạn giảm bớt lợi nhuận. VERs VBSQM ban đầu liên quan đến mối quan hệ đơn giản nhƣ tiết kiệm chi phí hoạt động mỗi lỗi tránh đƣợc, hoặc mất mỗi phần trăm doanh số bán hàng của thời gian chết hệ thống. Hiển thị nhƣ là tính xấp xỉ tuyến tính của một phân đoạn đặc biệt của chức năng sản phẩm trong hình 2.2. Nhiều tổ chức cung cấp các dịch vụ điện tử cũng có thể sử dụng các mối quan hệ nhƣ vậy để đo lƣờng
tổn thất doanh thu do thời gian chết của hệ thống. Ví dụ, ở phía cao hơn, Intel ƣớc tính mất doanh thu là $275K ($US) cho mỗi giờ thời gian chết của lệnh xử lý hệ thống; các công ty khác ƣớc tính là $167K (Cisco), $83K (Dell), $27K (Amazon), $8K (E*Trade), and $3K (Ebay).
Hình 2.5: Quan hệ ước lượng giá trị điển hình (VER) có sẵn
2.3.2.2. Tích hợp khung làm việc: Mô hình chất lượng phần mềm dựa trên giá trị (VBSQM)
VBSQM tích hợp mô hình Cocomo II, Coqualmo và VERs cung cấp hai kịch bản sử dụng để hỗ trợ phân tích chất lƣợng phần mềm từ các đối tƣợng/quan điểm giá trị. Nó giúp trả lời câu hỏi nhƣ đầu tƣ chất lƣợng phần mềm bao nhiêu là đủ trong điều kiện của cả hai ROI và rủi ro kết hợp. Phần a, trình bày thủ tục phân tích ROI chất lƣợng phần mềm. Phần b, trình bày thủ tục của VBSQM phân tích rủi ro và sự xói mòn thị phần.
a. Kịch bản 1: Phân tích ROI chất lượng phần mềm
Khung làm việc VBSQM có thể giúp các đối tƣợng trong dự án và những