Một số kỹ thuật đo lường phần mềm
- Tháng Một 28, 2021
- Posted by: codestar
- Category: Technology
Đo lường phần mềm là sử dụng các kỹ thuật để xác định được kích thước của phần mềm, từ đó cho ra các số liệu quan trong để tính toán như performance, năng suất làm việc, kế hoạch công việc, … Hiện nay có khá nhiều các để đo lường của phần mềm, trong bài này mình sẽ giới thiêu qua một số khái niệm kỹ thuật thường được áp dụng trên thế giới.
1. LOC – Lines Of Code
Như tên của nó, kỹ thuật này đếm số lượng dòng code để định mức kích thước phần mềm. Hạn chế của kỹ thuật này là khó để tính toán một cách chính xác lúc trước khi bắt đầu thực hiện, thường thì người ta hay đo đạc lại thông số này khi kết thúc dự án. Thêm một hạn chế của nó nữa là con số này còn phụ thuộc vào trình độ và phong cách lập trình của từng người, nên nó cũng mang tính tương đối.
Ngoài LOC ra thì người ta còn sử dụng đến khái niệm KLOC. Thực ra khái niệm này không có gì mới mẻ cả mà cũng là số dòng code nhưng tính theo đơn vị 1000. Điều đó cũng có nghĩa là:
1 KLOC = 1000 LOC
2. McCabe’s Cyclomatic Complexity
Nghe tên thôi thì nó là một kỹ thuật khá mới lạ, kỹ thuật sử dụng cách tính toán độ phức tạp của đường cơ sở (bạn có thể xem mình giới thiệu và áp dụng vào các ví dụ của chúng trong bài này: Kỹ thuật để testcase không bị bỏ sót)
Về ý nghĩa thì nó tính toán ra số đường cơ sở, cũng tỉ lệ với độ phức tạp mỗi đoạn code mang lại. Một mặt hạn chế là cách này khá tốn công để làm, nhưng khi thực hiện thì mang lại kết quả khá chính xác.
3. FPA – Function Point Analysis
Function point là cách đo số lượng chức năng nghiệp vụ trong ứng dụng phần mềm
FPA dựa trên việc break down (phân nhỏ) ứng dụng phần mềm thành nhiều components nhỏ hơn và đo kích thước của chúng.
FPA chủ yếu hướng tới “Form-based/ dựa trên hình thức” hoặc “Record-oriented/ hồ sơ theo định hướng” ứng dụng
Cách tính này có thể không phù hợp với những ứng dụng liên quan đến:
- Thuật toán phức tạp, ví dụ như hình ảnh / video / âm thanh xử lý văn bản hoặc dữ liệu khai thác mỏ, mô phỏng, trò chơi tối ưu hóa, chiến lược
- Các ứng dụng đa phương tiện phức tạp, hoạt hình 3D
- Phần mềm nhúng thời gian thực
- Quản lý dữ liệu Rất quy mô lớn
Cách tính này được khuyến khích sử dụng với những ứng dụng phần mềm được coi như là sự kết hợp của:
- Giao dịch = di chuyển dữ liệuDi chuyển dữ liệu từ các ứng dụng bên ngoài hoặc từ bên ngoài để ứng dụng
- Dữ liệu ở phần còn lạiLưu trữ dữ liệu
Ngoài ra FPA còn sử dụng các mức độ đánh giá khác nhau cho từng component để đánh giá công sức phát triển cho những component đó.
Kết
Hiện nay có khá nhiều cách để áp dụng vào việc đo lường. Tuy nhiên dựa vào mục đích sử dụng và tuỳ vào các ràng buộc khác để chúng ta có thể lựa chọn những cách khác nhau đề sử dụng.
Hiện nay, công ty Kaopiz đang sử dụng cách KLOC để đo đạc.
Các cách đo lường ở trên được áp dụng cho hầu hết ngôn ngữ và thiết kế lập trình. Ngoài cách ở trên, phần mềm hướng đối tượng còn có thêm một số cách sau:
- Depth of inheritance tree (DIT)
- Number of children (NOC)
- Weighted method count (WMC)
- Response for a class (RFC)
Nguyễn Trọng Giáp