source

Python 소스 코드에서 UML 다이어그램을 생성하는 가장 좋은 방법은 무엇입니까?

bestscript 2023. 1. 6. 19:54

Python 소스 코드에서 UML 다이어그램을 생성하는 가장 좋은 방법은 무엇입니까?

동료가 Python 소스 코드 더미에서 UML 클래스 다이어그램을 생성하려고 합니다.그는 주로 상속 관계에 관심이 있고 구성 관계에 약간 관심이 있으며 파이썬의 기본 요소인 클래스 속성에는 별로 관심이 없습니다.

소스코드는 매우 간단하며 매우 악하지 않습니다.예를 들어 메타클래스 마법을 부리지 않습니다.(대부분 Python 1.5.2 시절로, "현대" 2.3 정도의 것이 뿌려져 있습니다.)

권장할 수 있는 가장 좋은 솔루션은 무엇입니까?

Pylint는 Python 코드를 정적으로 체크하는 데 도움이 됩니다.Pyreverse라는 이름의 툴과 함께 제공되는 Python 코드에서 UML 다이어그램을 읽어내는 것을 아는 사람은 거의 없다.Pyreverse는 Graphviz를 백엔드로 사용합니다.

다음과 같이 사용됩니다.

pyreverse -o png -p yourpackage .

어디서.단일 파일일 수도 있습니다.

Epydoc은 Python 소스 코드에서 API 문서를 생성하는 도구입니다.또한 Graphviz를 사용하여 UML 클래스 다이어그램을 화려하게 생성합니다.다음은 Epydoc 자체의 소스 코드에서 생성된 다이어그램의 입니다.

Epydoc은 객체 인스펙션과 소스 파싱을 모두 수행하므로 Doxygen과 같은 정적 코드 분석기에 대해 더 많은 정보를 수집할 수 있습니다. Doxygen은 동적으로 생성된 상당한 양의 클래스 및 함수를 검사할 수 있지만 변수 및 클래스 공개 속성에 대한 문서 소스로 주석 또는 할당되지 않은 문자열을 사용할 수도 있습니다.

python에 대한 7개의 uml 도구 목록을 확인하십시오.

올바르게 동작하는 프로그램의 특정 클래스는 도표로 표시할 수 있지만, 일반적인 경우에는 할 수 없습니다.실행 시 Python 개체를 확장할 수 있으며 모든 유형의 개체를 모든 인스턴스 변수에 할당할 수 있습니다.오브젝트가 포인터를 포함할 수 있는 클래스를 알아내려면 프로그램의 런타임 동작을 완전히 이해해야 합니다.

Python의 메타클래스 기능은 상속 구조에 대한 추론도 프로그램의 런타임 동작을 완전히 이해해야 한다는 것을 의미합니다.

이러한 것이 불가능하다는 것을 증명하기 위해, 그러한 UML 다이어그램이 존재한다면, 임의의 프로그램을 사용하여 UML 다이어그램에 영향을 주는 문장으로 변환하고 UML 다이어그램의 정지 문제를 해결할 수 있다고 주장합니다.이 문제는 불가능하다는 것을 알고 있습니다.

Gaphor에 대해 언급할 가치가 있다.Python 모델링/UML 도구입니다.

이클립스를 쓴다면 PyUML일거야. 하지만 써본 적은 없어.

vipera는 소규모 애플리케이션 디자이너로 uml이 포함되어 있습니다.다음 URL에서 확인할 수 있습니다.

바이퍼라

안부 전합니다.

SPE IDE에는 UML 작성기가 내장되어 있습니다.SPE에서 파일을 열고 UML 탭을 클릭합니다.

고객의 요구에 어느 정도 대응하고 있는지는 모르겠지만, 추가 다운로드나 설정은 필요 없습니다.

Sparx의 Enterprise Architect는 Python 소스를 라운드 트립합니다.시한부 무료 체험판이 있습니다.

움브렐로도 그래요.메뉴에서 Code -> import project로 이동하여 프로젝트의 루트디렉토리를 가리킵니다.암호를 거꾸로 하면...

언급URL : https://stackoverflow.com/questions/260165/whats-the-best-way-to-generate-a-uml-diagram-from-python-source-code