다이어그램 - C++코드에서 UML 생성?




클래스 자동 (9)

프로젝트 내에서 C ++ 파일을 구문 분석하고 UML을 생성 할 수있는 도구가 있습니까?


Answers

필자는 Wikipedia가 이러한 도구에 대한 정보의 훌륭한 소스가 될 수 있으며, 특히 비교 테이블에 유용하다는 것을 알게되었습니다. UML 도구 에 대한 페이지가 있습니다 . 특히 역 공학 언어 열을보십시오.


다음은 몇 가지 옵션입니다.

Microsoft Visio 2000을 사용하여 엔지니어링 코드를 UML 다이어그램으로 역전시키는 단계별 가이드 - http://msdn.microsoft.com/en-us/library/aa140255(office.10).aspx

BoUML - http://bouml.fr/features.html

StarUML - http://staruml.sourceforge.net/en/

약형 컨테이너가있는 C ++ 코드에서 UML 클래스 다이어그램을 리버스 엔지니어링합니다 (2001) - http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.27.9064

Umbrello UML 모델러 - http://uml.sourceforge.net/

살펴볼 다른 도구 목록 - http://plg.uwaterloo.ca/~migod/uml.html


UmbrelloDia 및 다른 도구에 대한 명령 줄 자동 실행과 비교하여 C ++ 코드에서 최상의 UML을 생성합니다 (최신 버전> = 2.22 사용 제안).

StarUML 은 좋은 다이어그램을 만들어 내지 못했습니다. 이상한 가져 오기는 쓸모 없지만 많은 사람들에게 유용하지 않습니다 : https://github.com/staruml/Cpp/issues


Rational Rose와 Rational Rhapsody를 사용하여 대규모 프로젝트를 리버스 엔지니어링했습니다. C ++ 용 UML 클래스 파일을 얻는 데 Rational Rhapsody를 선호합니다!


UML Studio 는 내 경험에 비추어 볼 때이 작업을 매우 잘 수행하며 작은 프로젝트의 경우 "프리웨어 모드"로 실행됩니다.


당신이 원하는 바로 그 다이어그램이라면, doxygen 은 꽤 훌륭한 일을합니다.


http://staruml.sourceforge.net/en/ 은 그렇게하며 무료입니다. 불행히도 잠시 동안 업데이트되지 않았습니다. 몇 가지 파생 프로젝트가 있었지만 (프로젝트 관리자가이 프로젝트를 인계 받도록 허용하지 않았으므로) 파멸로 사망했습니다.


저는 Doxygraph 라는 도구를 개발했습니다.이 도구는 Doxygen에 의해 생성 된 XML을 구문 분석하여 웹 브라우저에서 보거나 Graphviz의 "점"파일을 읽을 수있는 소프트웨어로 가져올 수있는 대화식 UML 클래스 다이어그램으로 바꿀 수 있습니다.


그런데 C ++ 버전의 줄수가 파이썬 버전의 개수보다 큰 이유는 eof 플래그가 eof 이상으로 읽으려는 시도가있을 때만 설정된다는 것입니다. 올바른 루프는 다음과 같습니다.

while (cin) {
    getline(cin, input_line);

    if (!cin.eof())
        line_count++;
};






c++ uml