본문 바로가기
프로그래밍/설계공부

제 7 장. UML 프로파일 사용하기

by 건우아빠유리남편 2009. 7. 23.
반응형

제 7 장. UML 프로파일 사용하기

UML 프로파일의 기본 개념

UML 확장 메커니즘

UML은 범용적인 소프트웨어 모델링 언어이며, 일반적인 소프트웨어 모델링 요구사항들을 충족할 수 있도록 잘 정의된 풍부한 모델링 개념들과 표기법들을 제공하고 있다. 그렇지만 오늘날 소프트웨어 모델링/개발 환경이 매우 다양하기 때문에 UML 표준에는 없는 추가적인 요소 또는 의미들에 대한 요구가 생길 수 있다. UML은 이러한 요구들을 지원할 수 있는 개념까지 표준 안에서 제공하고 있는데, 이것이 바로 UML 확장 메커니즘(Extension Mechanism)이다.

UML의 확장 메커니즘은 스테레오타입(Stereotypes), 제약사항(Constraints), 태그정의(Tag Definitions), 태그값(Tagge Values)을 사용하여, UML 모델링 요소의 의미(Semantics)를 확장하거나 새로운 의미를 가지는 UML 모델링 요소를 정의할 수 있도록 하는 것이다.

스테레오타입

스테레오타입(Stereotype)은 표준 UML 모델링 요소에 새로운 속성과 제약사항을 추가할 수 있도록 정의하는 모델링 요소이다. 스테레오타입은 모델링 요소가 새로운 표기법(Notation)을 제공하도록 정의할 수도 있다. 아래의 그림은 StarUML애플리케이션에서 스테레오타입 선택 버튼을 눌렀을 때 나타나는 스테레오타입 선택 다이얼로그를 보인 것이다. 스테레오타입 선택 다이얼로그는 현재 프로젝트에 포함되어 있는 UML 프로파일에 정의되어 있는 선택 가능한 스테레오타입 목록을 보여준다. 외부 API를 통해서도 스테레오타입을 설정하거나 변경할 수 있는데 이에 대해서는 뒤에서 설명한다.

노트: UML 표준에서는 하나의 확장 가능한 모델링 요소가 여러 개의 스테레오타입을 가질 수 있도록 하고 있지만, StarUML에서는 각 모델링 요소는 스테레오타입을 하나만 가지도록 제한하고 있다.

태그정의

태그정의(Tag Definition)는 어떤 모델링 요소에 추가될 수 있는 새로운 속성(Property) 항목을 정의하는 요소이다. 그리고 태그정의가 적용된 각각의 요소에서 태그정의에 의해 추가된 속성에 대한 값을 지정한 것은 태그값(Tagged Value)에 해당한다. 태그값은 기본적인 데이터타입 값이거나 다른 모델링 요소에 대한 참조, 또는 컬렉션 등이 될 수 있다. 다음 그림은 StarUML애플리케이션에서 확장 속성 편집기를 띄운 화면이다. 확장 속성 편집기는 현재 프로젝트에 포함되어 있는 UML 프로파일에서 정의하는 태그정의들 중에서 선택된 모델링 요소에 해당하는 항목들의 목록을 보여준다. 외부 API를 통해서도 모델링 요소의 태그값을 설정하거나 변경할 수 있는데 이에 대해서는 뒤에서 설명한다.

제약사항

제약사항(Constraint)은 어떤 모델링 요소에 특정 제약 사항을 추가함으로써 해당 모델링 요소의 의미를 재정의할 수 있도록 한다. 제약사항에 대한 설명은 "Chapter 5. 모델링 요소 다루기""ExtCore 요소들" 섹션을 참고하도록 한다.

노트: StarUMLUML 프로파일에서는 제약사항에 대한 정의는 제외 시키고 있다.

UML 프로파일

UML 프로파일(Profile)은 UML 확장 메커니즘을 구현한 하나의 패키지라고 할 수 있다. 예를 들어 특정 소프트웨어 도메인 이라던지 개발 플랫폼 등에 필요한 스테레오타입, 제약사항, 태그정의, 데이터타입들을 하나로 묶은 것이다.

UML 프로파일은 스테레오타입, 제약사항, 태그정의, 데이터타입 요소로 구성된다. UML 표준에서는 프로파일(Profile)을 "<<profile>>" 스테레오타입이 붙은 패키지 요소로 정의하도록 하고 있는데, StarUML에서는 XML 형식의 파일로 정의하여 사용할 수 있도록 하고 있다.

StarUML™ 프로파일이 제공하는 추가적인 확장 메커니즘들

StarUML™의 프로파일에서는 UML에서 정의하고 있는 확장 메커니즘 이외에 몇 가지의 확장 메커니즘 요소들을 추가로 제공하고 있다. 추가된 확장 요소들은 다이어그램타입(Diagram Type), 요소 프로토타입(Element Prototype), 모델 프로토타입(Model Prototype), 팔레트 확장(Palette) 이다. 이들 확장 요소들은 기존의 요소의 의미를 확장하거나 요소 생성을 위한 정형적인 틀을 제공하고 이를 사용자 인터페이스에 반영한다.

다이어그램타입

다이어그램타입(Diagram Type)은 표준 UML 다이어그램들에 추가적인 의미를 부여하여 새로운 다이어그램을 정의할 수 있도록 하는 확장 요소이다. 이것은 데이터모델 다이어그램, Robustness 분석 다이어그램 등 각 설계 단계별로 특화된 용도의 다이어그램을 정의하거나 여러 도메인에서 사용되는 다양한 종류의 다이어그램을 StarUML™에 수용하는데에 유용하다. 다이어그램타입은 다이어그램 요소들의 "DiagramType" 속성으로 정의되고, 프로젝트에 프로파일을 포함시켰을 때, [Add Diagram] 메뉴에 추가되어 사용자가 해당 다이어그램을 생성할 수 있도록 해준다. 다이어그램타입 속성은 스테레오타입과 다르게 모델링 시에 변경할 수 없다.

요소 프로토타입

요소 프로토타입(Element Prototype)은 표준 UML 요소에 속성들을 미리 설정하여 요소 생성을 위한 하나의 견본을 정의하는 것이다. 요소 프로토타입은 팔레트에 연결하여 견본의 복사본에 해당하는 요소를 직접 생성하거나 외부 API를 통해 생성할 수 있도록 해 준다.

모델 프로토타입

모델 프로토타입(Model Prototype)은 요소 프로토타입과 유사하나 모델에만 적용할 수 있는 확장 요소이다. 요소 프로토입이 팔레트와 연결되는 것과는 달리 모델 프로포타입으로 정의되면 [Add Model] 메뉴의 서브 메뉴로 삽입된다. 이 메뉴를 통해 견본의 복사본에 해당하는 모델 요소를 직접 생성할 수 있다.

팔레트 확장

팔레트 확장(Palette)는 메인 폼 좌측에 나오는 팔레트를 추가할 수 있도록 해 준다. 추가된 팔레트에는 프로파일 안에서 정의하고 있는 요소 프로토타입이나 표준 UML 요소들을 팔레트 항목으로 지정할 수 있다.

프로파일의 포함(Include)과 제외(Exclude)

StarUML애플리케이션의 현재 프로젝트에 필요한 UML 프로파일이 있으면 해당 프로파일을 프로젝트로 포함시켜야 한다. "UML Standard Profile"을 제외한 나머지 프로파일들을 자동으로 추가되지 않기 때문이다. StarUML 애플리케이션에서 프로파일 추가는 [Model]->[Profiles] 메뉴를 실행했을 때 보여지는 프로파일 다이얼로그(아래)를 통해 할 수 있다. 왼쪽의 "Available profiles" 목록에는 현재 사용자 시스템에 등록되어 있는 프로파일들의 목록이 보여지고, 오른쪽 "Included profiles" 목록에는 현재 프로젝트에 포함되어 있는 프로파일들의 목록이 보여진다. 프로파일을 추가는 "Available profiles" 목록에서 추가할 프로파일 항목을 선택한 후, 중간의 "Include" 버튼을 누르는 것으로 간단하게 끝난다. 프로파일을 추가하면 위에서 보았던 스테레오타입 선택 다이얼로그나 확장 속성 편집기 등에 포함된 프로파일에 정의된 스테레오타입들과 태그정의들이 추가될 것이다. 현재 프로젝트에 포함되어 있는 프로파일들 중에서 필요 없는 항목이 있다면 "Exclude" 버튼을 눌러 간단하게 제외 시킬 수 있다. 프로파일을 제외시키면 프로젝트 내에서 해당 프로파일을 참고하고 있던 정보들이 모두 삭제된 다는 점에 주의해야 한다. 외부 API를 통해서도 프로파일을 추가하거나 삭제할 수 있는데 이에 대해서는 뒤에서 설명한다.

UML 프로파일 작성하기

프로파일 문서 파일의 기본 구조

프로파일 문서 파일은 XML 포맷으로 정의되어 있으며 확장자는 .prf이다. 프로파일에 대한 내용은 PROFILE 태그 내에 기술되며 구문이나 내용에 오류가 없도록 해야 한다.

프로파일 문서의 기본 구조는 다음과 같다.

<?xml version=”1.0” encoding=”...” ?>
<PROFILE version="..."> 
    <HEADER>
        ...
    </HEADER>
    <BODY>
        ...
    </BODY>
</PROFILE>
  • encoding 속성 : XML 문서의 인코딩 속성 값을 지정한다 (e.g. UTF-8, EUC-KR). 이 속성의 값에 대해서는 XML 관련 자료를 참조하기 바란다.
  • version 속성 (PROFILE 요소) : PRF 문서 포맷의 버전이다. (e.g  1.0)
  • HEADER 요소 : Header Contents 섹션 참조
  • BODY 요소 : Body Contents 섹션 참조

Header Contents

프로파일 문서의 HEADER 부분에는 프로파일의 이름과 상세설명 등 프로파일에 대한 개괄적인 정보를 기술한다.

<HEADER>
    <NAME>...</NAME>
    <DISPLAYNAME>...</DISPLAYNAME>
    <DESCRIPTION>...</DESCRIPTION>
    <AUTOINCLUDE>...</AUTOINCLUDE>
</HEADER>
  • NAME 요소: 프로파일의 명칭을 기록한다. 이것은 실질적인 프로파일 ID의 역할을 수행한다.
  • DISPLAYNAME 요소 : 프로파일 다이얼로그 등 사용자 인터페이스에서 캡션으로 사용되는 명칭이다.
  • DESCRIPTION 요소 : 프로파일에 대한 상세한 설명을 기술한다.
  • AUTOINCLUDE 요소 : 프로젝트를 새로 만들 때 프로파일을 자동으로 포함할 것인지를 명시한다.

Body Contents

프로파일 문서의 BODY 부분에는 프로파일의 구체적인 내용을 포함하게 된다. 여기에는 크게 스테레오타입(Stereotype)들과 데이터타입(DataType)들, 태그정의집합(TagDefinitionSet)들과 추가적인 확장 요소들이 기술된다.

<BODY>
    <STEREOTYPELIST>
        ...
    </STEREOTYPELIST>
    <TAGDEFINITIONSETLIST>
        ...
    </TAGDEFINITIONSETLIST>
    <DATATYPELIST>
        ...
    </DATATYPELIST>
    <ELEMENTPROTOTYPELIST>
        ...
    </ELEMENTPROTOTYPELIST>
    <MODELPROTOTYPELIST>
        ...
    </MODELPROTOTYPELIST>
    <PALETTELIST>
        ...
    </PALETTELIST>
    <DIAGRAMTYPELIST>
        ...
    </DIAGRAMTYPELIST>
</BODY>
  • STEREOTYPELIST 요소: 여러 개의 스테레오타입(STEREOTYPE 요소)을 정의한다. 스테레오 타입에 대한 정의는 Stereotype 섹션 참조.
  • TAGDEFINITIONSETLIST 요소 : 여러 개의 태그정의집합(TAGDEFINITIONSET 요소)들을 정의한다. 태그정의집합대한 정의는 TagDefinitionSet 섹션 참조.
  • DATATYPELIST 요소 : 여러 개의 데이터 타입(DATATYPE 요소)들을 정의한다. 데이터 타입에 대한 정의는 DataType 섹션 참조.
  • ELEMENTPROTOTYPELIST 요소 : 여러 개의 요소 프로토타입(ELEMENTPROTOTYPE)들을 정의한다. 요소 프로토타입에 대한 정의는 ElementPrototype 섹션 참조.
  • MODELPROTOTYPELIST 요소 : 여러 개의  모델 프로토타입(MODELPROTOTYPE)들을 정의한다. 모델 프로토타입에 대한 정의는 ModelPrototype 섹션 참조.
  • PALETTELIST 요소 : 여러 개의 팔레트 확장(PALETTE 요소)들을 정의한다. 팔레트 확장에 대한 정의는 Palette 섹션 참조.
  • DIAGRAMTYPELIST 요소 : 여러 개의 다이어그램 타입(DIAGRAMTYPE 요소)들을 정의한다. 다이어그램 타입에 대한 정의는 DiagramType 섹션 참조.

Stereotype

STEREOTYPE 요소에는 스테레오타입에 대한 정보와 상속구조 등을 정의한다.

<STEREOTYPE>
    <NAME>...</NAME>
    <DESCRIPTION>...</DESCRIPTION>
    <BASECLASSES>
        <BASECLASS>...</BASECLASS>
        ...
    </BASECLASSES>
    <PARENT>...</PARENT>
    <RELATEDTAGDEFINITIONSET>...</RELATEDTAGDEFINITIONSET>
    <ICON minWidth=”...” minHeight=”...”>...</ICON>
    <NOTATION>...</NOTATION>
</STEREOTYPE>
  • NAME 요소 : 스테레오타입의 명칭을 기록한다. 이 명칭은 프로파일 파일 내에서 유일해야 한다.
  • DESCRIPTION 요소 : 스테레오타입에 대한 설명을 기술한다.
  • BASECLASSES 요소 : 여기에는 스테레오타입이 적용될 수 있는 UML 모델링 요소의 명칭을 여러 개 나열할 수 있다. 이 부분에 쓰여지는 요소의 명칭은 UML 요소의 이름을 사용한다 (e.g., UMLClass, UMLClassifier, UMLAttribute, UMLPackage, ...).
    노트: 만약, UMLClassifier와 같은 추상클래스의 이름을 적으면 그것으로부터 상속 받은 모든 요소에 적용된다. 그리고 상위 스테레오타입(PARENT 요소)이 지정된 경우에는 이 부분은 정의하지 않으며, 만약 정의되더라도 무시되고 상위 스테레오타입의 BASECLASSES 값이 적용된다.
  • PARENT 요소 : 스테레오타입들 간에는 상속관계를 가질 수 있다. PARENT 요소에는 상위 스테레오타입의 이름을 기록한다. 상속관계에 있는 스테레오타입은 반드시 동일한 프로파일 내에 정의된 것이어야 하며, 상위 스테레오타입이 없는 경우에는 지정하지 않거나 생략할 수 있다.
  • RELATEDTAGDEFINITIONSET 요소 : 스테레오타입과 연관된 태그정의집합(TagDefinitionSet)의 이름을 기록한다. 이것은 스테레오타입이 지정된 요소에 제공되는 추가적인 속성들로 이해할 수 있으며 없는 경우 생략할 수 있다. 여기에서 지정된 태그정의집합은 반드시 동일한 프로파일 내에 정의되어 있어야 한다.
  • ICON 요소 : 스테레오타입은 사용자의 선택에 따라 아이콘형태로 표시할 수 있다. 여기에는 스테레오타입의 아이콘의 파일 이름을 기록한다. 스테레오 타입의 아이콘 파일은 .WMF, .EMF 와 .BMP 세 가지가 지원된다. 아이콘 파일은 반드시 Profile Document가 있는 디렉토리에 위치해 있어야 하며, Profile Document에는 경로명을 제외한 파일명만 기술하도록 한다.
  • minWidth 속성 (ICON 요소) : 스테레오타입 아이콘의 최소 너비를 지정한다.
  • minHeight 속성 (ICON 요소) : 스테레오타입 아이콘의 최소 높이를 지정한다.
  • NOTATION 요소 : 스테레오타입은 아이콘 형태로도 표시할 수 있지만 노테이션 기술 언어를 작성하여 드로잉하는 방법을 재정의할 수도 있다. 이 요소에는 노테이션을 기술하기 위한 노테이션 확장 파일(.nxt)의 경로를 지정한다. 노테이션 확장이 사용된 요소는 UML 표준 노테이션으로 그려지지 않고, 노테이션 확장 파일에 기술된 대로 도식하게 된다. 노테이션 확장 파일은 반드시 Profile Document가 있는 디렉토리에 위치해 있어야 하며, 경로명을 제외한 파일명만 기술하도록 한다.

TagDefinitionSet

TAGDEFINITIONSET 요소에는 태그요소집합의 기본 정보를 기술하고, TADDEFINITIONLIST 요소 밑에 여러 개의 TAGDEFINITION 요소를 두어 태그정의집합에 포함된 태그정의들을 나열한다.

<TAGDEFINITIONSET>
    <NAME>...</NAME>
    <BASECLASSES>
        <BASECLASS>...</BASECLASS>
        ...
    </BASECLASSES>
    <TAGDEFINITIONLIST>
        ...
    </TAGDEFINITIONLIST>
</TAGDEFINITIONSET>
  • NAME 요소 : 태그정의집합의 이름을 기록한다. 특정 스테레오타입에 연관된 태그정의들인 경우에는 이름을 스테레오타입과 동일하게 사용할 것을 권장한다. (이 경우 사용자 인터페이스에서 스테레오 타입과 동일한 이름의 태그정의집합이 존재하면 그것을 제일 먼저 표시 해 줄 수 있다.)
  • BASECLASSES 요소 : 태그정의집합이 적용될 UML 요소의 이름들을 열거한다. (Stereotype의 BASECLASSESES 요소와 동일한 원칙으로 적용) 만약 어떤 스테레오타입에 연관된 태그정의집합으로 지정된 경우에는 이 부분을 정의하지 않으며, 정의하더라도 무시되고 해당 스테레오타입의 BASECLASSES와 동일한 것으로 인식한다.
  • TAGDEFINITIONLIST 요소 : 집합에 포함되는 태그정의(TagDefinition)를 여러 개 열거한다. TagDefinition 섹션 참조.

TagDefinition

TAGDEFINITION 요소에는 태그정의집합에 포함되어 있는 태그정의(TagDefinition) 각각에 대해서 상세히 정의한다.

<TAGDEFINITION lock=”...”>
    <NAME>...</NAME>
    <TAGTYPE referenceType=”...”>...</TAGTYPE>
    <DEFAULTDATAVALUE>...</DEFAULTDATAVALUE>
    <LITERALS>
        <LITERAL>...</LITERAL>
        ....
    </LITERALS>
</TAGDEFINITION>
  • lock 속성 (TAGDEFINITION 요소) : 태그값을 UI에서 편집 가능하게 할 것인지를 설정한다.  이것을 “True”로 두면 확장속성 편집기에 의해서는 편집이 불가능하고 외부 COM 인터페이스를 통해서만 값을 변경할 수 있다. 이 속성을 생략가능하며 기본 값은 “False”이다.
  • NAME 요소 : 태그의 이름이다. 이것은 TagDefinitionSet 내에서 유일해야 한다.
  • TAGTYPE 요소 : 태그의 타입이다. 여기에는 Integer, Boolean, Real, String, Enumeration, Reference, Collection의 5가지 타입이 올 수 있다.
  • referenceType 속성 (TAGTYPE 요소) : 태그의 타입이 Reference 혹은 Collection인 경우, 여기에 지정될 수 있는 객체의 참조가 어떠한 타입으로 제한되는가를 표현한다. 예를 들어, “UMLClass”라고 지정하면 Class 타입 만이 연결될 수 있다. 만약 이 부분을 생략한 경우에는 “UMLModelElement”로 간주한다. 태그의 타입이 Integer, Boolean, Real, String, Enumeration일 경우 무시된다.
  • DEFAULTVALUE 요소 : 태그의 기본 값을 기록한다. Reference Type이나 Collection Type일 경우에는 무시되며, null이 기본 값으로 설정된다.
  • LITERALS 요소 : 만약 태그 타입이 Enumeration인 경우에 여기에 열거할 수 있는 리터럴을 정의한다. 다른 타입일 경우 무시된다.

DataType

DataType요소에는 하나의 데이터타입을 정의한다. 이 요소는 NAME을 서브요소로 갖는다.

<DATATYPE>
    <NAME>...</NAME>
</DATATYPE>
  • NAME 요소 : 데이터 타입의 명칭을 기록한다.

ElementPrototype

ELEMENTPROTOTYPE 요소에는 생성할 요소의 패턴을 정의하는 요소 프로토타입의 정보를 기술한다.

<ELEMENTPROTOTYPE>
    <NAME>....</NAME>
    <DISPLAYNAME>....</DISPLAYNAME>
    <ICON>....</ICON>
    <DRAGTYPE>....</DRAGTYPE>
    <BASEELEMENT argument=”...”>....</BASEELEMENT>
    <STEREOTYPENAME>....</STEREOTYPENAME>
    <STEREOTYPEDISPLAY>....</STEREOTYPEDISPLAY>
    <SHOWEXTENDEDNOTATION>....</SHOWEXTENDEDNOTATION>
    <MODELPROPERTYLIST>
        <MODELPROPERTY name=”...”>....</MODELPROPERTY>
        ....
    </MODELPROPERTYLIST>
    <VIEWPROPERTYLIST>
        <VIEWPROPERTY name=”...”>....</VIEWPROPERTY>
        ....
    </VIEWPROPERTYLIST>
    <TAGGEDVALUELIST>
        <TAGGEDVALUE profile=”...” tagDefinitionSet=”...” tagDefinition=”...”> </TAGGEDVALUE>
        ....
    </TAGGEDVALUELIST>
</ELEMENTPROTOTYPE>
  • NAME 요소 : 요소 프로토타입의 명칭이다. 이 명칭은 프로파일 내에서 유일해야 한다.
  • DISPLAYNAME 요소 : 요소 프로토타입이 팔레트 등 사용자 인터페이스 상에서 표시될 때의 이름이다.
  • ICON 요소 : 요소 프로토타입이 팔레트 등 사용자 인터페이스 상에서 표시될 때의 아이콘 파일의 이름이다. 요소 프로토타입의 아이콘 파일은 16 x 16 크기의 .BMP 포맷 형식의 이미지 파일이어야 한다. 아이콘 파일은 반드시 Profile Document가 있는 디렉토리에 위치해야 하며 경로명을 제외한 파일명만 기술하도록 한다.
  • DRAGTYPE 요소 : 요소 프로토타입에 해당하는 요소를 생성하기 위해 사용자가 다이어그램 위에 마우스로 드래그 하여 위치와 크기를 지정할 때 어떤 방식으로 보여 줄 것인가를 지정한다. Rect (사각형), Line (선)의 두 가지의 값 중 하나이어야 한다.
  • BASEELEMENT 요소 : 요소 프로토타입의 복사본을 생성하기 위한  원래 UML 표준 요소의 명칭을 지정한다. 이 요소는 생략할 수 없으며, 값을 지정하지 않으면 요소 프로토타입을 인식하지 못한다. 사용할 수 있는 UML 표준 요소의 명칭은 다음과 같다.
     
    요소 명칭
    Text
    Note
    NoteLink
    Model
    Subsystem
    Package
    Class
    Interface
    Enumeration
    Signal
    Exception
    Component
    ComponentInstance
    Node
    NodeInstance
    Actor
    UseCase
    StateMachine
    ActivityGraph
    Collaboration
    CollaborationInstanceSet
    Interaction
    InteractionInstanceSet
    CompositeState
    State
    ActionState
    Activity
    SubactivityState
    Pseudostate
    FinalState
    Partition
    Swimlane
    SubmachineState
    Attribute
    Operation
    Parameter
    TemplateParameter
    EnumerationLiteral
    UninterpretedAction
    SignalEvent
    CallEvent
    TimeEvent
    ChangeEvent
    ClassifierRole
    Object
    Transition
    Dependency
    Association
    AssociationClass
    Generalization
    Link
    AssociationRole
    Stimulus
    Message
    Include
    Extend
    Realization
    ObjectFlowState
    FlowFinalState
    SystemBoundary
    SignalAcceptState
    SignalSendState
    Artifact
    AttributeLink
    Port
    Part
    Connector
    CombinedFragment
    InteractionOperand
    Frame
    ExtensionPoint
    Rectangle
    Ellipse
    RoundRect
    Line
    Image
  • argument 속성 : Base 요소가 Association, Pseudostate 등 일부 요소의 경우 생성을 위한 인자가 필요할 수 있다. 이들 요소들은 인자에 따라 생성되는 요소의 특정 속성값들이 미리 설정된다. 기본값은 0이며, 대부분의 경우 지정할 필요가 없다. StarUML™에서 사용하는 요소의 인자값은 다음과 같다.
     
    요소 명칭 의미와 값
    Pseudostate Decision = 0,
    InitialState = 1,
    Synchronization = 2,
    Junction Point = 3,
    Choice Point = 4,
    Deep History = 5,
    Shallow History = 6
    UninterpretedAction Entry Action = 0,
    Do Activity = 1,
    Exit Action = 2
    Stimulus Stimulus with Call Action = 0,
    Stimulus with Send Action = 1,
    Stimulus with Return Action = 2,
    Stimulus with Create Action = 3,
    Stimulus with Destroy Action = 4,
    Reverse Stimulus with Call Action = 5,
    Reverse Stimulus with Send Action = 6,
    Reverse Stimulus with Return Action = 7,
    Reverse Stimulus with Create Action = 8,
    Reverse Stimulus with Destroy Action = 9
    Message Message with Call Action = 0,
    Message with Send Action = 1,
    Message with Return Action = 2,
    Message with Create Action = 3,
    Message with Destroy Action = 4,
    Reverse Message with Call Action = 5,
    Reverse Message with Send Action = 6,
    Reverse Message with Return Action = 7,
    Reverse Message with Create Action = 8,
    Reverse Message with Destroy Action = 9
    Association Assocation = 0,
    Directed Association = 1,
    Aggregation = 2,
    Composition = 3;
    Swimlane Vertical Swimlane = 0,
    Horizontal Swimlane = 1;
  • STEREOTYPENAME 요소 : 요소 프로토타입의 Stereotype 이름을 지정한다. 여기에 값을 설정해 두면 요소 생성 시 Stereotype 속성 값으로 입력된다. 이 값은 생략 가능하다.
  • STEREOTYPEDISPLAY 요소 : 요소 프로토타입에 따라 요소를 생성 할 때 뷰의 스테레오타입을 어떻게 표시할 것인가를 지정한다. sdkText(텍스트로 표시), sdkIcon(아이콘으로 표시), sdkNone(표시하지 않음), sdkDecoration(데코레이션으로 표시) 중 하나를 선택할 수 있다. 이 값은 생략 가능하며, 기본값은 sdkText 이다.
  • SHOWEXTENDEDNOTATION 요소 : 만약 STEREOTYPENAME 으로 지정한 스테레오타입에 확장 노테이션 파일(.nxt)가 지정되어 있을 경우 확장 노테이션으로 표시할 것인가를 지정한다. True로 설정하면 StarUML™은 요소 프로토타입에 의해 생성된 요소의 뷰를 표시할 때 확장 노테이션에 기술된 방식으로 그려준다. 이 값은 생략 가능하며, 기본값은 False 이다.
  • MODELPROPERTYLIST 요소 : 이 요소는 모델 속성값 설정을 위한 MODELPROPERTY 요소들의 리스트이다.
  • MODELPROPERTY 요소 :  요소를 생성할 때 설정할 모델 속성 값들을 명시한다. 속성의 이름을 나타내는 name 속성은 반드시 기재하여야 한다. name에 기재된 값이 Base 요소에 해당하는 모델의 속성명이 아니거나 명시된 값이 유효하지 않으면 요소 생성 시 제대로 생성되지 않을 수 있다. 사용 가능한 속성의 이름과 유효한 값의 범위를 알려면 Chapter 4. "Using Open API"를 참고하라.
  • VIEWPROPERTYLIST 요소 : 이 요소는 뷰 속성값 설정을 위한 VIEWPROPERTY 요소들의 리스트이다.
  • VIEWPROPERTY 요소 : 요소를 생성할 때 설정할 뷰의 속성 값들을 명시한다. 속성의 이름을 나타내는 name 속성은 반드시 기재하여야 한다. name에 기재된 값이 Base 요소에 해당하는 뷰의 속성명이 아니거나 명시된 값이 유효하지 않으면 요소가 제대로 생성되지 않을 수 있다. 사용 가능한 속성의 이름과 유효한 값의 범위를 알려면 Chapter 4. "Using Open API"를 참고하라.
  • TAGGEDVALUELIST 요소 : 이 요소는 모델의 태그값(TaggedValue)를 설정하기 위한 TAGGEDVALUE 요소들의 리스트이다.
  • TAGGEDVALUE 요소 : 요소를 생성할 때 설정할 모델의 태그값들을 명시한다. 태그값을 명시하기 위해서는 태그값을 정의하고 있는 태그 정의(TagDefinition)를 지정해 주어야 한다.
  • profile 속성 : 태그정의(TagDefinition)가 속하는 프로파일명을 기술한다. 이 값은 생략 가능하며 생략할 경우 ELEMENTPROTOTYPE이 속해 있는 프로파일명으로 인식한다.
  • tagDefinitionSet 속성 : 태그정의가 속하는 태그정의집합(TagDefinitionSet)명을 기술한다.
  • tagDefinition 속성 : 태그정의의 이름을 기술한다.

ModelPrototype

MODELPROTOTYPE 요소에는 생성할 모델 요소의 패턴을 정의하는 모델 프로토타입의 정보를 기술한다.

<MODELPROTOTYPE>
    <NAME>....</NAME>
    <DISPLAYNAME>....</DISPLAYNAME>
    <ICON>....</ICON>
    <BASEMODEL argument=”...”>....</BASEMODEL>
    <STEREOTYPENAME>....</STEREOTYPENAME>
    <PROPERTYLIST>
        <PROPERTY name=”...”>....</PROPERTY>
        ....
    </PROPERTYLIST>
    <TAGGEDVALUELIST>
        <TAGGEDVALUE profile=”...” tagDefinitionSet=”...” tagDefinition=”...”> </TAGGEDVALUE>
        ....
    </TAGGEDVALUELIST>
    <CONTAINERMODELLIST>
        <CONTAINERMODEL type="...." stereotype="...."/>
        ....
    </CONTAINERMODELLIST>
</MODELPROTOTYPE>
  • NAME 요소 : 모델 프로토타입의 명칭이다. 이 명칭은 프로파일 내에서 유일해야 한다.
  • DISPLAYNAME 요소 : 모델 프로토타입이 [Add Model] 메뉴 등 사용자 인터페이스 상에서 표시될 때의 이름이다.
  • ICON 요소 : 모델 프로토타입이 [Add Model] 메뉴 등 사용자 인터페이스 상에서 표시될 때의 아이콘 파일의 이름이다. 모델 프로토타입의 아이콘 파일은 16 x 16 크기의 .BMP 포맷 형식의 이미지 파일이어야 한다. 아이콘 파일은 반드시 Profile Document가 있는 디렉토리에 위치해야 하며 경로명을 제외한 파일명만 기술하도록 한다.
  • BASEMODEL 요소 : 모델 프로토타입의 복사본을 생성하기 위한  원래 UML 표준 요소의 명칭을 지정한다. 이 요소는 생략할 수 없으며, 값을 지정하지 않으면 모델 프로토타입을 인식하지 못한다. 사용할 수 있는 UML 표준 요소의 명칭은 ElementPrototype의 BASEELEMENT 요소 설명부에 나열한 것과 같으며, Note, NoteLink 등 뷰만 가질 수 있는 요소는 사용할 수 없다.
  • argument 속성 : Base 모델 요소가 Association, Pseudostate 등 일부 요소의 경우 생성을 위한 인자가 필요할 수 있다. 이들 요소들은 인자에 따라 생성되는 모델 요소의 특정 속성값들이 미리 설정된다. 기본값은 0이며, 대부분의 경우 지정할 필요가 없다. 여기에 사용할 수 있는 값은 ElementPrototype의 BASEELEMENT 요소 설명부에 기술된 바와 같다.
  • STEREOTYPENAME 요소 : 모델 프로토타입의 Stereotype 이름을 지정한다. 여기에 값을 설정해 두면 모델 요소 생성 시 Stereotype 속성 값으로 입력된다. 이 값은 생략 가능하다.
  • PROPERTYLIST 요소 : 이 요소는 모델 속성값 설정을 위한 PROPERTY 요소들의 리스트이다.
  • PROPERTY 요소 :  모델 요소를 생성할 때 설정할 모델 속성 값들을 명시한다. 속성의 이름을 나타내는 name 속성은 반드시 기재하여야 한다. name에 기재된 값이 Base 모델에 포함된 속성명이 아니거나 명시된 값이 유효하지 않으면 모델 요소가 제대로 생성되지 않을 수 있다. 사용 가능한 속성의 이름과 유효한 값의 범위를 알려면 Chapter 4. "Using Open API"를 참고하라.
  • TAGGEDVALUELIST 요소 : 이 요소는 모델의 태그값(TaggedValue)를 설정하기 위한 TAGGEDVALUE 요소들의 리스트이다.
  • TAGGEDVALUE 요소 : 모델 요소를 생성할 때 설정할 태그값들을 명시한다. 태그값을 명시하기 위해서는 태그값을 정의하고 있는 태그 정의(TagDefinition)를 지정해 주어야 한다.
  • profile 속성 : 태그정의(TagDefinition)가 속하는 프로파일명을 기술한다. 이 값은 생략 가능하며 생략할 경우 ELEMENTPROTOTYPE이 속해 있는 프로파일명으로 인식한다.
  • tagDefinitionSet 속성 : 태그정의가 속하는 태그정의집합(TagDefinitionSet)명을 기술한다.
  • tagDefinition 속성 : 태그정의의 이름을 기술한다.
  • CONTAINERMODELLIST 요소 : 모델 요소 생성 제약을 위한 CONTAINERMODEL 요소들의 리스트이다.
  • CONTAINERMODEL 요소 : 모델 프로토타입이 기술하는 모델 요소를 생성할 수 있는 상위 모델 요소를 제약한다. 여기에 값이 설정되어 있을 경우 기술된 요소가 선택될 경우에만 [Add Model] 메뉴 하위에 생성 메뉴가 활성화된다.

Palette

PALETTE 요소에는 새로 추가할 팔레트와 팔레트에 포함할 항목들을 기술한다.

<PALETTE>
    <NAME>....</NAME>
    <DISPLAYNAME>....</DISPLAYNAME>
    <PALETTEITEMLIST>
        <PALETTEITEM>....</PALETTEITEM>
        ....
    </PALETTEITEMLIST>
</PALETTE>
  • NAME 요소 : 팔레트의 명칭이다. 이 명칭은 프로파일 내에서 유일해야 한다.
  • DISPLAYNAME 요소 : 팔레트가 화면에 표시될 때의 이름이다.
  • PALETTEITEMLIST : 이 요소에는 팔레트에 속하는 팔레트 항목들을 나열한다.
  • PALETTEITEM : 이 요소에 팔레트 항목으로 만들 요소명을 기술한다. 프로파일내에 정의된 요소 프로토타입명 또는 이미 툴에 포함되어 있는 표준 UML 요소명을 적는다.

DiagramType

DIAGRAMTYPE 요소는 다이어그램 타입의 정보와 포함 요소들을 기술한다.

<DIAGRAMTYPELIST>
    <DIAGRAMTYPE>
        <NAME>....</NAME>
        <DISPLAYNAME>....</DISPLAYNAME>
        <BASEDIAGRAM>....</BASEDIAGRAM>
        <ICON>....</ICON>
        <AVAILABLEPALETTELIST>
            <AVAILABLEPALETTE>....</AVAILABLEPALETTE>
            ....
        </AVAILABLEPALETTELIST>
    </DIAGRAMTYPE>
</DIAGRAMTYPELIST> 
  • NAME 요소 : 다이어그램타입 명칭이다. 이 명칭은 프로파일 내에서 유일해야 한다.
  • DISPLAYNAME 요소 : 다이어그램타입이 [Add Diagram] 메뉴 등 사용자 인터페이스 상에서 표시될 때의 이름이다.
  • ICON 요소 : 다이어그램타입이 [Add Diagram] 메뉴 등 사용자 인터페이스 상에서 표시될 때의 아이콘 파일의 이름이다. 다이어그램타입의 아이콘은 16 x 16 크기의 .BMP 포맷 형식의 이미지 파일이어야 한다. 아이콘 파일은 반드시 Profile Document가 있는 디렉토리에 위치해야 하며 경로명을 제외한 파일명만 기술하도록 한다.
  • BASEDIAGRAM 요소 : 다이어그램타입을 생성하기 위한 원래 UML 표준 다이어그램의 명칭을 지정한다. 이 요소는 생략할 수 없으며, 값을 지정하지 않으면 다이어그램타입을 인식하지 못한다. 사용할 수 있는 UML 표준 요소의 명칭은 다음과 같다.
     
    Diagram names
    ClassDiagram
    UseCaseDiagram
    SequenceDiagram
    SequenceRoleDiagram
    CollaborationDiagram
    CollaborationRoleDiagram
    StatechartDiagram
    ActivityDiagram
    ComponentDiagram
    DeploymentDiagram
    CompositeStructureDiagram
  • AVAILABLEPALETTELIST 요소 : 다이어그램타입으로 다이어그램을 생성했을 때 활성화되는 팔레트들의 목록을 나열한다.
  • AVAILABLEPATTE 요소 : 다이어그램타입으로 다이어그램을 생성했을 때 활성화되는 팔레트를 지정한다. 이 값은 프로파일내에서 정의한 팔레트의 이름을 사용하거나 StarUML™에 기존적으로 포함되어 있는 팔레트명을 사용한다. StarUML™에서 미리 정의하고 있는 팔레트는 다음과 같다.
     
    Built-in palette names
    UseCase
    Class
    SequenceRole
    Sequence
    CollaborationRole
    Collaboration
    Statechart
    Activity
    Component
    Deployment
    CompositeStructure
    Annotation

UML 프로파일 등록하기

작성된 프로파일를 프로그램에서 인식하려면 프로파일와 관련 파일들을 StarUML™ 모듈 디렉토리(<install-dir>\modules) 하부 디렉토리로 옮겨야 한다. StarUML™은 프로그램 초기화 시에 모듈 디렉토리 하부를 검색하여 모든 프로파일들을 읽어 들인 후 프로그램에 자동 등록한다. 만약 프로파일 파일이 문법에 맞지 않게 잘 못 작성되어 있거나, 확장자가 .prf가 아닌 경우에는 프로파일을 정상적으로 읽어 들이지 않고 무시하게 될 것이다. 작성한 프로파일과 다른 모듈들과의 혼동을 피하기 위하여 모듈 디렉토리 밑에 별도의 서브디렉토리를 만들어 사용하는 것을 권고한다.

노트: 프로파일의 아이콘을 등록하려면, 프로파일과 동일한 이름의 아이콘 파일(.ico)을 만들어 프로파일이 있는 디렉토리에 두면 된다. 프로파일 아이콘은 [Profiles] 대화상자에서 프로파일 이름과 함께 프로파일 목록 리스트에 표시된다. 만약 프로파일의 이름과 동일한 이름의 아이콘 파일이 없으면 기본 아이콘으로 프로파일을 등록할 것이다.

노트: 프로파일을 더 이상 사용하지 않으려면 StarUML™ 모듈 디렉토리(<install-dir>\modules) 하부에서 삭제하면 된다.

확장 요소 개체 다루기

확장 요소 개요

프로파일에 정의되는 확장 요소들(Extension Elements)은 StarUML의 외부 API를 통해 접근할 수 있다. StarUML의 확장 관련 COM 인터페이스는 실제 UML의 확장구조와 동일하게 구성되어 있으며 IExtensionManager에 의해 관리되어진다. 개발자가 Extension Element개체를 직접적으로 다루는 경우는 흔치 않다. 오히려 실제 확장되어진 모델 요소에서 스테레오타입이나 태그값(Tagged-Value)을 얻어오는 경우가 더 빈번할 것이다. 이런 경우에는 IExtensionModel 인터페이스에서 제공되는 메소드를 사용해야 한다. IExtensibleModel 인터페이스나 모델링 요소에 대한 자세한 내용은 Chapter 4. "Using Open API"를 참조하길 바란다.

앞서 언급한 것과 같이 확장 요소들은 실제 모델링 시에 생성되는 값이 아니고 확장 구조를 정의해 놓은 것이다. 이것들은 프로그램 또는 프로젝트 초기 시에 로드 되어 변경되어서는 안되기 때문에 이들 인터페이스들에 정의되어 있는 프로퍼티들은 대부분 읽기 전용이다.

Extension Element 개체들을 다루기 위한 인터페이스들은 다음과 같다.

  • IExtensionManager : 프로그램에 등록된 프로파일들을 관리하고, Extension Element들을 검색하기 위한 메소드를 제공한다. IExtensionManager는 프로파일이나 프로파일에 정의된 Extension Element들을 엑세스하기 위하여 최초로 접근하는 인터페이스이다.
  • IProfile : 프로파일에 정의된 Extension Element들을 관리하고 이들에게 접근하고 검색하기 위한 메소드를 제공한다. 또한 프로파일 자체에 대한 정보도 포함하고 있다. IProfile은 프로파일에 정의된 Extension Element들을 IStereotype, ITagDefinition, IDataType등의 컬렉션으로 유지한다.
  • IStereotype : 스테레오타입에 대한 정보를 제공한다.
  • ITagDefinitionSet : 태그정의집합에 대한 정보를 제공하고, 태그정의집합에 정의된 태그정의들을 ITagDefintion의 컬렉션으로 관리한다.
  • ITagDefintion : 태그정의에 대한 정보를 제공한다.
  • IDataType : 데이터타입에 대한 정보를 제공한다.

아래 다이어그램은 StarUML의 확장 요소들에 대한 COM 인터페이스의 구조를 나타낸 것이다.

IExtensionManager 다루기

프로파일과 Extension Elements들을 다루기 위해서는 먼저 IExtensionManager 인터페이스의 참조를 얻어와야 한다. IStarUMLApplication은 ExtensionManager개체에 접근하기 위한 프로퍼티를 제공한다. 다음 코드는 IExtensionManager를 가져오는 JScript 예제이다.

var app = new ActiveXObject("StarUML.StarUMLApplication");
var ext = app.ExtensionManager;

프로파일 포함(Include) 및 제외(Exclude)

IExtensionManager는 프로젝트에 프로파일을 포함하거나 제외시키는 메소드를 제공한다. IncludeProfile()은 현재 프로젝트에 입력된 프로파일을 포함시키고 ExcludeProfile()은 현재 프로젝트에서 입력된 프로파일을 제외시킨다. 메소드의 파라미터로 입력되는 프로파일은 반드시 시스템에 등록되어 있어야 한다. 만약 입력된 프로파일이 시스템에 존재하지 않거나 등록되어 있지 않으면 예외가 발생한다. 호출형식은 다음과 같다.

IExtensionManager.IncludeProfile(Profile: String)
IEXtensionManager.ExcludeProfile(Profile: String)

다음은 현재 프로젝트에서 "StandardProfile"을 제외시키는 JScript 예제이다.

var app = new ActiveXObject("StarUML.StarUMLApplication");
var ext = app.ExtensionManager;
ext.ExcludeProfile("UMLStandard");

프로파일에 정의된 확장 요소(Extension Element)  얻어오기

프로파일을 구성하는 확장 개체들은 IProfile 인터페이스를 통해 접근할 수 있다. IProfile은 확장 개체들의 인터페이스(IStereotype, ITagDefinitionSet, IDataType)에 접근하기 위하여 아래와 같이 컬렉션 접근 메소드를 제공한다.  GetStereotypeAt(), GetTagDefinitionSetAt(), GetDataType()등에 쓰이는 Index 인자는 반드시 해당 컬렉션의 Count - 1 과 같거나 작아야 한다.

IProfile.GetStereotypeCount(): Integer
IProfile.GetStereotypeAt(Index: Integer): IStereotype
IProfile.GetTagDefinitionSetCount(): Integer
IProfile.GetTagDefinitionSetAt(Index: Integer): ITagDefinitionSet
IProfile.GetDataTypeCount(): Integer
IProfile.GetDataTypeAt(Index: Integer): IDataType

다음은 프로파일에 정의되어 있는 스테레오타입들을 순회하는 JScript 예제이다.

var app = new ActiveXObject("StarUML.StarUMLApplication");
var ext = app.ExtensionManager;
var prf = ext.FindIncludedProfile("UMLStandard");
if (prf != null) {
    var st;
    for (i = 0; i <= prf.GetStereotypeCount() - 1; i++) {
        st = prf.GetStereotypeAt(i);
        // do something...
    }
}

확장 요소(Extension Element) 검색하기

IProfile 인터페이스는 프로파일에 정의된 Extension Element들의 인터페이스를 검색하기 위한 메소드를 제공한다.

FindTagDefinition(TagDefinitionSet: String, Name: String): ITagDefinition
FindTagDefinitionSet(Name: String): ITagDefinitionSet
FindStereotype(Name: String, BaseClass: String): IStereotype
FindDataType(Name: String): IDataType

스테레오타입(Stereotype) 다루기

IStereotype 인터페이스는 프로파일에서 정의된 스테레오타입에 대한 정보를 제공한다.  스테레오타입의 이름과 설명, 아이콘 파일 등 스테레오타입의 일반적인 정보는 IStereotype 인터페이스의 읽기전용 프로퍼티를 통해서 얻을 수 있다. IStereotype에는 스테레오타입이 적용될 수 있는 UML요소들을 알기 위한 메소드가 정의되어 있는데, GetBaseClassCount()GetBaseClassAt(), CanApplyTo() 등이 그것이다. GetBaseClassCount()GetBaseClassAt() 메소드는 스테레오타입이 적용될 수 있는 UML 요소들의 이름을 얻을 수 있게 해준다. CanApplyTo() 메소드는 인자로 받은 UML 요소가 해당 스테레오타입을 적용할 수 있는지를 논리형 값으로 리턴 해준다. 스테레오타입의 BaseClass에는 다이어그램상에서 도식할 수 있는 UML요소 뿐만 아니라 UMLClassifier와 같은 더 상위 요소를 지정할 수 도 있다. 이 경우 상위 요소의 모든 하위 요소들에게 해당 스테레오타입을 적용할 수 있다. 예를 들어 UMLClassifier가 BaseClass로 지정되어 있으면 UMLClass, UMLInterface, UMLUseCase, UMLActor 등 하위의 모든 요소이 BaseClass로 지정된 것과 동일한 의미를 가진다. 요소간의 상속구조는 StarUML Application Model 을 참고하기를 바란다.

IExtensibleModelGetStereotype()은 스테레오타입이 적용된 모델(Stereotyped-Model)로부터 IStereotype 개체를 리턴해준다. 모델의 스테레오타입이 프로파일에 정의되지 않았으면 null 값을 리턴 한다. 이 때에는 IExtensibleModelStereotypeName 속성으로 스테레오타입의 이름을 얻어올 수 있다.

다음은 메세지 상자에 현재 선택된 모델의 스테레오 타입에 대한 설명을 보여주는 JScript 예제이다.

var app = new ActiveXObject("StarUML.StarUMLApplication");
var selMgr = app.SelectionManager;

if (selMgr.GetSelectedModelCount() > 0) {
    var selModel = selMgr.GetSelectedModelAt(0);
    var st = selModel.GetStereotype();
    if (st != null) {
        WScript.Echo(st.Description)
    }
}

태그정의(TagDefinition) 다루기

ITagDefinition 인터페이스는 프로파일에서 정의된 태그정의에 대한 정보를 제공한다. ITagDefinition에는 다음과 같은 프로퍼티들이 있다.

프로퍼티 설  명
Name: String 태그 정의의 이름이다. 태그 정의의 이름은 태그 정의 집합(TagDefinitionSet)에서 유일해야 한다.
TagType: tagTagTypeKind 태그의 타입이다.
태그의 타입으로는 다음과 같은 것들을 지정할 수 있다.
  • tkInteger = 0 (정수)
  • tkBoolean = 1 (논리값)
  • tkString = 2 (문자열)
  • tkReal = 3 (실수)
  • tkEnumeration = 4 (열거형 값)
  • tkReference = 5 (참조형 값)
  • tkCollection = 6 (컬력션)

태그의 타입에 따라 모델에서 태그값을 얻어올 때 사용되는 메소드의 종류가 달라진다. IExtensibleModel에는 각 태그 타입 별로 태그 값을 얻어오는 메소드들이 정의되어 있다

ReferenceType: String TagType이 tkReference 혹은 tkCollection인 경우, 태그값으로 지정될 수 있는 객체 레퍼런스의 타입을 가리킨다. 예를 들어, "UMLClass"라고 지정하면 Class 타입 만이 연결될 수 있다. 만약 프로파일 문서에서 ReferenceType에 대한 정의가 생략한 경우에는 "UMLModelElement"가 기본값으로 인식된다. TagType이 tkReferece 또는 tkCollection이 아니면 이 프로퍼티의 값은 의미가 없다.
DefaultValue: String 태그의 기본값을 정의한다. TagType이 tkEnumeration이면 열거순서에 해당하는 정수의 문자열 형식값이다.
TagType이 tkReference나 tkCollection일 경우에는 기본값이 항상 null로 설정되므로 이 프로퍼티는 아무런 의미를 가지지 않는다.

다음은 태그의 기본값을 메세지 상자에 출력하는 JScript 예제이다.

var app = new ActiveXObject("StarUML.StarUMLApplication");
var ext = app.ExtensionManager;
var tag = ext.FindTagDefinition("UMLStandard", "Default", "Derived");
WScript.Echo(tag.DefaultValue);

반응형

댓글