Có nhiều loại chất lượng khác nhau có thể được đo lường trong các sản phẩm phần mềm, ví dụ như thể dục cho mục đích (ví dụ: sử dụng cuối), khả năng duy trì, hiệu quả. Một số trong số này hơi chủ quan hoặc cụ thể theo miền (ví dụ: các nguyên tắc thiết kế GUI tốt có thể khác nhau giữa các nền văn hóa hoặc phụ thuộc vào bối cảnh sử dụng, hãy nghĩ rằng quân đội so với sử dụng của người tiêu dùng).
Điều tôi quan tâm là một dạng chất lượng sâu hơn liên quan đến mạng (hoặc biểu đồ) của các loại và mối liên quan của chúng, nghĩa là, mỗi loại tham chiếu đến loại nào, có các cụm liên kết có thể xác định rõ ràng liên quan đến một cách đúng đắn kiến trúc theo tầng, hoặc ngược lại là có một 'quả bóng' lớn của các tham chiếu loại (mã 'nguyên khối'). Ngoài ra, kích thước của từng loại và / hoặc phương thức (ví dụ: được đo bằng số lượng mã byte Java hoặc .Net IL) sẽ đưa ra một số dấu hiệu về nơi các thuật toán phức tạp lớn đã được triển khai dưới dạng các khối mã nguyên khối thay vì được phân tách thành dễ quản lý / bảo trì hơn miếng, mảnh nhỏ.
Một phân tích dựa trên những ý tưởng như vậy có thể có thể tính toán các số liệu ít nhất là một proxy cho chất lượng. Ngưỡng chính xác / điểm quyết định giữa chất lượng cao và thấp tôi nghi ngờ là chủ quan, ví dụ như bởi tính bảo trì, chúng tôi có nghĩa là khả năng duy trì của các lập trình viên con người và do đó phân rã chức năng phải tương thích với cách thức hoạt động của tâm trí con người. Như vậy, tôi tự hỏi liệu có bao giờ có một định nghĩa thuần túy về mặt toán học về chất lượng phần mềm vượt qua tất cả các phần mềm có thể trong tất cả các tình huống có thể.
Tôi cũng tự hỏi liệu đây có phải là một ý tưởng nguy hiểm không, nếu các proxy khách quan về chất lượng trở nên phổ biến thì áp lực kinh doanh sẽ khiến các nhà phát triển theo đuổi các số liệu này với chi phí của chất lượng tổng thể (các khía cạnh chất lượng không được đo lường bởi các proxy).
Một cách nghĩ khác về chất lượng là từ quan điểm của entropy. Entropy là xu hướng của các hệ thống hoàn nguyên từ các trạng thái bị rối loạn. Bất cứ ai đã từng làm việc trong một thế giới thực, dự án phần mềm quy mô vừa và lớn sẽ đánh giá cao mức độ mà chất lượng của cơ sở mã có xu hướng suy giảm theo thời gian. Áp lực kinh doanh nói chung dẫn đến những thay đổi tập trung vào chức năng mới (ngoại trừ chính chất lượng là điểm bán hàng chính, ví dụ như trong phần mềm điện tử hàng không) và làm xói mòn chất lượng thông qua các vấn đề hồi quy và chức năng 'ghê gớm' khi nó không phù hợp một quan điểm chất lượng và bảo trì. Vì vậy, chúng ta có thể đo entropy của phần mềm? Và nếu vậy thì thế nào?