UML 툴
UML toolUML 도구는 소프트웨어 엔지니어링의 업계 표준 범용 모델링 언어인 Unified Modeling Language(UML)와 관련된 표기법 및 의미론의 일부 또는 모두를 지원하는 소프트웨어 애플리케이션입니다.
UML 툴은 UML에만 초점을 맞춘 어플리케이션 프로그램을 포함하기 위해 널리 사용됩니다.이 프로그램들은 UML에만 초점을 맞춘 것이 아니라 추가 기능, 컴포넌트 또는 전체 기능의 일부로서 Unified Modeling Language의 일부 기능을 지원합니다.
기능의 종류
UML 도구는 다음 종류의 기능을 지원합니다.
다이어그램 작성
이 맥락에서 다이어그램 작성은 UML 다이어그램의 작성 및 편집을 의미합니다.UML 다이어그램은 Unified Modeling Language의 그래픽 표기법을 따르는 다이어그램입니다.
UML 도표를 객체 지향 소프트웨어의 도표를 그리는 수단으로 사용하는 것은 일반적으로 소프트웨어 개발자에 의해 합의되어 있습니다.개발자들이 객체 지향 소프트웨어의 도표를 그릴 때, 그들은 보통 UML 표기법을 따릅니다.한편, 이러한 다이어그램이 필요한지, 소프트웨어 개발 프로세스의 어떤 단계에서 사용해야 하는지, 그리고 어떻게 최신 상태를 유지해야 하는지에 대해서는 종종 논의됩니다.소프트웨어 코드의 중요성은 종종 다이어그램이 폐지되는 결과를 초래합니다.
왕복 엔지니어링
라운드 트립 엔지니어링은 모델과 코드가 의미론적으로 서로 일관성을 유지하면서 모델로부터 코드 생성 및 코드(리버스 엔지니어링이라고도 함)에서 모델 생성을 수행하는 UML 툴의 기능을 말합니다.코드 생성 및 리버스 엔지니어링에 대해서는 아래에서 자세히 설명합니다.
코드 생성
이 맥락에서 코드 생성은 사용자가 일부 연결된 모델 데이터를 가진 UML 다이어그램을 생성하는 것을 의미하며, UML 도구는 소프트웨어 시스템의 다이어그램 부분 또는 소스 코드 모두에서 파생됩니다.일부 툴에서는 사용자가 소스 코드 템플릿의 형태로 프로그램 소스 코드의 골격을 제공할 수 있으며, 코드 생성 프로세스 중에 미리 정의된 토큰이 프로그램 소스 코드 부분으로 대체됩니다.
자주 인용되는 비판은 UML 다이어그램이 프로그램 소스와 동일한 정보를 포함하는데 필요한 세부 정보가 부족하다는 것입니다. Jack W. Reeves는 설계의 최종 구현이 소스 코드에 있다고 말합니다.(그의 자주 인용된 "강령은 설계"는 UML 다이어그램이나 소프트웨어 요건 문서와 같은 중급 및 고급 소프트웨어 설계 아티팩트가 필요하지 않음을 의미하는 것으로 잘못 해석되었습니다).
리버스 엔지니어링
이 맥락에서 리버스 엔지니어링은 UML 툴이 프로그램 소스 코드를 입력으로 읽고 모델 데이터와 이에 대응하는 그래픽 UML 다이어그램을 도출하는 것을 의미합니다('리버스 엔지니어링' 기사에 기술된 다소 광범위한 의미와는 반대).
리버스 엔지니어링의 과제는 다음과 같습니다.
- 소스코드에는 설계도보다 훨씬 상세한 정보가 포함되어 있는 경우가 많습니다.이 문제는 소프트웨어 아키텍처 재구축으로 해결됩니다.
- 다이어그램 데이터는 보통 프로그램 소스에 포함되지 않으며, 적어도 초기 단계에서 UML 툴은 UML 표기법의 그래픽 심볼의 랜덤 레이아웃을 작성하거나 사용자가 그림을 이해할 수 있는 방법으로 심볼을 배치하기 위해 몇 가지 자동 레이아웃 알고리즘을 사용해야 한다.예를 들어, 기호는 도면 창의 겹치지 않는 위치에 배치해야 합니다.일반적으로 UML 도구의 이러한 기능을 사용하는 사용자는 의미를 얻기 위해 자동으로 생성된 다이어그램을 수동으로 편집해야 합니다.또한 전체 프로그램 소스의 그림을 그리는 것도 의미가 없습니다. UML 다이어그램 수준에서 너무 많은 세부 사항을 나타내기 때문입니다.
- C++ 프로그래밍 언어의 클래스 템플릿이나 함수 템플릿과 같은 일부 프로그래밍 언어의 언어 특징이 있으며, 이러한 언어들은 완전히 복잡하기 때문에 UML 다이어그램으로 자동 변환하는 것이 어렵기로 악명 높다.
모형과 다이어그램의 교환
XML Metadata Interchange(XMI; XML 메타데이터 교환)는 UML 모델 교환 형식입니다.XMI는 모델 간에 UML 다이어그램을 가져올 수 있는 UML 다이어그램 교환을 지원하지 않습니다.
모델 변환
모델 중심 아키텍처 이니셔티브와 관련된 주요 개념은 모델을 다른 모델로 변환하는 능력입니다.예를 들어 플랫폼에 의존하지 않는 도메인 모델을 Java 플랫폼 고유의 구현 모델로 변환할 수 있습니다.또한 UML 모델을 리팩터링하여 보다 간결하고 잘 형성된 UML 모델을 제작할 수도 있습니다.UML 모델 자체는 UML 프로파일인 BPMN과 같은 다른 모델링 표기법에서 UML 모델을 생성할 수 있습니다.이를 지원하는 표준을 쿼리/뷰/변환용 QVT라고 합니다.오픈 소스 QVT 솔루션의 예로는 INRIA에 의해 구축된ATL 언어가 있습니다.
「 」를 참조해 주세요.
- 통합 모델링 언어 도구 목록
- 요건 엔지니어링 도구 목록
- 메타모델링
- 모델 주도형 엔지니어링
- QVT
- 사양 및 설명 언어(SDL)