2009-04-28 3 views
4

코드를 조사하여 아키텍처 분석을 위해 Lattix을 발견했습니다. 그것은 C/C++, Java, .NET 등을 지원합니다. 정의 된 아키텍처를 유지하기위한 특정 규칙을 정의 할 수 있습니다. 이 도구는 빌드시 모든 위반 사항을 플래그로 표시 할 수 있습니다.Lattix 아키텍처 분석 도구

누구나이 도구 또는 다른 유사한 도구를 사용 했습니까? 개발 중에이 도구의 이점을 볼 수 있지만이 도구가 있어야하는지 확실하지 않습니까?

답변

0

NDepend은 .Net 프로그램의 소프트웨어 아키텍처를 분석하기위한 매우 완벽한 도구입니다. 이러한 종류의 도구는 종속성을 추적하고 다양한 코드 메트릭을 측정하는 데 매우 편리합니다.

1

우리는 Lattix와 NDepends를 사용하여 어셈블리의 종속성을 추적합니다.

두 도구 모두 종속성 구조 행렬 (DSM)을 통해 어셈블리와 클래스 간의 정적 시각화 종속성을 지원합니다. DSM을 사용하면 응용 프로그램의 아키텍처를 표시 할 수 있습니다. 예를 들어 레이어링을 사용하면 DSM에 표시되어야합니다. 주기적 종속성은 DSM에서도 볼 수 있습니다.

좋은 실용적인 소개

는 특히 닷넷을 대상으로 비주얼 스튜디오 통합을 가지고 OOPSLA05-dsm.pdf

NDepends에서 찾을 수 있습니다. Lattix는 다른 언어를위한 DSM도 만들 수 있습니다. 두 가지 모두 빌드 통합을 지원하므로 잘못된 종속성을 방지하기 위해 빌드에서 규칙을 작성할 수 있습니다.

두 도구를 모두 사용해보고 생성 된 DSM이 예상 한 것인 지 확인하십시오. 순환 종속성을 점검하고 유효하지 않은 종속성이 있는지 확인하십시오. 예를 들어, 비즈니스 계층을 사용하는 대신 데이터 액세스 계층을 직접 사용하는 사용자 인터페이스.

+0

의존성 구조에 대한 추가 정보 여기에 디자인 패턴을 찾아 내기위한 매트릭스 사용법 http://www.ndepend.com/Doc_Matrix.aspx –

0

글쎄,이 도구는 부풀어 오르고 멋지게 보이며 선물 할 때 상당히 효과적입니다.
그런데, 리버스 엔지니어링 (Rational Rose, StarUML, Sparx (더 나은 것), Understand) 버전의 리버스 엔지니어링을하는 모든 툴은 C++의 우물에서 문제가됩니다.
나는 C++의 코드가 왜 C#보다 복잡하고 덜 주문되었는지, 라이브러리, 모듈 및 COM에 대한 링크 등을 볼 수 있습니다.
실제 프로젝트에서 (이해 데이터베이스를 기반으로) 리버스 엔지니어링이 즉각적으로 완전히 중단되었습니다 (하드 리셋이 필요 없음).
WS 또는 서버에서 실행해야 할 수도 있습니다.
'이해가 잘못되었을 수 있습니다.
리셋 후 매트릭스가 ~ 200 모듈 아래로 열리면 속도가 매우 느려졌습니다. 글쎄, 나는 우리 프로젝트가 잘 발달했다고 말한 적이 없다. 우리는 더 나은 결과를 얻기 위해 그것을 연구하기를 희망했습니다. 장기적으로는 (회사가 지속적인 재 작업에 대한 수표를 지불하기로 동의 한 경우) 매우 유용 할 수 있다고 생각하지만, 모든 도구로서 항상 처음부터 다시 시작하여 지속적으로 사용하는 것이 좋습니다. NB 우리는 bsc (Microsoft 데이터베이스)와 함께 사용하려고했지만 실패했습니다.

0

저는 C++, .NET, Java 및 Fortran 코드를 주로 분석하기 위해 Lattix를 사용했습니다. 새로운 응용 프로그램 개발과 기존 소프트웨어의 아키텍처 개선에 도움이됩니다. 이 도구는 .NET dll, Java 클래스 또는 jar 파일 및 SQL 연결의 직접 가져 오기를 지원합니다. C++이나 Fortran을보고 있다면 Klockwork, Understand 또는 Clang과 같은 파서가 필요합니다. 모든 소프트웨어 빌드와 함께 Lattix 프로젝트에 대한 지속적인 업데이트를 설정할 수 있습니다. 이렇게하면 업데이트 된 DSM을 사용하여 소프트웨어 아키텍처를 지속적으로 모니터링 할 수 있습니다.이렇게하면 시간이 지남에 따라 소프트웨어가 어떻게 변하고 있는지, 그리고 코드가 디자인 초기에 설정 한 규칙을 위반하고 있거나 규칙을 수정해야하는지 등을 알 수 있습니다. 기존 소프트웨어를 살펴보면이 도구는 시스템을 구축하고 순환 의존성이 어디에 있는지 파악하십시오. 의존성 패턴에 기초하여 다른 서브 시스템 (예 : 클래스) 또는 그룹화 서브 시스템과의 근접성을 기반으로 시스템을 분할하는 알고리즘이 있습니다. 기존 소프트웨어의 아키텍처를 향상시키고 모듈화하려는 경우 유용 할 수 있습니다.

kb.lattix.com에 대한 풍부한 정보가 있습니다. 기사를 읽으려면 가입하십시오. 또한 평가판을 제공한다고 생각합니다. 평가판을 통해 도구가 유용할지 여부를 확인할 수 있습니다.