다음을 통해 공유


UML API를 사용한 프로그래밍

Visual Studio Ultimate의 UML API를 사용하면 UML 모델과 다이어그램을 만들고, 읽고, 업데이트하는 코드를 작성할 수 있습니다.

API 참조 페이지 외에 다음 항목에서도 API에 대해 설명합니다.

항목

예제 형식 및 메서드

기능

방법: UML API와의 관계 탐색

UML 요소 및 해당 요소의 속성과 연결. 예를 들면 IElement와 하위 항목(IClass, IActivity, IUseCase, IComponent, IInteraction, IModel, IPackage 등)입니다.

Visual Studio Ultimate 에서, UML 모델은 UML 리소스 페이지 에서 얻을 수 있는 UML 사양 버전 2.1.2에 일치합니다., . 각 형식은 UML 형식과 이름이 같은 인터페이스이며, 이름 앞에 접두사 "I"가 지정됩니다.

방법: 요소 및 관계 만들기

IPackage.CreateClass()

IClass.CreateOperation()

각 요소 형식에는 자식을 만들기 위한 메서드가 있습니다.

방법: 다이어그램에 모델 표시

IShape, IDiagram

IShape.Move()

모델의 각 요소를 다이어그램에 모양으로 나타낼 수 있습니다. 경우에 따라 각 개체에 대해 새 모양을 만들 수도 있습니다. 이러한 모양을 이동하고 크기를 조정하거나 색을 지정할 수 있으며 확장/축소도 할 수 있습니다.

방법: UML 모델 탐색

IModelStore

IDiagramContext

모델 저장소는 모델을 저장합니다.

다이어그램 컨텍스트를 사용하면 현재 다이어그램 및 저장소에 액세스할 수 있습니다.

방법: 트랜잭션을 사용하여 모델 업데이트 연결

ILinkedUndoContext

일련의 변경 내용을 한 트랜잭션으로 연결할 수 있습니다.

방법: 모델링 다이어그램의 메뉴 명령 정의

IMenuCommand

IGestureExtension

ICommandExtension

두 번 클릭하거나 다이어그램으로 끌어 오는 방식으로 호출되는 명령을 정의하여 다이어그램의 기능을 확장할 수 있습니다.

방법: UML 모델에 대한 유효성 검사 제약 조건 정의

ValidationContext

모델이 지정된 제약 조건을 따르도록 하는 데 도움이 되는 유효성 검사 규칙을 정의할 수 있습니다.

방법: IDataObject에서 UML 모델 요소 가져오기

IElement, IShape

UML 모델 탐색기 또는 UML 다이어그램에서 다른 다이어그램이나 응용 프로그램으로 요소를 끌어 오면 해당 요소가 IDataObject로 serialize됩니다.

방법: UML API를 사용하여 시퀀스 다이어그램 편집

IInteraction, ILifeline, IMessage

상호 작용 다이어그램을 만들고 업데이트하는 것은 다른 다이어그램 형식으로 작업하는 것과 약간 다릅니다.

레이어 다이어그램 확장

ILayer, ILayerDiagram

레이어 다이어그램을 만들고 편집하는 코드를 작성할 수 있으며 해당 다이어그램을 기준으로 프로그램 코드의 유효성을 검사할 수도 있습니다.

구현 정보

UML 모델링 도구는 Domain-Specific Language Tools에 포함되어 있습니다. 각 패키지와 각 다이어그램은 하나의 Domain-Specific Language Tools 모델로 표현되며 규칙 및 기타 메서드의 컬렉션은 이들 간의 일관성을 유지합니다.

해당 플랫폼의 형식은 UML 확장을 작성하기 위해 참조하는 일부 어셈블리에서 표시됩니다. Domain-Specific Language Tools API에 액세스하여 UML 도구에 대한 확장을 만들 수 있지만 이때 다음 사항을 고려해야 합니다.

  • 아주 단순한 변경 사항으로 인해서도 불일치 문제나 예기치 않은 결과가 발생할 수 있습니다.

  • 이후에 구현이 변경됨으로써 Domain-Specific Language Tools API를 사용하여 적용한 사항이 더 이상 적용되지 않을 수 있습니다.

API 어셈블리

다음 표에서는 UML 도구에 대한 확장성을 제공하는 어셈블리와 사용할 권장 네임스페이스에 대해 간략히 설명합니다.

Assembly

네임스페이스

액세스 가능한 항목

Microsoft.VisualStudio.Uml.Interfaces

(모두)

UML 형식

Microsoft.VisualStudio.ArchitectureTools.Extensibility

Microsoft.VisualStudio.ArchitectureTools.Extensibility.Uml

만들기 메서드

Microsoft.VisualStudio.ArchitectureTools.Extensibility.Presentation

다이어그램 및 모양

Microsoft.VisualStudio.ArchitectureTools.Extensibility

모델링 프로젝트

Microsoft.VisualStudio.Modeling.Sdk.12.0

Microsoft.VisualStudio.Modeling.ExtensionEnablement

메뉴 명령 확장

연결된 실행 취소 트랜잭션

Microsoft.VisualStudio.Modeling.Validation

유효성 검사

(기타 네임스페이스)

고급 용도로만 사용하는 것이 좋음

Microsoft.VisualStudio.Modeling.Sdk.Diagrams.12.0

Microsoft.VisualStudio.Modeling.Diagrams.ExtensionEnablement

제스처 처리기

(기타 네임스페이스)

고급 용도로만 사용하는 것이 좋음

Microsoft.VisualStudio.TeamFoundation.WorkItemTracking

Microsoft.VisualStudio.TeamFoundation.WorkItemTracking

작업 항목 링크

Microsoft.TeamFoundation.WorkItemTracking.Client

Microsoft.TeamFoundation.WorkItemTracking.Client

작업 항목 및 해당 필드

Microsoft.TeamFoundation.Client

Microsoft.TeamFoundation.Client

작업 항목 및 해당 필드

System.ComponentModel.Composition

System.ComponentModel.Composition

MEF 구성 요소 내보내기 및 가져오기

System.Linq

System.Linq

손쉬운 컬렉션 조작(특히 관계를 처리할 경우)

참고 항목

개념

UML 모델 및 다이어그램 확장

기타 리소스

UML 모델링 확장성을 위한 API 참조