FPA là gì? Phương pháp đo lường kích thước phần mềm để đánh giá sự phức tạp và độ phức hợp dự án phần mềm của các doanh nghiệp
Function Points được sử dụng rộng rãi trong ngành công nghiệp phần mềm và đã được chứng minh là một phương pháp hiệu quả để định giá phần mềm. Nó giúp cho những nhà phát triển có thể đưa ra ước tính chi phí và thời gian một cách chính xác hơn, từ đó giúp tối ưu hóa quá trình phát triển và đảm bảo sự thành công của dự án phần mềm trong doanh nghiệp. Vậy FPA là gì? Lợi ích và cách tính như thế nào? Bài viết dưới đây chúng tôi sẽ cung cấp cho các bạn thông tin chi tiết về vấn đề này.
Nội dung
- 1. FPA là gì?
- 2. Các loại FPA
- 3. Lợi ích của FPA
- 4. Ưu điểm và nhược điểm của FPA
- 5. Đặc điểm của Function Point (FP)
- 6. Quy trình tính toán Function Point (FP)
- 6.1. Step 1: Xác định kiểu đo lường
- 6.2. Step 2: Xác định đường biên (boundary) của ứng dụng.
- 6.3. Step 3: Xác định FP thô (UFP)
- 6.4. Step 4: Xác định hệ số cân đối (Value Adjusted Factors)
- 6.5. Step 5: Xác định số lượng Function Points cân đối (Adjusted Function Points)
- 6.6. Cách tính Function Point (FP)
- 6. Ví dụ
- 7. Tổng kết
1. FPA là gì?
FPA (Function Point Analysis) là một phương pháp đo lường kích thước phần mềm, được sử dụng để ước tính số lượng công việc cần thiết để phát triển phần mềm. FPA đo lường kích thước của một hệ thống thông qua việc xác định các chức năng hoặc thành phần của hệ thống, và ước tính độ phức tạp của chúng.
Một chuyên viên FPA sử dụng một bộ quy tắc chuẩn để xác định số lượng các “điểm chức năng” trong một hệ thống phần mềm, dựa trên các yêu cầu chức năng của khách hàng hoặc người sử dụng. Điểm chức năng là một đơn vị đo lường cho mỗi chức năng hoặc tính năng trong hệ thống, và có thể được sử dụng để tính toán thời gian và ngân sách cần thiết để phát triển hệ thống.
Với việc ước tính số lượng điểm chức năng trong một hệ thống, một chuyên viên FPA có thể tính toán số lượng công việc cần thiết để phát triển phần mềm. Từ đó có thể xác định thời gian và ngân sách cần thiết để hoàn thành dự án.
2. Các loại FPA
2.1. Loại chức năng giao dịch
- Đầu vào bên ngoài (EI): Đây là quá trình thu thập đầu vào từ người dùng như thông tin kiểm soát hoặc thông tin kinh doanh và lưu trữ dưới dạng tệp cơ sở dữ liệu logic bên trong/bên ngoài.
- Đầu ra bên ngoài (EO): Đây là quá trình gửi dữ liệu đến người dùng hoặc hệ thống bên ngoài. Dữ liệu có thể được lấy trực tiếp từ các tập cơ sở dữ liệu hoặc có thể trải qua một số xử lý ở cấp hệ thống.
- Truy vấn (EQ): Quá trình này bao gồm cả thành phần đầu vào và đầu ra. Dữ liệu sau đó được xử lý để trích xuất thông tin liên quan từ các tập cơ sở dữ liệu bên trong/bên ngoài.
2.2. Loại chức năng dữ liệu
- Tệp logic bên trong (ILF): Đây là tập hợp dữ liệu có trong hệ thống. Phần lớn dữ liệu sẽ được liên kết với nhau và được thu thập thông qua các đầu vào nhận được từ các nguồn bên ngoài.
- Tệp logic bên ngoài (ELF): Đây là tập hợp dữ liệu từ các tài nguyên bên ngoài hoặc các ứng dụng bên ngoài. Phần lớn dữ liệu từ nguồn bên ngoài được hệ thống sử dụng cho mục đích tham khảo.
Xem thêm:
- Discounted cash flow là gì? Cách tính Discounted cash flow
- Chi phí kinh doanh là gì? Chi tiết về chi phí kinh doanh cho doanh nghiệp FnB
3. Lợi ích của FPA
- Đánh giá chính xác khối lượng công việc và tài nguyên cần thiết. FPA giúp đo lường khối lượng công việc cần thiết để phát triển phần mềm. Từ đó giúp đánh giá tài nguyên cần thiết. Cùng với đó là tối ưu hóa phân bổ tài nguyên, dự trù ngân sách cho dự án phần mềm.
- Tăng tính hiệu quả và năng suất. FPA giúp tăng tính hiệu quả và năng suất trong quá trình phát triển phần mềm bằng cách giúp đánh giá và quản lý tốt hơn khối lượng công việc, giảm thiểu sự lãng phí tài nguyên và tối ưu hóa quy trình làm việc.
- Nâng cao chất lượng phần mềm. FPA giúp đánh giá chất lượng của phần mềm. Sau đó đưa ra các giải pháp cải tiến để tăng cường chất lượng sản phẩm, giảm thiểu rủi ro.
- Hỗ trợ quyết định và lập kế hoạch dự án. FPA cung cấp thông tin chính xác, đáng tin cậy cho các quyết định và lập kế hoạch dự án. Từ đó giúp doanh nghiệp đưa ra các quyết định đúng đắn và tiết kiệm chi phí.
- Tăng tính toàn vẹn của dự án. FPA giúp đảm bảo tính toàn vẹn của dự án phát triển phần mềm bằng cách đo lường khối lượng công việc cần thực hiện, giảm thiểu sự sai sót và xác định các chức năng cần thiết để đáp ứng yêu cầu của khách hàng.
- Tăng tính cạnh tranh của doanh nghiệp. FPA giúp doanh nghiệp tăng tính cạnh tranh bằng cách tăng tính chuyên nghiệp và tối ưu hóa quy trình phát triển phần mềm, giúp nâng cao chất lượng sản phẩm và giảm thiểu chi phí.
4. Ưu điểm và nhược điểm của FPA
4.1. Ưu điểm
- Định lượng chính xác. FPA cung cấp một cách tiếp cận chuẩn xác để đo lường khối lượng công việc cần phát triển phần mềm, bao gồm cả phần mềm được phát triển và được bảo trì.
- Tập trung vào chức năng. FPA tập trung vào việc xác định các chức năng của phần mềm thay vì các tính năng kỹ thuật khác, giúp giảm sự nhầm lẫn và tăng tính toàn vẹn của dự án.
- Độc lập với công nghệ. FPA không phụ thuộc vào công nghệ hay công cụ nào cụ thể, do đó nó có thể được sử dụng trong nhiều loại dự án phần mềm khác nhau.
- Tính linh hoạt. FPA có thể được sử dụng trong cả các dự án phát triển phần mềm lớn và nhỏ, từ các ứng dụng desktop đến các ứng dụng web và di động.
- Giúp tối ưu hóa chi phí. FPA giúp dự đoán chi phí phát triển phần mềm và tối ưu hóa quản lý chi phí, giúp đảm bảo rằng dự án được thực hiện đúng ngân sách.
- Dễ dàng sử dụng. Phương pháp FPA dễ sử dụng và có thể áp dụng cho hầu hết các loại dự án phần mềm. Một người không làm trong lĩnh vực công nghệ thông tin có thể dễ dàng hiểu được kích thước cũng như chức năng của ứng dụng.
4.2. Nhược điểm
- Phụ thuộc vào đánh giá chủ quan của người đánh giá. Việc đánh giá độ phức tạp của các chức năng có thể bị ảnh hưởng bởi sự chủ quan của người đánh giá, dẫn đến kết quả không chính xác.
- Không đưa ra dự đoán chính xác về chất lượng. FPA chỉ đo lường khối lượng công việc cần thực hiện, không đưa ra dự đoán về chất lượng của phần mềm.
- Khó để áp dụng trong các dự án phần mềm độc đáo. FPA là một phương pháp định lượng tiêu chuẩn, do đó khó để áp dụng nó trong các dự án phần mềm độc đáo có yêu cầu riêng biệt hoặc không tương tự với các dự án phần mềm đã được đo lường trước đó.
- Yêu cầu nhiều kiến thức chuyên môn. Để thực hiện FPA, người đánh giá cần có kiến thức chuyên môn về phát triển phần mềm, quản lý dự án và định lượng công việc, do đó đòi hỏi đội ngũ đánh giá có nhiều kinh nghiệm và đào tạo chuyên sâu.
- Không thể đo lường được các yếu tố bên ngoài. FPA không đo lường được các yếu tố bên ngoài ảnh hưởng đến phát triển phần mềm, chẳng hạn như thay đổi trong môi trường hoặc yêu cầu của khách hàng.
5. Đặc điểm của Function Point (FP)
Cùng với việc tìm hiểu FPA là gì, Nhà Hàng Số sẽ giới thiệu cho bạn một số đặc điểm của Function Point.
- FP của một ứng dụng được tính bằng cách đếm số lượng và loại chức năng được sử dụng trong các ứng dụng phần mềm.
- FP mô tả độ phức tạp của hệ thống phần mềm và hiển thị các mốc thời gian của dự án và các yêu cầu về lao động.
- FP là ngôn ngữ lập trình độc lập được sử dụng cho các hệ thống kinh doanh như hệ thống thông tin.
- Nỗ lực cần thiết để xây dựng dự án được xác định bởi khả năng của phần mềm bằng cách sử dụng Phân tích FP.
Các tham số được đề cập đã được đưa ra trọng số đã được xác định theo kinh nghiệm và được liệt kê trong bảng sau:
Thông số đo lường | Thấp | Trung bình | Cao |
1. Số lượng đầu vào bên ngoài (EI) | 3 | 4 | 6 |
2. Số lượng đầu ra bên ngoài (EO) | 4 | 5 | 7 |
3. Số lượng yêu cầu bên ngoài (EQ) | 3 | 4 | 6 |
4. Số lượng tệp nội bộ (ILF) | 7 | 10 | 15 |
5. Số lượng giao diện bên ngoài (EIF) | 5 | 7 | 10 |
Độ phức tạp chức năng này được nhân với các trọng số tương ứng của chúng đối với từng chức năng và các giá trị được cộng lại để xác định UFP (Điểm chức năng chưa điều chỉnh) của hệ thống con.
Thông số đo lường | Đếm | Hệ số cân nặng | |||
Đơn giản | Trung bình | Tổ hợp | |||
Số lượng đầu vào bên ngoài (EI) | 32 | * | 3 | 4 | 6 = 128 |
Số lượng đầu ra bên ngoài (EO) | 60 | * | 4 | 5 | 7 = 300 |
Số lượng yêu cầu bên ngoài (EQ) | 24 | * | 3 | 4 | 6 = 96 |
Số lượng tệp nội bộ (ILF) | 8 | * | 7 | 10 | 15 = 80 |
Số lượng giao diện bên ngoài (EIF) | 2 | * | 5 | 7 | 10 = 40 |
Đếm tổng → | 618 |
6. Quy trình tính toán Function Point (FP)
6.1. Step 1: Xác định kiểu đo lường
Phương pháp FPA bắt đầu bằng việc xác định loại dự án cần được ước lượng. Điều này đặt nền móng cho việc xác định số lượng điểm chức năng (FPs). Do đó, chúng ta có thể xác định số lượng FPs cho một dự án hoàn toàn mới (Development Project FP Count), số lượng FPs cho việc nâng cấp một dự án hiện tại (Enhancement Project FP Count) hoặc chỉ đơn giản là đánh giá lại một dự án đã hoàn thành (Application FP Count).
6.2. Step 2: Xác định đường biên (boundary) của ứng dụng.
Phân biệt xem ứng dụng bạn đang xây dựng là một ứng dụng độc lập hoặc chỉ là một phần trong một gói ứng dụng. Nghĩa là ứng dụng của bạn lấy dữ liệu từ chính nó (tự cung cấp) hay từ ứng dụng khác. Ví dụ, khi một trường đại học muốn gửi thông báo về kết quả của sinh viên cho gia đình, thì hệ thống quản lý điểm thi phải lấy thông tin liên lạc của sinh viên từ hệ thống quản lý sinh viên.
Xác định đường biên của ứng dụng là rất quan trọng và ảnh hưởng đến độ phức tạp của nó. Phát triển một ứng dụng độc lập thường đơn giản hơn so với các ứng dụng trong một gói. Đây tương tự như khi bạn sử dụng tiền của mình so với tiền của người khác. Bạn sẽ cảm thấy tự do hơn và những thay đổi không ảnh hưởng lớn đến việc sử dụng của bạn. Tương tự, trong một dự án, sự trì trệ trong một giai đoạn nào đó sẽ ảnh hưởng lên toàn bộ quá trình phát triển.
Ví dụ, phát triển một phần mềm quản lý nhân viên và tiền lương riêng lẻ thường đơn giản hơn việc phát triển một gói giải pháp ERP cho doanh nghiệp. Dĩ nhiên, việc sử dụng tài nguyên hiệu quả là một lợi thế của ERP, nhưng cũng là một thách thức để quản lý tài nguyên đó một cách hiệu quả.
6.3. Step 3: Xác định FP thô (UFP)
Để xác định Unadjusted Function Points (UFP), cần xem xét hai yếu tố chính: độ phức tạp của dữ liệu và độ phức tạp của xử lý. Điều này giúp xác định số Function Points (FPs) cho dữ liệu (Data Function Points) và xử lý (Transaction Function Points).
Data FPs đại diện cho khía cạnh dữ liệu trong các chức năng cung cấp cho người dùng. Được đặc trưng bởi hai yếu tố: Internal Logical Files (ILFs) và External Interface Files (EIFs). Trước khi chuẩn hóa dữ liệu, cần xác định ILF và EIF.
- ILF là một nhóm dữ liệu được lưu trữ và quản lý trong hệ thống (nằm trong boundary).
- EIF cũng là một nhóm dữ liệu, nhưng được lưu trữ và quản lý bởi ứng dụng khác (ngoài boundary).
Transaction FPs đại diện cho khía cạnh xử lý trong các chức năng cung cấp cho người dùng. Được đặc trưng bởi ba yếu tố: External Inputs (EI), External Outputs (EO), và External Inquiries (EQ).
- EI là quá trình cơ bản trong đó dữ liệu được nhập từ bên ngoài vào trong boundary.
- EO là quá trình cơ bản trong đó dữ liệu phát sinh được xuất từ trong boundary ra bên ngoài. Dữ liệu phát sinh này thường là các dữ liệu được tính toán bằng công thức như tổng, trung bình… Thường không xuất hiện trong ILF hoặc EIF.
- EQ là quá trình cơ bản có tính nhập và xuất dữ liệu. Mục đích nhằm truy xuất dữ liệu từ một hoặc nhiều ILF/EIF. Trong đó, dữ liệu nhập không làm thay đổi dữ liệu trong ILF/EIF và dữ liệu xuất không chứa dữ liệu phát sinh.
6.4. Step 4: Xác định hệ số cân đối (Value Adjusted Factors)
Hệ số cân đối (Value Adjusted Factors) là một tập hợp các yếu tố sử dụng để điều chỉnh giá trị chưa điều chỉnh (Unadjusted Function Points – UFP) để tính toán giá trị đã điều chỉnh (Adjusted Function Points – AFP). Hệ số cân đối được sử dụng để thể hiện các yếu tố ảnh hưởng đến độ phức tạp và chất lượng của ứng dụng.
Có một số hệ thống phân loại hệ số cân đối khác nhau. Như hệ thống COCOMO II và hệ thống đề xuất bởi IFPUG (International Function Point Users Group). Thông thường, các hệ thống phân loại này bao gồm các yếu tố như độ phức tạp của môi trường phát triển, khả năng mở rộng, độ phức tạp của cơ sở dữ liệu, hiệu năng, tính bảo mật và độ tin cậy của hệ thống.
Bằng cách áp dụng các hệ số cân đối vào UFP, ta có thể tính toán AFP. Giá trị AFP thường được sử dụng để so sánh độ phức tạp và quy mô của các dự án phần mềm khác nhau, đồng thời cung cấp một cơ sở để ước lượng công sức và thời gian cần thiết để phát triển một ứng dụng.
6.5. Step 5: Xác định số lượng Function Points cân đối (Adjusted Function Points)
Số lượng Function Points cân đối (Adjusted Function Points – AFP) được xác định bằng cách áp dụng các hệ số cân đối (Value Adjusted Factors – VAF) lên số lượng Function Points chưa điều chỉnh (Unadjusted Function Points – UFP).
Trước khi tính toán AFP, cần xác định các hệ số cân đối phù hợp với dự án phần mềm. Các hệ số cân đối thường được xác định dựa trên đánh giá các yếu tố như độ phức tạp của môi trường phát triển, khả năng mở rộng, độ phức tạp của cơ sở dữ liệu, hiệu năng, tính bảo mật và độ tin cậy của hệ thống.
Sau khi xác định các hệ số cân đối, ta nhân chúng với UFP để tính toán AFP. Số lượng AFP được sử dụng để đo lường quy mô và độ phức tạp của dự án phần mềm. Đồng thời cung cấp một cơ sở để ước lượng công sức, thời gian và tài nguyên cần thiết cho việc phát triển ứng dụng.
6.6. Cách tính Function Point (FP)
FP được tính như sau:
- Điểm đặc trưng được tính theo công thức sau:
FP = Tổng số * [0,65 + 0,01 * ∑(fi)] = Tổng số * CAF
Ở đây, tổng số đã được lấy từ biểu đồ dạng bảng ở trên.
CAF = [0,65 + 0,01 * ∑(fi) ]
∑(fi) = Tổng của tất cả 14 câu hỏi và hiển thị giá trị điều chỉnh độ phức tạp/hệ số-CAF (trong đó i nằm trong khoảng từ 1 đến 14).
CAF thay đổi từ 0,65 đến 1,35 vì:
Khi ∑(fi) = 0 thì CAF = 0,65
Khi ∑(fi) = 70 thì CAF = 0,65 + (0,01 * 70) = 0,65 + 0,7 = 1,35
Ngoài ra ∑(fi) nằm trong khoảng từ 0 đến 70, nghĩa là, 0 <= ∑(fi) <=70
- Kích thước của phần mềm Hệ thống thông tin quản lý (MIS) thường được đo bằng cách sử dụng số liệu FP.
Tuy nhiên, các điểm chức năng được tạo ở trên không được điều chỉnh (UFP). Những (UFP) này của một hệ thống con được cải thiện hơn nữa bằng cách xem xét một số Đặc điểm Hệ thống Chung (GSC) bổ sung. Nhóm 14 GSC này được tính đến. Sau đây là kỹ thuật sửa đổi UFP:
- Mức độ Ảnh hưởng (DI) đối với mỗi trong số 14 GSC này được đánh giá theo thang điểm từ 0 đến 5.
- Tất cả 14 điểm GSC được cộng lại để xác định Tổng mức độ ảnh hưởng (TDI).
- Sau đó, Hệ số Điều chỉnh Giá trị (VAF) được tính toán từ TDI bằng cách sử dụng công thức: VAF = (TDI * 0,01) + 0,65
6. Ví dụ
Tình huống: Tính toán điểm chức năng, năng suất, tài liệu và chi phí cho mỗi chức năng cho ứng dụng phần mềm có nhiều Hệ số xử lý 5, 1, 0, 4, 3, 5, 4, 3, 4, 5, 2, 3, 4, 2 bởi sử dụng Ngày đã cho sau: Số lượng EI (Trung bình): 22, Số lượng EO (Thấp): 45, Số lượng EI (Cao): 06, Số lượng ILF (Trung bình): 05, Số lượng ELF ( Thấp): 02, Nỗ lực: 37 MM, Tài liệu kỹ thuật phần mềm: 250 trang, Tài liệu liên quan đến người dùng: 120 trang và Lập ngân sách/Chi phí: $7520 mỗi tháng.
Giải:
- Tổng hệ số chi phí (TC) = (22*4) + (45*5) + (06*6) + (05*10) + (02*5) = 409
- Điểm chức năng (FP) = TC *[0,65 + 0,01*∑ (Xi)] = 409 *[0,65 + 0,01*(5+1+0+4+3+ 5+4+3+4+5+ 2+3+ 4+2)] = 409 * [0,65 + 0,01*45] = 409 * [0,65 + 0,45] = 409* 1,10 = 450
- Năng suất (P) = Nỗ lực FP = 45037 = 12,16
- Tổng số trang tài liệu (PD) = Tài liệu kỹ thuật phần mềm + Tài liệu liên quan đến người dùng = 250 + 120 = 370 trang
- Tài liệu (D) = PDFP = 370450 = 0,82
- Chi phí của mỗi Chức năng = COST Năng suất =752012,16 =$618,421 = $618,5
Xem thêm:
- T Account là gì? Chi tiết về T Account trong doanh nghiệp
- Quản lý vận hành là gì? Ý nghĩa quản lý vận hành trong doanh nghiệp
7. Tổng kết
Phương pháp FPA là một công cụ hữu ích để đo lường kích thước của phần mềm trong doanh nghiệp, nhưng cần phải được sử dụng đúng cách và kết hợp với các phương pháp đánh giá khác để đảm bảo tính toàn vẹn và chính xác của quá trình đánh giá phần mềm. Hy vọng bài viết trên đã phần nào giúp các bạn tìm hiểu về FPA là gì cũng như lợi ích, đặc điểm và cách tính FP trong doanh nghiệp. Đừng quên theo dõi những bài viết tiếp theo của Nhà Hàng Số tại chuyên mục Thuật ngữ kinh doanh để có thêm nhiều thông tin bổ ích khác nhé!