소스코드 구조 분석 도구

Structure101

소스코드를 기반으로 프로젝트의 아키텍처를 분석하는 도구입니다.

프로젝트의 Dependency Structure Matrix(DSM)를 통해 계층별 의존성을 분석하여 아키텍처 도표를 제공하며, 아키텍처 변경을 시뮬레이션하는 기능으로 SW의 구조를 보다 쉽게 관리할 수 있습니다.

*Dependency Structure Matrix(DSM) : 아키텍처의 의존성(Dependency)를 자동으로 분석하여 수치로 표시한 테이블로 파일, 폴더, 클래스 간 아키텍처 의존성(Dependency)을 분석하고 수치화함으로써 소프트웨어의 구조 파악을 용이하게 해줍니다.

특징

  • Matrix, Diagram 등 다양한 표시 설정을 통해 종속 정보 제공
  • 프로젝트의 모듈을 계층적으로 분류
  • 프로젝트의 다양한 측면(복잡도, 초과복잡도, 응집도, Orphan, Tangles 등)을 분석하여 정량화된 데이터를 형상 관리
  • 저장소(Repository)에 데이터를 저장하여 웹 환경을 통해 다양한 데이터 보고서 게시
  • Command Line Utilities를 통해 산출물을 쉽게 자동 관리
  • Eclipse IDE Plug-In 기능 제공

기능

구성 관점(Composition Perspective)

 

  • 트리 형태의 계층별 브라우저(Hierarchy browser)를 통해 폴더, 파일, namespace, 클래스, 메소드의 종속을 출력 가능
  • 계층 브라우저에서 아이템을 선택하여 종속 그래프 및 DSM(Dependency Structure Matrix)을 확인하고 아키텍처 도표(Architecture Diagram)를 생성할 수 있음

종속성 그래프(Dependency Graph)

 


  • 모듈의 종속성을 수치화하여 Directed Graph의 분석 화면 제공

DSM(Dependency Structure Matrix)

 

  • 계층과 관계없이 선택한 레벨에 따라 SW의 종속 관계를 볼 수 있음

구조 관점(Architecture Perspective)

 

  • 코드 기반으로 생성되는 도표를 통해 프로젝트의 레이어를 보여주고, 이를 통해 API 구조의 위반사항을 확인 가능

 

  • 바람직한 구조를 표현하기 위해서 도표를 만들고 수정할 수 있음
  • 개발자들이 공유할 수 있도록 도표로 생성 및 게시
  • 프로젝트 구조에 대한 요약정보(Item 사이즈, 복잡도, 초과복잡도, Orphan, Tangle등) 출력

클래스 계층 관점(Class Hierarchy Perspective)

 

  • 해당 Class의 계층구조를 그래프(Diagram/Matrix)로 보여주는 기능

호출 그래프 관점(Call Graph Perspective)

 

  • 해당 함수/메소드의 호출 관계 그래프(Diagram/Matrix)를 보여주는 기능
  • 다른 관점에서도 모든 메서드/함수에 대한 호출 그래프를 볼 수 있음

커뮤니케이션 기능

 

  • 정량화된 아키텍처 데이터에 대한 형상 관리- 웹에 아키텍처 도표를 게시 가능
  • SW 개발자, 설계자 등의 이해관계자들과의 디자인 협의에 이용 가능
  • 디자인 변경이나 아키텍처 위반, 새로운 스냅샷 등을 RSS로 전송 가능

장점

  • 수백만 라인의 소스코드 분석 가능추가 컴파일러 설치 없이 소스코드만으로 분석 가능

기대효과

  • 강력한 Client Tool을 통해 SW 구조 파악 용이SW 구조의 결함과 복잡도에 대해 예측 및 관리 가능
  • 개발자가 복잡한 코드의 구조 분석과 이해하기 쉬움

주요 고객

전기/전자

자동차

국방

의료기기

제 품문 의
top