UML 모델 및 다이어그램 확장

이 항목에서는 Visual Studio Ultimate의 UML 모델링 도구를 확장할 수 있는 다양한 방법을 요약하여 설명합니다.

다음 예제 시나리오에서는 Fabrikam 팀이 공항 수하물 처리 시스템을 디자인하고 설치합니다. 각 공항 프로젝트마다 기본 장비 및 장비를 제어하는 소프트웨어에서 많은 공통점이 있습니다. 그러나 컨베이어 벨트, 체크인 데스크, 저장 시설 및 기타 가방 운반 장비의 구성과 같이 광범위하게 변화하는 몇 가지 요인도 있습니다.

Fabrikam 팀은 새 프로젝트를 시작할 때 팀 멤버 및 고객과 이러한 요구 사항에 대해 논의하기 위해 UML 모델을 만듭니다. 여기서 동작 다이어그램을 사용하여 각 장비를 나타내는 개체 노드와 함께 가방의 흐름을 나타냅니다. UML 모델은 시스템의 코드를 직접 나타내지는 않습니다.

Fabrikam의 도구 팀은 개발 팀에 도움이 되는 고급 기능을 만듭니다. 다음 단원에서는 정의할 수 있는 다양한 종류의 확장에 대해 설명합니다. Visual Studio 확장명으로 이러한 방법을 몇 가지를 결합할 수 있습니다.

이 비디오에 대 한 자세한 내용은 참조 하십시오: 비디오에 링크MSDN 방법 시리즈: UML 도구 및 확장성.

요구 사항

프로필

프로필을 사용하면 스테레오타입과 UML 요소에 대한 추가 속성을 정의할 수 있습니다.

Fabrikam의 도구 개발자는 동작 다이어그램의 개체 노드에 스테레오타입을 정의합니다(예: «conveyor belt»와 «checkin desk»). 팀 멤버가 동작 다이어그램을 사용하여 수하물 처리 구성을 만들면 개발자는 각 노드가 나타내는 장비의 유형을 기술하기 위해 스테레오타입을 설정할 수 있습니다. 도구 개발자는 사용자가 컨베이어 벨트의 최대 수용량과 체크인 데스크 담당 직원의 수 등과 같은 값을 기록할 수 있도록 일부 스테레오타입에 대해 추가 속성을 정의합니다.

자세한 내용은 방법: 프로필을 정의하여 UML 확장을 참조하십시오.

사용자 지정 도구 상자 항목

사용자 지정 도구 상자 항목은 다이어그램에 정의하는 프로토타입에서 요소 또는 요소 그룹을 만듭니다. 예를 들어 특정 색이나 스테레오타입의 사용 사례를 만드는 도구를 만들거나, 디자인 패턴을 나타내는 클래스 및 연결 그룹을 만들 수 있습니다. 이러한 도구 상자 항목을 Visual Studio Extension에 추가하여 다른 사용자에게 배포할 수 있습니다.

자세한 내용은 방법: 사용자 지정 모델링 도구 상자 항목 정의를 참조하십시오.

유효성 검사

UML 모델이 지정된 제약 조건을 따르도록 규칙을 정의할 수 있습니다.

Fabrikam의 도구 개발자는 팀 멤버가 수하물 처리 모델에서 간단한 실수를 하지 않도록 규칙을 정의합니다. 예를 들어 체크인 데스크는 저장 시설에 직접 연결될 수 없으며 그 사이에 최소한 컨베이어 벨트가 있어야 합니다.

자세한 내용은 방법: UML 모델에 대한 유효성 검사 제약 조건 정의를 참조하십시오.

메뉴 명령

사용자가 UML 다이어그램의 요소를 마우스 오른쪽 단추로 클릭하여 호출하는 명령을 정의할 수 있습니다. 이러한 명령은 모델 및 다이어그램을 업데이트하거나 Visual Studio에서 다른 작업을 수행할 수 있습니다.

Fabrikam 팀은 체크인 데스크를 만들어 선택한 컨베이어 벨트에 연결하거나 회사의 레이아웃 규칙에 따라 다이어그램을 다시 정렬하는 등 자주 수행하는 작업을 자동화하는 메뉴 명령을 정의합니다.

자세한 내용은 방법: 모델링 다이어그램의 메뉴 명령 정의를 참조하십시오.

제스처

사용자가 다이어그램 요소를 두 번 클릭하거나, 다이어그램 또는 다이어그램의 요소로 끌어 오면 시작되는 명령을 정의할 수 있습니다. 명령에서 다른 부분이 나 다른 응용 프로그램 또는 Windows 탐색기 (또는 파일 탐색기. Visual Studio 다른 UML 다이어그램에서 끌어 온 항목을 처리할 수를 정의할 수 있습니다.

Fabrikam 팀 멤버는 Windows 바탕 화면에서 파일(예: 사양)을 끌어 어떤 모델 요소와도 연결할 수 있습니다. 도구 개발자는 임의의 요소에 파일 경로 속성을 제공하는 스테레오타입 및 파일을 요소에 끌어 올 때 파일 경로와 스테레오타입을 설정하는 제스처를 정의했습니다.

자세한 내용은 방법: 모델링 다이어그램의 제스처 처리기 정의를 참조하십시오.

변경에 응답

사용자 작업이나 다른 프로그램 코드에 의해 발생한 모델의 변경에 응답하는 코드를 작성할 수 있습니다.

Fabrikam의 개발자는 해당 스테레오타입에 따라 요소의 색상을 자동으로 설정하는 코드를 작성합니다. 이렇게 하면 사용자들이 모델에서 요소가 수행하는 서로 다른 역할을 쉽게 구별할 수 있습니다.

자세한 내용은 방법: UML 모델의 변경 내용에 응답을 참조하십시오.

모델 버스

모델 버스를 사용하면 다른 다이어그램 또는 다른 Visual Studio Extension에서 다이어그램이나 모델에 액세스할 수 있습니다. 그 중에서도 둘 이상의 모델에 정보를 전달할 수 있으므로 여러 사람이 결합 모델에서 동시에 작업할 수 있다는 이점이 있습니다.

Fabrikam 팀은 동작 다이어그램의 요소를 사용하여 수하물 처리 장비를 나타냅니다. 장비의 각 항목에 대한 자세한 사양은 다른 모델의 다른 다이어그램에 있을 수 있습니다. 수하물 흐름 다이어그램의 유효성 검사 제약 조건은 다른 다이어그램에서 장비의 관련 속성을 검색할 수 있습니다. 다른 다이어그램에 대한 참조는 스테레오타입에 정의된 추가 속성에 저장됩니다.

자세한 내용은 방법: UML 모델을 다른 모델 및 도구와 통합를 참조하십시오.

생성

모델에서 프로그램 코드, 스크립트, 구성, 문서, 새 모델 또는 다른 아티팩트를 생성할 수 있습니다.

Fabrikam에서 디자인하는 수화물 시스템의 프로그램 코드 중 대부분은 이후 프로젝트에서도 동일하게 유지됩니다. 가장 변하기 쉬운 부분은 공항 주위에서 수화물의 흐름 계획입니다. 디자인 팀이 처음 몇 번 정도 프로젝트를 경험한 후 도구 개발자는 수화물 흐름 모델에서 변하기 쉬운 프로그램 코드의 대부분과 기타 파일(예: 사용자 문서)을 생성하는 템플릿을 만듭니다. 이렇게 하면 새로 진행하는 각 프로젝트에 대해 개발 시간과 오류 비율이 상당히 줄어듭니다.

자세한 내용은 방법: UML 모델에서 파일 생성을 참조하십시오.

Team Foundation Server 통합

작업 항목을 모델 요소에 연결하고 연결된 항목에 프로그래밍 방식으로 액세스할 수 있습니다.

Fabrikam의 도구 개발자는 각 공항 프로젝트의 작업 일정을 생성하는 도구를 작성합니다. 이 일정의 작업 항목이 모델 요소에 연결됩니다.

자세한 내용은 방법: 작업 항목 링크 처리기 정의을 참조하십시오.

모델 업데이트 도구

UML 모델을 로드할 수 있는 독립 실행형 응용 프로그램과 Visual Studio Extension을 만들 수 있습니다.

Fabrikam의 개발자는 모델을 읽고, 모델의 각 요소에서 작업 진행률 보고서를 생성하는 도구를 만듭니다.

자세한 내용은 방법: 프로그램 코드에서 UML 모델 읽기를 참조하십시오.

DSL(Domain-Specific Language)

특정 형식의 모델을 자주 사용하는 경우 DSL(Domain-Specific Language)를 만들면 유용할 수 있습니다. 비즈니스 요구 사항을 UML 모델보다 더 밀접하게 반영하도록 DSL을 만들 수 있지만 DSL은 빌드 및 유지 관리하기가 더 까다로울 수 있습니다. 자세한 내용은 Visual Studio용 모델링 SDK - 도메인별 언어을 참조하십시오.

외부 리소스

범주

링크

비디오

비디오에 링크

비디오에 링크

포럼

블로그

ALM Visual Studio + 블로그 Team Foundation Server

기술 문서 및 저널

The Architecture Journal - Issue 23: Architecture Modeling and Processes

기타 사이트

MSDN Architecture Center

참고 항목

개념

소프트웨어 디자인용 모델 개발

기타 리소스

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