2009-03-27 3 views
0

저는 수백만 개의 SLOC, 수백 개의 모듈 및 수천 개의 인터페이스 종속성이있는 대규모 소프트웨어 시스템을 보유하고 있습니다. StackOverflow의 이전 질문을 토대로이 인터페이스 종속성이 실제로 무엇인지 발견 할 수있었습니다.인터페이스 종속성에 대한 문서화 및 건축 모델링

이제 모든 정보를 유용한 형식으로 사용할 수 있어야합니다. 데이터는 SQL 데이터베이스에 있으므로 보고서를 작성하는 것은 쉽지만 사실 사용자가 찾고있는 데이터를 쉽게 찾을 수있는 모델이 필요합니다.

나는 UML과 같은 표준 솔루션을 시도했지만 다이어그램이 빽빽한 거미줄처럼 보이고 쓸모가 없기 때문에 많은 종속 라인이 생겨 버렸다. 지금은 4 만 라인짜리 엑셀 스프레드 시트를 가지고 있지만 실용적이지는 않습니다.

이처럼 전문화 된 데이터를 관리하는 방법에 대한 아이디어 나 예제가 있습니까? 나는 doxygen을 해킹하려고 생각했다. (나는 javadoc 스타일의 출력을 좋아한다.) 그러나 그것은 많은 작업처럼 보인다.

+0

나는 이것에 대한 광범위한 연구를 해왔다. Enterprise Architect와 같은 값 비싼 특정 도구를 제외하고는이 유형의 문제가 얼마나 놀랍습니까? – Todd

+0

EA는 UML 도구의 값 싸고 쾌활한 끝이다. 값 비싼 물건은 수천 파운드에 불과하다. –

답변

0

잘 분류 된 시스템 인 경우 하위 시스템 내에서 서로 관련된 인터페이스 클러스터가 있어야하지만 하위 시스템 간에는 몇 개의 인터페이스 만 있어야합니다.

잘 분류되지 않은 시스템이라면 어떤 표현으로도 멋지게 보이지 않을 것이며 거기에있는 링크를 제거하는 표현은 상황을 잘못 표현할 것입니다.

하나의 옵션은 그래프의 나뭇잎이 될 하나의 종속성 만 갖는 인터페이스를 제거하는 것입니다. 이 작업을 반복하면 가장 강하게 연결된 노드가있는 골격으로 시스템이 침식됩니다.

토폴로지 정렬을 수행하면주기가 표시되고 계층이 어디에 있는지 알 수 있습니다.

JavaDoc은 40,000 개의 인터페이스에 대한 개요를 선호하지 않습니다. JavaDoc은 계층 적으로 정렬 된 라이브러리에서 물건을 찾는 데 적합하지만 모든 것들 간의 연결은 잘 보이지 않습니다.

0

기술 관련 질문을하기 전에 "어떤 기술로 문서를 만들 수 있습니까?"라는 질문이 있습니다.

시스템에 대한 진정한 지식과 이해는 실제 인터페이스 관계와 모듈 구조를 넘어서는 것입니다. 전체 시스템에 대한 이해와 전체 시스템에 대한 개별 부품의 기여도입니다.

나는 다음과 같은 방향으로 갈 것 :

1) 먼저, 하려고 시스템 하향식 (top-down)을 이해합니다. 이것은 모듈의 구조를 먼저 이해하고 위에서 아래로 모듈의 표현을 만드는 것을 의미합니다. 이 과정에서 현재 엑셀에없는 모듈에 대한 추가 메타 데이터를 찾을 수 있습니다. 시간을 들여 추가하면 시스템 구조에 대한 "명백하지 않은"지식을 반영하기 때문에 나중에 자동 문서를 만들 때 가장 유용합니다.

2) Excel에서 개의 HTML 파일 집합을 생성하는 간단한 프로그램을 작성하십시오. 그러면 추가 조사를위한 출발점으로 정보를 더 쉽게 탐색하고 탐색하는 데 도움이됩니다. 나는 처음부터 본격적인 javadoc 형식으로 가지 않을 것입니다. 필요에 따라 작게 시작하여 프로그램 \ 스크립트를 단계적으로 전개하십시오. 이 과정에서 리팩토링이 의미있는 부분을 발견하게됩니다.

3) HTML의 출력을 사용하여 여러 모듈의 구조를 연구하고 내부 패턴에 대한 이해를 얻으십시오. 명명 규칙이 있습니까? 패턴 반복? 당신이 추론 할 수 있고 이미 Excel에서 분명하게 문서화되지 않은 것은 무엇이든합니다.

로컬 UML 다이어그램을 만들 겠지만, 모듈 당 여러 개의 UML을 사용할 수는 없습니다. 종속성을 외부 모듈에 뚜렷한 방식으로 표시하십시오. (자동 UML 생성은 유용하지 않을 것입니다. 문서에서 가장 계몽적인 UML을 만드는 것은 각 다이어그램에서 의미있는 인터페이스를 손으로 직접 선택하는 것입니다.)

결과 집합 HTML과 UML은 좋은 최종 결과가 될 것입니다.

0

이제 VSTS 2010 베타 1이 종료되었으므로 비디오 "Bottom-up" Design with Visual Studio Team System 2010 Architect을 시청하는 것이 좋습니다.

베타 버전으로이 중 일부를 시도해 볼 수도 있습니다. VM으로 제공되므로 시스템에 위험이 없습니다. 또한 플랫폼을 커밋하지 않고도 아키텍처 도구를 사용할 수 있습니다. 코드를 시각화하고 더 많이 개발하지 않으려 고합니다.