Các tiêu chuẩn để đánh giá chất lượng phần mềm này không chỉ phù hợp để đánh giá một sản phẩm phần mềm đạt chất lượng trong điều kiện hiện tại mà nó còn phải là một tiêu chuẩn phù hợp vớ
Trang 1MỞ ĐẦU
Cũng như mọi hoạt động sản xuất-kinh doanh khác, việc sản xuất phần mềm đòi hỏi tuân thủ nghiêm ngặt các tiêu chuẩn về chất lượng, không chỉ chất lượng của từng module riêng lẻ mà cả chất lượng của toàn hệ thống và quy trình Tuy nhiên, ở nước ta, công tác quản lý chất lượng sản phẩm phần mềm chưa được coi trọng ở nhiều doanh nghiệp
Quản lý chất lượng sản phẩm trong doanh nghiệp phần mềm không chỉ
là bảo đảm chất lượng của từng sản phẩm làm ra mà còn quản lý cả các quy trình làm ra sản phẩm ấy Mô hình quản lý chất lượng là một mô hình có tính liên thông từ trên xuống dưới Việc nghiên cứu tiêu chuẩn đánh giá chất lượng phần mềm và vấn đề quản lý chất lượng sản phẩm phần mềm luôn có
ý nghĩa khoa học và thực tiễn
Hiện nay điều đáng lưu ý là không phải bất cứ doanh nghiệp phần mềm nào cũng xây dựng cho mình một hệ thống quản lý chất lượng riêng dựa trên các chứng chỉ quốc tế hay dựa trên tiêu chuẩn đánh giá chất lượng phần mềm
Vì thế với mỗi doanh nghiệp việc lựa chọn các tiêu chuẩn đánh giá chất lượng phần mềm và mô hình quản lý chất lượng sản phẩm phần mềm phù hợp là rất quan trọng Chính vì vậy trong phạm vi luận văn tốt nghiệp, em chọn đề tài:
"Nghiên cứu, so sánh, đánh giá các tiêu chuẩn chất lượng trong phát triển phần mềm" Với kết quả của đề tài này, em mong muốn đưa ra được những
tiêu chuẩn nào là phù hợp với quy trình phát triển phầm mềm nhằm đưa ra các phần mềm đảm bảo chất lượng và hơn thế nữa đưa ra được tiêu chuẩn nào là phù hợp cho điều kiện của doanh nghiệp phần mềm Việt Nam
Luận văn được đặt ra với các mục tiêu và nhiệm vụ sau:
Nghiên cứu các tiêu chuẩn về chuẩn hoá quy trình phát triển phần mềm, tiêu chuẩn chất lượng phần mềm, nhằm đề xuất một hệ thống tiêu chuẩn chất lượng tương đương với các hệ thống tiêu chuẩn quốc tế
Nghiên cứu, so sánh và đánh giá các tiêu chuẩn chất lượng trong phát triển phần mềm, đưa ra các tiêu chuẩn phù hợp với các doanh nghiệp phần mềm Việt Nam
Kiến nghị các giải pháp hiệu quả trong phát triển phần mềm đảm bảo chất lượng mong muốn
Trang 2Phương pháp nghiên cứu
Phương pháp luận:
Nghiên cứu các tài liệu, lý thuyết và các vấn đề liên quan đến tiêu chuẩn chất lượng phần mềm để từ đó áp dụng vào thực tiễn đánh giá chất lượng các phần mềm, nhằm đưa ra thị trường các sản phầm có chất lượng, giảm thiểu tối đa các thiệt hại về kinh tế Bởi hiện nay, lỗi của phần mềm cực
kỳ nguy hiểm, gây ra những thiệt hại không nhỏ về vật chất trong bối cảnh hầu hết những ngành kinh tế quan trọng đều đang sử dụng rộng rãi
Các phương pháp nghiên cứu cụ thể điển hình:
- Phương pháp nghiên cứu lý thuyết:
Nghiên cứu các tài liệu trong và ngoài nước liên quan đến tiêu chuẩn chất lượng phần mềm So sánh và đánh giá các tiêu chuẩn, lựa chọn các tiêu chuẩn thích hợp áp dụng để đánh giá một sản phẩm phần mềm đối với các doanh nghiệp phần mềm việt Nam Các tiêu chuẩn để đánh giá chất lượng phần mềm này không chỉ phù hợp để đánh giá một sản phẩm phần mềm đạt chất lượng trong điều kiện hiện tại mà nó còn phải là một tiêu chuẩn phù hợp với quá trình phát triển phần mềm trong tương lai
Nội dung luận văn
Cấu trúc luận văn gồm có 4 chương:
Chương 1 Tổng quan về tiêu chuẩn chất lượng phần mềm
Chương 2 Một số tiêu chuẩn chất lượng phần mềm hiện đại
Chương 3 Các đặc trưng chủ yếu của tiêu chuẩn chất lượng phần mềm
Chương 4 So sánh và đánh giá
Kết luận và khuyến nghị
Trang 3Chương 1 TỔNG QUAN VỀ TIÊU CHUẨN CHẤT LƯỢNG
PHẦN MỀM
1.1 Tiêu chuẩn chất lượng
Là những quy định thống nhất được trình bày dưới dạng văn bản pháp chế kỹ thuật, xây dựng theo một thể thức nhất định Các tiêu chuẩn có thể là các kinh nghiệm hoặc các phương pháp hiệu quả nhất, được đề xuất từ các hiệp hội nghề nghiệp như IEEE (The Institute of Electrical and Electronics Engineers, Inc – Học viện các kỹ sư điện và điện tử), từ các tổ chức quốc tế như ISO (International Organization for Standardization), hoặc các quy tắc chuẩn hóa để giao tiếp giữa sản phẩm với nhau… hoặc đơn giản do chính tổ chức phát triển phần mềm đề ra để áp dụng cho chính họ nhằm sản xuất ra các sản phẩm đạt chất lượng
Các tiêu chuẩn có thể bao gồm tất cả các khía cạnh của một chu kỳ phát triển phần mềm, trải dài suốt mọi pha phát triển Bất kể tiêu chuẩn xuất phát
từ đâu, từ nội bộ công ty, hoặc từ ngoài, nó đều phải có một số đặc điểm sau:
• Tính cần thiết
• Tính khả thi
• Tính đo lường được
Các tiêu chuẩn nên được chọn và thể hiện sao cho khi sử dụng, các khía cạnh kỹ thuật cần thiết sẽ được nhấn mạnh, tránh trường hợp hiểu sai hoặc sa vào những tiểu tiết phụ trợ hoặc sa vào kiểm tra các chi tiết về mặt hình thức
1.2 Chất lượng phần mềm
Nói đến chất lượng phần mềm không ít người nghĩ ngay đến vấn đề là xác định xem phần mềm đó có phát sinh lỗi hay không, có “chạy” đúng như yêu cầu hay không và nó có làm thoả mãn nhu cầu người sử dụng hay không,
có dễ sử dụng, dễ bảo trì hay không? Đây chính là quan điểm chất lượng
của khách hàng Vậy có thể định nghĩa: Chất lượng là mức độ thoả mãn của người sử dụng đối với sản phẩm hay dịch vụ
Tuy nhiên quan điểm về chất lượng phần mềm đang là một khái niệm gây nhiều tranh cãi Theo quan điểm của người phát triển thì một phần mềm tốt là một phần mềm ít lỗi Còn quan điểm chất lượng theo kiểu lập trình đó
là làm thế nào để xây dựng phần mềm đúng như thiết kế Chất lượng thiết kế
ở đây được hiểu là các đặc điểm, hình dáng mà nhà thiết kế có ý định tạo ra trong sản phẩm cuối cùng Tuy có nhiều quan điểm khác nhau về chất lượng phần mềm, nhưng một phần mềm tốt không những phải đáp ứng nhu cầu của người phát triển mà phải thoả mãn người sử dụng và có độ tin cậy cao Do đó
Trang 4ta có thể định nhĩa chất lượng chất lượng phần mềm là sự đáp ứng các yêu cầu chức năng, sự hoàn thiện và các chuẩn (đặc tả) được phát triển, các đặc trưng mong chờ từ mọi phần mềm chuyên nghiệp (ngầm định)
Mặc dù có nhiều quan điểm khác nhau về chất lượng phần mềm, nhưng
dù theo quan điểm nào đi chăng nữa thì một phần mềm tốt, đảm bảo chất lượng phải đáp ứng được :
1 Các chỉ tiêu cơ bản:
Phản ánh đúng yêu cầu người dùng ( tính hiệu quả)
Chứa ít lỗi tiềm tàng
Giá thành không vượt quá giá ước lượng ban đầu
Dễ vận hành, sử dụng
Tính an toàn và độ tin cậy cao
2 Hiệu suất xử lý cao
Hiệu suất thời gian tốt
- Độ phức tạp tính toán thấp
- Thời gian quay vòng ngắn
- Thời gian hồi đáp nhanh
Sử dụng tài nguyên máy tính hữu hiệu: CPU, RAM, HDD, v v
3 Tính dễ hiểu
Kiến trúc và cấu trúc thiết kế dễ hiểu
Dễ kiểm tra, kiểm chứng, kiểm thử
Để đánh giá chất lượng phần mềm người ta dựa vào quan điểm chính sau:
Yêu cầu phần mềm là cơ sở để đo chất lượng
Trang 5 Yêu cầu thể hiện bằng đặc tả - đặc tả phải có chuẩn của nó mới kiểm tra được
Các chuẩn đặc tả xác định một bộ các tiêu chuẩn phát triển, các tiêu chuẩn này hướng dẫn cách thức làm ra phần mềm: nếu không tuân thủ các tiêu chuẩn đó thì hầu như chắc chắn là chất lượng sẽ kém
Nếu phần mềm chỉ phù hợp với các yêu cầu đã hiển thị mà chưa phù hợp với yêu cầu ngầm thì chất lượng phần mềm là đáng nghi ngờ
Cần làm rõ yêu cầu và đưa vào đặc tả càng nhiều càng tốt
1.4 Tiêu chuẩn đánh giá chất lượng phần mềm
Mục tiêu của công nghệ phần mềm là sản xuất ra những phần mềm tốt,
có chất lượng cao Các nhân tố ảnh hưởng đến chất lượng phần mềm có thể được phân thành hai nhóm chính: các nhân tố có thể đo trực tiếp và các nhân
tố chỉ có thể đo gián tiếp
Nhân tố trực tiếp: có thể trực tiếp đo như lỗi/KLOC/ đơn vị thời gian
Nhân tố gián tiếp: nhân tố chỉ có thể đo được một cách gián tiếp như tính bảo trì
Theo McCall các tiêu chuẩn đánh giá chất lượng được chia thành 3 loại:
Loại 1: Đặc trưng chức năng:
1.4.1 Tính đúng đắn
Tính đúng đắn: Khi xét về tính đúng đắn tức là đề cập đến phạm vi phần mềm đó có làm đúng điều khách hàng mong muốn, có thoả mãn các yêu cầu đã được mô tả và có thực hiện được những mục tiêu nhiệm vụ của khách hàng
* Các độ đo liên quan:
Độ đầy đủ
Độ hoà hợp
Độ lần vết được
1.4.2 Tính 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ể Gồm bốn đặc tính:
Sự cẩn thận: liên quan đến tần suất hư hại bởi lỗi của phần mềm Khả năng thích ứng lỗi: liên quan đến khả năng duy trì việc thực thi
phần mềm ở mức nào nếu xảy ra lỗi hay sự cố
Khả năng khôi phục: liên quan đến khả năng thực thi lại chương
trình ở mức nào và khôi phục lại dữ liệu trong trường hợp gặp sự cố hay lỗi phần mềm
* Các độ đo liên quan:
Độ chính xác
Trang 6.Về mặt thời gian: liên quan đến khả năng đáp ứng kết quả mong đợi
của một chức năng hay toàn bộ ứng dụng với khoảng thời gian chấp nhận được
.Về mặt tài nguyên: liên quan đến các tài nguyên được sử dụng và
khoảng thời gian chiếm dụng các tài nguyên trong việc thực thi các chức năng
Có thể khống chế được việc truy cập của những người không được
phép tới phần mềm và dữ liệu của hệ thống
* Các độ đo liên quan:
Độ kiểm toán được
Sự dễ hiểu: liên quan đến việc người dùng có đủ khả năng hiểu được
các khái niệm một cách logíc và khả năng của phần mềm
Có thể học được: liên quan việc người sử dụng có đủ nỗ lực để học
sử dụng và khai thác phần mềm
Dễ thao tác: liên quan đến khả năng có thể thao tác và điều khiển các
thao tác khi khai thác phần mềm
Sự tuân thủ
Trang 7* Các độ đo liên quan:
Khả năng phân tích: liên quan đến việc với sự nỗ lực cần thiết có thể
chuẩn đoán sự thiếu sót hay các nguyên nhân gây lỗi
Có thể thay đổi: liên quan đến việc với sự nỗ lực cần thiết có thể sửa
chữa, loại bỏ lỗi hay đáp ứng những thay đổi của môi trường
Sự ổn định: liên quan đến những rủi ro của những tác động không
mong muốn khi có những sửa đổi
Có thể thử được: liên quan đến việc với những nỗ lực cần thiết có thể
chứng thực những thay đổi của phần mềm
Nỗ lực cần có thể thay đổi một chương trình đang vận hành
* Các độ đo liên quan:
Trang 81.4.8 Tính thử nghiệm được
Phần mềm có thể kiểm thử được là phần mềm mà nó có cách dễ dàng
để có thể kiểm tra được Đảm bảo rằng nó thực hiện đúng các chức năng dự định
* Các độ đo liên quan:
Độ kiểm toán được
Độ phức tạp
Trang bị đồ nghề đủ
Độ module hoá
Tự cấp tài liệu
Độ đơn giản - dễ hiểu
1.4.9 Tính mang chuyển được
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
.Khả năng thích ứng: liên quan đến khả năng thích ứng với sự thay
đổi môi trường đã dự tính trước
Sự cài đặt: liên quan thuộc tính có thể cài đặt phần mềm trên các môi
trường khác nhau
Khả năng thay thế: liên quan đến thuộc tính có khả năng thay thế các
phần mềm khác trong cùng môi trường với sự cố gắng tối thiểu
Khả năng chung sống: liên quan đến thuộc tính có khả năng chung
* Các độ đo liên quan:
Trang 9Độc lập hệ thống phầm mềm
1.4.11 Tính liên tác được
Nỗ lực đòi hỏi để ghép hệ thống chương trình vào một hệ thống khác là chấp nhận được
* Các độ đo liên quan:
Độ tương đồng giao tiếp
Có 4 thao tác là nền tảng của hầu hết các quy trình phần mềm là:
1 Đặc tả phần mềm: Các chức năng của phần mềm và điều kiện để nó hoạt động phải được định nghĩa
2 Sự phát triển phần mềm: Để phần mềm đạt được đặc tả thì phải có quá trình phát triển này
3 Đánh giá phần mềm: Phần mềm phải được đánh giá để chắc chắn rằng
Trang 10Hình 1.1 Mô hình thác nướcTrong mô hình này, công việc được phân chia thành các giai đoạn và việc quản lý được tiến hành cho từng giai đoạn Cái tên “thác đổ” nói lên rằng công việc diễn ra trong mô hình này đi từ trên xuống dưới sẽ không bao giờ
có bước đi ngược lại, đây chính là nhược điểm của mô hình này Các giai đoạn của mô hình:
1 Phân tích yêu cầu và tài liệu đặc tả (Requirements and Specifications): là giai đoạn xác định những “đòi hỏi” liên quan đến chức năng và phi chức năng mà hệ thống phần mềm cần có
2 Phân tích hệ thống và thiết kế (System Analysis and Design): là giai đoạn định ra “làm thế nào” để hệ thống phần mềm đáp ứng những “đòi hỏi”
mà khách hàng yêu cầu trong giai đoạn phân tích yêu cầu
3 Hiện thực và kiểm thử từng thành phần (Coding and Unit Test): là giai đoạn hiện thực “làm thế nào” được chỉ ra trong giai đoạn “Phân tích hệ thống và thiết kế”
4 Kiểm thử (Test): giai đoạn này sẽ tiến hành kiểm thử mã (code) đã được hiện thực, bao gồm kiểm thử tích hợp cho nhóm các thành phần và kiểm thử toàn hệ thống (system test)
5 Cài đặt và bảo trì (Deployment and Maintenance): đây là giai đoạn cài đặt, cấu hình và huấn luyện khách hàng Giai đoạn này sửa chữa những lỗi của phần mềm (nếu có) và phát triển những thay đổi mới được khách hàng yêu cầu (như sửa đổi, thêm hay bớt chức năng/đặc điểm của hệ thống)
Nhận xét: Quy trình này thực tế chỉ cho một khung phát triển mà
không thích hợp với các dự án phức tạp mà các bước không thể rạch ròi được
và cũng không thể đảm bảo bước nọ hoàn thiện mới chuyển sang bước kế
Trang 11tiếp Ngày nay quy trình này nói chung là chỉ dùng được với các dự án nhỏ và đơn giản
1.5.2 Mô hình làm bản mẫu
Hình 1.2 Mô hình làm bản mẫu
Mô hình này cũng bắt đầu từ việc thu thập yêu cầu khách hàng Sau đó,
là công việc thiết kế nhanh, công việc này dẫn đến xây dựng một bản mẫu Bản mẫu này dùng cho khách hàng đánh giá để làm mịn yêu cầu đối với phần mềm cần phát triển Tiến trình này lặp đi lặp lại cho đến khi bản mẫu thuyết phục và làm hài lòng khách hàng Tuy nhiên với mô hình này có ưu điểm đó
là tạo được mô hình phần mềm ngay từ giai đoạn đầu nhưng đây cũng chính
là nhược điểm lớn nhất của nó vì : khi có yêu cầu mới xây dựng hệ thống mới lại “vứt đi” Chi phí cao
Nhận xét: Đây là quy trình dành cho các dự án nhỏ mà người phát triển
phần mềm phải cùng làm việc với người yêu cầu để làm rõ yêu cầu đến mức giao diện thông qua thiết kế theo kiểu minh hoạ với sự xác nhận từng khâu của người sử dụng cuối cùng
1.5.3 Mô hình xoắn ốc
Trang 12 Lập kế hoạch: Xác định mục tiêu, ràng buộc và giải pháp
Phân tích rủi ro: Phân tích các phương án và xác định cách giải quyết rủi ro
Phát triển, xác minh cấp độ kế tiếp
Dự trù pha kế tiếp qua đánh giá của khách hàng
Nhận xét: Mô hình này thừa nhận sự không hoàn thiện của việc phân
tích thiết kết và lập trình một lần, mà phải phát triển nhiều vòng, hoàn thiện dần
1.5.4 Mô hình CMM
CMM (Capability Maturity Model) là mô hình đánh giá sự trưởng thành năng lực sản xuất phần mềm Đây là mô hình có thể phân loại và đánh giá mức độ trưởng thành, thuần thục về kỹ thuật và công nghệ của một công
ty phần mềm CMM còn là một tiêu chuẩn quốc tế đã được thừa nhận (tương
tự như ISO) Các biện pháp và cơ chế hoàn thiện quy trình đã trở thành một phần ngày càng quan trọng trong quá trình phát triển phần mềm nhằm đảm bảo chất lượng sản phẩm
Mô hình này có 5 mức:
Trang 13Hình 1.4 Mô hình CMM - Các mức đối với phát triển phần mềm
Tuỳ theo từng mức sẽ có các yêu cầu khác nhau và các vấn đề cần tập trung giải quyết để hoàn thiện quy trình phần mềm ở mức đó
Ở mức 1: đây là mức khởi đầu nên chưa có bất kỳ một kinh nghiệm nào
về sản xuất phần mềm Các nhà sản xuất phần mềm làm một cách tự phát và không tập trung vào một vấn đề cụ thể nào nên mang tính chất hỗn độn
Ở mức 2: tập trung vào những vấn đề liên quan đến việc thiết lập kiểm soát cơ bản cho quản trị dự án Đó là quản lý yêu cầu (Requirement Management), Lập kế hoạch cho dự án phần mềm (Software Project Planning), Giám sát và theo dõi dự án phần mềm (Software Project Tracking and Oversight), Quản lý hợp đồng phụ phần mềm (Software Subcontract Management), Đảm bảo chất lượng sản phẩm phần mềm (Software Quality Assurance) và Quản lý cấu hình phần mềm (Software Configuration Management)
Ở mức 3: tập trung vào cả hai vấn đề về dự án và tổ chức Vì một tổ chức tạo nên cấu trúc hạ tầng thể chế hoá các quá trình quản lý và sản xuất phần mềm hiệu quả qua tất cả các dự án Chúng bao gồm: Trọng tâm tiến trình tổ chức (Organization Process Focus), Xác định tiến trình tổ chức (Organization Process Definition), Lập chương trình đào tạo (Training Program), Quản trị phần mềm tích hợp (Integrated Software Management), Sản phẩm công nghệ phần mềm (Software Product Engineering), Phối hợp giữa các nhóm (Intergroup Coordination), Kiểm tra ngang hàng (Peer Reviews)
Ở mức 4: tập trung vào việc thiết lập quá trình sản xuất phần mềm về mặt số lượng và chất lượng Đó là: Quản lý số lượng qui trình (Quantitative Process Management), Quản lý chất lượng phần mềm (Software Quality Management)
Trang 14 Ở mức 5: bao gồm các vấn đề mà các tổ chức và dự án phải hướng đến
để thực hiện hoàn thiện quá trình sản xuất phần mềm Đó là: Ngăn ngừa lỗi (Defect Prevention), Quản lý những thay đổi về mặt công nghệ (Technology Change Management), Quản lý những thay đổi về mặt quy trình (Process Change Management)
1.5.5 Mô hình CMMI
Hình 1.5 Mô hình CMMI - Các mức đối với phát triển phần mềm
Mô hình CMMI (Capability Maturity Model Integration) là phiên bản mới của CMM nhằm thay thế cho CMM Đây là mô hình được SEI phát triển nhằm cung cấp những tiêu chuẩn hướng dẫn, kinh nghiệm thực tế để phát triển, cải tiến các quy trình của một tổ chức phần mềm Mô hình này cũng bao gồm 5 mức: Khởi đầu, Quản lý, Định nghĩa, Quản lý định lượng, tối ưu
1 Khởi đầu (lộn xộn, không theo chuẩn): đây là điểm khởi đầu để sử dụng một quy trình mới
2 Quản lý (quản lý dự án, tuân thủ quy trình): Quy trình này được lặp lại nhiều lần
3 Định nghĩa (thể chế hóa): Quy trình này được xác lập/ xác nhận như một quy trình doanh nghiệp tiêu chuẩn
4 Quản lý định lượng: Tiến hành kiểm soát và đo lường quy trình sản xuất phần mềm
5 Tối ưu (cải tiến quy trình): Kiểm soát quy trình bao gồm việc cân nhắc
kỹ để cải tiến/ tối ưu hóa quy trình
Chương 2 MỘT SỐ TIÊU CHUẨN CHẤT LƯỢNG PHẦN MỀM
HIỆN ĐẠI
Trang 152.1 Tổng quan các tiêu chuẩn trong phát triển phần mềm
Có thể nói chất lượng phần mềm luôn là mục tiêu hàng đầu đối với giới sản xuất và người sử dụng phần mềm Do đó muốn sản xuất được phần mềm tốt thì đòi hỏi phải có quy trình tốt Quy trình yếu thì sản phẩm khó mà tốt Vấn đề được đặt ra là làm thế nào cải tiến qui trình để cải thiện chất lượng và năng suất? Câu trả lời chính là qui trình khung (Process Framework – PF) PF
sẽ chỉ ra những yêu cầu, những tiêu chuẩn mà một qui trình phải đáp ứng tùy theo mỗi mức độ PF không chỉ ra bất kỳ một qui trình cụ thể nào mà chỉ đưa
ra những yêu cầu ở mỗi mức độ trưởng thành khác nhau của qui trình phải đạt được.Có nhiều PF, nhưng phổ biến nhất là ISO và CMM/CMMI được các tổ chức thế giới công nhận
Ở chương 1 ta đã nghiên cứu một số mô hình phát triển phần mềm, tùy theo mô hình phát triển phần mềm các nhóm công việc được triển khai theo những cách khác nhau Để sản xuất cùng một sản phẩm phần mềm người ta
có thể dùng các mô hình khác nhau Tuy nhiên nói về các giai đoạn để phát triển phần mềm thì vẫn tương tự nhau, và chủ yếu có các giai đoạn sau:
1 Xác định yêu cầu phần mềm – Requirement Engineering
2 Phân tích hệ thống phần mềm – Analysis
3 Thiết kế chi tiết- Design
4 Thực hiện – Development
5 Kiểm thử phần mềm – Testing
6 Tích hợp triển khai- Interagtion Implementation
7 Bảo dưỡng phần mềm – Maintenance
Tuy ở mức rất khác nhau nhưng mỗi giai đoạn đều có ảnh hưởng đến chất lượng phần mềm Chất lượng của phần mềm phụ thuộc chủ yếu vào công tác tổ chức làm phần mềm – chính là vấn đề quản trị dự án, chứ không phụ thuộc nhiều vào kỹ năng lập trình
Có hai giai đoạn ảnh hưởng lớn nhất đến chất lượng phần mềm:
- Giai đoạn thiết kế Đây là giai đoạn quan trọng nhất Nếu mắc lỗi ở đây mà không phát hiện sớm thì chi phí khắc phục sau khi giao phần mềm có thể gấp vài chục lần nếu phát hiện sớm để sửa ngay Các lỗi ở đây gọi là error
- Giải đoạn coding (gồm lập trình và làm database), lỗi ở đây là lỗi lập trình và lỗi dữ liệu và gọi là bug – ít trầm trọng hơn error
- Giai đoạn thiết kế người ta phải tổ chức các hoạt động kiểm soát chất lượng chủ yếu bằng review và inspection
- Giai đoạn lập trình thì phải kiểm soát chất lượng bằng kiểm thử (testing) gồm kiểm thử từng phần -unit test, kiểm thử tích hợp – intergration
Trang 16test, kiểm thử hệ thống với nội dung đánh giá hiệu năng – system test và kiểm thử vận hành
– operational test chủ yếu là kiểm soát tương tác người máy có phù hợp không
Chính vì vậy để giảm thiểu tối đa các thiệt hại về kinh tế do lỗi của phần mềm gây ra, các doanh nghiệp đã vận dụng các tiêu chuẩn chất lượng vào quy trình phát triển phần mềm, và đó là những tiêu chuẩn nào? Chúng ta
sẽ nghiên cứu kỹ vào phần sau
2.2 ISO 9126
ISO-International Organization for Standardization: Là liên đoàn quốc
tế của các cơ quan tiêu chuẩn hoá quốc gia và là tổ chức tiêu chuẩn hoá lớn nhất của thế giới hiện nay ISO được thành lập năm 1946 tại Luân Đôn nhưng chính thức bắt đầu hoạt động từ 23/2/1947 ISO nhắm chung đến nhiều loại tổ chức cả sản xuất lẫn dịch vụ Các chuẩn ISO đóng góp cho sự phát triển, sản xuất và cung cấp sản phẩm và dịch vụ một cách hiệu quả, an toàn, tin cậy và
rõ ràng hơn Đối với phần mềm, ISO chỉ ra mức độ chất lượng yêu cầu tối thiểu mà một SEP phải đạt và việc cải tiến quy trình được thực hiện thông qua quy trình kiểm định
ISO 9126 là tiêu chuẩn quốc tế đánh giá phần mềm Trên thực tế mô hình chất lượng ISO 9126 được mô tả là một phương pháp phân loại và chia nhỏ những thuộc tính chất lượng, nhằm tạo nên những đại lượng đo đếm được dùng để kiểm định chất lượng của sản phẩm phần mềm
2.2.1 Phạm vi mô hình chất lượng ISO-9126
ISO-9126 mô tả một mô hình chất lượng sản phẩm phần mềm gồm hai phần:
Chất lượng trong và chất lượng ngoài
Chất lượng sử dụng
Phần thứ nhất của mô hình xác định 6 tiêu chí của chất lượng trong, 6
tiêu chí chất lượng ngoài; các tiêu chí này sau đó lại được chia nhỏ thành nhiều tiêu chí con Những tiêu chí này được bộc lộ ra ngoài khi phần mềm được coi như là một phần của hệ thống máy tính và là kết quả của các thuộc tính phần mềm bên trong
Phần thứ hai của mô hình mô tả 4 tiêu chí chất lượng sử dụng Chất
lượng sử dụng là hệ quả của 6 tiêu chí chất lượng sản phẩm phần mềm đối với người dùng
Các tiêu chí sản phẩm phần mềm này có thể áp dụng cho tất cả các loại phần mềm Những tiêu chí sản phẩm phần mềm tạo ra sự nhất quán đối với
Trang 17chất lượng sản phẩm phần mềm, đồng thời cung cấp một khung cho việc xác định các yêu cầu đối với chất lượng phần mềm
2.2.2 Tiêu chí chất lượng
Chất lượng sử dụng phải bao gồm các yêu cầu về chất lượng trong từng trường hợp sử dụng cụ thể Những yêu cầu này có thể được sử dụng khi xác định các chất lượng trong và ngoài, sử dụng các tiêu chí chất lượng sản phẩm phần mềm cùng các phép đánh giá tương ứng
Hình 2.1 Chất lượng trong vòng đời sản phẩm
Việc đánh giá sản phẩm phần mềm để thoả mãn các yêu cầu chất lượng
là một trong những quy trình trong vòng đời phát triển của phần mềm Chất lượng sản phẩm phần mềm cần được đánh giá bằng việc đo kiểm các thuộc tính bên trong (thường là các phương pháp đo tĩnh trên các sản phẩm trung gian), hoặc bằng cách đo kiểm các thuộc tính bên ngoài (thường là đo các đáp ứng của mã lệnh khi thực thi), hoặc bằng cách đo kiểm chất lượng các thuộc tính sử dụng Mục đích là để sản phẩm đáp ứng được những yêu cầu trong từng trường hợp sử dụng cụ thể
Các yêu cầu cho chất lượng sản phẩm phần mềm sẽ bao gồm các tiêu chuẩn đánh giá chất lượng bên trong, bên ngoài và chất lượng sử dụng, để đáp ứng yêu cầu của người sử dụng, người bảo dưỡng, tổ chức sử dụng, và người dùng cuối
2.2.3 Chất lượng sản phẩm và vòng đời
Quan niệm về chất lượng trong, chất lượng ngoài và chất lượng sử dụng thay đổi trong suốt vòng đời phần mềm Ví dụ, chất lượng được xác định là các yêu cầu chất lượng tại thời điểm bắt đầu vòng đời - hầu hết được xem xét dưới góc nhìn bên ngoài của người dùng và nó khác biệt so với chất lượng sản phẩm trung gian, như là chất lượng thiết kế - hầu hết được nhìn dưới góc độ bên trong của người phát triển
Vì thế, các yêu cầu chất lượng không thể hoàn toàn xác định trước khi bắt tay vào thiết kế Do đó, cần phải hiểu các nhu cầu thực sự của người sử dụng ở mức chi tiết nhất có thể được, và đưa chúng ra dưới dạng các yêu cầu
Trang 18Mục đích không phải là thu được chất lượng hoàn hảo mà là chất lượng đủ và cần thiết cho mỗi trường hợp sử dụng cụ thể, khi sản phẩm được phân phối và
sử dụng bởi người dùng
Hình 2.2 Chất lượng trong vòng đời phần mềm Các độ đo dùng cho yêu cầu chất lượng có thể chia làm nhiều loại, tuỳ theo các mức độ thoả mãn khác nhau cho các yêu cầu
Các nhu cầu về chất lượng của người sử dụng được xác định là các
yêu cầu chất lượng trong phép đo chất lượng sử dụng, phương pháp đo chất lượng ngoài, thậm chí cả phương pháp đo chất lượng trong Những yêu cầu này được xác định bằng phương pháp đo và sử dụng như chuẩn khi đánh giá sản phẩm Để có được một sản phẩm thoả mãn nhu cầu của người dùng đòi hỏi quá trình phát triển phần mềm phải liên tục và luôn luôn có những phản hồi từ phía họ
Những yêu cầu chất lượng bên ngoài xác định các mức yêu cầu đối
với chất lượng theo hướng nhìn từ bên ngoài Chúng bao gồm các yêu cầu xuất phát từ nhu cầu người dùng, gồm các yêu cầ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 trong xác định các mức chất lượng yêu cầu
theo hướng nhìn từ bên trong của sản phẩm Các yêu cầu chất lượng trong được sử dụng để xác định tiêu chí của các sản phẩm trung gian Các yêu cầu chất lượng trong có thể được coi là đích cho các kiểm tra tại các giai đoạn khác nhau trong quá trình phát triển Chúng cũng có thể được sử dụng để xác định các chiến lược phát triển, chuẩn để đánh giá, các kiểm tra trong quá trình phát triển
Trang 19Chất lượng trong là tổng hợp của tất cả các tiêu chí của sản phẩm
phần mềm theo cách nhìn từ bên trong Chất lượng trong được đo kiểm và đánh giá theo các yêu cầu chất lượng trong
Chất lượng ngoài ước lượng (dự đoán) là chất lượng mà ước lượng
hoặc dự đoán được của sản phẩm phần mềm tại cuối mỗi giai đoạn trong quá trình phát triển đối với mỗi tiêu chí chất lượng, dựa trên những hiểu biết về
chất lượng trong
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
theo cách nhìn từ bên ngoài Đó là chất lượng khi phần mềm hoạt động, thường được đo kiểm, ước lượng trong khi kiểm thử trong môi trường giả lập với dữ liệu giả lập, sử dụng phương pháp đo ngoài
Chất lượng sử dụng ước lượng (dự đoán) là chất lượng mà ước lượng
hay dự đoán được của sản phẩm phần mềm tại cuối mỗi giai đoạn phát triển đối với mỗi tiêu chí chất lượng sử dụng, dựa trên hiểu biết về chất lượng
trong và ngoài
Chất lượng sử dụng là cách nhìn của người dùng về chất lượng của
sản phẩm phần mềm khi nó được sử dụng trong một môi trường và hoàn cảnh
cụ thể Nó xác định phạm vi mà người sử dụng có thể đạt được mục đích của mình trong một môi trường cụ thể, hơn là xác định các tiêu chí của bản thân
phần mềm
2.2.4 Tiêu chí đánh giá sản phẩm phần mềm
2.2.4.1 Mô hình chất lượng trong và mô hình chất lượng ngoài
Mô hình chất lượng ISO-9126 trên thực tế được mô tả là một phương pháp phân loại và chia nhỏ những thuộc tính chất lượng, nhằm tạo nên những đại lượng đo đếm được dùng để kiểm định chất lượng của sản phẩm phần mềm Mô hình chất lượng trong và chất lượng ngoài của sản phẩm trong ISO-
9126 thể hiện trên hình 2.3
CHẤT LƯỢNG (nội bộ và hướng ngoại)
Tính hoàn thiện Khả năng sửa lỗi Khẳ năng phục hồi
Tính dễ hiểu Tính dễ học Khẳ nưng điều khiển Tính hấp dẫn
Tiết kiệm thời gian Tiết kiệm tài nguyên
Khả năng phân tích Khả năng thay đổi Tính cân bằng Khẳ năng kiểm định
Hình 2.3 Mô hình chất lượng cho chất lượng trong và ngoài
Tính chức năng
Trang 20Khả năng của phần mềm cung cấp các chức năng đáp ứng được nhu cầu sử dụng khi phần mềm làm việc trong điều kiện cụ thể
Tính phù hợp: là khả năng của một phần mềm có thể cung cấp
một tập các chức năng thích hợp cho công việc cụ thể phục vụ mục đích của người sử dụng
Tính chính xác: là khả năng của phần mềm có thể cung cấp các
kết quả hay hiệu quả đúng đắn hoặc chấp nhận được với độ chính xác cần thiết
Khả năng hợp tác làm việc: khả năng tương tác với một hoặc
một vài hệ thống cụ thể của phần mềm
Tính an toàn: khả năng bảo vệ thông tin và dữ liệu của sản phẩm
phần mềm, 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
Có các chức năng chung: các phần mềm theo các chuẩn, quy
ước, quy định
Tính tin cậy
Là khả năng của phần mềm có thể hoạt động ổn định trong những điều kiện cụ thể
Tính đúng đắn: khả năng tránh các kết quả sai
Khả năng chịu lỗi: khả năng của phần mềm hoạt động ổn định
tại một mức độ cả trong trường hợp có lỗi xảy ra ở phần mềm hoặc có những vi phạm trong giao diện
Khả năng phục hồi: khả năng của phần mềm có thể tái thiết lại
hoạt động tại một mức xác định và khôi phục lại những dữ liệu có liên quan trực tiếp đến lỗi
Tính tin cậy chung: phần mềm thoả mãn các chuẩn, quy ước,
quy định
Tính khả dụng
Là khả năng của phần mềm có thể hiểu được, học được, sử dụng được
và hấp dẫn người sử dụng trong từng trường hợp sử dụng cụ thể
Có thể hiểu được: người dùng có thể hiểu được xem phần mềm
có hợp với họ không và và sử dụng chúng thế nào cho những công việc cụ thể
Có thể học được: người sử dụng có thể học các ứng dụng của
phần mềm
Có thể sử dụng được: khả năng của phần mềm cho phép người
dùng sử dụng và điều khiển nó
Trang 21 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 chung: phần mềm thoả mãn các chuẩn, quy ước, quy định
Tính hiệu quả
Khả năng của phần mềm có thể hoạt động một cách hợp lý, tương ứng với lượng tài nguyên nó sử dụng, trong điều kiện cụ thể
Đáp ứng thời gian: khả năng của phần mềm có thể đưa ra một
trả lời, một thời gian xử lý và một tốc độ thông lượng hợp lý khi
nó thực hiện công việc của mình, dưới một điều kiện làm việc xác định
Tận dụng tài nguyên: khả năng của phần mềm có thể sử dụng
một lượng, một loại tài 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ả chung: thoả mãn các chuẩn, quy ước, quy định Khả năng bảo hành, bảo trì
Khả năng của phần mềm có thể chỉnh sửa Việc chỉnh sửa bao gồm: sửa lại cho đúng, cải tiến và làm phần mềm thích nghi được với những thay đổi của môi trường, của yêu cầu và của chức năng xác định
Có thể phân tích được: phần mềm có thể được chẩn đoán để tìm
những thiếu sót hay những nguyên nhân gây lỗi hoặc để xác định những phần cần sửa
Có thể thay đổi được: phần mềm có thể chấp nhận một số thay
đổi cụ thể trong quá trình triển khai
Tính bền vững: khả năng tránh những tác động không mong
muốn khi chỉnh sửa phần mềm
Có thể kiểm tra được: khả năng cho phép đánh giá được phần
Khả năng thích nghi: khả năng của phần mềm có thể thích nghi
với nhiều môi trường khác nhau mà không cần phải thay đổi
Có thể cài đặt được: phần mềm có thể cài đặt được trên những
môi trường cụ thể
Trang 22 Khả năng cùng tồn tại: phần mềm có thể cùng tồn tại với những
phần mềm độc lập khác trong một môi trường chung, cùng chia
sẻ những tài nguyên chung
Khả năng thay thế: phần mềm có thể dùng thay thế cho một
phần mềm khác, với cùng mục đích và trong cùng môi trường
Tính khả chuyển chung: thoả mãn các chuẩn, quy ước, quy định
Tính hiệu quả: khả năng của phần mềm 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 của phần mềm cho phép người dùng
sử dụng lượng tài nguyên hợp lý tương đối để thu được hiệu quả công việc trong những hoàn cảnh cụ thể
Tính an toàn: phần mềm có thể đá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: phần mềm có khả năng làm thoả mãn người sử
dụng trong từng điều kiện cụ thể
2.5 ISO 9001
2.5.1 Tổng quan ISO 9001
ISO 9000 là một bộ tiêu chuẩn về hệ thống quản lý chất lượng, được ban hành chính thức năm 1987 Bộ Tiêu chuẩn ISO 9000 qui tụ kinh nghiệm của Quốc tế trong lĩnh vực quản lý và đảm bảo chất lượng trên cơ sở phân
Trang 23tích các quan hệ giữa người mua và người cung cấp (nhà sản xuất) ISO 9000 đưa ra các chuẩn mực cho một hệ thống chất lượng và hướng dẫn các tổ chức cũng như các doanh nghiệp xây dựng một mô hình quản lý thích hợp và văn bản hoá các yếu tố của hệ thống chất lượng theo mô hình đã chọn
ISO 9001 là 1 tiêu chuẩn trong loạt tiêu chuẩn ISO 9000 mà liên quan đến phát triển phần mềm,cung cấp và bảo trì phần mềm bằng cách gợi ý các phương pháp và kiểm soát thích hợp phục vụ cho mục đích này Các yêu cầu được ISO 9001 phác họa như là trách nhiệm quản lý, hệ thống chất lượng, xem xét lại hợp đồng, giám sát thiết kế, tài liệu và dữ liệu, định danh sản phẩm và khả năng theo dõi, quản lý quá trình, kiểm tra và kiểm thử, sửa lỗi và các hành động ngăn ngừa, quản lý các hồ sơ chất lượng, sổ sách chất lượng bên trong, huấn luyện, làm dịch vụ, và các kỹ thuật thống kê
2.5.2 Mô hình hệ thống quản lý chất lượng
Hệ thống quản lý chất lượng theo tiêu chuẩn ISO 9001 bao gồm 5 yếu
tố quan trọng và được sử dụng trong suốt quy trình phát triển phần mềm và được trình bày ở dạng mô hình của một hệ thống quản lý chất lượng dựa trên tiếp cận theo quá trình (Đầu vào → Qúa trình → Đầu ra) Hình vẽ dưới đây minh hoạ tổng quát mô hình quản lý chất lượng theo ISO 9001: 2000 với phương pháp tiếp cận quá trình Trong đó khách hàng đóng vai trò quan trọng trong việc xác định yêu cầu đầu vào và theo dõi sự thoả mãn của khách hàng
là cần thiết để đánh giá và xác nhận các yêu cầu của khách hàng có được đáp ứng hay không
Hình 2.5 Mô hình hệ thống quản lý chất lượng dựa trên quá trình
2.5.2.1 Hệ thống quản lý chất lượng
Trang 24Phần này nêu chi tiết các yêu cầu chung và yêu cầu của hệ thống tài liệu để làm nền tảng của hệ thống quản lý chất lượng Các yêu cầu chung đòi hỏi phải nhìn vào các quá trình của hệ thống quản lý, cách thức chúng tác động lẫn nhau, cần nguồn lực gì để vận hành các quá trình đó và đo lường và theo dõi, phân tích và cải tiến chúng như thế nào
Ngoài ra, phần này cũng ấn định các yêu cầu về hệ thống văn bản cần thiết cho việc điều hành có hiệu lực hệ thống và cách kiểm soát tài liệu và hồ
sơ
2.5.2.2 Trách nhiệm của lãnh đạo Lãnh đạo cao nhất phải xác định chính sách chất lượng và để đạt chính sách này phải xác định các mục tiêu chất lượng đồng thời việc hoạch định các biện pháp cần tiến hành để đạt được mục tiêu đó
Lãnh đạo cao nhất phải đảm bảo có sự trao đổi thông tin nội bộ rõ ràng
về hiệu lực của HTQLCL và xem xét định kỳ hệ thống này để đảm bảo nó luôn thích hợp và có hiệu lực
Cam kết của lãnh đạo
- Truyền đạt trong tổ chức về vấn đề thoả mãn khách hàng, đáp ứng các yêu cầu chế định;
- Thiết lập chính sách, mục tiêu chất lượng, đảm bảo các mục tiêu chất lượng được thiết lập, truyền bá và thấu hiểu trong tổ chức;
- Xem xét của lãnh đạo về HTQLCL;
- Thích hợp với mục tiêu của tổ chức;
- Được truyền đạt và thấu hiểu tại mọi cấp;
- Được xem xét định kỳ để luôn thích hợp
- Nhất quán với chính sách chất lượng;
Đầu vào của việc xem xét
- Thông tin về: kết quả đánh giá, phản hồi của khách hàng, kết quả quá trình, sự phù hợp của sản phẩm, tình trạng của các hành động khắc phục và phòng ngừa, theo dõi việc thực hiện các quyết định từ lần xem xét trước, các thay đổi, khuyến nghị cải tiến
Trang 25 Đầu ra của việc xem xét
- Các quyết định và hành động liên quan đến việc cải tiến HTQLCL, các quá trình, sản phẩm, và nguồn lực cần thiết
2.5.2.3 Quản lý nguồn lực Phần này quy định các nguồn nhân lực và cơ sở vật chất cần thiết để thực hiện quá trình Nhân viên cần có năng lực để thực hiện các công việc được giao và có cơ sở hạ tầng, môi trường làm việc cần thiết nhằm tạo khả năng đảm bảo các yêu cầu của khách hàng đều được đáp ứng Bao gồm:
Cung cấp nguồn lực
- Chỉ định nhân viên có năng lực trên cơ sở giáo dục, đào tạo, kỹ năng, kinh nghiệm
- Xác định các yêu cầu về năng lực ;
- Tiến hành đào tạo hay thực hiện các hoạt động khác, sau đó đánh giá hiệu lực ;
- Đảm bảo người lao động có nhận thức phù hợp về tầm quan trọng của công việc mà họ đảm trách và mức độ đóng góp đến thành tựu chung ;
2.5.2.4 Tạo sản phẩm / dịch vụ
Tổ chức phải lập kế hoạch và triển khai các quá trình cần thiết đối với việc tạo sản phẩm Hoạch định việc tạo sản phẩm phải nhất quán với các yêu cầu của các quá trình khác của hệ thống quản lý chất lượng
Hoạch định việc tạo thành sản phẩm/dịch vụ gồm:
- Mục tiêu chất lượng và các yêu cầu đối với sản phẩm
- Quá trình, nguồn lực, tài liệu cần thiết;
- Kiểm tra xác nhận, xác nhận giá trị sử dụng, giám sát, kiểm tra, chuẩn mực chấp nhận cho sản phẩm;
Các quá trình liên quan đến khách hàng
- Bao gồm cả yêu cầu về giao hàng và hoạt động sau giao hàng ;
- Yêu cầu cần thiết cho việc sử dụng ;
- Các yêu cầu chế định
+ Xem xét các yêu cầu liên quan đến sản phẩm
- Xem xét các yêu cầu trước khi cam kết cung cấp sản phẩm ;
- Các yêu cầu được xác định và giải quyết khi có sự khác biệt giữa các lần ghi nhận ;
- Đảm bảo khả năng đáp ứng các yêu cầu ;
- Khẳng định lại các yêu cầu không qua văn bản ;
Trang 26- Cập nhật các thay đổi trong văn bản liên quan và thông báo trong tổ chức
Trao đổi thông tin với khách hàng
- Thiết lập kênh trao đổi thông tin với khách hàng trong các giai đoạn khác nhau
Thiết kế và phát triển
- Xác định các giai đoạn của thiết kế và phát triển phần mềm;
- Xem xét, kiểm tra xác nhận, và xác nhận giá trị sử dụng tại các giai đoạn thích hợp;
- Cập nhật kết quả hoạch định
Xem xét thiết kế và phát triển
- Đánh giá khả năng đáp ứng yêu cầu;
- Nhận biết vấn đề và theo dõi sử lý;
2.5.2.5 Yêu cầu về Đo lường, phân tích và cải tiến Đây là công việc đo lường, đánh giá để có thể theo dõi và phân tích nhằm cung cấp thông tin về các hệ thống đó được vận hành như thế nào để giải quyết các yêu cầu của tổ chức qua việc đánh giá nội bộ, các quá trình và sản phẩm Bao gồm các yêu cầu sau:
Sử dụng các phương pháp thích hợp (bao gồm cả kỹ thuật thống kê) để giám sát, đo lường, phân tích và cải tiến quá trình, sự phù hợp của sản phẩm, hiệu lực của HTQLCL
Giám sát và đo lường
- Cơ chế thu thập, giám sát và sử dụng thông tin liên quan đến nhận thức và mức độ hài lòng của khách hàng
- Đo lường đặc tính của sản phẩm tại các giai đoạn thích hợp trong suốt quá trình;
Kiểm soát sản phẩm không phù hợp
- Nhận biết và kiểm soát sự không phù hợp được phát hiện;
- Kiểm tra xác nhận lại các sản phẩm sau khi đã được khắc phục;
- Trường hợp sản phẩm không phù hợp được phát hiện sau khi đã chuyển giao, thực hiện các hành động tương xứng với hậu quả, hậu quả tiềm ẩn gây ra bởi sự không phù hợp
Cải tiến
+ Cải tiến thường xuyên
- Cải tiến hiệu lực của HTQLCL thông qua việc sử dụng chính sách chất lượng, mục tiêu, kết quả đánh giá, hành động khắc phục và phòng ngừa, xem xét của lãnh đạo
Trang 27- Xác định sự không phù hợp tiềm ẩn và các nguyên nhân;
- Hành động để loại bỏ sự không phù hợp tiềm ẩn;
- Lập hồ sơ kết quả hành động;
2.5.3 Các tiêu chuẩn chất lượng của ISO 9001
ISO 9001 là chuẩn bảo đảm chất lượng được áp dụng vào kỹ nghệ phần mềm Chuẩn ISO 9001 có 20 yêu cầu cần phải có cho hệ thống bảo đảm chất lượng hiệu quả và nó được sử dụng trong suốt quá trình phát triển phần mềm Các tiêu chuẩn đó là:
2.5.3.1 Trách nhiệm quản lý Việc quản lý hệ thống quản lý chất lượng (HTQLCL) là trách nhiệm của “lãnh đạo cao nhất” Lãnh đạo cao nhất phải nhận biết các yêu cầu của khách hàng khi hoạch định chiến lược và cam kết đáp ứng các yêu cầu này đúng pháp luật và chức trách giải quyết công việc
Lãnh đạo cao nhất với trách nhiệm điều hành có các nhiệm vụ dưới đây:
- Thể hiện mục tiêu và cam kết đối với chất lượng
- Phản ánh mong đợi và nhu cầu của khách hàng
- Được mọi thành viên thông hiểu, thực hiện
- Xác định trách nhiệm, quyền hạn, và mối quan hệ của từng cá nhân thực hiện những công việc có ảnh hưởng đến chất lượng
- Nhận biết, lập kế hoạch và cung cấp các nguồn lực cần thiết
- Có đại diện lãnh đạo về chất lượng để đảm bảo hệ thống chất lượng
hệ thống được duy trì và cải tiến
- Xem xét định kỳ hệ thống chất lượng để đảm bảo có hiệu quả, hiệu lực, đáp ứng các yêu cầu của tiêu chuẩn
2.5.3.2 yêu cầu hệ thống chất lượng
- Xây dựng kế hoạch chất lượng cho sản phẩm, quy trình, dự án, và hợp
Trang 282.5.3.3 Xem xét hợp đồng Trước khi chấp nhận hợp đồng hay đơn đặt hàng, công ty phải đảm bảo
đã xem xét các yêu cầu của khách hàng cũng như xem xét khả năng đáp ứng của công ty Cụ thể phải có qui định về:
- Các tài liệu và thủ tục phối hợp việc xem xét các hợp đồng phát triển phần mềm
- Chất lượng cúa sản phẩm phải đáp ứng được đúng yêu cầu của khách hàng, các vấn đề về bảo trì, bảo dưỡng phần mềm sẽ được xử lý
- Đảm bảo rằng dự án khả thi
Các quyền hợp pháp của những người khác sẽ được tôn trọng
Các khách hàng có thể đáp ứng tất cả các nghĩa vụ theo hợp đồng
Xác định các thủ tục phát triển phần mềm, các tài nguyên khi cần thiết
Làm rõ mức độ trách nhiệm của tổ chức cho các nhà thầu phụ 2.5.3.4 Kiểm soát khâu thiết kế
Kiểm soát thiết kế là để các kết quả thiết kế, trong từng giai đoạn và cuối cùng, đáp ứng được yêu cầu của khách hàng và phù hợp với năng lực của công ty Kiểm soát thiết kế bao gồm:
Các tài liệu và thủ tục để kiểm soát việc thiết kế sản phẩm và quá trình phát triển Các thủ tục này phải đảm bảo rằng tất cả các yêu cầu được đáp ứng thoả mãn nhu cầu của khách hàng
Xây dựng kế hoạch phát triển phần mềm
Xác định các nhóm người cần được thường xuyên tham gia vào việc thiết kế sản phẩm và quá trình phát triển, và đảm bảo rằng các đầu vào thiết kế của mình là đúng tài liệu, lưu thông, và xem xét lại
Các thủ tục ghi rõ cách đánh giá sản phẩm thiết kế cần lập kế hoạch và thực hiện
Các thủ tục ghi rõ kết quả đầu ra thiết kế như thế nào, ở mọi giai đoạn của thiết kế sản phẩm và quá trình phát triển, cần được xác nhận
Các thủ tục để kiểm soát các thay đổi thiết kế phần mềm có thể xảy ra trong vòng đời của sản phẩm
2.5.3.5 Quản lý hồ sơ, dữ liệu
Mục đích của kiểm soát tài liệu là để cung cấp đúng tài liệu cho người cần có Thủ tục kiểm soát tài liệu bao gồm các qui định về:
Các thủ tục để xem xét, phê duyệt, và quản lý tất cả các tài liệu hệ thống chất lượng và dữ liệu
Phát triển các thủ tục để kiểm soát các thay đổi cho tài liệu và dữ liệu
Trang 292.5.3.6 Mua hàng Với yêu cầu này công ty phải đánh giá người cung ứng, bao gồm:
Các thủ tục để đảm bảo rằng các sản phẩm đáp ứng mọi yêu cầu Các
thủ tục này nên kiểm soát việc lựa chọn nhà thầu phụ, việc sử dụng dữ
2.5.3.7 Quản lý sản phẩm cung cấp cho khách hàng
Phát triển các thủ tục để kiểm soát các sản phẩm mà tổ chức cung cấp cho khách hàng Các thủ tục này phải đảm bảo rằng:
Các sản phẩm không bị mất mát hay thiệt hại
Ngăn ngừa mất sản phẩm, sử dụng sai, thiệt hại, hoặc xấu đi qua lưu trữ phù hợp và an ninh
Làm rõ những người có trách nhiệm bảo trì và kiểm soát sản phẩm trong quá trình vận hành
Kiểm soát các sản phẩm, dịch vụ, tài liệu, và dữ liệu được cung cấp bởi khách hàng
2.5.3.8 Xác định và theo dõi nguồn sản phẩm
Mục đích để tránh nhầm lẫn và truy cứu nguồn gốc khi cần Công ty cần có qui định về:
- Phát triển các thủ tục để theo dõi các sản phẩm phần mềm và các thành phần của nó Có thể theo dõi phần mềm trong suốt vòng đời của nó
- Sử dụng phương pháp quản lý để xác định và theo dõi các sản phẩm phần mềm và các thành phần của nó
2.5.3.9 Quản lý qui trình
Đây là yếu tố cơ bản của hoạt động kiểm soát chất lượng trong hệ thống quản lý chất lượng Mọi hoạt động ảnh hưởng đến chất lượng sản phẩm phải được lập kế hoạch, kiểm soát bằng những dụng cụ, phương tiện thích hợp Các phương pháp tốt nhất để tiến hành các quá trình sản xuất, lắp đặt và dịch vụ sau khi bán cần được lập thành văn bản dưới dạng các qui trình hướng dẫn nếu điều đó là cần thiết Nội dung kiểm soát bao gồm:
- Kiểm soát quá trình sao chép phần mềm
- Kiểm soát quá trình phát hành phần mềm
- Kiểm soát quá trình cài đặt phần mềm
Trang 30- Cách thức kiểm soát các quá trình, chú trọng các quá trình đặc biết là các quá trình mà những ai sai sót chỉ có thể nhận biết được khi đã đưa ra sản phẩm vào sử dụng
2.5.3.10 Kiểm tra và kiểm thử
Kiểm tra và kiểm thử xác minh sự kết hợp đúng đắn của các yêu cầu về
an toàn đối với phần mềm Chỉ ra rằng có thể loại trừ các mối nguy hiểm, hoặc có thể điều khiển ở một mức độ rủi ro thấp Mục đích để xác nhận mọi yêu cầu đối với sản phẩm, từ nguyên vật liệu, bán thành phẩm đến thành phẩm đều được đáp ứng Các phương pháp kiểm tra và thử nghiệm được sử dụng và hồ sơ cần thiết phải theo các thủ tục/kế hoạch chất lượng Nội dung kiểm tra, kiểm thử bao gồm:
- Tiến hành kiểm tra và thử nghiệm cuối cùng để đảm bảo rằng sản phẩm đã thỏa mãn các yêu cầu đã qui định và mọi kiểm tra và thử nghiệm trước đó đều được tiến hành theo kế hoạch chất lượng thủ tục
- Thực hiện các xét nghiệm xác nhận phần mềm và phần mềm thử nghiệm là chấp nhận được
- Nếu sản phẩm không đạt yêu cầu thì xử lý theo qui định về kiểm soát sản phẩm không phù hợp
2.5.3.11 Quản lý công tác giám sát, đo lường và kiểm tra thiết bị
Mục đích để sử dụng công cụ, kỹ thuật và trang thiết bị để kiểm tra xem sản phẩm phần mềm có đáp ứng các yêu cầu quy định
2.5.3.12 Điều kiện kiểm tra và thử nghiệm
Mục đích để nhận biết nhanh chóng được các sản phẩm phần mềm có thể chuyển sang giai đoạn tiếp theo hay gửi đi Công ty phải:
- Có cách thức và phương tiện thích hợp chỉ rõ tính phù hợp/ không phù hợp của sản phẩm phần mềm
- Lưu giữ dấu hiệu nhận biết về trạng thái kiểm tra và thử nghiệm của sản phẩm
2.5.3.13 Kiểm soát sản phẩm không đạt tiêu chuẩn
Mục đích để đảm bảo sản phẩm không phù hợp sẽ được khắc phục, sửa lỗi để đáp ứng đúng với yêu cầu đã được đặc tả Nội dung kiểm soát bao gồm: phát hiện, ghi nhận hồ sơ, đánh giá, phân loại, phân công trách nhiệm và phân quyền xử lý, thông báo
2.5.3.14 Công tác hiệu chỉnh và phòng ngừa
Mục đích để những sai sót không lập lại (hành động khắc phục) và nhăn ngừa các sai sót có thể (hành động phòng ngừa)
2.5.3.15 Quản lý lưu trữ, đóng gói, bảo quản và giao hàng
Trang 31Mục đích để đảm bảo sản phẩm phần mềm sau khi được chế tạo ra được duy trì chất lượng cho đến tay khách hàng
2.5.3.16 Quản lý hồ sơ theo dõi chất lượng
Mục đích để chứng minh các hoạt động của hệ thống chất lượng đã được thực hiện Nội dung kiểm soát bao gồm:
Xác định các thông tin về chất lượng
Phát triển một hệ thống lưu giữ hồ sơ chất lượng, và phát triển các thủ tục để duy trì và kiểm soát nó
Phần mềm có hồ sơ chất lượng chứng minh rằng hoạt động chất lượng
đã được thực hiện và chất lượng kết quả đã đạt được
2.5.3.17 Đánh giá chất lượng nội bộ
Mục đích để đảm bảo mọi qui định trong văn bản được áp dụng trên cơ
sở đó để duy trì và cải tiến hệ thống chất lượng Khi đánh giá chất lượng nội
bộ cần tuân thủ các yêu cầu sau:
- Lập tiến độ dựa trên tình trạng và tầm quan trọng của hành động
- Người đánh giá phải độc lập với hoạt động được đánh giá
- Ghi nhận kết quả đánh giá và thông báo cho các bộ phận có liên quan
- Cán bộ có trách nhiệm tiến hành hoạt động khắc phục kịp thời
- Theo dõi tiếp theo đế xác nhận các hành động đã thực hiện, có hiệu lực và đạt hiệu quả
- Lưu trữ hồ sơ đánh giá về việc theo dõi tiếp theo
- Trình kết quả đánh giá tới cuộc họp xem xét của lãnh đạo
2.5.3.18 Đào tạo tập huấn Mục đích để nhân viên có đủ trình độ và kỹ năng cần thiết Nội dung đào tạo bao gồm:
- Phát triển quy trình đào tạo chất lượng
- Xác định việc đào tạo sẽ được cần thiết để phát triển sản phẩm phần mềm và quản lý dự án phát triển phần mềm
2.5.3.19 Dịch vụ bảo trì
Dịch vụ kỹ thuật sau bán hàng có trong yêu cầu hợp đồng hay là cần thiết đối với dạng sản phẩm nào đó thì công ty phải có thủ tục thực hiện, xác nhận và báo cáo Bao gồm các thủ tục:
Phát triển các thủ tục để kiểm soát quá trình bảo trì phần mềm
Xây dựng kế hoạch để kiểm soát các dự án bảo trì phần mềm
Lưu giữ hồ sơ về các hoạt động bảo trì phần mềm
2.5.3.20 Kỹ thuật thống kê
Trang 32Doanh nghiệp phải xác định những công việc cần sử dụng các kỹ thuật thống kê như phương pháp lấy mẫu, biểu đồ kiểm soát và các thủ tục thực hiện và kiểm soát việc sử dụng các kỹ thuật đó
2.6 Tiêu chuẩn CMM
Tiêu chuẩn CMM dành cho phần mềm được đưa ra bởi viện Công nghệ phần mềm (Software Engineering Institute-SEI) liên kết với trường Đại học tổng hợp Carnegie Mellon Mô hình này mô tả các nguyên tắc về phát triển và cải tiến quy trình phần mềm đi từ tự phát, hỗn độn đến các quá trình phần mềm thuần thục, có quy tắc chặt chẽ Bằng việc thực hiện CMM, các tiến trình xây dựng phần mềm luôn phát triển theo đúng kế hoạch đã vạch ra từ trước nên các công ty đã thu được những lợi ích xác thực, giảm rủi ro trong phát triển phần mềm Bên cạnh đó, nó là mục tiêu để các công ty phần mềm lựa chọn chiến lược phát triển, hướng đến quy trình sản xuất chất lượng cao
Mô hình CMM bao gồm 5 mức thuần thục Ngoại trừ mức 1 thì các mức còn lại có nhiều nhóm công việc chính cần làm trong qui trình (thường gọi là các KPA, sẽ được trình bày trong các phần sau) Nó được dùng để đánh giá sự phát triển về quy trình công nghệ cho các sản phẩm phần mềm làm ra Mỗi mức cung cấp cho nhà sản xuất các quy tắc chuẩn mực cho việc áp dụng vào quản lý quy trình Mỗi mức đánh dấu một bước phát triển ổn định cho sản phẩm phần mềm làm ra
2.6.1 Mức 1_ Mức khởi tạo (Initial)
Ở mức này không có bất kỳ một KPA nào vì không có một yêu cầu nào được đặt ra để buộc những người phát triển phải tuân theo Đây là giai đoạn
mà những nhà sản xuất chưa hề có bất kỳ một kinh nghiệm nào để đánh giá về sản phẩm sẽ làm ra Phát triển tuỳ tiện, không xác định quy trình, thành công phụ thuộc vào các cá nhân
2.6.2 Mức 2_ Mức lặp (Repeatable)
Mức này có 6 KPA chủ yếu tập trung vào những vấn đề liên quan đến thiết lập kiểm soát cơ bản cho việc quản trị dự án Việc thực hiện quy trình thông qua các tài liệu đi kèm và một kế hoạch đã được lập từ trước
* Quản lý yêu cầu
Mục đích của KPA chỉ ra các tính năng cần thiêt cho sản phẩm phần mềm Quản lý yêu cầu bao gồm việc thiết lập và duy trì những thoả thuận với khách hàng về những yêu cầu cho dự án phần mềm
Để đạt tới tiêu chuẩn này thì nhóm công nghệ phần mềm phải bao quát lại những yêu cầu hệ thống ban đầu đặt ra cho phần mềm để quyết định các vấn
đề trước khi chúng được hợp nhất trong dự án phần mềm Bất cứ lúc nào những yêu cầu hệ thống cho phần mềm bị thay đổi thì những kế hoạch phần
Trang 33mềm chưa chính xác, những work product và các hoạt động sẽ được điều chỉnh để giữ vững sự nhất quán với những yêu cầu mới
- Ước lượng kích thước của dự án, chi phí và các tài nguyên
- Thiết lập kế hoạch cho dự án và các tiến trình, xác định các rủi ro
* Theo dõi và kiểm soát dự án phần mềm
Mục đích của KPA này nhằm cung cấp đủ các thông tin về tiến trình phát triển thực tế để các cán bộ quản lý có thể đưa ra những hành động hiệu quả khi thực hiện dự án phần mềm có chệch hướng đáng kể so với kế hoạch ban đầu
Theo dõi và kiểm soát dự án phần mềm bao gồm việc theo dõi và xem xét những kết quả và công việc đã hoàn thành so với các ước tính, dự kiến, các cam kết, các kế hoạch đã có và điều chỉnh các kế hoạch này theo các kết quả thực hiện thực tế
* Đảm bảo chất lượng phần mềm
Mục đích của KPA này nhằm cung cấp cho công tác quản lý các thông tin, hoạt động về quy trình đang được sử dụng trong dự án phần mềm và về các sản phẩm đang được xây dựng Kiểm tra sự tuân thủ của các sản phẩm và hoạt động so với yêu cầu
Đảm bảo chất lượng phần mềm bao gồm việc xem xét và kiểm tra các sản phẩm và các hoạt động phần mềm để xác định xem chúng có tuân theo những tiêu chuẩn và thủ tục phù hợp không, ngoài ra còn thông tin lại cho dự
án phần mềm và các cán bộ quản lý các kết quả xem xét và kiểm tra này Nhóm quản lý chất lượng phần mềm xem xét lại các hoạt động dự án
và kiểm tra các work product phần mềm trong toàn bộ vòng đời phần mềm và cung cấp cho các cán bộ quản lý thông tin về việc dự án có nghiêm túc thực hiện những kế hoạch, những tiêu chuẩn và những thủ tục đã được đặt ra không
Các yêu cầu dự án có thể đáp ứng được ưu tiên thực hiện trước Đối với các vấn đề phức tạp chưa giải quyết được, nhóm QA cần phải phân loại các vấn đề đó theo một mức quản lý thích hợp để tìm cách giải quyết
Các mục tiêu
Các hoạt động quản lý chất lượng phần mềm phải được lên kế hoạch
Trang 34 Phải có sự kiểm tra khách quan về sự tuân thủ quy trình của các sản phẩm phần mềm và các hoạt động phần mềm theo các tiêu chuẩn, các thủ tục
cao giải quyết
Các cam kết phải thực hiện
Dự án phải tuân theo các cơ chế của tổ chức đã được quy định trong
việc đảm bảo chất lượng phần mềm
Các thành viên của dự án phần mềm phải tiếp nhận sự định hướng về
vai trò, trách nhiệm, quyền hạn và giá trị của nhóm QA
Các hoạt động phải thực hiện
Phải chuẩn bị một kế hoạch đảm bảo chất lượng cho mỗi dự án phần mềm theo một quy trình hoặc thủ tục QA đã được quy định
Các hoạt động của nhóm QA được thực hiện dựa theo kế hoạch QA
Nhóm QA tham gia vào việc chuẩn bị và xem xét dự án phát triển phần mềm, các tiêu chuẩn và các thủ tục của dự án
Nhóm QA xem xét lại các hoạt động công nghệ phần mềm để xác nhận tính đúng đắn
Nhóm QA kiểm tra các work product phần mềm đã thiết kế để xác nhận tính đúng đắn
Nhóm QA phải báo cáo định kỳ các kết qủa các hoạt động QA cho nhóm công nghệ phần mềm
Các sai lệch tìm thấy trong các hoạt động phần mềm và trong các work product phần mềm phải được viết thành văn bản và được xử lý theo thủ tục
đã được quy định trước đó
Nhóm SQA thực hiện định kỳ việc xem xét các hoạt động của nhóm
mình nếu có thể nên tham khảo thêm ý kiến của cán bộ SQA của khách hàng
Trang 35Các phân tích và phép đo
Phải thiết lập và sử dụng các phương thức đo đếm để xác định chi phí
và kế hoạch làm việc của các hoạt động QA
Kiểm tra quá trình thực thi
Theo định kỳ, cán bộ quản lý cấp cao phải kiểm tra các hoạt động của
xem xét các nhiệm vụ SCM chính và các khái niệm quan trọng giúp ta quản lý sự thay đổi
* Quản lý hợp đồng phụ
Mục tiêu của KPA này nhằm chọn lựa các thành viên gia công phần mềm (gọi là nhà thầu phụ) đủ điều kiện và quản lý họ một cách hiệu quả nhằm đảm bảo tiến trình sản xuất phần mềm đạt chất lượng
Quản lý hợp đồng phụ bao gồm việc lựa chọn một nhà thầu phụ, thiết lập những cam kết với họ, đồng thời theo dõi, kiểm tra quá trình thực hiện của họ
và kết quả mạng lại Những công việc này bao quát quá trình quản lý một hợp đồng phần mềm phụ cũng như các thành phần của hợp đồng phụ bao gồm phần mềm, phần cứng và các thành phần hệ thống khác một cách hiệu quả
2.6.3 Mức 3_ Mức xác định (Defined)
Quá trình quản trị và quá trình thực hiện phần mềm được chuẩn hoá, ghi thành văn bản và tích hợp chặt chẽ vào quá trình làm phần mềm có thể áp dụng cho một tổ chức lớn Nó bao gồm các tiến trình then chốt:
* Trọng tâm của qui trình tổ chức
Mục đích của KPA này là thiết lập trách nhiệm của tổ chức đối với các hoạt động của qui trình phần mềm nhằm nâng cao khả năng tổ chức trong toàn bộ các vấn đề Nó bao gồm quá trình phát triển và duy trì sự am hiểu về qui trình tổ chức và các dự án phần mềm, phối hợp các hoạt động với nhau nhằm đánh giá, phát triển bảo trì và nâng cao qui trình này
* Xác định qui trình tổ chức
Trang 36Mục đích việc xác định qui trình của tổ chức nhằm phát triển và duy trì một tập tài nguyên của qui trình phần mềm có thể sử dụng để nâng cao hiệu năng của qui trình phần mềm thông qua các dự án, đồng thời cung cấp nền tảng cơ bản cho việc tích lũy và đưa ra những lợi ích lâu dài của tổ chức
* Chương trình đào tạo
Mục đích của KPA này là phát triển các kỹ năng và kiến thức của từng
cá nhân để họ có thể thực hiện tốt vai trò của mình một cách tích cực và hiệu quả
* Quản trị phần mềm tích hợp
Mục đích của KPA này nhằm tích hợp công nghệ phần mềm và các hoạt động quản trị một cách mạch lạc và chặt chẽ, định nghĩa qui trình phần mềm được biến đổi từ qui trình chuẩn của tổ chức và các nguồn tài nguyên liên quan mà đã được trình bày trong KPA Xác định qui trình của tổ chức
* Các sản phẩm công nghệ phần mềm
Mục đích của KPA này nhằm thực hiện một cách nhất quán qui trình công nghệ đã được định nghĩa tốt Qui trình này tích hợp tất cả các hoạt động công nghệ phần mềm nhằm cho kết quả chính xác, nhất quán tất cả các sản phẩm phần mềm một cách hiệu quả
* Trao đổi giữa các nhóm
Mục đích của KPA này nhằm thiết lập các phương tiện cho các nhóm công nghệ phần mềm này tham gia, trao đổi với các nhóm công nghệ khác để
dự án đáp ứng được yêu cầu của khách hàng một cách có tác dụng và hiệu quả
* Kiểm tra ngang hàng
Mục tiêu của KPA này nhằm loại bỏ lỗi ra khỏi phần mềm khi có thể một cách hiệu quả và ta có thể ngăn ngừa được
2.6.4 Mức 4_ Mức quản lý (Managed)
Ở mức này đặt ra mục tiêu định lượng cho chất lượng cho cả các sản phẩm và quy trình Trong toàn bộ quy trình, các giai đoạn thực hiện đều phải được phân chia và lên kế hoạch một cách chi tiết và chính xác
* Quản lý qui trình về mặt số lượng
Mục tiêu của KPA này nhằm kiểm soát việc thực hiện qui trình của các
dự án phần mềm về mặt số lượng Sự thực hiện qui trình phần mềm được thể hiện qua kết quả đạt được trên thực tế từ việc thực hiện theo qui trình phần mềm
* Quản lý chất lượng phần mềm
Trang 37Quá trình này bao gồm việc định các mục tiêu chất lượng cho sản phẩm phần mềm, thiết lập các kế hoạch để đạt được các mục tiêu đó; đồng thời kiểm soát, điều chỉnh các kế hoạch phần mềm, các hoạt động và các mục tiêu chất lượng nhằm đáp ứng nhu cầu và mong muốn của khách hàng và những người sử dụng cuối cùng để sản phẩm đạt chất lượng cao
Các mục tiêu
Phải lập kế hoạch cho các hoạt động quản lý chất lượng phần mềm của
dự án
Xác định các độ đo của các mục tiêu quản lý chất lượng của sản phẩm
và các điều kiện tiên quyết
Tiến trình thực nhằm thực hiện các mục tiêu chất lượng cho các sản phẩm phần mềm phải được xác định về mặt số lượng và quản lý chúng
Các cam kết phải thực hiện
Dự án phần mềm phải theo một cơ chế của tổ chức phục vụ cho việc quản lý chất lượng phần mềm
Từng thành viên trong nhóm công nghệ phần mềm và các nhóm có liên quan phải được đào tạo trong quá trình quản lý chất lượng phần mềm
Các hoạt động phải thực hiện
Phải phát triển và duy trì kế hoạch về chất lượng phần mềm của dự án theo một thủ tục đã lập thành tài liệu
Kế hoạch phần mềm của dự án phải dựa vào các hoạt động quản lý chất lượng phần mềm của dự án
Thông qua chu trình vòng đời phần mềm, các mục tiêu chất lượng đối với số lượng dự án cho các sản phẩm phần mềm phải được xác định, điều khiển, và duyệt lại
Chất lượng của các sản phẩm phần mềm của dự án phải được đo đạc, phân tích, so sánh với các mục tiêu chất lượng của số lượng sản phẩm dựa vào các luồng sự kiện
Mục tiêu chất lượng về số lượng dự án phần mềm đối với các sản phẩm phải được cấp phát một cách phù hợp đến những người gia công phần mềm
nhằm đảm bảo chất lượng chung