UML API를 사용한 프로그래밍
Visual Studio Ultimate의 UML API를 사용하면 UML 모델과 다이어그램을 만들고, 읽고, 업데이트하는 코드를 작성할 수 있습니다.
API 참조 페이지 외에 다음 항목에서도 API에 대해 설명합니다.
항목 |
예제 형식 및 메서드 |
기능 |
---|---|---|
UML 요소 및 해당 요소의 속성과 연결. 예를 들면 IElement와 하위 항목(IClass, IActivity, IUseCase, IComponent, IInteraction, IModel, IPackage 등)입니다. |
Visual Studio Ultimate의 UML 모델은 UML Resource Page에서 가져올 수 있는 UML 사양 버전 2.1.2를 따릅니다. 각 형식은 UML 형식과 이름이 같은 인터페이스이며, 이름 앞에 접두사 "I"가 지정됩니다. |
|
IPackage.CreateClass() IClass.CreateOperation() |
각 요소 형식에는 자식을 만들기 위한 메서드가 있습니다. |
|
IShape, IDiagram IShape.Move() |
모델의 각 요소를 다이어그램에 모양으로 나타낼 수 있습니다. 경우에 따라 각 개체에 대해 새 모양을 만들 수도 있습니다. 이러한 모양을 이동하고 크기를 조정하거나 색을 지정할 수 있으며 확장/축소도 할 수 있습니다. |
|
IModelStore IDiagramContext |
모델 저장소는 모델을 저장합니다. 다이어그램 컨텍스트를 사용하면 현재 다이어그램 및 저장소에 액세스할 수 있습니다. |
|
ILinkedUndoContext |
일련의 변경 내용을 한 트랜잭션으로 연결할 수 있습니다. |
|
IMenuCommand IGestureExtension ICommandExtension |
두 번 클릭하거나 다이어그램으로 끌어 오는 방식으로 호출되는 명령을 정의하여 다이어그램의 기능을 확장할 수 있습니다. |
|
ValidationContext |
모델이 지정된 제약 조건을 따르도록 하는 데 도움이 되는 유효성 검사 규칙을 정의할 수 있습니다. |
|
IElement, IShape |
UML 모델 탐색기 또는 UML 다이어그램에서 다른 다이어그램이나 응용 프로그램으로 요소를 끌어 오면 해당 요소가 IDataObject로 serialize됩니다. |
|
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 도구에 대한 확장성을 제공하는 어셈블리와 사용할 권장 네임스페이스에 대해 간략히 설명합니다.
어셈블리 |
네임스페이스 |
액세스 가능한 항목 |
---|---|---|
Microsoft.VisualStudio.Uml.Interfaces |
(모두) |
UML 형식 |
Microsoft.VisualStudio.ArchitectureTools.Extensibility |
||
Microsoft.VisualStudio.ArchitectureTools.Extensibility.Presentation |
||
Microsoft.VisualStudio.Modeling.Sdk.10.0 |
||
(기타 네임스페이스) |
고급 용도로만 사용하는 것이 좋음 |
|
Microsoft.VisualStudio.Modeling.Sdk.Diagrams.10.0 |
Microsoft.VisualStudio.Modeling.Diagrams.ExtensionEnablement |
|
(기타 네임스페이스) |
고급 용도로만 사용하는 것이 좋음 |
|
Microsoft.VisualStudio.TeamFoundation.WorkItemTracking |
Microsoft.VisualStudio.TeamFoundation.WorkItemTracking |
|
Microsoft.TeamFoundation.WorkItemTracking.Client |
||
Microsoft.TeamFoundation.Client |
||
System.ComponentModel.Composition |
||
System.Linq |