Đề 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

pdf 75 trang yendo 4160
Bạn đang xem 20 trang mẫu của tài liệu "Đề 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", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfde_tai_nghien_cuu_so_sanh_danh_gia_cac_tieu_chuan_chat_luong.pdf

Nội dung text: Đề 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

  1. MỞ ĐẦ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. Phạm vi nghiên cứu Luận văn tập trung nghiên cứu về một số tiêu chuẩn chất lượng trong phát triển phần mềm. Đề xuất các tiêu chuẩn phù hợp cho điều kiện và hoàn cảnh của doanh nghiệp phần mềm Việt Nam.
  2. Phươ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ị
  3. Chươ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 đó
  4. ta 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ử . Dễ bảo trì . Có tài liệu ( mô tả yêu cầu, điều kiện kiểm thử, vận hành, bảo trì, ) với chất lượng cao. 1.3. Đảm bảo chất lượng phần mềm Khi phần mềm trở thành sản phẩm và đòi hỏi đảm bảo chất lượng đáp ứng nhu cầu của người sử dụng thì hoạt động đảm bảo chất lượng phần mềm là một hoạt động cốt yếu được các doanh nghiệp sản xuất phần mềm quan tâm hàng đầu. Bởi vì hoạt động bảo đảm chất lượng phần mềm có những lợi ích: Phần mềm có ít các khiếm khuyết hơn nên giảm phí tổn bảo trì, độ tin cậy cao hơn do đó thoả mãn nhu cầu khách hàng hơn. Hoạt động bảo đảm chất lượng phần mềm luôn được tiến hành song song với quá trình phát triển của nó có như vậy nó mới vận hành và đáp ứng được nhu cầu của người sử dụng và không bị lỗi cùng với thời gian. Để đá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
  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
  6. Độ phức tạp Độ hoà hợp Độ dung thứ lỗi Độ môđun hoá Độ đơn giản - dễ hiểu Độ lần vết được 1.4.3. 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 nhằm tiết kiệm tối đa tài nguyên và tăng tối đa hiệu suất công việc, dưới những điều kiện sử dụng nhất định. Gồm các đặc trưng sau: .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. . Sự tuân thủ * Các độ đo liên quan: Độ súc tích Độ hiệu quả thực hiện Độ dễ thao tác 1.4.4. Tính toàn vẹn 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 Trang bị đồ nghề đầy đủ Độ an ninh 1.4.5. Tính khả dụng Là khả năng của phần mềm để có thể hiểu được, học hỏi được, sử dụng được và hấp dẫn đối với người sử dụng. Gồm các đặc trưng sau: . 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ủ
  7. * Các độ đo liên quan: Độ dễ thao tác Khả năng dễ huấn luyện 1.4.6. Tính bảo trì được Là khả năng của phần mềm cho phép sửa đổi, nâng cấp, bao gồm những sự sửa chữa, sự cải tiến hoặc sự thích nghi của phần mềm để thay đổi cho phù hợp với môi trường, và các yêu cầu, đặc tả chức năng mới. Gồm các đặc trưng sau: . 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. . Sự tuân thủ * Các độ đo liên quan: Độ súc tích Độ hoà hợp Trang bị đồ nghề đủ Độ module hoá Độ tự cấp tài liệu Độ đơn giản Độ dễ hiểu 1.4.7. Tính mềm dẻo 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: Độ phức tạp Độ súc tích Độ hoà hợp Khuếch trương được Độ khái quát Độ module hoá Tự cấp tài liệu Độ đơn giản - dễ hiểu
  8. 1.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 sống với các phần mềm khác. . Sự tuân thủ. * Các độ đo liên quan: Độ khái quát Độ độc lập phần cứng Độ module hoá Tự cấp tài liệu Độc lập hệ thống phần cứng 1.4.10. Tính sử dụng lại được Phạm vi trong đó một chương trình (hay bộ phận của chương trình) có thể được dùng lại trong các ứng dụng khác - có liên quan tới việc đóng gói và phạm vi các chức năng chương trình thực hiện. * Các độ đo liên quan: Độ khái quát Độ độc lập phần cứng Độ module hoá Tự tạo tài liệu
  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 Độ tương đồng dữ liệu Độ khái quát Độ modul hoá 1.5. Quy trình phát triển phần mềm Cũng như mọi ngành sản xuất khác, qui trình là một trong những yếu tố cực kỳ quan trọng đem lại sự thành công cho các nhà sản xuất phần mềm, nó giúp cho mọi thành viên trong dự án đều có thể hiểu rõ được công việc của mình và của người khác đang làm và có thể kiểm soát được các công việc này. Có thể nói qui trình phát triển/xây dựng phần mềm (Software Development/Engineering Process – SEP) có tính chất quyết định để tạo ra sản phẩm chất luợng tốt với chi phí thấp và năng suất cao, điều này có ý nghĩa quan trọng đối với các công ty sản xuất hay gia công phần mềm củng cố và phát triển cùng với nền công nghiệp phần mềm đầy cạnh tranh. 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 nó làm những gì mà khách hàng muốn. 4. Sự tiến hóa của phần mềm: Phần mềm phải tiến hóa để thỏa mãn sự thay đổi các yêu cầu của khách hàng. Qui trình có thể hiểu là phương pháp thực hiện hoặc sản xuất ra sản phẩm. Đó là một quy định xem ai làm cái gì, làm như thế nào và làm khi nào. Quy trình phát triển phần mềm chính là phương pháp phát triển hay sản xuất ra sản phẩm phần mềm. 1.5.1. Mô hình thác nước
  10. Hình 1.1. Mô hình thác nước Trong 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ế
  11. tiế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
  12. Hình 1.3. Mô hình xoắn ốc Mô hình xoắn ốc đề cập đến hầu hết các trường hợp đặc biệt và nó chứa đựng những tính năng tốt nhất của mô hình thác nước và làm bản mẫu trong đó có bổ sung thêm một yếu tố mới: Phân tích rủi ro. Cái mà cả hai mô hình trên còn thiếu và yếu. Mô hình có bốn hoạt động chính được chia chia thành 4 góc phần tư:  Các hoạt động chính:  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:
  13. Hì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).
  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
  15. 2.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
  16. test, 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
  17. chấ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.
  18. Mụ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.
  19. Chấ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 năng Độ ổn định Tính khả dụng Tính hiệu quả Khẳ năng bảo trì Tính khả chuyển Khả năng phân Khả năng tương Tính dễ hiểu tích hợp Tính phù hợp Tính hoàn thiện Tiết kiệm thời Tính dễ học Khả năng thay Khả năng cài đặt Tính chính xác Khả năng sửa lỗi gian Khẳ nưng điều đổi Khả năng chung Tính an toàn Khẳ năng phục Tiết kiệm tài khiển Tính cân bằng sống Tính tương tác hồi nguyên Tính hấp dẫn Khẳ năng kiểm Khả năng thay định thế 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
  20. Khả 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ó.
  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 mềm chỉnh sửa. Khả năng bảo hành bảo trì chung: thoả mãn các chuẩn, quy ước, quy định. Tính khả chuyển Là khả năng của phần mềm cho phép nó có thể được chuyển từ môi trường này sang môi trường khác. 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ể.
  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 2.2.4.2. Mô hình chất lượng sử dụng Tiêu chí đối với chất lượng sử dụng được chia thành 4 tiêu chí: tính hiệu quả, năng suất, tính an toàn và tính thoả mãn. Hình 2.4. Mô hình chất lượng sử dụng. Chất lượng sử dụng Là khả năng của phần mềm cho phép những người sử dụng cụ thể đạt được những mục đích cụ thể với tính hiệu quả, tính năng suất, tính an toàn và tính thoả mãn, trong một hoàn cảnh làm việc cụ thể. 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
  23. tí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
  24. Phầ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; - Cung cấp các nguồn lực Hướng vào khách hàng - Đảm bảo rằng các yêu cầu của khách hàng được xác định và đáp ứng. Chính sách chất lượng - Cam kết tuân thủ với các yêu cầu và thường xuyên cải tiến hiệu lực của 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.
  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 ;
  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.
  27. + Hành động khắc phục - Xem xét sự không phù hợp; - Điều tra nguyên nhân cốt lõi; - Hành động để loại bỏ sự không phù hợp; - Lập hồ sơ kết quả hành động; - Xem xét hiệu lực. + Hành động phòng ngừa - 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 đồng của khách hàng. - Xây dựng kế hoạch để kiểm soát chất lượng các dự án phát triển phần mềm. - Đưa ra kế hoạch phát triển chất lượng và các thủ tục để kiểm soát quản lý cấu hình, kiểm định sản phẩm, xác nhận sản phẩm, và khắc phục lỗi.
  28. 2.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.
  29. 2.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ữ liệu, và xác minh những sản phẩm. Lựa chọn, đánh giá, giám sát, và kiểm soát các nhà thầu phụ (của nhà cung cấp). Phát triển các thủ tục cho phép tổ chức hoặc khách hàng xác minh tính tin cậy của sản phẩm. 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
  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
  31. Mụ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ê
  32. Doanh 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
  33. mề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. * Lập kế hoạch cho các dự án phần mềm Mục đích của KPA này nhằm thiết lập các kế hoạch hợp lý để thực hiện công nghệ phần mềm và để quản lý dự án phần mềm. - Lập kế hoạch cho các dự án phần mềm bao gồm những đánh giá phát triển về công việc được thực hiện và thiết lập những cam kết cần thiết, và định ra các kế hoạch để thực hiện công việc. - Ướ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
  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 và các yêu cầu dự án. Các nhóm và cá nhân có liên quan phải được thông báo về các hoạt động và các kết quả làm việc của nhóm quản lý chất lượng phần mềm. Các vấn đề tồn đọng không giải quyết được bị từ chối không thể giải quyết được trong dự án phần mềm phải được báo cáo để cán bộ quản lý cấp 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 khả năng để thực hiện Phải có một nhóm có trách nhiệm trong việc điều phối và thực hiện đảm bảo chất lượng phần mềm cho các dự án (thường gọi là nhóm QA). Phải cung cấp nguồn tài nguyên và kinh phí đầy đủ để thực hiện các hoạt động QA. Các thành viên của nhóm QA phải được đào tạo để thực hiện các hoạt động QA của họ. 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.
  35. Cá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 QA. Theo định kỳ và theo luồng sự kiện, cán bộ quản lý dự án phải kiểm tra các hoạt động của QA * Quản lý cấu hình phần mềm Mục đích của KPA này thiết lập và duy trì tính toàn vẹn của các sản phẩm trong dự án phần mềm trên toàn bộ vòng đời phần mềm của dự án. Việc quản lý cấu hình phần mềm là một tập các hoạt động đã được phát triển để quản lý thay đổi trong toàn bộ vòng đời phần mềm. SCM có thể được coi như một hoạt động đảm bảo chất lượng phần mềm, được áp dụng trong tất cả các giai đoạn của tiến trình kĩ nghệ phần mềm. 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
  36. Mụ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
  37. Quá 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. Các khả năng để thực hiện Phải cung cấp nguồn tài nguyên và kinh phí đầy đủ cho việc quản lý chất lượng sản phẩm phần mềm. Các cá nhân trực tiếp thực thi và hổ trợ cho quá trình quản lý chất lượng phần mềm phải được đào tạo để họ có thể thực hiện tốt vai trò của mình. 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.
  38. Các phân tích và phép đo Phải thiết lập các phép đo và sử dụng chúng để xác định trạng thái của các hoạt động quản lý chất lượng phần mềm. 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 quản lý chất lượng phần mềm Theo định kỳ và theo luồng sự kiện, cán bộ quản lý dự án phải kiểm tra hoạt động quản lý chất lượng phần mềm. Nhóm đảm bảo chất lượng phần mềm phải xem xét và kiểm tra các hoạt động và các work product của quá trình quản lý chất lượng phần mềm đồng thời báo cáo lại kết quả. 2.6.5. Mức 5_ Mức tối ưu (Optimizing) Ở mức này, toàn bộ tổ chức tiếp tục tập trung vào việc không ngừng tiếp tục cải tiến quy trình. Nhiệm vụ của tổ chức là xác định những yếu kém và củng cố quy trình với mục tiêu ngăn chặng lỗi có thể xảy ra. Tăng lợi nhuận trong quy trình cũng như những cách tân trong việc sử dụng những phương pháp và kỹ thuật mới. Bao gồm các tiến trình sau: * Ngăn ngừa lỗi Mục tiêu của KPA này nhằm tìm ra nguyên nhân làm xuất hiện lỗi và ngăn chặn chúng tái hiện lại. * Quản lý những thay đổi kỹ thuật Mục tiêu của KPA này nhằm xác định các kỹ thuật mới (như các công cụ, phương pháp và qui trình) và theo dõi chúng trong tổ chức để có thể khai thác chúng. * Quản lý những thay đổi qui trình Mục tiêu của quản lý những thay đổi qui trình nhằm tiếp tục cải tiến qui trình phần mềm đã sử dụng trong tổ chức với khuynh hướng nâng cao chất lượng phần mềm, tăng năng suất và giảm thời gian của chu trình đối với quá trình phát triển sản phẩm. 2.7. Tiêu chuẩn CMMI CMMI là sự mở rộng về phạm vi của CMM từ việc chỉ tập trung vào phần mềm đến toàn bộ tổ chức. Việc mở rộng này bao gồm phát triển hệ thống, công nghệ phần mềm, các sản phẩm tích hợp và quy trình phát triển Bằng việc thực hiện tiêu chuẩn CMMI, 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. Sức mạnh của CMMI nằm ở chỗ nó cho phép bạn định nghĩa công việc – cách bạn làm việc như thế nào. Tuy nhiên sức mạnh gắn liền với trách
  39. nhiệm. Nếu bạn muốn kiểm soát công việc, bạn cũng phải tuân theo rất nhiều quy tắc ràng buộc của CMMI. 2.7.1. Mức 1 - Đầu vào Ở giai đoạn này có các đặc trưng: . Tổ chức không có tiến trình cấu trúc . Phát triển hỗn độn . Chất lượng sản phẩm không biết trước 2.7.2. Mức 2 - Quản lý Lập kế hoạch, thực hiện, giám sát và điểu khiển các dự án, các nhóm, các tiến trình đơn độc lập để có thể thực hiện được nhiệm vụ cho trước. Nó gồm các tiến trình sau: * Quản lý yêu cầu Mục tiêu của KPA này là quản lý những yêu cầu về sản phẩm của dự án và các thành phần của sản phẩm, nhận biết những mâu thuẫn giữa yêu cầu, kế hoạch của dự án và sản phẩm. Bao gồm các mục tiêu cụ thể: - Hiểu yêu cầu - Chuyển giao yêu cầu - Quản lý thay đổi của yêu cầu - Xác định mâu thuẫn giữa công việc của dự án và yêu cầu * Lập kế hoạch cho dự án Mục đích của KPA này là thiết lập và duy trì những kế hoạch (định ra những hoạt động cho dự án). Bao gồm các mục tiêu và hoạt động cụ thể: - Thiết lập những ước lượng - Ước lượng phạm vi của dự án - Thiết lập ước lượng cho sản phẩm và tính chất của công việc. - Định nghĩa vòng đời của dự án - Xác định ước lượng về năng lực và giá thành. - Phát triển kế hoạch cho dự án - Thiết lập ngân sách và lịch làm việc. - Xác định rủi ro của dự án - Lập kế hoạch cho quản lý dữ liệu - Lập kế hoạch về kiến thức và kĩ năng. - Giao nhiệm vụ cho các cá nhân. - Thiết lập kế hoạch cho dự án. Đảm bảo sự cam kết về phạm vi của phần lập kế hoạch - Xem xét lại kế hoạch của dự án. - Cân đối công việc và tài nguyên - Đảm bảo sự cam kết của kế hoạch
  40. * Giám sát và điều hành dự án Mục đích: Đưa ra một thỏa thuận sơ bộ về sự tiến triển của dự án, nhờ đó có thể đưa ra những hoạt động sửa chữa khi những hoạt động của dự án lệch so với kế hoạch. Bao gồm các mục tiêu và hoạt động cụ thể: - Giám sát dự án đối chiếu với kế hoạch - Giám sát những giới hạn kế hoạch của dự án. - Giám sát những chuyển giao. - Giám sát rủi ro của dự án. - Giám sát việc quản lý dữ liệu - Giám sát việc giao trách nhiệm cho các cá nhân - Kiểm soát hoạt động review tiến triển. - Kiểm soát hoạt động review điểm mốc quan trọng - Quản lý hoạt động sửa lỗi: - Phân tích hậu quả - Đưa ra hoạt động sửa lỗi - Quản lý hoạt động sửa lỗi. * Quản lý hợp đồng Mục đích: Quản lý những gì thu được về sản phẩm cũng như dịch vụ giữa tổ chức với đối tác (đã được sự đồng ý của cả 2 bên).Bao gồm các mục tiêu và họa động cụ thể: - Thiết lập thỏa thuận với đối tác - Xác định loại mục đích. - Chọn đối tác. - Thiết lập thỏa thuận với đối tác. - Đáp ứng thỏa thuận: - Thực thi thỏa thuận. - Chấp nhận sản phẩm đạt được - Chuyển giao sản phẩm * Độ đo và phân tích Mục đích: Phát triển và duy trì khả năng đo lường (được sử dụng để hỗ trợ quản lý thông tin cần thiết). Bao gồm các mục tiêu và hoạt động cụ thể: - Sắp xếp độ đo và phân tích các hoạt động - Thiết lập mục tiêu của độ đo - Xác định đơn vị đo. - Xác định hoạt động thu thập và quá trình lưu trữ. - Xác định quá trình phân tích. - Cung cấp kết quả của độ đo: - Sưu tập dữ liệu đo lường.
  41. - Phân tích dữ liệu. - Lưu trữ dữ liệu và kết quả - Chuyền giao kết quả Độ đo và phân tích trong CMM dành cho sản xuất phần mềm như là một đặc trưng phổ dụng, nó là chìa khóa cho sự thành công trong cải tiến quy trình và sử dụng độ đo để đưa ra quyết định và giám sát những cải thiện trong quy trình. * Đảm bảo chất lượng sản phẩm và chất lượng quy trình CMMI đặc biệt chú ý vào xem xét, phê duyệt việc đảm bảo chất lượng và những hoạt động cho cả sản phẩm và quy trình. Để kiểm tra quy trình chỉ đơn giản kiểm tra xem họ có làm như đã định ra không, tại tao có, tại sao không, vấn đề xảy ra ở chỗ nào và cải tiến nào là cần thiết. Để kiểm tra sản phẩm, sử dụng những chuẩn của sản phẩm và bản liệt kê những mục cần kiểm tra để đảm bảo không có lỗi, xem xét lại nội dung có thể để lại cho quy trình. Mục tiêu và công việc cụ thể: - Đánh giá khách quan các quy trình và sản phẩm - Đánh giá khách quan các quy trình. - Đánh giá khách quan các sản phẩm và dịch vụ - Cung cấp mục tiêu đích thực - Truyền đạt và đảm bảo giải quyết những khước từ. - Thiết lập các hồ sơ. * Quản lý cấu hình Mục đích: Thiết lập và duy trì tính toàn vẹn của sản phẩm sử dụng sự nhận dạng cấu hình, điều khiển cấu hình, giải thích trạng thái cấu hình, kiểm tra cấu hình. Các mục tiêu và công việc cụ thể: - Thiết lập các ranh giới - Xác định các hạng mục cấu hình. - Thiết lập hệ thống quản lý cấu hình. - Tạo hoặc đưa ra các ranh giới - Theo dõi và điều khiển những thay đổi - Theo dõi những yêu cầu thay đổi - Điều hành các hạng mục cấu hình. - Thiết lập tính toàn vẹn - Thiết lập hồ sơ về hệ thống quản lý cấu hình. - Thực hiện kiểm tra cấu hình.
  42. 2.7.3. Mức 3 _ Định nghĩa Ở mức này, để hoàn thiện quy trình sản xuất thì các vấn đề trọng tâm được tập trung vào việc tổ chức thực hiện quy trình. Tổ chức quy trình phần mềm ở mức này được xem là chuẩn và nhất quán vì cả công nghệ phần mềm và các hoạt động quản trị đều ổn định và có thể lặp lại. Các vấn đề về chi phí, kế hoạch làm việc, chức năng và chất lượng sản phẩm được kiểm soát và quản lý chặt chẽ vì vậy khả năng xảy ra rủi ro được xem là biến cố hiếm. * Phát triển yêu cầu Mục đích: là để việc tổ chức và phân tích các yêu cầu của khách hàng, sản phẩm. Các mục tiêu và hoạt động cụ thể: - Phát triển yêu cầu khách hàng - Gợi ý những mong muốn - Phát triển các yêu cầu khách hàng - Phát triển yêu cầu sản phẩm - Xác định các yêu cầu sản phẩm và các thành phần tạo nên sản phẩm. - Cung cấp các yêu cầu tạo thành sản phẩm - Đồng nhất các yêu cầu giao diện - Phân tích và thẩm định yêu cầu - Xác định các khái niệm và ý định sẽ làm - Thiết lập định nghĩa cho chức năng đã yêu cầu - Phân tích yêu cầu - Phân tích các yêu cầu để đạt được cân bằng * Giải pháp công nghệ Mục đích : Phát triển, thiết kế, và thực hiện các giải pháp cho các yêu cầu. Các mục tiêu cụ thể: - Chọn các giải pháp để tạo nên sản phẩm - Phát triển việc thiết kế - Thực hiện việc thiết kế sản phẩm * Tích hợp sản phẩm Mục đích: Tích hợp sản phẩm là để tạo nên sản phẩm từ các thành phần; đảm bảo ràng sản phẩm, khi đã được tích hợp, hoạt động đúng đắn; bàn giao sản phẩm.Công việc cụ thể: - Xác định cách để lắp ráp sản phẩm và thứ tự việc lắp ráp phải làm; - tạo nên môi trường để phát triển sản phẩm một cách phù hợp; - việc định rõ các quy trình và các tiêu chí cho việc tích hợp sản phẩm; đảm bảo việc tích hợp một cách đầy đủ về giao diện; và việc bàn giao sản phẩm.
  43. * Xác minh Mục đích : Đảm bảo sản phẩm của các công việc được lựa phải phù hợp với đặc tả yêu cầu của chúng. Công việc cụ thể: - Chọn lựa sản phẩm để kiểm tra - Tạo môi trường cần thiết cho việc kiểm tra các sản phẩm này - Miêu tả các quy trình và tiêu chí cho việc kiểm tra - Quản lý kiểm tra ngang hàng; và việc thẩm định sản phẩm và đưa ra thay đổi cần thiết. * Thẩm định Mục đích: là để chứng minh một sản phẩm phù hợp với định hướng sử dụng khi đặt chúng vào môi trường mong đợi hay không?. Các công việc cụ thể: - Chọn lựa các sản phẩm và các phương pháp cho việc thẩm định sản phẩm; - Tạo ra môi trường thẩm định; mô tả các quy trình và tiêu chí thẩm định; quản lý các hành vi thẩm định; - Phân tích các kết quả và vấn để mà phát sinh từ quá trình thẩm định này. 2.7.4. Mức 4 _ Quản lý định lượng Sử dụng các kỹ thuật thống kê và ước lượng. Chất lượng sản phẩm, phục vụ, thực hiện tiến trình và các mục đích thương mại khác đều được hiểu qua thống kê và được xem xét trong suốt vòng đời sống. Bao gồm các tiến trình quan trọng sau: * Sự thực thi tiến trình của tổ chức Mục đích: để thiết lập và duy trì sự hiểu biết về số lượng của sự thi hành của tập hợp các tiến trình tiêu chuẩn của tổ chức trong việc hỗ trợ chất lượng và các mục tiêu thi hành các tiến trình, và để cung cấp dữ liệu thực thi các tiến trình, và các mô hình của quản lý chất lượng các dự án của tổ chức. Bao gồm các mục tiêu và công việc cụ thể: - Tiến hành sự thực thi ranh giới và các mô hình: - Chọn lựa các tiến trình. - Thiết lập các độ đo sự thực thi các tiến trình. - Thiết lập thực thi chất lượng và các mục tiêu thực thi tiến trình. - Thiết lập ranh giới sự thực thi các tiến trình. - Thiết lập các mô hình sự thực thi tiến trình. * Quản lý định lượng dự án
  44. Mục đích : để quản lý định lượng các tiến trình định nghĩa trong dự án để đạt được chất lượng thực thi của dự án và các đối tượng của sự thực thi tiến trình. Các đặc trưng và công việc cụ thể trong tiến trình này bao gồm: - Quản lý định lượng dự án: - Sự thực thi các đối tượng của dựa án - Thứ tự tiến trình được xác định - Lựa chọn các tiển trình con sẽ được quản lý thống kê - Quản lý sự thực thi của dự án - Thống kê quản lý sự thực thi các tiến trình con: - Lựa chọn độ đo và các kĩ thuật phân tích - Áp dụng các phương thức thống kê để hiểu được mức độ biến đổi - Kiểm tra sự thực thi của các tiến trình con được lựa chọn - Bản ghi thống kê sự quản lý dữ liệu 2.7.5. Mức 5 - Tối ưu Mức 5 tập trung vào việc cải tiến toàn bộ chất lượng của quy trình của tổ chức bằng việc xác định các nguyên nhân thường gặp của sự thay đổi, xác định các nguyên nhân gốc của các điều kiện được xác định, thử nghiệm việc cải tiến quy trình và kết hợp chặt chẽ sự cải tiến với các hành động sửa chữa vào trong một tập hợp các quy trình tiêu chuẩn của tổ chức, hay chỉ là quá trình xác định của dự án. Bao gồm các tiến trình quan trọng: * Triển khai và đổi mới tổ chức Mục đích: để lựa chọn và triển khai việc cải tiến có tính chất đổi mới và có lợi nhuận mà nâng cao một cách phù hợp các quy trình và công nghệ của tổ chức. Các bước trong quy trình này là: 1. Đưa ra đề xuất cải tiến 2. Xem xét và phân tích các đề xuất( bao gồm việc xem xét lợi ích và giá trị) 3. Thử nghiệm cải tiến đưa ra 4. Ước lượng cải tiến để xem xét hiệu quả trong việc thử nghiệm 5. Lập kế hoạch cho việc triển khai cải tiến 6. Triển khai việc cải tiến 7. Ước lượng hiệu quả của việc cải tiến trong tổ chức hay dự án * Phân tích nguyên nhân và giải pháp Mục đích: để xác định nguyên nhân của những khiếm khuyết cùng với một số các vấn đề khác và đưa ra hành động để tránh cho điều đó xảy ra trong tương lai Các bước trong quy trình này là: 1. Xem xét khiếm khuyết và các vấn đề trong tổ chức 2. Lựa chọn dữ liệu để phân tích
  45. 3. Phân tích nguyên nhân 4. Chuẩn bị các đề xuất để giải quyết các vấn đề 5. Đánh giá ảnh hưởng của sự thay đổi
  46. 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 3.1. ISO 9126 Mô hình ISO được đề xuất năm 1991 để đánh giá chất lượng sản phẩm theo các đặc tính của sản phẩm, đó là: - Các đặc tính ngoài: Sản phẩm đó làm việc như thế nào trong môi trường của nó, ví dụ: tính khả dụng, độ tin cậy - Các đặc tính bên trong: Sản phẩm đã được phát triển như thế nào, ví dụ: kích thước, kiểm thử, tỉ lệ lỗi Theo ISO/9126:1991, một sản phẩm phần mềm phải có các đặc tính sau đây: - Chức năng (Functionality) - Độ ổn định (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 (Portabilit y) 3.1.1. Tính chức năng Khả 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. 3.1.2. 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
  47. 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. 3.1.3.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ó. 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 3.1.4. 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. 3.1.5. 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
  48. 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 mềm chỉnh sửa. Khả năng bảo hành bảo trì chung: thoả mãn các chuẩn, quy ước, quy định. 3.1.6. Tính khả chuyển Là khả năng của phần mềm cho phép nó có thể được chuyển từ môi trường này sang môi trường khác. 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ể. 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 3.2. ISO 9001 3.2.1. Tiêu chuẩn TCVN ISO 9001:2000 và mục đích áp dụng Tiêu chuẩn TCVN ISO 9001:2000 mô tả điều phải làm để xây dựng một hệ thống quản lý chất lượng nhưng không nói làm thế nào để xây dựng nó. Áp dụng tiêu chuẩn TCVN ISO 9001:2000 là nhằm để: Chứng tỏ khả năng cung cấp sản phẩm đồng nhất đáp ứng các yêu cầu của khách hàng và các yêu cầu pháp lý khác. Nâng cao sự thoả mãn khách hàng qua việc áp dụng có hiệu lực hệ thống này, xây dựng các quá trình để cải tiến thường xuyên và phòng ngừa các sai lỗi. 3.2.2. Các lợi ích chính của ISO 9001 - Tạo nền móng cho sản phẩm có chất lượng: Giúp định hướng các hoạt động theo quá trình, giúp quản lý hoạt động sản xuất kinh doanh một cách có hệ thống và có kế hoạch
  49. Giúp giảm thiểu và loại trừ các chi phí phát sinh sau kiểm tra, chi phí bảo hành và làm lại Giúp cải tiến liên tục hệ thống chất lượng và cải tiến liên tục chất lượng sản phẩm. - Tăng năng suất và giảm giá thành: Cung cấp các phương tiện giúp cho mọi người thực hiện công việc đúng ngay từ đầu để giảm thiểu khối lượng công việc làm lại Giúp kiểm soát chi phí xử lý sản phẩm sai hỏng, giảm lãng phí về thời gian, nguyên vật liệu, nhân lực và tiền bạc. Giúp giảm được chi phí kiểm tra cho cả công ty và khách hàng. - Tăng năng lực cạnh tranh: Giúp doanh nghiệp tăng lợi thế cạnh tranh thông qua việc chứng tỏ với khách hàng: các sản phẩm họ sản xuất phù hợp với chất lượng mà họ đã cam kết Giúp doanh nghiệp quản lý hiệu quả nguồn nhân lực, tích luỹ những bí quyết làm việc – yếu tố cạnh tranh đặc biệt của kinh tế thị trường - Tăng uy tín của công ty về chất lượng: Giúp doanh nghiệp nâng cao hình ảnh về một hệ thống quản lý đạt tiêu chuẩn mà khách hàng và người tiêu dùng mong đợi, tin tưởng Giúp doanh nghiệp chứng minh chất lượng sản phẩm, dịch vụ của công ty đáp ứng và vượt quá sự mong đợi của khách hàng Giúp doanh nghiệp xác định hiệu quả quá trình, phân tích, đánh giá sản phẩm, ra quyết định quản lý, cải tiến hiệu quả hoạt động, nâng cao sự thoả mãn khách hàng thông qua những dữ liệu có ý nghĩa 3.2.3. Các đặc trưng của tiêu chuẩn ISO 9001 Bộ tiêu chuẩn chất lượng ISO 9000 của tổ chức ISO, quy định về "Quy trình đảm bảo chất lượng" trong các tổ chức phát triển phần mềm. Chứng chỉ ISO 9001 xác nhận các tổ chức, đơn vị có quy trình đảm bảo chất lượng hợp chuẩn. Một doanh nghiệp phát triển phần mềm, nếu có chứng chỉ CMM hoặc ISO 9001 đều có khả năng sản xuất ra các phần mềm tốt hơn hẳn các công ty chưa có chứng chỉ. Tuy nhiên, chúng ta cần lưu ý đây chỉ là "khả năng" chứ không phải là "chắc chắn". Vẫn có doanh nghiệp có quy trình tốt nhưng sản xuất ra sản phẩm chất lượng không cao. Điều này chứng tỏ cách tiếp cận theo chất lượng quy trình chưa phải là cách tiếp cận toàn diện mà chỉ giải quyết vấn đề ở mức căn bản. Tiêu chuẩn ISO 9001 đưa ra các tiêu chuẩn qui định những yêu cầu của một hệ thống quản lý chất lượng mà doanh nghiệp muốn được chứng nhận
  50. phải áp dụng. Nó được xây dựng trên cơ sở vận dụng triệt để 8 nguyên tắc quản lý chất lượng sau: 3.2.3.1. Định hướng bởi khách hàng Định hướng bới khách hàng đó là việc quản lý chất lượng phải hướng tới sự thỏa mãn các yêu cầu, mong đợi của khách hàng. Mọi tổ chức đều phụ thuộc vào khách hàng, chất lượng sản phẩm dịch vụ lại do khách hàng thỏa mãn phải là công việc trọng tâm của hệ thống quản lý. Muốn vậy cần thấu hiểu các nhu cầu hiện tại và tương lai của khách hàng, cần đáp ứng các yêu cầu của khách hàng và nỗ lực vượt cao hơn sự mong đợi của họ. Chính vì vậy đây là một nguyên tắc rất quan trọng bởi khách hàng là một yếu tố chiến lược dẫn tới khả năng chiếm lĩnh thị trường, duy trì và thu hút khách hàng. 3.2.3.2. Lãnh đạo thống nhất Việc quản lý chất lượng được đặt dưới một sự lãnh đạo thống nhất, đồng bộ về mục đích, đường lối và môi trường nội bộ trong tổ chức. Lôi cuốn mọi người tham gia trong việc đạt được các mục tiêu của tổ chức. Muốn vậy, lãnh đạo phải xây dựng những giá trị rõ ràng, cụ thể và định hướng vào khách hàng. Để củng cố mục tiêu này cần có sự cam kết và tham gia của từng cá nhân lãnh đạo với tư cách là một thành viên của tổ chức. Đồng thời lãnh đạo phải chỉ đạo và tham gia xây dựng các chiến lược và các biện pháp huy động sự tham gia của mọi nhân viên để xây dựng, nâng cao hiệu lực của tổ chức và đạt kết quả tốt nhất có thể được. Qua việc tham gia trực tiếp vào các hoạt động như lập kế hoạch, xem xét đánh giá hoạt động của tổ chức, ghi nhận những kết quả đạt được của nhân viên, người lãnh đạo có vai trò củng cố giá trị và khuyến khích sự sáng tạo, đi đầu ở mọi cấp trong toàn bộ tổ chức. 3.2.3.3. Hợp tác triệt để Việc quản lý chất lượng phải có sự tham gia đông đủ, tự nguyện của mọi người vì lợi ích chung của tổ chức và của bản thân mình. Con người là nguồn lực quan trọng nhất của một tổ chức và sự tham gia đầy đủ với những hiểu biết và kinh nghiệm của họ sẽ rất có ích cho tổ chức. Thành công trong cải tiến chất lượng phụ thuộc rất nhiều vào kỹ năng, nhiệt tình hăng hái trong công việc của đội ngũ nhân viên. Vì thế tổ chức cần tạo điều kiện để nhân viên học hỏi, nâng cao kiến thức và thực hành những kỹ năng mới. Bên cạnh đó, tổ chức cần có hệ thống khuyến khích sự tham gia của mọi thành viên vào mục tiêu chất lượng của tổ chức. Những yếu tố liên
  51. quan đến vấn đề an toàn, phúc lợi xã hội của nhân viên cần phải gắn với mục tiêu cải tiến liên tục và các hoạt động của tổ chức. 3.2.3.4. Hoạt động theo quá trình Việc quản lý chất lượng phải được tiếp cận theo quá trình. Kết quả mong muốn sẽ đạt được một cách có hiệu quả khi các nguồn lực và các hoạt động có liên quan đều được quản lý theo quá trình. Quá trình là tập hợp những hoạt động có quan hệ lẫn nhau và tương tác để biến đầu vào thành đầu ra. Để cho quá trình có ý nghĩa, giá trị của đầu ra phải lớn hơn đầu vào, là quá trình làm gia tăng giá trị. Quản lý các hoạt động của một tổ chức thực chất là quản lý các quá trình và mối quan hệ giữa chúng. Quản lý tốt hệ thống các quá trình cùng với sự bảo đảm đầu vào nhận được từ người cung ứng bên ngoài, sẽ đảm bảo chất lượng đầu ra để cung cấp cho khách hàng. 3.2.3.5. Hệ thống Việc quản lý chất lượng phải được tiếp cận một cách hệ thống. Không thể giải quyết bài toán chất lượng theo từng yếu tố tác động đến chất lượng một cách riêng lẻ mà phải xem xét toàn bộ các yếu tố tác động đến chất lượng một cách hệ thống và đồng bộ, phối hợp hài hòa các yếu tố này. Phương pháp hệ thống trong quản lý là cách huy động, phối hợp toàn bộ các nguồn lực để thực hiện mục tiêu chung của tổ chức. Vì thế, việc nhận biết, thấu hiểu và quản lý một hệ thống các quá trình có liên quan sẽ đem lại hiệu lực và hiệu quả của tổ chức nhằm đạt được các mục tiêu đã định. 3.2.3.6. Cải tiến liên tục Việc quản lý chất lượng phải được thường xuyên cải tiến. Cải tiến liên tục các kết quả thực hiện là mục tiêu, đồng thời cũng là phương pháp của mọi tổ chức vì muốn có được mức độ chất lượng cao nhất, tổ chức phải liên tục cải tiến công việc của mình. Sự cải tiến có thể được thực hiện theo từng bước nhỏ hoặc nhảy vọt. Cách thức cải tiến cần phải bám chắc vào công việc của tổ chức. 3.2.3.7. Dựa trên dữ liệu Các quyết định phải dựa trên cơ sở phân tích đầy đủ các thông tin và số liệu thực tế. Mọi quyết định của hệ thống quản lý muốn có hiệu quả phải được xây dựng dựa trên việc phân tích dữ liệu và thông tin. Việc xem xét đánh giá phải bắt nguồn từ chiến lược của tổ chức, các quá trình quan trọng, các yếu tố đầu vào và kết quả của các quá trình đó 3.2.3.8. Hợp tác bên trong và bên ngoài Việc quản lý chất lượng phải được tiến hành trên các quan hệ hợp tác chặt chẽ bên trong và bên ngoài. Tổ chức cần xây dựng những mối quan hệ
  52. hợp tác chặt chẽ trong nội bộ và với bên ngoài để đạt được hiệu quả cao trong công việc. Những mối quan hệ này sẽ giúp tổ chức nâng cao khả năng hoạt động của mình. 3.3. Tiêu chuẩn CMM CMM là chuẩn chất lượng do SEI xây dựng để xác định những quy tắc cơ bản nhằm đánh giá mức độ trưởng thành về quy trình chế tạo phần mềm của nhà sản xuất. Đây là một phương tiện hữu hiệu cho việc mô hình hoá, xây dựng và đo lường độ trưởng thành của quy trình phát triển phần mềm. Hiện CMM là một chuẩn rất phổ biến và được các nhà sản xuất phần mềm chuyên nghiệp trên thế giới sử dụng. Nó có các đặc trưng sau: 3.3.1. Cam kết 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. 3.3.2. Khả năng để thực hiện - Phải có một nhóm có trách nhiệm trong việc điều phối và thực hiện đảm bảo chất lượng phần mềm cho các dự án (thường gọi là nhóm QA- Quality Assurance). - Phải cung cấp nguồn tài nguyên và kinh phí đầy đủ để thực hiện các hoạt động QA. - Các thành viên của nhóm QA phải được đào tạo để thực hiện các hoạt động QA của họ. - 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. 3.3.3. Các hoạt động được 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 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 - Nhóm SQA(Software Quality Assurance - Đảm bảo chất lượng phần mềm) 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.
  53. 3.3.4. Đo đạc và phân tích 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. 3.3.5. Xác minh việc triển khai thực hiện - Theo định kỳ, cán bộ quản lý cấp cao phải kiểm tra các hoạt động của QA. - Theo định kỳ và theo luồng sự kiện, cán bộ quản lý dự án phải kiểm tra các hoạt động của QA 3.4. Tiêu chuẩn CMMI CMMI là một khung giải pháp tối ưu cho quá trình sản xuất phần mềm. Nó mô tả những giải pháp tốt nhất trong quá trình kiểm soát, đo lường và kiểm tra các quy trình phát triển phần mềm. Mô hình CMMI không tập trung mô tả chính các quá trình mà chỉ mô tả đặc điểm của các quá trình hiệu quả, vì vậy mô hình CMMI đưa ra chỉ dẫn cho các công ty để họ có thể tự mình phát triển hoặc điều chỉnh chính các quá trình của họ. Nó có các đặc trưng sau: 3.4.1. Cam kết thực hiện Mô tả các hành động mà tổ chức phải làm để đảm bảo rằng qui trình sẽ được thiết lập và sẽ tồn tại lâu dài. Bao gồm việc thiết lập các chính sách hay cơ chế cho tổ chức và trách nhiệm quản trị của các cán bộ cấp cao. Cam kết thực hiện được thể hiện thông qua việc cam kết về mặt quản lý và các chính sách. 3.4.2. Khả năng để thực hiện Mô tả các điều kiện tiên quyết phải tồn tại trong dự án hay trong tổ chức cho việc thực thi thành công qui trình phần mềm. Bao gồm các nguồn tài nguyên, cấu trúc của tổ chức và quá trình đào tạo. Khả năng thực hiện được thể hiện thông qua việc đào tạo nhân lực, cung cấp đầy đủ và phù hợp tài nguyên, phân chia trách nhiệm, lập kế hoạch, lập và định nghĩa các quy trình phù hợp. 3.4.3. Hướng thực thi Mô tả vai trò và thủ tục cần thiết để thực thi một KPA (Key Process Area - Nhóm công việc chính). Bao gồm việc thiết lập các kế hoạch, thủ tục; quá trình thực hiện, theo dõi công việc và phải có những hành động hiệu chỉnh khi cần thiết. Hướng thực thi được thể hiện qua việc quan lý cấu hình (configurations management), giám sát và điều khiển quy trình và tuyển tập và cải tiến thông tin. 3.4.4. Đo đạc và phân tích
  54. Mô tả các nhu cầu để đo đếm qui trình và phân tích các phép đo đó. Bao gồm các ví dụ về phép đo phải thực hiện để xác định trạng thái và hiệu quả của các hoạt động được thực hiện. Phát triển và duy trì khả năng đo lường (được sử dụng để hỗ trợ quản lý thông tin cần thiết). 3.4.5. Kiểm tra việc thực thi Mô tả các bước nhằm đảm bảo các hoạt động được thực hiện theo đúng yêu cầu so với qui trình đã thiết lập. Bao gồm việc xem xét và kiểm tra các tài liệu liên quan do bộ phận quản lý và bộ phận đảm bảo chất lượng tiến hành. Kiểm tra thực thi được minh họa thông qua việc đánh giá khách quan độ kết dính (Cả quy trình và sản phẩm) tới các chính sách, quy trình, và các chuẩn của một tổ chức, và thông hoạt động xem xét lại (Review). Chương 4 SO SÁNH VÀ ĐÁNH GIÁ 4.1. So sánh tiêu chuẩn ISO và CMM Ở chương 2 ta đã nghiên cứu một số tiêu chuẩn chất lượng như: ISO 9126, ISO 9001, CMM và CMMI. Tuy nhiên vì thời gian nghiên cứu có hạn nên trong phạm vi luận văn này tôi chỉ so sánh được 2 tiêu chuẩn điển hình hiện đang được sử dụng rộng rãi đó là tiêu chuẩn ISO 9001 và CMM. CMM được phát triển bởi SEI giành cho phần mềm, còn ISO là một seri các tiêu chuẩn được phát triển bởi International Standards Organization dùng chung cho các ngành sản xuất có liên quan đến chất lượng và quản lý qui trình. Vì thế ISO chỉ nêu ra các vấn đề chung nhất về xây dựng và quản lý qui trình mà không qui định cụ thể như mô hình CMM. Do ISO mang tính tổng quát đối với tất cả các ngành nên chỉ đáp ứng được các mục tiêu của mức 2, 3 mà không đáp ứng được các KPA của các mức này. Một tổ chức đạt chứng chỉ CMM 3 thì có thể dễ dàng đạt được chứng chỉ ISO. CMM được tạo ra để giúp đỡ cho việc quản lí các tổ chức phát triển phần mềm. CMM đã được tạo ra thông qua việc phân tích hoạt động của các tổ chức sản xuất phần mềm được quản lí tốt. Đó là các tổ chức cung cấp phần mềm cho khách hàng đúng hạn mà không vượt quá ngân sách và nhân lực. Các lợi ích đem lại khi áp dụng ISO: Có một hệ thống quản lý hiệu quả giúp Doanh nghiệp kiểm soát được chất lượng sản phẩm/dịch vụ. Giảm số lượng sản phẩm/dịch vụ không đạt yêu cầu. Tạo dựng niềm tin của khách hàng. Nâng cao uy tín của Công ty trên thị trường
  55. Chứng nhận ISO giúp Công ty vượt qua những rào cản kỹ thuật thâm nhập vào thị trường thế giới. Các lợi ích đem lại khi áp dụng CMM: CMM giúp ích cho công tác quản lý rất nhiều, mọi việc phải được cụ thể hoá thành văn bản chứ không làm việc cảm tính, nói miệng. Đánh giá khả năng và tính chuyên nghiệp của những người cùng tham gia dự án. Quản lý tốt các khâu trong quy trình phát triển phần mềm. Đánh giá được phần mềm. Giảm thiểu được các lỗi tiềm ẩn của phần mềm Giảm thiểu chi phí và công sức của người sử dụng và người sản xuất trong cả quá trình phát triển của phần mềm. Khắc phục, hạn chế những rủi ro có thể xảy ra trong quá trình xây dựng hệ thống phần mềm Các doanh nghiệp quan tâm tới chứng chỉ ISO 9001 thường phân vân về sự tương đồng giữa chuẩn này với tiêu chuẩn CMM của Viện kỹ thuật phần mềm (SEI).Tôi sẽ điểm qua 20 yêu cầu cần phải có trong suốt quy trình phát triển phần mềm mà tiêu chuẩn ISO 9001 đưa ra, đồng thời đối chiếu chúng với chuẩn CMM. ISO 9001 đề cập tới việc duy trì và phát triển phần mềm, bàn rất ít về yêu cầu của hệ thống chất lượng thì chuẩn CMM nhấn mạnh vào nhu cầu cải tiến liên tục quy trình sản xuất. Bên cạnh đó, chuẩn CMM tập trung hoàn toàn vào ngành phần mềm, ISO 9001 có phạm vi rộng hơn, bao gồm phần cứng, phần mềm, vật liệu chế biến và dịch vụ. Xét một cách tổng quan, CMM nêu lên vấn đề cải tiến liên tục quy trình sản xuất rõ ràng hơn so với ISO 9001. * Trách nhiệm quản lý ISO 9001 yêu cầu doanh nghiệp: . Xác định, soạn thảo, thực hiện và duy trì chính sách chất lượng . Xác định trách nhiệm cũng như thẩm quyền của người quản lý, thực hiện và kiểm tra các công tác ảnh hưởng tới chất lượng. . Xác định và cung cấp các nguồn kiểm tra. Người quản lý được chỉ định phải đảm bảo công tác thực hiện và duy trì chương trình chất lượng. CMM bàn tới trách nhiệm trong chính sách chất lượng và quy trình kiểm tra ở mức 2, bao gồm việc xác định rõ trách nhiệm của ban quản lý cấp nhân sự cấp cao và cấp quản lý dự án để giám sát dự án phần mềm, hỗ trợ kiểm tra đảm bảo chất lượng phần mềm, trao quyền lãnh đạo, thiết lập cơ cấu doanh nghiệp hỗ trợ kỹ thuật phần mềm cũng như phân bổ các nguồn lực. Ở
  56. ISO 9001 lại rất mập mờ về vai trò đánh giá đo lường trong hệ thống quản lý chất lượng. * Yêu cầu hệ thống chất lượng ISO 9001 yêu cầu doanh nghiệp thiết lập hệ thống chất lượng được soạn thảo thành văn bản, bao gồm tài liệu hướng dẫn, kế hoạch và thủ tục quản lý chất lượng. ISO 9001 coi hệ thống chất lượng này như một quy trình được lồng ghép trong suốt vòng đời sản phẩm. CMM đề cập tới các hoạt động trong hệ thống chất lượng để kiểm tra sự hợp chuẩn và nhằm quản lý ở mức 2. Các thủ tục và tiêu chuẩn cụ thể mà một dự án phần mềm sử dụng được đề cập trong kế hoạch phát triển phần mềm. Ở mức 3, doanh nghiệp phải xác định được các công tác trong kỹ thuật phần mềm, được kết hợp với quy trình quản lý và cả hai phải được thực hiện một cách thống nhất. Khác với CMM, ISO 9001 bàn tới hệ thống quản lý chất lượng nhưng không đề cập cụ thể tới mối liên hệ giữa việc hỗ trợ của doanh nghiệp với quy trình thực hiện dự án. * Xem xét hợp đồng ISO 9001 yêu cầu các doanh nghiệp đánh giá hợp đồng để xác định xem liệu các yêu cầu có rõ ràng không, có phù hợp với gói thầu và liệu có khả thi hay không? ISO 9001 không nêu rõ vai trò của nhà cung cấp khi hoạt động như một khách hàng của nhà thầu. CMM nói tới việc soạn thảo hợp đồng ở mức 2. Doanh nghiệp phải soạn thảo và đánh giá nhu cầu phần mềm của khách hàng, đồng thời phải làm rõ những điểm còn thiếu hoặc không rõ ràng. Cũng ở mức này, CMM mô tả đề xuất, báo cáo khối lượng công việc hoàn thành cũng như kế hoạch phát triển phần mềm thiết lập các cam kết bên ngoài (hợp đồng) khi đó nhóm kỹ thuật phần mềm và ban quản trị sẽ đánh giá. * Kiểm soát khâu thiết kế ISO 9001 yêu cầu doanh nghiệp thiết lập các thủ tục để kiểm tra, kiểm soát quy trình thiết kế, bao gồm: . Các công tác lập kế hoạch, thiết kế và phát triển . Xác định những điểm tương đồng giữa kỹ thuật và cơ cấu doanh nghiệp. . Xác định các yếu tố đầu vào và đầu ra . Đánh giá, kiểm tra, phê chuẩn thiết kế. . Kiểm soát những thay đổi trong khâu thiết kế.