Tổng quan nghiên cứu

Trong kỹ nghệ phần mềm hiện đại, chi phí phát triển phần mềm chiếm từ 70% đến 85% tổng ngân sách của một hệ thống công nghệ thông tin hoàn chỉnh. Tuy nhiên, các khảo sát thực tế chỉ ra rằng có tới hơn 50% dự án phần mềm rơi vào tình trạng chậm tiến độ hoặc bội chi ngân sách nghiêm trọng do công tác ước lượng ban đầu chủ yếu dựa vào phán đoán cảm tính và kinh nghiệm chủ quan. Vấn đề cốt lõi mà nghiên cứu tập trung giải quyết là sự thiếu hụt các mô hình định lượng chuẩn xác và công cụ tự động hóa trong việc dự toán kích thước, công sức (effort), thời gian hoàn thành (schedule) cũng như đánh giá toàn diện chất lượng phần mềm sau khi phát triển.

Mục tiêu cụ thể của luận văn là hệ thống hóa và so sánh chuyên sâu các kỹ thuật ước lượng kinh điển và hiện đại, bao gồm phương pháp Phân tích Điểm chức năng (Function Point Analysis - FPA), phương pháp Điểm ca sử dụng (Use Case Points - UCP), mô hình COCOMO II và mô hình đánh giá nỗ lực bảo trì phần mềm (SMPEEM); đồng thời thiết lập khung tiêu chí đánh giá chất lượng phần mềm dựa trên các độ đo khoa học chuẩn mực. Trên cơ sở đó, tác giả tiến hành xây dựng một chương trình ứng dụng tự động hóa việc tính toán các chỉ số điểm chức năng và điểm ca sử dụng, phục vụ trực tiếp cho hoạt động quản lý dự án.

Phạm vi nghiên cứu được thực hiện tại Trường Đại học Công nghệ – Đại học Quốc gia Hà Nội, tập trung vào các dự án phần mềm quản lý thông tin (MIS) và các hệ thống phát triển theo phương pháp hướng đối tượng. Ý nghĩa của luận văn được thể hiện qua việc cung cấp phương pháp luận chuẩn xác giúp các tổ chức giảm thiểu sai lệch dự toán chi phí từ mức 30-40% xuống dưới 15%, tối ưu hóa năng suất lập trình đạt mức chuẩn 5,5 FP/người-tháng và kiểm soát rủi ro tài nguyên chặt chẽ trong suốt vòng đời dự án.

Cơ sở lý thuyết và phương pháp nghiên cứu

Khung lý thuyết áp dụng

Nghiên cứu được xây dựng dựa trên ba trụ cột lý thuyết định lượng then chốt trong kỹ nghệ phần mềm:

Thứ nhất là Mô hình Phân tích Điểm chức năng (Function Point Analysis - FPA) do Allan Albrecht đề xuất năm 1979 và được chuẩn hóa bởi Hiệp hội Quốc tế Người sử dụng Điểm chức năng (IFPUG phiên bản 4.1). FPA đo lường kích thước phần mềm từ góc nhìn người dùng thông qua 5 kiểu thành phần cơ sở: 2 kiểu chức năng dữ liệu tĩnh gồm tệp logic nội bộ (ILF) và tệp giao tiếp ngoài (EIF); 3 kiểu chức năng giao tác động gồm dữ liệu đầu vào ngoài (EI), dữ liệu đầu ra ngoài (EO) và truy vấn ngoài (EQ). Quy mô chưa điều chỉnh (UFP) sau đó được kết hợp với Hệ số điều chỉnh giá trị (Value Adjustment Factor - VAF), tính toán dựa trên 14 đặc trưng chung của hệ thống (GSC) với mức ảnh hưởng từ 0 đến 5, xác định khoảng biến thiên VAF từ 0,65 đến 1,35 theo công thức: VAF = 0,65 + 0,01 * Tổng(DI).

Thứ hai là Phương pháp Điểm ca sử dụng (Use Case Points - UCP) do Gustav Karner giới thiệu năm 1993, phát triển chuyên biệt cho phương pháp hướng đối tượng với ngôn ngữ mô hình hóa thống nhất UML. Kích thước hệ thống được xác định thông qua Trọng số tác nhân chưa điều chỉnh (UAW, phân loại từ 1 đến 3) và Trọng số ca sử dụng chưa điều chỉnh (UUCW, phân loại từ 5 đến 15 dựa trên số lượng kịch bản hoặc giao dịch). Kết quả điểm chưa điều chỉnh UUCP = UAW + UUCW được hiệu chỉnh qua 13 nhân tố kỹ thuật (TCF) và 8 nhân tố môi trường (EF) để tính ra AUCP, quy đổi thành nỗ lực phát triển theo định mức chuẩn 20 giờ-người cho mỗi điểm UCP.

Thứ ba là Khung lý thuyết đánh giá chất lượng phần mềm toàn diện, kết hợp mô hình tham số COCOMO II của Barry Boehm, độ đo khoa học phần mềm của Maurice Halstead, độ đo độ phức tạp chu trình của Thomas McCabe và mô hình đánh giá nỗ lực dự án bảo trì phần mềm (SMPEEM). Các khái niệm trọng tâm bao gồm: Điểm chức năng chưa điều chỉnh (UFP), Điểm ca sử dụng chưa điều chỉnh (UUCP), Nhân tố độ phức tạp kỹ thuật (TCF), Nhân tố môi trường (EF), và Đơn vị nỗ lực người-tháng (Person-Month - PM).

Phương pháp nghiên cứu

Nghiên cứu sử dụng nguồn dữ liệu thực nghiệm gồm 32 dự án bảo trì phần mềm nội bộ (cỡ mẫu N = 32 với bậc tự do df = 31) kết hợp cùng tập dữ liệu kiểm thử từ các ca nghiên cứu thực tế như hệ thống trạm bán hàng tự động và các phân hệ quản lý thông tin doanh nghiệp.

Phương pháp chọn mẫu có chủ đích (purposive sampling) được áp dụng đối với 32 dự án nhằm đảm bảo tính đồng nhất về môi trường phát triển, loại trừ các biến thiên ngoại lai từ việc thuê ngoài hoặc công cụ tự động của bên thứ ba. Phương pháp phân tích bao gồm kỹ thuật phân rã cấu trúc theo phương pháp chia để trị (Work Breakdown Structure - WBS), kết hợp phương pháp phân tích hồi quy phi tuyến theo hàm số mũ để xác định hàm nỗ lực bảo trì: Nỗ lực = a * (Quy mô)^b, và phân tích thống kê suy luận T-test ở khoảng tin cậy 95%. Đồng thời, nghiên cứu áp dụng phân bố xác suất Beta để tính giá trị kỳ vọng cho biến ước lượng theo công thức E = (a + 4m + b)/6, trong đó a, m, b lần lượt là các giá trị ước lượng lạc quan, có khả năng nhất và bi quan.

Lý do lựa chọn phương pháp phân tích này là nhằm thiết lập cơ chế kiểm tra chéo (cross-checking) đa chiều giữa ít nhất 2 kỹ thuật độc lập (FP và UCP), khắc phục triệt để tính sai lệch của từng phương pháp đơn lẻ và đảm bảo tính vững chắc về mặt toán học.

Kết quả nghiên cứu và thảo luận

Những phát hiện chính

Quá trình phân tích và thử nghiệm thực nghiệm đã mang lại 4 phát hiện khoa học quan trọng:

Một là, việc áp dụng đồng thời cơ chế kiểm tra chéo giữa kỹ thuật Function Points và Use Case Points giúp triệt tiêu độ lệch ước lượng tới hơn 25% so với phương pháp phán đoán truyền thống. Điển hình tại ca nghiên cứu hệ thống trạm bán đồ uống tự động, mô hình xác định tổng điểm chức năng chưa điều chỉnh UFP đạt chính xác 50 điểm (gồm 1 EI mức Thấp = 3, 1 EO mức Trung bình = 5, 2 EQ mức Cao = 12, 3 EIF mức Thấp = 15, 1 ILF mức Cao = 15), với tổng mức độ ảnh hưởng của 14 nhân tố hệ thống đạt 52 điểm, mang lại giá trị điểm chức năng sau hiệu chỉnh FP = 50 * (0,65 + 0,01 * 52) = 58,5 (làm tròn đạt 59 FP).

Hai là, thông qua phân tích dữ liệu 32 dự án trong mô hình SMPEEM với khoảng tin cậy 95%, nghiên cứu đã định lượng hóa chính xác tỷ trọng ảnh hưởng của 3 nhóm nhân tố bảo trì: Nhóm "Kỹ năng của kỹ sư" (gồm tri thức miền ứng dụng KAD, hiểu biết ngôn ngữ FPL, kinh nghiệm hệ thống ESS) chiếm trọng số tác động cao nhất là 36,46%; nhóm "Đặc tính kỹ thuật" (kết cấu module SSS, tính độc lập ISM, tính dễ thay đổi CRP, khả năng tái sử dụng RLS) chiếm 33,12%; và nhóm "Môi trường bảo trì" (cập nhật tài liệu DOC, tuân thủ tiêu chuẩn SES, độ dễ thử nghiệm TST) chiếm 30,42%.

Ba là, định mức nỗ lực cho một điểm Use Case được kiểm chứng thực tế dao động trong khoảng từ 15 đến 30 giờ-người tùy thuộc vào độ ổn định của môi trường phát triển, với giá trị trung bình chuẩn xác định ở mức 20 giờ-người/UCP. Đối với một ca thử nghiệm quy mô 81 UUCP trong điều kiện TCF = 1 và EF = 1, tổng nỗ lực phát triển được xác định chính xác là 1.620 giờ-người.

Bốn là, chương trình phần mềm tự động hóa do tác giả xây dựng đã tự động hóa 100% quy trình tính toán các bảng tham chiếu trọng số cho cả hai phương pháp FPA và UCP, rút ngắn thời gian lập dự toán kích thước từ 3-5 ngày làm việc thủ công xuống chỉ còn dưới 15 phút với độ chính xác đạt trên 90%.

Thảo luận kết quả

Nguyên nhân chính dẫn đến sai số nghiêm trọng trong các phương pháp truyền thống là do sự phụ thuộc vào chỉ số dòng mã (LOC), vốn chỉ có thể xác định chính xác sau khi hoàn thành giai đoạn lập trình và chịu ảnh hưởng nặng nề bởi phong cách viết mã của từng cá nhân. Ngược lại, phương pháp FP và UCP khắc phục được điểm yếu này nhờ lượng hóa các yêu cầu chức năng trừu tượng ngay từ sơ đồ ca sử dụng và các tệp dữ liệu logic ở giai đoạn phân tích đặc tả.

Dữ liệu kết quả trong nghiên cứu có thể được biểu diễn một cách trực quan qua biểu đồ phân tán (scatter plot) thể hiện mối quan hệ hàm mũ phi tuyến giữa điểm chức năng đã hiệu chỉnh và nỗ lực bảo trì thực tế, kết hợp với bảng ma trận đối chiếu 5 kiểu chức năng FPA (với các ngưỡng tham chiếu DET, RET, FTR) và bảng phân loại 3 cấp độ tác nhân/ca sử dụng trong UCP.

So sánh với các nghiên cứu quốc tế của Barry Boehm (COCOMO II) và Gustav Karner, kết quả của luận văn hoàn toàn tương thích về mặt xu hướng, đồng thời chứng minh rằng việc điều chỉnh 10 nhân tố VAF trong mô hình SMPEEM là cực kỳ phù hợp với đặc thù phát triển và bảo trì phần mềm tại các doanh nghiệp Việt Nam, nơi tài liệu kỹ thuật thường xuyên bị thiếu hụt hoặc cập nhật không đồng bộ.

Đề xuất và khuyến nghị

Dựa trên các kết quả nghiên cứu thực nghiệm, luận văn đưa ra 4 khuyến nghị hành động cụ thể nhằm nâng cao hiệu quả quản lý dự án phần mềm:

Thứ nhất, ban hành và áp dụng bắt buộc quy trình ước lượng dự án 8 bước chuẩn hóa (xác định kích thước, ước lượng nỗ lực/chi phí, ước lượng lịch trình, tính toán tài nguyên phần cứng/phần mềm, quản lý rủi ro định kỳ, kiểm tra xác thực, theo dõi tiến độ và cải tiến quy trình); yêu cầu sử dụng song song tối thiểu 2 kỹ thuật định lượng độc lập (FP và UCP) để kiểm tra chéo, nhằm mục tiêu đưa tỷ lệ sai lệch dự toán chi phí xuống dưới mức 10% trong vòng 6 tháng triển khai. Trách nhiệm thực hiện thuộc về Ban Quản lý Dự án (PMO) và các Giám đốc Dự án.

Thứ hai, thiết lập và duy trì cơ sở dữ liệu số liệu lịch sử (Historical Project Database) của tổ chức để lưu trữ định mức năng suất (LOC/người-tháng, FP/người-tháng, giờ-người/UCP) và tỷ lệ lỗi trên 1.000 dòng mã (KLOC); đặt mục tiêu số hóa 100% dữ liệu của các dự án đã hoàn thành trong lộ trình 12 tháng. Trách nhiệm thực hiện do Bộ phận Đảm bảo Chất lượng (SQA) chủ trì.

Thứ ba, tích hợp công cụ ước lượng tự động hóa vào giai đoạn lập hồ sơ thầu và đàm phán hợp đồng kinh tế, đảm bảo 100% các cam kết về ngân sách và thời hạn bàn giao đều có căn cứ định lượng khoa học, giảm thiểu rủi ro tranh chấp tài chính trong thời hạn 3 tháng. Trách nhiệm thực hiện thuộc về Khối Kỹ thuật phối hợp cùng Phòng Kinh doanh.

Thứ tư, tổ chức định kỳ 2 quý một lần các khóa đào tạo nâng cao năng lực cho ít nhất 80% đội ngũ kỹ sư phân tích nghiệp vụ (BA) và quản trị dự án (PM) về kỹ thuật nhận diện tác nhân, phân tích ca sử dụng UML và kỹ năng đánh giá 14 nhân tố kỹ thuật hệ thống theo tiêu chuẩn IFPUG. Trách nhiệm thực hiện thuộc về Phòng Đào tạo và Phát triển Nhân sự.

Đối tượng nên tham khảo luận văn

Luận văn là tài liệu tham khảo chuyên môn sâu sắc và thiết thực cho 4 nhóm đối tượng chính sau:

Nhóm thứ nhất là Quản trị viên dự án (Project Managers - PM) và Giám đốc kỹ thuật (CTO): Luận văn cung cấp phương pháp luận chuẩn xác để lập kế hoạch nguồn lực, phân bổ nhân sự theo các khung thời gian cửa sổ (time windows), đồng thời chủ động kiểm soát các rủi ro trượt tiến độ và bội chi ngân sách ngay từ pha khởi động dự án.

Nhóm thứ hai là Kỹ sư phân tích nghiệp vụ (Business Analysts - BA) và Chuyên viên định giá phần mềm: Khai thác bảng chuẩn hóa trọng số UAW, UUCW và 14 đặc trưng GSC để chuyển hóa các yêu cầu nghiệp vụ phức tạp của khách hàng thành các đơn vị đo lường định lượng minh bạch, tạo cơ sở vững chắc cho việc lập dự toán chi phí hợp đồng.

Nhóm thứ ba là Chuyên viên đảm bảo chất lượng (Software Quality Assurance - SQA): Ứng dụng các độ đo khoa học phần mềm của Halstead, độ phức tạp chu trình McCabe và mô hình đánh giá 10 nhân tố chất lượng để xây dựng bộ chỉ số kiểm thử, giám sát độ tin cậy và đo lường tần suất bảo trì của sản phẩm phần mềm.

Nhóm thứ tư là Giảng viên, nghiên cứu sinh và học viên cao học chuyên ngành Công nghệ thông tin / Kỹ thuật phần mềm: Sử dụng làm tài liệu học thuật giá trị phục vụ nghiên cứu lý thuyết đo lường phần mềm, các mô hình toán học hồi quy nỗ lực và phương pháp thiết kế công cụ phần mềm tự động hóa tính toán.

Câu hỏi thường gặp

Tại sao phương pháp Function Points lại vượt trội hơn phương pháp đếm dòng mã LOC trong giai đoạn đầu của dự án? Phương pháp LOC phụ thuộc hoàn toàn vào ngôn ngữ lập trình cụ thể và chỉ có thể đo lường chính xác khi đã hoàn thành mã hóa. Ngược lại, Function Points định lượng kích thước phần mềm dựa trên 5 nhóm chức năng nghiệp vụ của người dùng (ILF, EIF, EI, EO, EQ) ngay từ khâu phân tích yêu cầu, hoàn toàn độc lập với công nghệ và công cụ lập trình, giúp dự toán chi phí sớm với độ chính xác cao.

Phương pháp Use Case Points có ưu thế gì nổi bật khi áp dụng cho các dự án hướng đối tượng? Use Case Points khai thác trực tiếp các biểu đồ ca sử dụng UML – công cụ mô hình hóa chuẩn mực trong phát triển hướng đối tượng. Bằng cách định lượng số lượng tác nhân tương tác (UAW), số lượng kịch bản giao dịch (UUCW), kết hợp với 13 nhân tố kỹ thuật (TCF) và 8 nhân tố môi trường (EF), UCP cho phép tính toán nỗ lực theo định mức 20 giờ-người/UCP một cách trực quan, nhất quán và nhanh chóng.

Mô hình SMPEEM giải quyết vấn đề ước lượng bảo trì phần mềm như thế nào? Mô hình SMPEEM khắc phục nhược điểm của phương pháp FPA truyền thống bằng cách tái cấu trúc 10 nhân tố điều chỉnh giá trị VAF chuyên biệt cho bảo trì, phân bổ theo 3 nhóm trọng số khoa học: Kỹ năng kỹ sư (36,46%), Đặc tính kỹ thuật (33,12%) và Môi trường bảo trì (30,42%). Từ đó, mô hình giúp dự báo chính xác nỗ lực sửa đổi và nâng cấp phần mềm theo hàm số mũ nỗ lực thực tế.

Làm thế nào để các nhà quản lý kiểm tra chéo và giảm thiểu sai số trong ước lượng phần mềm? Quy trình quản lý chuẩn đòi hỏi áp dụng đồng thời tối thiểu 2 kỹ thuật ước lượng độc lập, chẳng hạn như kết hợp phương pháp phân rã chức năng (FP hoặc UCP) với mô hình thực nghiệm (COCOMO II). Khi kết quả giữa hai phương pháp có sự chênh lệch vượt quá 20%, người lập kế hoạch bắt buộc phải rà soát lại phạm vi phân tích yêu cầu và điều chỉnh các hệ số điều chỉnh độ phức tạp môi trường.

Những tiêu chuẩn cốt lõi nào được sử dụng để đánh giá toàn diện chất lượng một sản phẩm phần mềm? Chất lượng phần mềm được đánh giá đa chiều qua 10 tiêu chuẩn khoa học trọng yếu: Tính đúng đắn (đo lường bằng số khiếm khuyết trên 1 KLOC), Tính bảo trì, Tính toàn vẹn (đo bằng xác suất chống lại các mối đe dọa an toàn), Tính khoa học, Tính hữu hiệu, Tính sáng tạo, Tính đầy đủ, Tính độc lập đối với thiết bị, Tính phổ dụng và Tính thân thiện dựa trên thời gian tiếp cận của người dùng.

Kết luận

  • Hệ thống hóa toàn diện cơ sở lý thuyết và phương pháp luận của các mô hình ước lượng định lượng tiên tiến gồm Function Points, Use Case Points, COCOMO II và Putnam.
  • Kiểm chứng và xác lập thành công mô hình SMPEEM với 10 nhân tố điều chỉnh VAF chuyên biệt cho hoạt động bảo trì phần mềm dựa trên dữ liệu thực nghiệm 32 dự án.
  • Xây dựng khung đánh giá chất lượng phần mềm đa chiều tích hợp các độ đo khoa học Halstead, độ phức tạp McCabe và chỉ số khiếm khuyết trên 1.000 dòng mã.
  • Phát triển hoàn chỉnh công cụ phần mềm tự động hóa tính toán FP và UCP, giúp tối ưu hóa thời gian lập dự toán từ nhiều ngày xuống dưới 15 phút.
  • Chuẩn hóa quy trình quản lý dự án phần mềm 8 bước với cơ chế kiểm tra chéo bắt buộc nhằm giảm thiểu tối đa rủi ro bội chi ngân sách và trễ hạn bàn giao.

Đóng góp lớn nhất của luận văn là đã chuyển hóa các mô hình toán học đo lường phần mềm phức tạp thành quy trình thực tiễn và công cụ tự động hóa có tính ứng dụng cao, hỗ trợ đắc lực cho các doanh nghiệp công nghệ thông tin trong lộ trình 3 đến 6 tháng chuyển đổi sang quản trị dự án theo chuẩn định lượng quốc tế. Hãy khai phá và áp dụng ngay các kỹ thuật ước lượng định lượng chuẩn mực này để tối ưu hóa nguồn lực và khẳng định chất lượng vượt trội cho các dự án phần mềm của bạn!