2016-09-12 3 views
-4

우리는 C 코드의 품질 메트릭을 계산하는 소프트웨어 품질 분석 도구를 사용합니다. 복잡성, 정적 경로 등을 계산합니다. 계산하는 메트릭 중 하나는 함수의 '매듭 (knots)'수입니다. 이 측정 항목의 의미는 무엇입니까? 매듭이 적은 것이 바람직합니까?매듭은 소프트웨어 메트릭의 의미는 무엇입니까?

+3

이 도구에 대한 문서는 무엇을 말하고 있습니까? 아니면 공급 업체입니까? 공구에 대한 지원을받지 못했습니까? – Olaf

+0

C 프로그래밍에서이 용어에 대해 들어 본 적이 없습니다. 나는 항공기의 속도가 매듭으로 측정 될 수 있다는 것을 알고 있습니다 ... – ForceBru

+0

https://en.wikipedia.org/wiki/Knot_theory –

답변

1

매듭은 소프트웨어 메트릭스 세계에서 꽤 오랫동안 (1979, Woodward, Hennell, Hedley)있었습니다. knots의 개념은 기본적으로 루프, 결정 포인트, 점프 등 소프트웨어의 순서도에 그려야 할 매듭 (또는 pathes/branches ...)의 양으로 나눌 수 있습니다.

코드가 똑같은 코드보다 매듭 점이 적 으면 코드가 더 간단하고 (따라서 빠릅니다) 간주됩니다. 따라서 소프트웨어의 매듭을 줄이기 위해 노력하지만 기능은 동일하게 유지하십시오.

+0

나는 그래프 이론으로부터 더 많은 expext 용어를 원합니다 : edges and no ** des **. – Olaf

+0

@Olaf, 나는 "매듭"이 예전의 스파게티 코드를 더 잘 대표한다고 생각하고 스파게티를 막아 스파게티에 "매듭"을 만들어야합니다. –

+1

@PaulOgilvie : 스파게티를 어떻게 요리 할 지 모르지만, 만약 그들이 조리해야한다면 ("dente", slopply "with bite", 너무 부드럽지 않은), 그들은 정말로 "매듭"하지 않을 것입니다. (아니오, 저는 이탈리아어가 아닙니다. , 좋은 파스타처럼 ;-). 진심으로 : 나는 그것을 이해한다. 그래프는 스파게티의 일반적인 형태입니다. 하지만 코드 메트릭 도구에 대한 많은 경험이 없습니다. 나에게 그들은 측정 할 수없는 (측정 할 가치가있는 프로그래머) 매니저를위한 동물원의 일부입니다. 프로젝트 일정을위한 수정 구슬에 가깝고 내년 날씨는 어떻습니까? – Olaf

0

매듭은 실제로 구조화되지 않은 Fortran 유형 코드에 적용되며 현대 언어에는 적용되지 않습니다. 그들은 제어 흐름이 얼마나 복잡한지를 측정합니다. 우리가 보았던 몇몇 프로그램은 순수한 스파게티였습니다!

"코드가 더 간단하고 빠른 것으로 간주됩니다"라는 구.은 정확하지 않습니다. 매듭 점이 적은 코드는 더 간단하고 유지하기 쉽다고 여겨집니다. 속도와 관련이 없습니다.

David Hedley (누가 처음으로 계산 했습니까?)

관련 문제