소프트웨어 제품에서 측정 할 수있는 다양한 유형의 품질이 있습니다 (예 : 목적 적합성 (예 : 최종 사용), 유지 보수성, 효율성). 이들 중 일부는 다소 주관적이거나 도메인에 따라 다릅니다 (예 : 훌륭한 GUI 디자인 원칙은 문화에 따라 다를 수 있거나 사용 상황에 따라 달라질 수 있습니다.
내가 관심이있는 것은 유형의 네트워크 (또는 그래프) 및 관련성, 즉 각 유형이 참조하는 유형과 관련된 더 깊은 품질의 품질 형식이며, 올바르게 관련된 유형의 상호 연결성 클러스터가 있는지 계층 구조, 또는 거꾸로 유형 참조의 큰 '공'( '모 놀리 식'코드)이 있습니다. 또한 각 유형 및 / 또는 방법의 크기 (예 : Java 바이트 코드 또는 .Net IL의 수량으로 측정)는 복잡한 복잡한 알고리즘이 더 관리 가능하고 유지 관리 가능한 것으로 분해되는 대신 모 놀리 식 코드 블록으로 구현 된 위치를 나타냅니다. 덩어리.
그러한 아이디어를 기반으로 한 분석가는 최소한 품질에 대한 대리인 통계를 계산할 수 있습니다. 높은 품질과 낮은 품질 사이의 정확한 임계 값 / 결정 점은 주관적이라고 생각합니다. 예를 들어 유지 관리 성으로 인해 인간 프로그래머가 유지 관리 성을 의미하므로 기능적 분해가 인간의 마음이 작동하는 방식과 호환되어야합니다. 따라서 모든 가능한 시나리오에서 가능한 모든 소프트웨어를 능가하는 소프트웨어 품질에 대한 수학적으로 순수한 정의가 있는지 궁금합니다.
또한 품질에 대한 객관적인 프록시가 대중화되면 비즈니스 압력으로 인해 개발자가 전반적인 품질 (프록시가 측정하지 않는 품질의 측면)을 희생하여 이러한 메트릭을 추구하게 될 것입니다.
품질에 대한 다른 사고 방식은 엔트로피의 관점에서입니다. 엔트로피는 시스템이 질서 상태에서 무질서 상태로 되돌아가는 경향이 있습니다. 실제, 중대 규모 소프트웨어 프로젝트에서 일해 본 사람이라면 시간이 지남에 따라 코드베이스의 품질이 저하되는 정도를 이해할 것입니다. 비즈니스 압력은 일반적으로 새로운 기능 (예 : 항공 전자 공학 소프트웨어에서 품질 자체가 주요 판매 지점 인 경우 제외) 및 회귀 문제를 통한 품질 저하와 '신발 호닝'기능에 맞지 않는 변경에 영향을 미칩니다. 품질 및 유지 관리 관점. 그렇다면 소프트웨어의 엔트로피를 측정 할 수 있습니까? 그렇다면 어떻게?