Java 코드에서 UML 다이어그램(특히 시퀀스 다이어그램)을 생성하려면 어떻게 해야 합니까?
기존 Java 코드에서 UML 다이어그램(특히 시퀀스 다이어그램)을 생성하려면 어떻게 해야 합니까?
ObjectAid UML 탐색기
내가 쓰던 거야.저장소에서 쉽게 설치할 수 있습니다.
Name: ObjectAid UML Explorer
Location: http://www.objectaid.com/update/current
또한 매우 훌륭한 UML 다이어그램을 생성합니다.
웹 사이트 설명:
ObjectAid UML Explorer는 다른 UML 도구와 다릅니다.UML 표기법을 사용하여 텍스트 에디터만큼 정확하고 최신인 기존 코드를 그래픽으로 표시하면서도 매우 쉽게 사용할 수 있습니다.다음과 같은 고유한 기능이 이를 가능하게 합니다.
- 소스 코드와 라이브러리는 표시되는 모델이며, 다른 형식으로 리버스 엔지니어링되지 않습니다.
- Eclipse에서 코드를 업데이트하면 다이어그램도 업데이트되므로 소스 코드를 리버스 엔지니어링할 필요가 없습니다.
- 리팩터링을 수행하면 다이어그램과 소스 코드가 업데이트됩니다.필드 이름을 변경하거나 클래스를 이동하면 다이어그램에 변경 내용이 반영되어 동기화되지 않습니다.
- Eclipse 작업 공간의 모든 다이어그램이 필요에 따라 리팩터링 변경으로 업데이트됩니다.필요한 경우 버전 관리 시스템에서 체크 아웃됩니다.
- 다이어그램은 Eclipse IDE에 완전히 통합되어 있습니다.Java 클래스를 다른 뷰에서 다이어그램으로 끌 수 있으며 다이어그램 관련 정보가 해당하는 경우 다른 뷰에 표시됩니다.
편집: 디자이너라면 Papyrus를 선택하는 것이 가장 좋습니다.다만, UML의 그림을 스케치해 간단하게 인스톨 할 수 있으면, ObjectAid는 매우 멋지고, 플러그인도 필요 없습니다.이클립스-자바 EE에 인스톨 했을 뿐이기 때문에, 매우 편리합니다.
2013년 10월 11일 갱신
2012년 6월에 투고를 했습니다.많은 툴이 성장했지만 다른 툴은 변화하지 않았습니다.다시 모델링을 하고 투고에 대한 답변을 받기 때문에 파피루스를 다시 설치하기로 하고 다른 UML 모델링 솔루션에 대해 다시 조사하겠습니다.UML 세대(동기 기능 포함)는 소프트웨어 설계자가 아닌 일반 개발자에게 매우 중요합니다.
나는 파피루스가 UML 클래스 다이어그램으로 리버스 엔지니어 클래스를 쉽게 할 수 있는 방법을 가지고 있기를 바란다.그리고 그 리버스 엔지니어링에 동기화 기능이 있다면 매우 멋질 것이다.그러나 불행히도 파피루스 프로젝트는 많은 기능들로 가득 차 있다.또한 파피루스에 대해 당신이 하는 많은 행동들이 당신에게 주지 않을 수 있기 때문에 나는 그곳에 이미 많은 개발자들이 가까이 있다고 생각한다.y 응답은 아무 일도 일어나지 않지만 어쨌든 이 질문의 범위를 벗어납니다.
The Answer (2013년 10월 11일)
도구들
- 파피루스 다운로드
- [도움말] -> [새로운 소프트웨어 설치]로 이동합니다.
- 작업 대상: 드롭다운에서 --All Available Sites--
- 필터에 Papyrus를 입력합니다.
- 설치가 완료되면 Eclipse를 다시 시작합니다.
- 순서 1~3을 반복해, 이번에는 Modisco 를 인스톨 합니다.
순서
- Java 프로젝트(My Project라고 가정)에서 UML과 같은 폴더를 만듭니다.
- 디스커버리 -> 디스커버 -> Java -> Java -> Java -My Project_kdm.xmi -> Java -> My Project_kdm.xmi > java및> 。
- 프로젝트명 파일 -->new --> papyrus model -> 우클릭 후 My Project라고 부릅니다.
- 생성된 3개의 파일 MyProject.di, MyProject.notation, MyProject.uml을 UML 폴더로 이동합니다.
MyProject_kdm.xmi ->에 맞아 클릭;디스커버리 ->, Discoverer ->, KDM 코드에서 디스커버 UML모델 다시 속성 대화 파일 MyProject.uml 내 Project_kdm.xmi ->의 이름을 생성하는 데 TRUE에 Discoverer ->, 다시 KDM 코드에서 UML프로포트를 TRUE로 설정하고 MyProject.uml이라는 이름의 파일검출을우클릭하면 시리얼라이제이션 모델은 serialization소품들이 디스커버리 ->을 세웠다.을 생성합니다.
루트에서 생성된 MyProject.uml을 UML 폴더로 이동하면 Eclipse에서 UML 폴더를 교체할지 묻는 메시지가 나타납니다. 예를 클릭합니다.여기에서는 빈 모델을 생성된 모델로 교체했습니다.
ALT+W -> show view -> papyrus -> 모델익스플로러
모습에서 수
에서 [ model -> [ diagram ] model [ ]루트 모델 ]-> [ New diagram ]를 선택합니다.
그런 다음 뷰에서 다이어그램으로 클래스 가져오기 시작
일부 기능
클래스 요소(변수, 함수 등)를 표시하려면 임의의 클래스를 오른쪽 클릭합니다.-> 필터 -> 콘텐츠 Voila!!
Window -> pereferences -> papyrus -> 클래스 다이어그램에서 기본 친화적인 색상 설정을 할 수 있습니다.
매우 중요한 설정 중 하나는 [Alrange the classes](클래스를 드롭하면 클래스 다이어그램의 빈 공간을 오른쪽 클릭하여 [Alrange All](모두 정렬)을 클릭합니다)입니다.
모델 탐색기 뷰의 화살표를 다이어그램에 대고 일반화, 실현 등을 표시할 수 있습니다.
'어느 정도', '어느 정도', '어느 정도' 등의 .
수동으로 새 클래스를 가져와야 하는 것으로 알고 있는 한 동기화를 사용할 수 없습니다.
그게 다야. 그리고 정말로 필요하지 않으면 상업용 제품을 사지 마. 파피루스는 기부나 뭐 그런 것 대신에 훌륭하고 정교해.
면책사항:저는 파피루스와는 인연이 없습니다.사실 처음에는 파피루스를 좋아하지 않았습니다.많은 조사를 하고 인내심을 가지고 경험하기 전까지는요.그리고 다른 무료 도구를 사용해 보면 다시 이 게시물로 돌아갈 것입니다.
코드 베이스는 무엇입니까?Java 또는 C++?
eUML2 for Java는 Eclipse의 Java Developper용으로 설계된 강력한 UML 모델러입니다.무료판은 상업용으로 사용할 수 있습니다.다음 기능을 지원합니다.
- CVS 및 팀 지원
- 커스터마이즈 가능한 여러 모델 뷰를 갖춘 대규모 프로젝트용 설계
- Helios 준거
- 실시간 코드/모델 동기화
- UML2.1 준거 및 OMG XMI 지원
- JDK 1.4 및 1.5 지원
이 상용판은 다음을 제공합니다.
고도의 리버스 엔지니어링
- 강력한 진정한 의존성 분석 도구
- UML 프로파일 및 MDD
- 데이터베이스 도구
- 맞춤형 템플릿 지원
저는 작가 중 한 명이기 때문에 답이 편파적일 수 있습니다.오픈 소스(Apache 2.0)이지만 플러그인이 비어 있지 않습니다.로컬에서 복제 및 구축하면 (분명히) 비용을 지불할 필요가 없습니다.
Intelij IDEA에서는 ZenUML이 Java 코드로부터 시퀀스 다이어그램을 생성할 수 있습니다.
https://plugins.jetbrains.com/plugin/12437-zenuml-support에서 확인하세요.
소스 코드: https://github.com/ZenUml/jetbrains-zenuml
PlantUML은요? 리버스 엔지니어링이 아니에요!!!코드를 입력하기 전에 엔지니어링을 위한 것입니다.
플러그인의 목표로 CLI에서 실행하거나 의존관계로 Import하여 파서를 프로그래밍 방식으로 사용할 수 있는 maven 플러그인을 개발했습니다.@see Main#main()
이디아
플랜트를 렌더링합니다.필요한 경우 수동으로 편집할 수 있는 원하는 패키지의 UML src 코드(필요한 경우 편집하지 않는 것이 좋습니다).그런 다음 플랜트에 코드를 붙여 넣습니다.UML 페이지 또는 플랜트의 항아리를 다운로드하여 UML 다이어그램을 png 이미지로 렌더링할 수 있습니다.
여기를 봐주세요.https://github.com/juanmf/Java2PlantUML
출력 다이어그램 예:
어떤 기부가든 환영이다.출력을 커스터마이즈하는 필터 세트가 있습니다만, 플러그인 CLI 파라미터에서는 아직 공개하지 않았습니다.
중요한 점은 *.java 파일에만 국한된 것이 아니라 UML 다이어그램 src를 사용자의 의존관계에서 렌더링할 수도 있다는 것입니다.이것은 당신이 의존하는 라이브러리를 이해하는 데 매우 편리합니다.실제로 컴파일된 클래스를 반영하여 검사하므로 소스가 필요하지 않습니다.
GitHub:P에서 첫 주연으로 등장
이클립스를 추천합니다.오몬도 UML은 일반용이지만, 몇 달 전에 웹 프로젝트에서 문제가 있었습니다.한때는 무료판도 있었지만, 더 이상 홍보가 되지 않는 것 같습니다.
소스 코드의 리버스 엔지니어링 시퀀스 다이어그램에 관심이 있다면 jTracert를 추천합니다.
Eclipse 프로젝트 자체에 관한 한, Eclipse UML2 Tools 프로젝트는 리버스 엔지니어링을 지원할 수 있지만 실제로 사용하는 것은 본 적이 없습니다.
MoDisco(모델 디스커버리) 프로젝트 Eclipse GMT 프로젝트는 목표 달성이 더 명확해 보입니다.우선, 테크놀로지 고유의 툴의 리스트를 참조해 주세요.
Green 플러그인은 매우 사용하기 쉽고 소스 코드에서 클래스 다이어그램을 생성하는 것이 매우 간단하다는 것을 알았습니다.시험해 보세요:)플러그인 dir에 플러그인을 복사하기만 하면 됩니다.
IntelliJ IDEA 사용.클래스 다이어그램을 생성하려면 패키지를 선택하고 + + 를 누릅니다.
기본적으로는 클래스 이름만 표시되고 모든 종속성은 표시되지 않습니다.변경하려면 우클릭 -> 카테고리 표시...및 의존관계 표시:
의존관계도(UML 전개도)를 작성하려면 maven에서 View -> Tool Windows -> Maven Projects를 선택하고 + + 를 누릅니다.
그 결과:
또한 더 많은 다른 다이어그램을 생성할 수도 있습니다.메뉴얼을 참조해 주세요.
netbeans UML modler를 사용해 볼 수도 있습니다.이클립스 프로젝트에서 사용한 자바코드를 생성하는 데 사용했습니다.넷빈으로 일식 프로젝트를 가져오고 넷빈 프로젝트 설정과 동기화된 일식 설정을 유지할 수도 있습니다.
나는 일식을 위해 여러 개의 UML 모델러를 시도했지만 만족스럽지 않았다.불안정하거나 복잡하거나 그냥 못생겼거나 둘 중 하나였어요.;-)
Eclipse의 30일 평가 빌드를 사용할 수 있습니다.UML for Eclipse 3.5 : http://www.uml2.org/eclipse-java-galileo-SR2-win32_eclipseUML2.2_package_may2010.zip 이 제품은 최신 3.6 빌드는 아니지만 매우 우수하며 테스트 및 리버스 엔지니어링을 위해 구입할 필요가 없습니다.
리버스 엔지니어링 : http://www.forum-omondo.com/documentation_eclipseuml_2008/reverse/reverse/reverse_engineering_example.html
라이브 플래시 데모: http://www.ejb3.org/reverse.swf
Eclipse UML Omondo는 Java를 위한 세계 최고의 도구입니다.이 라이브 Java 동기화 시장에서는 eUML만이 그것과 경쟁하고 있는 것처럼 보이지만, eUML은 코드에 모델 태그를 추가하는데, 이것은 정말 매우 매우 나쁘고 나에게 있어서는 절대 불가합니다.
Intelij용 SequenceDiagram 플러그인도 좋은 옵션이라고 알고 있습니다.
지금까지 리버스 엔지니어링에 사용한 최고의 툴은 라운드 트립 java-> UML입니다.Eclipse(단일 플러그인뿐 아니라)를 기반으로 하며 매우 잘 작동합니다.
Java의 또 다른 모델링 툴은 (my) 웹사이트 GitUML입니다. GitHub 저장소에 저장된 Java 또는 Python 코드에서 UML 다이어그램을 생성합니다.
GitUML의 주요 아이디어 중 하나는 "문서"의 문제 중 하나를 해결하는 것입니다. 즉, 다이어그램은 항상 최신이 아닙니다.GitUML에서는 Git을 사용하여 코드를 푸시하면 자동으로 다이어그램이 갱신됩니다.
커뮤니티 UML 다이어그램을 참조하면 Java 설계 패턴이 몇 가지 있습니다.인기 있는 GitHub 저장소를 검색하여 그 안에 있는 아키텍처와 패턴을 시각화합니다.
포인트 앤 클릭을 사용하여 다이어그램을 만듭니다.드래그 드롭 에디터는 없습니다.레포지토리 트리에서 시각화할 클래스를 클릭하기만 하면 됩니다.
기반이 되는 테크놀로지는 플랜트입니다.UML 기반. 즉, 추가 플랜트를 사용하여 다이어그램을 개선할 수 있습니다.UML 마크업
binarydoc이라는 이름의 무료 도구가 있습니다.UML Sequence Diagram
, 「」Control Flow Graph
)CFG
에서 참조해 주세요.bytecode
자바어
Java 메서드 java.net용으로 생성된 샘플 다이어그램 binarydoc을 다음에 나타냅니다.Abstract Plain Socket Impl.get Input Stream:
- 방법의 제어 흐름 그래프
java.net.AbstractPlainSocketImpl.getInputStream
:
- 방법의 UML 시퀀스 다이어그램
java.net.AbstractPlainSocketImpl.getInputStream
:
PlantUML을 추천합니다.이 도구는 매우 유용하고 사용하기 쉽습니다.PlantUML에는 Netbeans용 플러그인이 있어 Java 코드에서 UML 다이어그램을 작성할 수 있습니다.
플랜트를 설치할 수 있습니다.다음 방법으로 넷빈 내의 UML 플러그인:
Netbeans 메뉴 -> 도구 -> 플러그인
[ Available Plugins ]를 선택하고 [Plant]를 찾습니다.UML 및 설치.
상세한 것에 대하여는, 다음의 Web 사이트를 참조해 주세요.www.plantuml.com
언급URL : https://stackoverflow.com/questions/51786/how-to-generate-uml-diagrams-especially-sequence-diagrams-from-java-code
'programing' 카테고리의 다른 글
RegisterServiceWorker.js에서 Vue 앱 $refs.components 또는 Vuex $store 메서드를 호출하는 방법 (0) | 2022.08.14 |
---|---|
JAX-RS - JSON 및 HTTP 상태 코드를 함께 반환하려면 어떻게 해야 합니까? (0) | 2022.08.14 |
Z/OS에서 C++의 C 소켓 API를 사용하는 방법 (0) | 2022.08.14 |
모바일의 MS 팀 내 인증 탭 (0) | 2022.08.14 |
Vue 컴포넌트 Vue-Instant (0) | 2022.08.14 |