2011-02-04 6 views
5

사용자의 액세스 권한을 결정하는 if 문 집합이 포함 된 복잡한 C# 메서드가 있습니다.C# 메서드 논리 시각화

저는이 논리를 워크 플로우 다이어그램이나 비슷한 것으로 시각화 할 방법을 찾고 있습니다.

이 .NET 3.5 및 Visual Studio (양호하게는 자유롭게 사용할 수) 도구가이 작업을 수행 할 수 있습니다 사용할 수있는 2010 년

를 사용?

NB : 메서드 호출 (예 : 호출 계층 구조)을 시각화하는 데 많은 도구를 찾았습니다. 이것은 내가 찾고있는 것이 아닙니다. 논리를 시각화 할 수있는 도구를 찾고 있습니다.

감사

편집 : 내 조사의 일환으로 나는 Flowchart4C 번호를 찾을 않았다하지만 크게 구입하는 $ 200와 재판이 나를 그것이 내가 그것을 원하는 것을 확인 못하게! (< 5 조건문).

+0

http://www.refactoring.com/catalog/replaceConditionalWithVisitor.html 최고입니다 자동화 된 도구에 대한 권리? –

+6

주요 부분이 일반 영어와 같이 시작되도록이 방대한 방법을 리팩토링하는 것이 좋습니다. – Marco

+1

나는 시도하지 않을 것이다. 먼저, 경로를 커버하고 현재 행동을 검증하는 단위 테스트를 작성하십시오. 둘째, 메소드 등을 추출하여 코드를 명확히하기 위해 자동화 리팩토링 도구를 사용하십시오. – TrueWill

답변

3

당신의 방법을 리팩토링 : 여기 조건문


http://www.refactoring.com/catalog/replaceConditionalWithPolymorphism.html

http://www.refactoring.com/catalog/replaceNestedConditionalWithGuardClauses.html하지만 처리하기위한 몇 가지 제안은 아마 그냥 명확하게 할, 당신이 찾고있는

+0

감사합니다. @Marco - 가장 관련있는 가드 절을 찾았습니다. 유체 사용자 유형에 할당 된 작업 집합이 있습니다. – Russell

+0

질문 : 논리를 별도의 방법으로 리팩토링하는 것은지도의 필요성을 부정하는 한 가지 방법입니다. 내 기능은 성능이 중요합니다 (웹 요청이있을 때마다 보안 검사가 됨) 여러 가지 방법으로 성능을 손상시킬 수 있습니까? – Russell

+1

나는 함수 호출을 최적화하기 위해 컴파일러를 신뢰한다. 매개 변수를 전달하는 데 데이터가 많이 복사되지 않는 한, 먼저 읽을 수있는 코드를 선호하고 나중에 필요할 경우 성능에 대해 걱정할 것입니다. – Marco

1

비 자동 : dia (Windows, Linux : flowcharts-templates) 또는 Inkscape (Windows, Linux, Mac : 벡터 그래픽)을 사용하십시오.

자동 : 리 팩터를 먼저 수행 한 다음 자동화하십시오.

+0

Thanks @Leonidas - 나는 Dia가 훌륭한 무료 도구라고 동의합니다.:) 나는 그것을 자동적으로 이상적으로 매핑하려고 노력 중이다. – Russell