코드 내의 복잡도를 확인할 수 있는 Understand C++ 라는 프로그램의 사용법을 설명한다.
복잡도 계산 외에 호출 관계를 다이어그램으로 표시해주기 때문에 코드의 루틴을 이해하기 좋다.
여기서는 NM 을 기준으로 설명하겠다.

실행하기

swfarm 에 접속하여, 'Understand C++' 를 실행한다. 만일 evaluating 관련 메세지 창이 뜬다면, 'Continue Evaluation' 을 선택한다.

  1. 'File → New → Project' 을 선택한다. 'New Project Wizard' 가 뜬다.
  2. Name 은 'nm' 을 입력하고, Next 를 누른다.
  3. 'C/C++' 를 선택하고, Next 를 누른다.
  4. 'Add a Directory' 를 누르고, Directory 항목에 nm 디렉토리를 선택하여 추가한다. Next 를 누른다.
  5. 'Analyze project now' 를 선택하고, Finish 를 누른다.

이후, 'Warning : Missing include file' 라는 창이 뜰 수 있다. 특정 헤더파일을 찾을 수 없기 때문이다. 이럴 때는 'Stop warning about missing include files' 를 선택한다.

분석이 끝나면, 'Metrics → Browser Metrics' 를 선택한다. 화면 하단에 창이 생기는데, 각 파일을 선택하면, 하부에 함수 목록이 나온다. 함수를 선택하면, 오른쪽 창에 'CyclomaticModified' 항목을 보이는데, 이것이 복잡도이다. 현재는 30 이하가 기준이고, 초과시 코드 수정이 필요하다.

만일 복잡도가 높은 코드를 수정하고, 이를 반영하여 다시 복잡도 계산을 하고 싶다면, 'Graphs' 메뉴 아래에 있는 아이콘(화살표?)의 역삼각형을 누른다.
'Analyze Changed File' 는 수정된 파일만 다시 검사하는 것이고, 'Analyze All File' 은 모든 파일을 다시 검사하는 것이다.

앞서 마지막에서 설명한 함수를 선택하고, 마우스 오른쪽 버튼을 누르면 'Graphical Views → Control Flow' 를 선택한다.
함수의 시퀀스 다이어그램이 표시된다.
해당 함수를 호출 관계를 보고 싶다면, 'Butterfly' 를 선택하면 된다.

  • computer/lg/복잡도_확인하기.txt
  • Last modified: 3 years ago
  • by likewind