Luận văn: Tối ưu tham số mô hình COCOMO để ước lượng nỗ lực phần mềm

Luận văn thạc sĩ trình bày phương pháp tối ưu tham số trong mô hình COCOMO II, giúp ước lượng nỗ lực phát triển phần mềm chính xác và hiệu quả.

Trường đại học

Đại học Đà Nẵng

Chuyên ngành

Khoa Học Máy Tính

Người đăng

Ẩn danh

Thể loại

Luận Văn Thạc Sĩ

2017

71
0
0

Phí lưu trữ

30 Point

Tóm tắt

I. Bí quyết ước lượng chi phí phần mềm chính xác với COCOMO

Trong lĩnh vực công nghệ phần mềm, ước lượng chi phí phần mềm là một trong những hoạt động nền tảng, quyết định sự thành bại của một dự án. Việc dự báo chính xác nỗ lực, thời gian và chi phí không chỉ giúp các nhà quản lý lập kế hoạch hiệu quả mà còn đảm bảo tính khả thi và kiểm soát rủi ro. Giữa nhiều mô hình được đề xuất, Mô hình Chi phí Xây dựng (Constructive Cost Model - COCOMO) nổi lên như một công cụ mạnh mẽ và được công nhận rộng rãi. Đặc biệt, phiên bản mô hình COCOMO II được phát triển để đáp ứng các yêu cầu của dự án phần mềm hiện đại, mang lại một khuôn khổ chi tiết để ước tính nỗ lực phần mềm. Mô hình này không chỉ dựa trên kích thước mã nguồn (KLOC - Kilo Lines of Code) mà còn xem xét hàng loạt các yếu tố ảnh hưởng khác, từ đặc tính sản phẩm, nền tảng phần cứng, đến năng lực nhân sự và thuộc tính dự án. Bằng cách cung cấp một phương trình toán học có cấu trúc, COCOMO II cho phép các nhà quản lý dự án phần mềm chuyển đổi các đặc điểm định tính của dự án thành các ước tính định lượng. Điều này tạo ra một cơ sở vững chắc để ra quyết định, phân bổ nguồn lực và thiết lập các mốc thời gian thực tế. Sự ra đời của COCOMO II đã góp phần đáng kể vào việc nâng cao độ chính xác trong dự toán chi phí, trở thành một chuẩn mực trong ngành.

1.1. COCOMO là gì Nền tảng của việc ước tính nỗ lực

COCOMO, viết tắt của Constructive Cost Model, là một mô hình thuật toán được sử dụng để ước lượng chi phí phần mềm, nỗ lực và lịch trình. Được phát triển ban đầu bởi Barry Boehm vào năm 1981, mô hình này dựa trên dữ liệu từ các dự án lịch sử để đưa ra các công thức hồi quy. Phiên bản kế thừa, mô hình COCOMO II, được giới thiệu vào năm 1995 để giải quyết những thay đổi trong quy trình phát triển phần mềm, chẳng hạn như việc sử dụng lại mã nguồn, phát triển hướng đối tượng và các công cụ CASE. Cốt lõi của COCOMO II là phương trình PM = A * (SIZE)^E * Π(EMi), trong đó PM là nỗ lực tính bằng người-tháng, SIZE là kích thước phần mềm (KLOC), và EAF (sản phẩm của các nhân tố nỗ lực EMi) là Effort Adjustment Factor (Hệ số điều chỉnh nỗ lực). Mô hình này cung cấp ba cấp độ chi tiết: Application Composition, Early Design, và Post-Architecture, cho phép áp dụng linh hoạt ở các giai đoạn khác nhau của dự án.

1.2. Vai trò của mô hình COCOMO II trong quản lý dự án

Trong quản lý dự án phần mềm, COCOMO II đóng vai trò là một công cụ hỗ trợ ra quyết định chiến lược. Nó giúp các nhà quản lý trả lời các câu hỏi quan trọng như: "Dự án này cần bao nhiêu nỗ lực?", "Chi phí là bao nhiêu?" và "Khi nào có thể hoàn thành?". Bằng cách lượng hóa tác động của 17 các yếu tố chi phí COCOMO (Cost Drivers) và 5 yếu tố quy mô, mô hình cho phép phân tích "what-if" (điều gì sẽ xảy ra nếu). Ví dụ, nhà quản lý có thể đánh giá việc đầu tư vào công cụ phần mềm tốt hơn (yếu tố TOOL) hoặc tuyển dụng nhân sự có kinh nghiệm hơn (yếu tố PCAP, AEXP) sẽ ảnh hưởng đến nỗ lực tổng thể như thế nào. Điều này giúp tối ưu hóa việc phân bổ ngân sách và nguồn lực, đồng thời xác định các rủi ro tiềm ẩn liên quan đến lịch trình hoặc chi phí, qua đó nâng cao tỷ lệ thành công của dự án.

II. Thách thức khi áp dụng mô hình COCOMO II truyền thống

Mặc dù mô hình COCOMO II là một công cụ ước lượng mạnh mẽ, phiên bản gốc của nó bộc lộ những hạn chế đáng kể khi áp dụng vào các dự án phần mềm đa dạng ngày nay. Thách thức lớn nhất đến từ bản chất tĩnh của các tham số cốt lõi trong công thức. Các hệ số như A, B, C, D trong các phương trình ước lượng nỗ lực và thời gian được coi là các hằng số, hiệu chỉnh dựa trên một bộ dữ liệu lịch sử dự án cụ thể. Tuy nhiên, môi trường phát triển phần mềm luôn biến đổi với sự ra đời của các ngôn ngữ lập trình mới, quy trình linh hoạt (Agile), và kiến trúc microservices. Một bộ tham số cố định không thể phản ánh chính xác sự đa dạng này, dẫn đến sai lệch lớn giữa ước tính và thực tế. Luận văn của Đặng Quang Văn (2017) đã chỉ rõ: "Những hằng số này đã không được tối ưu hóa, và do đó tính chính xác của ước lượng đối với các dự án không cao so với nỗ lực và thời gian thực tế". Sự thiếu chính xác này gây ra rủi ro nghiêm trọng cho quản lý dự án phần mềm, từ việc lập ngân sách sai, cam kết phi thực tế với khách hàng, đến việc gây áp lực không cần thiết lên đội ngũ phát triển. Do đó, nhu cầu về việc cải tiến COCOMO trở nên cấp thiết hơn bao giờ hết.

2.1. Hạn chế của các tham số cố định trong công thức COCOMO

Công thức cơ bản của COCOMO II, PM = A * (SIZE)^E, chứa các tham số A và E (được tính từ B và các yếu tố quy mô) được xem là không đổi. Tham số A (hiện tại là 2.94) và B (hiện tại là 0.91) được hiệu chỉnh từ các bộ dữ liệu trong quá khứ, chủ yếu là các dự án theo mô hình thác nước. Khi áp dụng cho các dự án Agile, dự án sử dụng công nghệ mới, hoặc các dự án trong những lĩnh vực đặc thù, các giá trị này không còn phù hợp. Sự cứng nhắc này không tính đến sự khác biệt về văn hóa tổ chức, quy trình làm việc, và năng suất của từng đội ngũ. Kết quả là mô hình có xu hướng ước lượng quá cao hoặc quá thấp, làm giảm độ tin cậy của nó như một công cụ lập kế hoạch. Việc hiệu chỉnh mô hình COCOMO không chỉ là một cải tiến mà là một yêu cầu bắt buộc để duy trì tính phù hợp của nó.

2.2. Nhu cầu cấp thiết về việc cải tiến COCOMO cho dự án hiện đại

Các dự án phần mềm hiện đại có đặc điểm phức tạp và biến động cao. Các phương pháp như Function Point Analysis hay Use Case Point đang được sử dụng để đo lường kích thước phần mềm một cách linh hoạt hơn KLOC. Hơn nữa, sự trỗi dậy của học máy trong ước lượng phần mềm đã mở ra những khả năng mới. Các mô hình truyền thống như COCOMO cần được "thông minh hóa" để có thể học hỏi từ dữ liệu của chính tổ chức. Việc cải tiến COCOMO bằng cách tối ưu hóa các tham số của nó dựa trên dữ liệu lịch sử dự án nội bộ sẽ giúp tạo ra một mô hình tùy chỉnh, phản ánh chính xác hơn năng lực và bối cảnh của tổ chức. Điều này không chỉ tăng độ chính xác của ước lượng mà còn biến COCOMO từ một mô hình tĩnh thành một công cụ học hỏi và thích ứng liên tục, đáp ứng yêu cầu của ngành công nghệ phần mềm.

III. Phương pháp tối ưu tham số COCOMO Hướng đi đột phá

Để giải quyết những hạn chế của mô hình COCOMO truyền thống, hướng tiếp cận đột phá là áp dụng các thuật toán tối ưu hóa để hiệu chỉnh các tham số A, B, C và D. Thay vì chấp nhận các giá trị hằng số, phương pháp này coi việc tìm ra bộ tham số tốt nhất là một bài toán tối ưu. Mục tiêu là tìm một bộ giá trị sao cho sai số giữa nỗ lực ước tính bởi mô hình và nỗ lực thực tế từ dữ liệu lịch sử dự án là nhỏ nhất. Cách tiếp cận này biến COCOMO từ một mô hình tĩnh thành một mô hình động, có khả năng "học" từ dữ liệu quá khứ của chính tổ chức. Các kỹ thuật tối ưu hóa hiện đại, đặc biệt là các thuật toán metaheuristic (siêu heuristic) lấy cảm hứng từ tự nhiên, tỏ ra cực kỳ hiệu quả cho bài toán này. Chúng có khả năng khám phá không gian giải pháp rộng lớn để tìm ra các giá trị tham số tiệm cận tối ưu toàn cục. Việc hiệu chỉnh mô hình COCOMO bằng phương pháp này không chỉ là một sự tinh chỉnh nhỏ, mà là một sự thay đổi về bản chất, giúp mô hình thích ứng với đặc thù của từng môi trường phát triển, từ đó cải thiện đáng kể độ chính xác của việc ước tính nỗ lực phần mềm.

3.1. Giới thiệu về thuật toán tối ưu hóa trong công nghệ phần mềm

Một thuật toán tối ưu hóa là một quy trình lặp đi lặp lại nhằm tìm kiếm giá trị đầu vào tốt nhất cho một hàm mục tiêu (fitness function) trong một không gian tìm kiếm xác định. Trong bối cảnh cải tiến COCOMO, hàm mục tiêu thường là một thước đo sai số, chẳng hạn như Độ lớn Trung bình của Lỗi Tương đối (MMRE), và không gian tìm kiếm là tập hợp tất cả các giá trị có thể có của các tham số A, B, C, D. Các thuật toán này có thể được phân loại rộng rãi thành hai nhóm: thuật toán tất định và thuật toán ngẫu nhiên (stochastic). Các thuật toán metaheuristic như Thuật toán Di truyền (Genetic Algorithm), Tối ưu hóa Bầy đàn (PSO), và Cuckoo Search (CS) thuộc nhóm thứ hai và đặc biệt phù hợp cho các bài toán phức tạp nơi không gian giải pháp không lồi và có nhiều điểm tối ưu cục bộ.

3.2. So sánh các kỹ thuật Học máy và thuật toán metaheuristic

Cả học máy trong ước lượng phần mềm và thuật toán metaheuristic đều nhằm mục đích cải thiện độ chính xác. Các kỹ thuật học máy, chẳng hạn như mô hình hồi quy tuyến tính, mạng nơ-ron, hay cây quyết định, học trực tiếp mối quan hệ giữa các đầu vào (kích thước, cost drivers) và đầu ra (nỗ lực) để xây dựng một mô hình dự báo hoàn toàn mới. Ngược lại, các thuật toán metaheuristic không thay thế COCOMO mà hiệu chỉnh mô hình COCOMO bằng cách tối ưu hóa các tham số bên trong nó. Các phương pháp khác như Mờ logic (Fuzzy Logic) cũng được sử dụng để xử lý sự không chắc chắn trong các giá trị đầu vào của COCOMO. Mỗi phương pháp có ưu nhược điểm riêng, nhưng việc sử dụng thuật toán metaheuristic để tối ưu hóa COCOMO giữ lại được cấu trúc và tính diễn giải của mô hình gốc, đồng thời tăng cường độ chính xác của nó.

IV. Hướng dẫn tối ưu COCOMO II bằng thuật toán Cuckoo Search

Một trong những thuật toán tối ưu hóa metaheuristic mới và hiệu quả là Cuckoo Search (CS). Lấy cảm hứng từ hành vi sinh sản ký sinh của loài chim cuckoo (chim cu), thuật toán này được đề xuất bởi Yang và Deb vào năm 2009. Nghiên cứu của Đặng Quang Văn (2017) đã tiên phong áp dụng thuật toán này để tối ưu mô hình COCOMO. CS hoạt động dựa trên ba quy tắc lý tưởng hóa: (1) Mỗi con cuckoo đẻ một quả trứng (một giải pháp) và đặt vào một tổ ngẫu nhiên; (2) Những tổ có trứng chất lượng tốt nhất (giải pháp tốt nhất) sẽ được chuyển sang thế hệ tiếp theo; (3) Một số tổ có trứng bị chim chủ phát hiện (giải pháp xấu) sẽ bị loại bỏ và thay thế bằng các tổ mới ở vị trí ngẫu nhiên. Điểm đặc biệt của CS là việc tạo ra các giải pháp mới được thực hiện thông qua các "chuyến bay Lévy" (Lévy flights) – một loại bước đi ngẫu nhiên có khả năng thực hiện các bước nhảy dài. Điều này giúp thuật toán thoát khỏi các điểm tối ưu cục bộ và khám phá không gian giải pháp một cách hiệu quả hơn. Bằng cách áp dụng CS, quá trình hiệu chỉnh mô hình COCOMO trở nên mạnh mẽ, có khả năng tìm ra bộ tham số cho kết quả ước lượng chi phí phần mềm chính xác hơn.

4.1. Nguyên lý hoạt động của thuật toán Cuckoo Search CS

Thuật toán CS bắt đầu bằng một quần thể các giải pháp ban đầu (các tổ chim). Trong mỗi vòng lặp, một giải pháp mới (trứng cuckoo) được tạo ra bằng cách thực hiện một chuyến bay Lévy từ một giải pháp hiện có. Giải pháp mới này sau đó được so sánh với một giải pháp khác được chọn ngẫu nhiên trong quần thể. Nếu giải pháp mới tốt hơn, nó sẽ thay thế giải pháp cũ. Sau đó, một phần các giải pháp tồi nhất sẽ bị loại bỏ và thay thế bằng các giải pháp mới hoàn toàn. Quá trình này lặp lại cho đến khi đạt được điều kiện dừng (ví dụ: số vòng lặp tối đa). Sự kết hợp giữa việc khai thác cục bộ (local search) và khám phá toàn cục (global search) thông qua chuyến bay Lévy làm cho CS trở thành một thuật toán tối ưu hóa rất mạnh.

4.2. Áp dụng CS để hiệu chỉnh các yếu tố chi phí COCOMO

Để tối ưu mô hình COCOMO, mỗi giải pháp trong thuật toán CS là một vector chứa các tham số cần tối ưu, ví dụ [A, B, C, D]. Hàm chất lượng (fitness function) được định nghĩa là một hàm đo lường sai số ước lượng, thường là MMRE (Mean Magnitude of Relative Error). Thuật toán CS sẽ tìm kiếm trong không gian 4 chiều của các tham số này để tìm ra vector [A, B, C, D] sao cho giá trị MMRE trên bộ dữ liệu lịch sử dự án là nhỏ nhất. Quá trình này giúp điều chỉnh không chỉ công thức nỗ lực mà cả công thức thời gian phát triển (TDEV), tạo ra một mô hình cải tiến COCOMO toàn diện và phù hợp hơn với thực tế.

V. Kết quả thực nghiệm Tối ưu COCOMO trên dữ liệu NASA

Hiệu quả của việc tối ưu mô hình COCOMO bằng thuật toán Cuckoo Search (CS) đã được kiểm chứng thông qua nghiên cứu thực nghiệm. Luận văn của Đặng Quang Văn (2017) đã sử dụng bộ dữ liệu lịch sử dự án phần mềm nổi tiếng của NASA, bao gồm 93 dự án, để thực hiện quá trình hiệu chỉnh và đánh giá. Bộ dữ liệu này chứa các thông tin chi tiết về kích thước (KLOC), 17 các yếu tố chi phí COCOMO (Cost Drivers), 5 yếu tố quy mô, và nỗ lực thực tế (tính bằng người-tháng). Bằng cách áp dụng thuật toán CS, nghiên cứu đã tìm ra một bộ tham số tối ưu mới cho các phương trình của mô hình COCOMO II. Kết quả cho thấy mô hình COCOMO được hiệu chỉnh mang lại độ chính xác ước lượng cao hơn đáng kể so với mô hình gốc. Cụ thể, các chỉ số đánh giá như MMRE (Độ lớn Trung bình của Lỗi Tương đối) giảm xuống và PRED(N) (Tỷ lệ dự đoán có sai số tương đối nhỏ hơn N%) tăng lên. Những con số này chứng minh rằng việc áp dụng các thuật toán tối ưu hóa là một hướng đi đúng đắn và mang lại giá trị thực tiễn cao cho việc quản lý dự án phần mềm.

5.1. Phân tích bộ dữ liệu lịch sử dự án phần mềm NASA

Bộ dữ liệu NASA93 là một trong những bộ dữ liệu công khai được sử dụng rộng rãi nhất để kiểm định các mô hình ước lượng chi phí phần mềm. Nó bao gồm các dự án đa dạng về quy mô, độ phức tạp và lĩnh vực ứng dụng, cung cấp một môi trường thử nghiệm khắc nghiệt nhưng thực tế. Việc sử dụng bộ dữ liệu này đảm bảo rằng kết quả của việc hiệu chỉnh mô hình COCOMO có tính tổng quát và không bị phụ thuộc vào đặc thù của một vài dự án đơn lẻ. Dữ liệu đầu vào bao gồm các giá trị định lượng cho từng yếu tố như RELY (Độ tin cậy), CPLX (Độ phức tạp), và TOOL (Sử dụng công cụ), cùng với nỗ lực thực tế được ghi nhận sau khi dự án kết thúc.

5.2. Đánh giá hiệu quả So sánh trước và sau khi tối ưu hóa

Nghiên cứu đã so sánh kết quả ước lượng của ba mô hình: COCOMO II gốc, COCOMO II tối ưu bằng thuật toán TLBO (Teaching-Learning-Based Optimization), và COCOMO II tối ưu bằng thuật toán Cuckoo Search (CS). Kết quả cho thấy mô hình sử dụng CS đạt hiệu suất tốt nhất. Ví dụ, giá trị PRED(0.30) – tỷ lệ các dự án có sai số ước lượng dưới 30% – của mô hình CS cao hơn đáng kể so với hai mô hình còn lại. Điều này khẳng định rằng cải tiến COCOMO bằng CS không chỉ khả thi về mặt lý thuyết mà còn vượt trội về hiệu quả thực tiễn, giúp các nhà quản lý có được những dự báo đáng tin cậy hơn.

VI. Tương lai của ước lượng phần mềm Tích hợp AI và Học Máy

Thành công của việc tối ưu mô hình COCOMO bằng các thuật toán metaheuristic như Cuckoo Search đã mở ra một kỷ nguyên mới cho lĩnh vực ước lượng chi phí phần mềm. Đây không phải là điểm kết thúc, mà là bước khởi đầu cho một xu hướng lớn hơn: tích hợp sâu rộng Trí tuệ Nhân tạo (AI) và Học máy. Trong tương lai, các mô hình ước lượng sẽ không còn là những công thức tĩnh, mà là các hệ thống thông minh, có khả năng tự động học hỏi và thích ứng. Thay vì chỉ hiệu chỉnh một vài tham số, các kỹ thuật học máy trong ước lượng phần mềm có thể xây dựng các mô hình hoàn toàn mới từ dữ liệu lịch sử dự án, phát hiện ra những mối quan hệ phi tuyến tính phức tạp mà các mô hình thuật toán truyền thống bỏ qua. Sự kết hợp giữa cấu trúc diễn giải của mô hình COCOMO II và sức mạnh dự báo của các thuật toán hiện đại hứa hẹn sẽ tạo ra những công cụ ước lượng chính xác, linh hoạt và đáng tin cậy hơn bao giờ hết, hỗ trợ đắc lực cho việc quản lý dự án phần mềm trong một thế giới công nghệ không ngừng biến đổi.

6.1. Tổng kết ưu điểm của mô hình COCOMO được tối ưu hóa

Mô hình COCOMO sau khi được cải tiến COCOMO bằng các thuật toán tối ưu hóa mang lại ba ưu điểm chính. Thứ nhất, độ chính xác cao hơn rõ rệt, giúp giảm thiểu rủi ro trong lập kế hoạch và ngân sách. Thứ hai, tính tùy biến cao, mô hình có thể được "huấn luyện" trên dữ liệu của riêng từng tổ chức, phản ánh đúng năng lực và quy trình làm việc đặc thù. Thứ ba, nó vẫn giữ được tính minh bạch và dễ hiểu của mô hình gốc, cho phép các nhà quản lý hiểu rõ các yếu tố nào đang tác động đến chi phí, không giống như các mô hình "hộp đen" của một số kỹ thuật học máy phức tạp.

6.2. Hướng phát triển Kết hợp các thuật toán và dữ liệu lớn

Hướng phát triển trong tương lai sẽ tập trung vào việc tạo ra các mô hình lai (hybrid models). Ví dụ, kết hợp Mờ logic (Fuzzy Logic) để xử lý sự không chắc chắn trong việc đánh giá các yếu tố đầu vào, và sử dụng các thuật toán như Thuật toán Di truyền (Genetic Algorithm) hoặc CS để tối ưu hóa các tham số. Hơn nữa, với sự bùng nổ của Dữ liệu lớn (Big Data) từ các nền tảng quản lý dự án như Jira hay GitHub, các mô hình trong tương lai sẽ có thể phân tích một lượng khổng lồ dữ liệu lịch sử dự án theo thời gian thực. Điều này sẽ cho phép việc hiệu chỉnh mô hình COCOMO diễn ra một cách liên tục, tạo ra các ước tính ngày càng chính xác khi dự án tiến triển.

04/10/2025
Luận văn thạc sĩ tối ưu tham số trong mô hình cocomo để ước lượng phát triển phần mềm

Trích đoạn nội dung tài liệu

CHƯƠNG 1 TỔNG QUAN VỀ ƯỚC LƯỢNG NỖ LỰC PHÁT TRIỂN PHẦN MỀMTRONG MÔ HÌNH COCOMO II Trên thế giới, số lượng dự án phần mềm được sản xuất để phục vụ cho nhu cầu xã hội mỗi năm là rất lớn. Tuy nhiên nhiều dự án trong số này có chất lượng không như kỳ vọng của khách hàng hoặc không cung cấp các phần mềm trong phạm vi ngân sách và thời gian hoàn thành. Tại sao quá nhiều dự án phần mềm thất bại? Mặc dù có rất nhiều lý do, một trong những lý do quan trọng nhất là quản lý, ước lượng dự án phần mềm không phù hợp. Ví dụ, các lý do chính làm cho việc ước lượng dự án phần mềm có sự chênh lệch rất lớn so với thực tế là mục tiêu và lập kế hoạch không rõ ràng, không làm chủ công nghệ mới, thiếu phương pháp quản lý dự án, và không quản lý được rủi ro trong dự án.

Chính vì lẽ đó, việc ước lượng là một trong những nhiệm vụ rất quan trọng và phức tạp nhất trong quản lý dự án. Với mục tiêu là để chính xác các nguồn lực cần thiết và lịch trình yêu cầu cho các dự án phát triển phần mềm. Quá trình ước lượng phần mềm bao gồm ước tính kích cỡ của sản phẩm phần mềm sẽ được tạo ra, ước tính các nỗ lực cần thiết, xây dựng sơ đồ dự án ban đầu, và cuối cùng là ước tính toàn bộ chi phí của dự án. Trong vài năm nghiên cứu gần đây, có nhiều phương pháp, mô hình ước lượng chi phí, nỗ lực phần mềm có sẵn bao gồm các phương pháp thuật toán, ước tính bằng phương pháp tương tự, phương pháp đánh giá chuyên gia, mô hình AGILE, CoCoMo.v, đã góp phần đưa ra một kết quả ước lượng chính xác so với thực tế.

ƯỚC LƯỢNG NỖ LỰC VÀ CÁC MÔ HÌNH ƯỚC LƯỢNG NỖ LỰC TRONG PHÁT TRIỂN PHẦN MỀM 1. Ước lượng nỗ lực Ước lượng thường diễn ra sau giai đoạn phân tích, tức là khi người quản lý dự án ước lượng nỗ lực, các yêu cầu đã được hiểu rõ ràng. Các quy trình nghiệp vụ được tổ chức để hỗ trợ phương pháp này. Ví dụ, giai đoạn yêu cầu đôi khi được thực hiện như một dự án riêng biệt với dự án phát triển phần mềm.

Với nhiều phương pháp ước lượng đã được đề xuất, người quản lý dự án có thể lựa chọn bất kỳ phương pháp ước lượng nào miễn là nó thích hợp với tính chất công việc. Đôi khi, người quản lý dự án có thể thực hiện ước lượng bằng cách sử dụng nhiều GVHD: TS. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn 5 phương pháp khác nhau, để xác nhận độ chính xác của một ước lượng được làm bởi một phương pháp chính nào đó hoặc để giảm rủi ro, đặc biệt là khi không có nhiều dữ liệu quá khứ của dự án tương tự. Có 2 phương pháp cơ bản để ước lượng nỗ lực.1 Tiếp cận ước lượng từ dưới lên (Bottom-up estimation approach) Đa số các dự án phát triển phần mềm được thực hiện thì rất khác nhau, sự tiếp cận từ dưới lên cũng được ưa thích và được khuyến khích.

Với phương pháp này sử dụng đơn vị công việc, mặc dù một số hạn chế của chiến lược này đã được khắc phục thông qua việc sử dụng các dữ liệu quá khứ và cơ sở về khả năng của quy trình. Trong phương pháp đơn vị công việc, người quản lý dự án đầu tiên chia phần mềm sắp được phát triển ra thành các chương trình chính hoặc đơn vị chương trình. Mỗi đơn vị chương trình sau đó được phân loại là trung bình, đơn giản hoặc phức tạp dựa trên các tiêu chí nhất định. Đối với mỗi đơn vị phân loại, người quản lý dự án xác định một nỗ lực tiêu chuẩn cần thiết để cài đặt mã và tự kiểm thử (cả hai công việc này được gọi chung là nỗ lực xây dựng.

Nỗ lực xây dựng chuẩn này có thể được xác định từ dữ liệu quá khứ của một dự án tương tự, từ các hướng dẫn nội bộ có sẵn, hoặc kết hợp những khả năng này. Một khi số lượng các đơn vị trong ba loại phức tạp được biết và nỗ lực xây dựng đã được ước lượng cho mỗi chương trình được chọn, số nỗ lực tổng thể cho giai đoạn xây dựng của dự án sẽ được biết. Từ nỗ lực xây dựng, nỗ lực được cần cho các giai đoạn và các hoạt động khác sẽ được xác định bằng một tỷ lệ phần trăm của nỗ lực cài đặt mã. Dựa vào cơ sở về khả năng của quy trình hoặc cơ sở dữ liệu quy trình, phân phối nỗ lực trong dự án được biết.

Nhà quản lý dự án sử dụng tỷ lệ phân phối này để xác định các nỗ lực cho giai đoạn và các hoạt động khác nhau. Từ những ước lượng này, nỗ lực tổng thể cho dự án được biết. Phương pháp này đã sử dụng một hỗn hợp của kinh nghiệm và dữ liệu một cách hợp lý. Nếu không có sẵn dữ liệu phù hợp (ví dụ, nếu bạn đang bắt đầu một kiểu dự án mới), bạn có thể ước lượng nỗ lực xây dựng dựa theo kinh nghiệm sau khi bạn phân tích dự án xong và khi bạn biết số lượng các đơn vị chương trình khác nhau.

Với các ước lượng đã có sẵn, có thể ước lượng cho các hoạt động khác nhau bằng cách sử dụng dữ liệu về tỷ lệ phân phối nỗ lực của các dự án trong quá khứ. Chiến lược này có khả năng tính đến các hoạt động mà chúng thường khó được liệt kê ra ở giai đoạn đầu của dự án, khi thực hiện phân phối nỗ lực cho một dự án, loại khác thường được sử dụng để thực hiện các công việc hoặc nhiệm vụ linh tinh. Quy trình (thủ tục) ước lượng có thể được tóm tắt theo trình tự các bước như sau:  Xác định các chương trình trong hệ thống và phân loại chúng là đơn giản, trung bình, hoặc phức tạp (S/M/C). Càng nhiều càng tốt, hãy sử dụng các định nghĩa chuẩn đã được cung cấp hoặc các định nghĩa của các dự án trong quá khứ.

Lê Thị Mỹ Hạnh HV: Đặng Quang Văn 6  Nếu một cơ sở riêng của dự án tồn tại, hãy tính ra nỗ lực xây dựng trung bình cho các chương trình S/M/C từ cơ sở này.  Nếu cơ sở riêng của dự án chưa tồn tại, hãy sử dụng: loại dự án, công nghệ, ngôn ngữ, và các thuộc tính khác để tìm kiếm các dự án tương tự trong cơ sở dữ liệu quy trình. Hãy sử dụng dữ liệu từ các dự án này để xác định nỗ lực xây dựng cho các chương trình S/M/C.  Nếu không có dự án tương tự tồn tại trong cơ sở dữ liệu quy trình và cũng không có cơ sở riêng của dự án, hãy sử dụng nỗ lực xây dựng trung bình cho các chương trình S/M/C từ cơ sở chung về khả năng quy trình.

 Sử dụng các yếu tố riêng của dự án để tinh chỉnh các nỗ lực xây dựng cho chương trình S/M/C.  Tính ra tổng nỗ lực xây dựng bằng cách sử dụng nỗ lực xây dựng của các chương trình S/M/C và đếm chúng.  Sử dụng tỷ lệ phân phối nỗ lực được đưa ra trong cơ sở về khả năng hoặc trong các dự án tương tự trong cơ sở dữ liệu quy trình, ước lượng nỗ lực cho các công việc/nhiệm vụ khác và nỗ lực tổng.  Tinh chỉnh lại các ước lượng dựa trên các yếu tố riêng của dự án.

Thủ tục này sử dụng cơ sở dữ liệu quy trình và cơ sở về khả năng quy trình. Nếu nhiều dự án có cùng một loại đang được thực hiện, bạn có thể xây dựng một cơ sở về khả năng của dự án. Một cơ sở như vậy là tương tự như các cơ sở chung nhưng chỉ sử dụng dữ liệu từ vài dự án cụ thể. Các cơ sở này đã được nhận thấy là tốt nhất để ước lượng nỗ lực cho một dự án mới có cùng loại đó.

Vì thế, chúng được ưa thích khi được sử dụng cho ước lượng. Bởi vì nhiều yếu tố khác nhau có thể ảnh hưởng đến lượng nỗ lực cần thiết cho một dự án, điều quan trọng khi làm ước lượng là phải xác định được các yếu tố riêng của dự án. Thay vì phân loại các tham số ra thành các mức khác nhau và sau đó xác định mức độ ảnh hưởng lên lượng nỗ lực được cần, phương pháp được nêu ra ở đây cho phép người quản lý dự án xác định tác động của các yếu tố riêng của dự án lên ước lượng. Người quản lý dự án có thể thực hiện điều chỉnh bằng cách sử dụng kinh nghiệm của họ, kinh nghiệm của các thành viên trong nhóm, hoặc dữ liệu từ các dự án được tìm thấy trong cơ sở dữ liệu quy trình.

Lưu ý rằng phương pháp phân loại các chương trình ra thành vài loại và sử dụng số nỗ lực xây dựng trung bình cho mỗi loại được áp dụng để thực hiện ước lượng nỗ lực tổng thể. Tuy nhiên, khi lập kế hoạch chi tiết, người quản lý dự án phân công mỗi đơn vị kích thước cho một thành viên của nhóm để cài đặt mã, và thời gian cho các hoạt động đặc trưng của một đơn vị kích thước sẽ được ghi nhận xem nó có cần thời gian nhiều hơn hoặc ít hơn so với trung bình. Lê Thị Mỹ Hạnh HV: Đặng Quang Văn 7 1.2 Tiếp cận ước lượng từ trên xuống (The top-down estimation approach) Giống như tiếp cận từ dưới lên, ở phương pháp tiếp cận này bắt đầu với một ước lượng kích thước mã nguồn của các phần mềm dùng các điểm chức năng. Các điểm chức năng có thể được đếm bằng cách sử dụng các quy tắc đếm điểm chức năng chuẩn.

Ngoài ra, nếu kích thước được ước lượng bằng LOC, nó có thể được chuyển đổi thành các điểm chức năng. Ngoài ước lượng kích thước mã nguồn, tiếp cận từ trên xuống đòi hỏi phải ước lượng năng suất. Các tiếp cận cơ bản là bắt đầu với các mức năng suất của các dự án tương tự (dữ liệu đã có sẵn trong cơ sở dữ liệu quy trình) hoặc với số liệu năng suất chuẩn (mà dữ liệu về nó đã có sẵn trong baseline về khả năng của quy trình), sau đó phải điều chỉnh lại các mức này nếu cần thiết, để phù hợp với dự án đang được ước lượng. Ước lượng năng suất sau đó được sử dụng để tính ra nỗ lực tổng thể.

Từ nỗ lực tổng thể, nỗ lực cho các giai đoạn khác nhau được ước lượng bằng cách sử dụng các bảng phân phối tỷ lệ phần trăm.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ