2014-05-16 5 views
0

맥케이브 식McCabe 수식이 데이터 흐름을 고려합니까?

M = E-N을 사용하여 + 2C

데이터가 한 방향으로 만 흐르는 제한되는 경우가 고려 하는가? 그래프는 실제로 발생하는 것과 상관없이 여러 방향으로 흐르는 데이터를 표시합니다.

데이터 흐름의 한 방향을 가진 코드베이스와 데이터가 앞뒤로 이동할 수있는 다른 (매우 유사한) 코드 기반은 덜 복잡합니다.

페이스 북, MVC 및 플럭스에 대한이 기사는 내가 묻는 것에 대한 훌륭한 예입니다. http://www.infoq.com/news/2014/05/facebook-mvc-flux. 처음에는 MVC를 사용하여 데이터를 볼 수있었습니다 (뷰에서 모델로 또는 그 반대로). 일단 Flux 용 MVC를 전환하면 데이터가 한 방향으로 흐르게됩니다.

+0

"여러 방향으로 흐르는 데이터"의 유무에 관계없이 몇 가지 간단한 코드 샘플을 제공 할 수 있습니까? - 같은 짧은 방법의 변형? – perfectionist

+0

질문에 답변하기 위해 OP에 추가 정보를 추가했습니다. – 4thSpace

답변

1

당신이 연결 한 기사는 하나의 (잘못 적용된) 건축 패턴을 다른 것으로 대체하는 것에 관한 것이 었습니다.
"데이터 흐름"의 개념은 잘 정의되어 있지 않지만 질문에는 중요하지 않습니다.

McCabe 공식은 프로그램 흐름을 검사합니다. 매우 비공식적으로 결정의 수를 측정 할 수 있습니다. 그러나 이것은 모든 제어문을 검토함으로써 측정되므로, 측정 한 것의 규모는 사용자가 제안한 아키텍처 변경의 규모보다 훨씬 정교합니다.

"McCabe 수식이 데이터 흐름을 측정하지 않습니다."로가 보겠습니다.

아키텍처를 다시 디자인하는 데 필요한 변경 사항의 폭을 넓히면 공식은 물론 다른 결과를 생성합니다. 언제나처럼 프로그램의 분기 요인을 기반으로합니다.

프로그램을 다시 디자인하여 코드 및 특히 의사 결정을 덜 자주 반복한다고 가정합니다. 그러면 복잡성이 감소 할 수 있습니다. 이 아키텍처를 더 나은 아키텍처로 판단 할 수도 있습니다.

그러나 순환 복잡성은 실제로 아키텍처만큼 큰 것을 설명하는 방법이 아닙니다. 작은 코드 덩어리를 보는 방법입니다. 메서드, 클래스. 이 아키텍처를 사용하여 아키텍처를 평가하는 것은 아무 의미가 없으므로 모든 아키텍처를 잘 구현할 수 있습니다.