토픽 129 / 192·소프트웨어 표준과 법제도
소프트웨어 메트릭 (Software Metrics)
소프트웨어 메트릭 (Software Metrics)
소프트웨어의 품질, 복잡도, 크기, 생산성 등을 정량적으로 측정하는 지표로, 프로젝트 관리와 품질 개선의 객관적 근거를 제공
목적: 품질 정량화, 프로젝트 추정, 리스크 식별, 개선 추적, 의사결정 지원
메트릭 분류
- •규모 메트릭: LOC, FP, SLOC
- •복잡도 메트릭: Cyclomatic Complexity, Halstead
- •품질 메트릭: 결함 밀도, MTBF
- •프로세스 메트릭: 생산성, 사이클 타임
LOC(Lines of Code): 소스 코드 라인 수, SLOC(주석/공백 제외), KLOC(천 줄 단위). 장점: 단순/객관적. 단점: 언어 종속/품질 무관
Cyclomatic Complexity(순환 복잡도): McCabe 제안, 독립 경로 수 측정. V(G) = 결정노드(if/while/for/case) + 1. 1-10(단순), 11-20(복잡), 21+(위험). 테스트 케이스 최소 수 도출 근거
Halstead 복잡도: 연산자/피연산자 수 기반 복잡도 측정. n1(고유연산자), n2(고유피연산자), N1(총연산자), N2(총피연산자). 난이도 D = (n1/2)x(N2/n2), 노력 E = DxV
결함 밀도(Defect Density): 결함 수/KLOC 또는 결함 수/FP, 품질 비교 기준(일반적 1-25 결함/KLOC)
장점: 객관적 품질 측정, 비교 가능, 추적 가능
단점: 수치만으로 품질 판단 불가, 조작 가능, 컨텍스트 필요
적용사례: 코드 리뷰, 품질 게이트, 프로젝트 추정, 벤치마킹
기술요소: LOC, CC, Halstead, 결함 밀도, FP, 정적 분석
비교: LOC(규모/단순) vs CC(복잡도/경로) vs FP(기능/언어독립)
연관: 정적 분석, SonarQube, 품질 관리, 테스트, 리팩토링