-
Notifications
You must be signed in to change notification settings - Fork 1
Code Fat
Jooyung Han edited this page Feb 18, 2014
·
1 revision
codefat = (1 - dloc / sloc) * 100
dloc of method = sum of dloc of basic blocks of method
dloc of basic block = decision depth of basic block * loc of basic block
decision depth of basic block = 0.5 ^ number of decision points to reach basic block
loc of basic block = number of statements of basic block
sloc of method = sum of loc of basic blocks of method
모든 메소드에 대해 SLOC >= DLOC 이다. 이 둘의 차이는 해당 메소드의 복잡도와 밀접하게 관련되어 있으며 여기에 브랜치의 크기도 영향을 받는다. (SLOC가 같고 if문이 하나씩 있다고 하더라도 if 로 분기된 LOC가 많으면 DLOC가 더 낮게 나온다.)[dloc 설명 참고][What is DLOC?] 메소드별 SLOC - DLOC 의 총합을 SLOC 총합으로 나눈 값을 '치선 값(Chisun Number)'로 이름 붙였다.
CN = sum(sloc - dloc) / sum(sloc)
= (sum(sloc) - sum(dloc)) / sum(sloc)
= 1 - sum(dloc)/sum(sloc)
SLOC 대비 DLOC가 낮을 수록 값이 나빠지는 경향을 보이므로 마치 인체의 체지방 비율 정도로 이해할 수 있다. (적정 체지방 비율은 성인 남성의 경우 1518%, 여성의 경우 2025%이다. 체지방 비율 참고) 이 값은 프로젝트 단위로 집계할 수 있고 패키지 단위로 살펴볼 수도 있다.
- commit cn trend
- date cn trend
- loc cn trend - loc/cn 값의 2차원 평면에서 커밋별로 위치가 어떻게 변해가는지 파악해볼 수 있다. loc는 커지더라도