방법: 프로필을 정의하여 UML 확장

Visual Studio Ultimate에서는 UML 프로필을 정의하여 특정 용도에 맞는 표준 모델 요소를 사용자 지정할 수 있습니다. 프로필은 하나 이상의 UML 스테레오 타입 을 정의합니다. 특정 종류의 개체를 나타내는 것으로 형식을 표시 하는 스테레오 타입을 사용할 수 있습니다. 또한 스테레오타입은 요소의 속성 목록을 확장하는데 사용할 수 있습니다.

몇 가지 프로필이 Visual Studio Ultimate과 함께 설치됩니다. 이러한 프로필에 대한 내용 및 스테레오타입을 적용하는 방법에 대한 자세한 내용은 프로필 및 스테레오타입을 사용하여 모델 사용자 지정을 참조하십시오.

UML을 비즈니스 영역 또는 아키텍처에 맞게 변경하고 확장하도록 프로필을 직접 정의할 수 있습니다. 예를 들면 다음과 같습니다.

  • 웹 사이트를 자주 정의하는 경우에는 클래스 다이어그램의 클래스에 적용할 수 있는 «WebPage» 스테레오타입을 제공하는 프로필을 정의할 수 있습니다. 그런 다음 클래스 다이어그램을 사용하여 웹 사이트를 계획할 수 있습니다. 모든 «WebPage» 클래스에는 페이지 내용, 스타일 등에 대한 추가 속성이 있습니다.

  • 뱅킹 소프트웨어를 개발하는 경우 «Account» 스테레오타입을 제공하는 프로필을 정의할 수 있습니다. 그런 다음 클래스 다이어그램을 사용하여 여러 종류의 계좌를 정의하고 관계를 표시할 수 있습니다.

직접 정의한 프로필을 팀에 배포하고 각 팀 멤버는 이 프로필을 설치할 수 있습니다. 그러면 프로필의 스테레오타입을 사용하는 모델을 만들고 편집할 수 있습니다.

참고

사용자가 편집하고 있는 모델에서 프로필의 스테레오타입을 적용하고 이 모델을 다른 사람과 공유하는 경우 받는 사람의 컴퓨터에도 같은 프로필이 설치되어야 합니다.그렇지 않으면 받는 사람은 사용된 스테레오타입을 볼 수 없습니다.

프로필이 더 큰 Visual Studio Extension의 일부인 경우가 종종 있습니다. 예를 들어 모델의 일부 요소를 코드로 변환하는 명령을 정의하고, 사용자가 변환할 패키지에 적용해야 할 프로필을 정의할 수 있습니다. 그런 다음 단일 Visual Studio Extension에서 새 명령를 프로필과 함께 배포합니다.

지역화된 형태로 프로필을 변형하여 정의할 수도 있습니다. 확장을 로드하는 사용자는 자신의 문화권에 적절한 변형 프로필을 봅니다.

프로필을 정의하는 방법

UML 프로필을 정의하려면

  1. 파일 확장명이 .profile인 새 XML 파일을 만듭니다.

  2. 프로필의 구조에 설명된 지침에 따라 스테레오타입 정의를 추가합니다.

  3. Visual Studio Extension(.vsix 파일)에 프로필을 추가합니다. 프로필에 대한 새 확장을 만들거나 기존 확장에 프로필을 추가할 수 있습니다.

    자세한 내용은 다음에 나오는 Visual Studio Extension에 프로필을 추가하는 방법 단원을 참조하십시오.

  4. 컴퓨터에 확장을 설치합니다.

    1. 파일 확장명이 .vsix인 확장 파일을 두 번 클릭합니다.

    2. Visual Studio를 다시 시작합니다.

  5. 프로필이 설치되었는지 확인합니다.

    1. UML 탐색기에서 모델을 선택합니다.

    2. 속성 창에서 프로필 속성을 클릭합니다. 그러면 프로필이 메뉴에 나타납니다. 프로필 옆의 확인란을 선택합니다.

    3. 프로필에 스테레오타입이 정의되어 있는 요소를 선택합니다. 속성 창에서 스테레오타입 속성을 클릭합니다. 스테레오타입이 목록에 표시됩니다. 스테레오타입 중 하나의 확인란을 선택합니다.

    4. 프로필에 이 스테레오타입에 대한 추가 속성이 정의된 경우 스테레오타입 속성을 확장하여 추가 속성을 봅니다.

  6. 다른 Visual Studio 사용자가 컴퓨터에 설치할 수 있도록 확장 파일을 보냅니다.

Visual Studio Extension에 프로필을 추가하는 방법

프로필을 설치하고 다른 사용자에게 프로필을 보낼 수 있게 하려면 Visual Studio Extension에 프로필을 추가해야 합니다. 자세한 내용은 Visual Studio 확장 배치을 참조하십시오.

새 Visual Studio Extension에서 프로필을 정의하려면

  1. Visual Studio Extension 프로젝트를 만듭니다.

    참고

    이 절차를 사용하려면 Visual Studio SDK가 설치되어 있어야 합니다.

    1. 파일 메뉴에서 새로 만들기를 가리킨 다음 프로젝트를 클릭합니다.

    2. 새 프로젝트 대화 상자의 설치된 템플릿에서 **Visual C#**을 확장하고 확장성, VSIX 프로젝트를 차례로 클릭합니다. 그런 다음 프로젝트 이름을 설정하고 확인을 클릭합니다.

  2. 프로필을 프로젝트에 추가합니다.

    • 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음, 기존 항목을 클릭합니다. 대화 상자가 나타나면 프로필 파일을 찾습니다.
  3. 프로필 파일의 출력 디렉터리로 복사 속성을 설정합니다.

    1. 솔루션 탐색기에서 프로필 파일을 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.

    2. 속성 창에서 출력 디렉터리로 복사 속성을 항상 복사로 설정합니다.

  4. 솔루션 탐색기에서 source.extension.vsixmanifest를 엽니다.

    확장 매니페스트 편집기에서 파일이 열립니다.

  5. 자산 페이지에서 프로필을 설명하는 행을 추가 합니다:

    • 새로 만들기를 클릭합니다. 새 자산 추가 대화 상자의 필드를 다음과 같이 설정합니다.

    • 형식을 Microsoft.VisualStudio.UmlProfile로 설정합니다.

      이것이 드롭다운 선택 사항 중 하나입니다. 키보드에서 이 이름을 입력 합니다.

    • 파일 시스템에서의 파일 을 클릭하고 MyProfile.profile과 같은 프로필 파일의 이름을 선택합니다.

  6. 프로젝트를 빌드합니다.

  7. 프로필을 디버깅하려면, F5를 누릅니다.

    그러면 실험 모드의 Visual Studio 인스턴스가 열립니다. 이 인스턴스에서 모델링 프로젝트를 엽니다. UML 탐색기에서 모델의 루트 요소를 선택하고, 속성 창에서 프로필을 선택 합니다. 모델 내의 요소를 선택하고 정의된 스테레오 타입을 설정합니다.

  8. VSIX 배포를 추출 하려면

    1. Windows 탐색기에서 .\bin\Debug 또는 .\bin\Release 폴더를 열어 .vsix 파일을 찾습니다. 이 파일은 Visual Studio Extension 파일입니다. 이 파일을 컴퓨터에 설치하거나 다른 Visual Studio 사용자에게 보낼 수 있습니다.

    2. 확장을 설치하려면 다음과 같이 합니다.

      1. .vsix 파일을 두 번 클릭합니다. 그러면 Visual Studio Extension 설치 관리자가 시작됩니다.

      2. 현재 실행되고 있는 Visual Studio 인스턴스를 다시 시작합니다.

Visual Studio SDK가 설치되어 있지 않으면 소규모 확장을 위해 다음 절차를 대신 사용할 수 있습니다.

Visual Studio SDK를 사용하지 않고 프로필 확장을 정의하려면

  1. 다음 세 파일을 포함하는 Windows 디렉터리를 만듭니다.

    • YourProfile.profile

    • extension.vsixmanifest

    • [Content_Types].xml - 이 이름을 여기에 나와 있는 대로 대괄호를 포함하여 입력합니다.

  2. 다음 텍스트를 포함하도록 [Content_Types].xml을 편집합니다. 여기에는 각 파일 확장명에 대한 항목이 포함되어 있습니다.

    <?xml version="1.0" encoding="utf-8"?>
    <Types xmlns="https://schemas.openxmlformats.org/package/2006/content-types">
      <Default Extension="profile" ContentType="application/octet-stream" />
      <Default Extension="vsixmanifest" ContentType="text/xml" />
    </Types>
    
  3. 기존 extension.vsixmanifest를 복사하고 XML 편집기로 편집합니다. ID, 이름 및 콘텐츠 노드를 변경합니다.

    • 다음 디렉터리에서 extension.vsixmanifest 예제를 찾을 수 있습니다.

      drive**:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Architecture Tools\UmlProfiles**

    • 콘텐츠 노드는 다음과 비슷합니다.

      <Content>
        <CustomExtension Type="Microsoft.VisualStudio.UmlProfile"
        >YourProfile.Profile</CustomExtension>
      </Content>
      
  4. 세 파일을 압축합니다.

    Windows 탐색기에서 세 파일을 선택하고 마우스 오른쪽 단추를 클릭한 다음, 보내기를 가리키고 압축(ZIP) 폴더를 클릭합니다.

  5. 압축 파일의 이름을 바꾸고 파일 확장명을 .zip에서 .vsix로 변경합니다.

  6. 적절한 버전의 Visual Studio가 있는 컴퓨터에 프로필을 설치하려면 .vsix 파일을 두 번 클릭합니다.

Visual Studio Extension에서 UML 프로필을 설치하려면

  1. Windows 탐색기에서 .vsix 파일을 두 번 클릭하거나 Visual Studio에서 이 파일을 엽니다.

  2. 대화 상자가 나타나면 설치를 클릭합니다.

  3. 확장을 제거하거나 일시적으로 사용할 수 없게 하려면 도구 메뉴에서 확장 관리자를 엽니다.

지역화된 프로필을 정의하는 방법

문화권이나 언어에 따라 다양한 프로필을 정의하여 모든 프로필을 같은 확장에 패키지할 수 있습니다. 사용자가 확장을 로드하면 해당 사용자의 문화권에 맞게 정의된 프로필이 표시됩니다.

기본 프로필을 항상 제공해야 합니다. 사용자의 문화권에 대한 프로필을 정의하지 않았으면 기본 프로필이 표시됩니다.

지역화된 프로필을 정의하려면

  1. 앞부분에 나온 프로필을 정의하는 방법 및 Visual Studio Extension에 프로필을 추가하는 방법 단원에서 설명한 대로 프로필을 만듭니다. 이 프로필은 지역화된 프로필을 제공하지 않는 설치에서 사용되는 기본 프로필입니다.

  2. 기본 프로필 파일과 같은 디렉터리에 새 디렉터리를 추가합니다.

    참고

    Visual Studio Extension 프로젝트를 사용하여 확장을 빌드하는 경우에는 솔루션 탐색기를 사용하여 프로젝트에 새 폴더를 추가합니다.

  3. 새 디렉터리의 이름을 지역화된 문화권의 ISO 약식 코드로 변경합니다. 예를 들어 불가리아어는 bg, 프랑스어는 fr입니다. 이때 fr-CA와 같은 특정 문화권이 아니라 일반적으로 두 자로 된 중립 문화권 코드를 사용해야 합니다. 문화권 코드에 대한 자세한 내용은 전체 문화권 코드 목록을 제공하는 CultureInfo.GetCultures method 페이지를 참조하십시오.

  4. 기본 프로필의 복사본을 새 디렉터리에 추가합니다. 이때 파일 이름을 변경하면 안 됩니다.

    빌드되거나 .vsix 파일로 압축되기 전의 Visual Studio Extension 폴더에는 다음과 같은 폴더 및 파일이 포함되어 있습니다.

    extension.vsixmanifest

    MyProfile.profile

    fr\MyProfile.profile

    de\MyProfile.profile

    참고

    프로필의 지역화된 버전에 대한 참조를 extension.vsixmanifest에 삽입하면 안 됩니다.복사된 프로필 파일은 부모 폴더의 프로필과 이름이 같아야 합니다.

  5. 프로필의 새 복사본을 편집합니다. 이때 displayName 특성과 같이 사용자에게 표시되는 모든 요소를 대상 언어로 변환합니다.

  6. 원하는 모든 문화권에 대해 추가 문화권 폴더 및 지역화된 프로필을 만들 수 있습니다.

  7. 이전 단원에서 설명한 대로 확장 프로젝트를 빌드하거나 모든 파일을 압축하여 Visual Studio Extension을 빌드합니다.

프로필의 구조

다음 샘플에서 UML 프로 파일에 대한 XSD 파일을 찾을 수 있습니다: 스테레오 타입 및 프로필 XSD 설정. 프로필 파일을 쉽게 편집하려면 다음 위치에 .xsd 파일을 설치합니다.

%ProgramFiles%\Microsoft Visual Studio 11.0\Xml\Schemas

이 단원에서는 C# 프로필을 예제로 사용합니다. 전체 프로필 정의 파일의 위치는 다음과 같습니다.

drive**:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Architecture Tools\UmlProfiles\CSharp.profile**

이 경로의 첫 번째 부분은 설치에 따라 조금씩 다를 수 있습니다.

.NET 프로필에 대한 자세한 내용은 UML 모델의 표준 스테레오타입을 참조하십시오.

UML 프로필 정의의 주요 섹션

모든 프로필에는 다음과 같은 콘텐츠가 포함되어 있습니다.

<?xml version="1.0" encoding="utf-8"?>
<profile dslVersion="1.0.0.0" 
       name="CSharpProfile" displayName="C# Profile" 
       xmlns="https://schemas.microsoft.com/UML2.1.2/ProfileDefinition">
  <stereotypes>...</stereotypes>
  <metaclasses>...</metaclasses>
  <propertyTypes>...</propertyTypes>
</profile>

참고

name이라는 특성에는 공백이나 마침표가 포함되면 안 됩니다.사용자 인터페이스에 나타나는 displayName 특성은 올바른 XML 문자열이어야 합니다.

모든 프로필에는 세 개의 주요 섹션이 포함되어 있는데, 역순으로 정렬할 경우 다음과 같습니다.

  • <propertyTypes> - 스테레오타입 섹션에 정의된 속성에 사용되는 형식 목록입니다.

  • <metaclasses> - 이 프로필의 스테레오타입을 적용할 모델 요소 형식의 목록입니다(예: IClass, IInterface, IOperation, IDependency).

  • <stereotypes> - 스테레오타입 정의입니다. 각 정의에는 대상 모델 요소에 추가되는 속성의 이름과 형식이 포함되어 있습니다.

속성 형식

<propertyTypes> 섹션에서는 <stereotypes> 섹션의 속성에 사용되는 형식 목록을 선언합니다. 이러한 속성에는 외부 형식과 열거형 형식이라는 두 가지 종류가 있습니다.

외부 형식은 다음과 같이 표준 .NET 형식의 정규화된 이름을 선언합니다.

<externalType name="System.String" />

열거형 형식은 리터럴 값 집합을 정의합니다.

    <enumerationType name="PackageVisibility">
      <enumerationLiterals>
        <enumerationLiteral name="internal" displayName="internal"  />
        <enumerationLiteral name="protectedinternal" displayName="protected internal" />
      </enumerationLiterals>
    </enumerationType>

메타클래스

<metaclasses> 섹션은 이 프로필의 스테레오타입이 정의될 수 있는 모델 요소 형식의 목록입니다.

<metaclass 
      name="Microsoft.VisualStudio.Uml.Classes.IClass" />
<metaclass
      name="Microsoft.VisualStudio.Uml.Classes.IInterface" />
<metaclass
      name="Microsoft.VisualStudio.Uml.Components.IComponent" />

메타클래스로 사용할 수 있는 모델 요소 및 관계 형식의 전체 목록을 보려면 모델 요소 형식을 참조하십시오.

스테레오타입 정의

<stereotypes> 섹션에는 스테레오타입 정의가 하나 이상 포함되어 있습니다.

    <stereotype name="CSharpClass" displayName="C# Class"> ...

각 스테레오타입에는 이 스테레오타입을 적용할 수 있는 모델 요소 또는 관계 형식이 하나 이상 나열되어 있습니다. 기본 형식의 이름을 지정하여 모든 파생 형식을 포함할 수 있습니다. 예를 들어 Microsoft.VisualStudio.Uml.Classes.IType을 지정하면 스테레오타입을 IClass, IInterface, IEnumeration 및 몇 가지 다른 형식의 요소에 적용할 수 있습니다.

      <metaclasses>
        <metaclassMoniker name=
         "/CSharpProfile/Microsoft.VisualStudio.Uml.Classes.IClass" />
      </metaclasses>

metaclassMoniker의 name 특성은 <metaClasses> 섹션의 요소에 대한 링크입니다.

참고

모니커 이름은 /yourProfileName/로 시작해야 하며, 여기서 yourProfileName은 프로필(이 예제의 경우 "CSharpProfile")의 name 특성에서 정의합니다.모니커는 metaclasses 섹션에 있는 항목 중 하나의 이름으로 끝납니다.

각 스테레오타입은 자신이 적용된 모델 요소에 추가하는 속성을 0개 이상 나열할 수 있습니다. <propertyType>에는 <propertyTypes> 섹션에 정의된 형식 중 하나에 대한 링크가 포함됩니다. 이 링크는 <externalType>,을 참조하는 <externalTypeMoniker> 또는 <enumerationType>을 참조하는 <enumerationTypeMoniker>여야 합니다. 마찬가지로 링크는 프로필 이름으로 시작합니다.

      <properties>
        <property name="IsStatic" 
                displayName="Is Static" defaultValue="false">
          <propertyType>
    <externalTypeMoniker 
                   name="/CSharpProfile/System.Boolean" />
          </propertyType>
        </property>
        <property name="PackageVisibility" 
                  displayName="Package Visibility"
                  defaultValue="internal">
          <propertyType>
            <enumerationTypeMoniker 
                  name="/CSharpProfile/PackageVisibility"/>
          </propertyType>
        </property>
      </properties>
    </stereotype>

모델 요소 형식

스테레오타입을 정의할 수 있는 형식 집합은 모델 요소 형식을 참조하십시오.

문제 해결

  • 내 스테레오타입이 UML 모델에 나타나지 않습니다.
    패키지나 모델에서 프로필을 선택해야 합니다. 그러면 패키지나 모델 내의 요소에 스테레오타입이 나타납니다. 자세한 내용은 방법: 모델 요소에 스테레오타입 추가을 참조하십시오.

  • UML 모델을 열면 VS1707: The following profiles cannot be loaded because a serialization error occurred: MyProfile.profile라는 오류가 나타납니다.

    1. .profile의 기본 XML 구문이 올바른지 확인합니다.

    2. 각 모니커 이름이 /profileName/nodeName 형식인지 확인합니다. 여기서 profileName은 루트 프로필 노드의 name 특성 값이고, nodeName은 metaclass, externalType 또는 enumerationType의 name 특성 값입니다.

    3. 구문이 이 항목에 설명된 것과 같고 drive**:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Architecture Tools\UmlProfiles\** 에서 보여 주는 것과 같은지 확인합니다.

    4. 오류가 발생한 확장을 제거합니다. 도구 메뉴에서 확장 관리자를 클릭합니다.

      • 해당 확장이 표시되지 않으면 다음 항목을 참조하십시오.
    5. VSIX 파일을 다시 빌드한 후 Windows 탐색기에서 열어 다시 설치합니다. Visual Studio를 다시 시작합니다.

  • 확장이 확장 관리자에 표시되지 않는데 이 확장을 다시 설치하려고 하면 "The extension is already installed to all applicable products."라는 메시지가 나타납니다.

    1. LocalAppData\Microsoft\VisualStudio\12.0\Extensions\의 하위 폴더에서 확장 파일을 제거합니다.

      • LocalAppData를 보려면 Windows 탐색기 폴더 옵션의 보기 탭에서 숨김 파일 및 폴더 표시를 설정해야 합니다.

      • LocalAppData 는 일반적으로 C:\Users\userName\AppData\Local\ 에 있습니다.

    2. Visual Studio를 다시 시작합니다.

참고 항목

작업

방법: 모델 요소에 스테레오타입 추가

개념

UML 모델의 표준 스테레오타입

기타 리소스

프로필 및 스테레오타입을 사용하여 모델 사용자 지정

예제: 스테레오 타입으로 UML 요소에 색 입히기

샘플: XSD 프로필, 스테레오 타입을 설정