확장성 아키텍처

UML 모델러 확장성의 기반은 모델링 플랫폼이라고 합니다. 모델링 플랫폼은 UML 2.1 모델 관리를 사용하는 서비스 세트로 구성되며 Eclipse MDT UML2 컴포넌트가 제공하는 UML 2.1 메타 모델을 기반으로 합니다. 메타 모델은 UML 2.1 스펙의 EMF(Eclipse Modeling Framework) 기반 구현이므로 사용자 모델을 나타내는 오브젝트는 UML2 오브젝트입니다.

UML 모델러 API는 단일 정적 유틸리티 클래스와 UMLModeler 클래스에서 액세스할 수 있는 여러 기타 클래스 및 인터페이스로 구성됩니다. 기타 클래스 및 인터페이스 구현은 제품의 여러 플러그인에서 사용됩니다. 이 플러그인은 com.ibm.xtools.modeler.ui라는 패키지의 일부인 UMLModeler 클래스를 공개하는 플러그인에서 다시 내보냅니다. UML 모델러 확장성을 사용하려면 API 클라이언트가 하나의 플러그인 종속성만 com.ibm.xtools.modeler.ui 패키지에 추가해야 합니다.

UML 모델러 API

UML 모델러 API(Application Programming Interface)는 UML 모델러 API의 시작점을 공개하는 UML 모델러 기본 패키지를 나타냅니다. com.ibm.xtools.modeler.ui 패키지에는 모델 및 프로파일의 라이프사이클 조작을 공개하는 UMLModeler 클래스를 포함하며 모델링 플랫폼에 대한 액세스를 제공합니다.

예를 들어, 대부분의 경우 UMLModeler.openModel 메소드는 대부분의 경우 UML2 오브젝트 Package(org.eclipse.uml2.uml, interface Package)를 리턴합니다. 모든 UML2 오브젝트와 유사하게 패키지는 EModelElement(org.eclipse.emf.ecore, interface EModelElement) EMF 오브젝트를 간접적으로 확장합니다.

다음 모델링 플랫폼 서비스도 EMF 기반 모델에 사용 가능합니다.
  • com.ibm.xtools.emf.index.search 패키지의 llndexSearchManager 인터페이스를 통해 색인화된 EMF 모델에서 기본 조회를 수행하는 서비스
  • com.ibm.xtools.emf.core.resource 패키지의 IRMPResource 인터페이스를 통해 모델 버전 업그레이드 및 서명 쓰기 프로세스에 참여할 수 있도록 하는 서비스
  • com.ibm.xtools.modeler.ui 패키지의 IQueryHelper 인터페이스를 통해 EMF 모델에서 조회를 수행하는 서비스
  • com.ibm.xtools.modeler.ui 패키지의 IOclQueryHelper 인터페이스를 통해 EMF 모델에서 OCL(Object Constraints Language) 조회를 수행하는 서비스

다이어그램 작성의 경우 UML 모델러 API는 Eclipse GMF(Graphical Modeling Framework) 프로젝트의 런타임 환경을 사용합니다. 예를 들어, createDiagram(com.ibm.xtools.uml.ui.diagram, interface IUMLDiagramHelper)메소드는 GMF 다이어그램(org.eclipse.gmf.runtime.notation, interface Diagram)을 리턴합니다. 이 오브젝트에는 getChildren() 메소드를 통해 View( org.eclipse.gmf.runtime.notation) 오브젝트를 포함합니다. 각 보기는 시맨틱 요소와 연관될 수 있습니다. UML 모델 다이어그램의 경우 이 시맨틱 요소는 UML2 요소이며 View.getElement() 메소드에서 액세스 가능합니다.

모델링 플랫폼은 표기법 기반 다이어그램을 관리하는 데 사용하는 인터페이스를 공개합니다.
  • com.ibm.xtools.uml.ui 패키지의 IUMLUIHelper 인터페이스를 통해 UML2 요소를 사용하는 사용자 인터페이스 헬퍼
  • com.ibm.xtools.uml.ui.diagram 패키지의 IUMLDiagramHelper 인터페이스를 통해 UML 2.0 표기법 기반 다이어그램을 사용하기 위한 헬퍼
  • com.ibm.xtools.umlnotation 패키지를 통한 GMF 표기법 메타 모델로의 UML 2.1 특정 확장기능

UML 모델러 컴포넌트는 모델이 아닌 패키지의 UML 모델 컨텐츠를 지원합니다. 루트 요소가 모델이라는 모든 가정은 올바르지 않습니다. 모델은 패키지에 중첩될 수 없습니다. 모델에 소유자가 없다고 가정하지 않아야 하지만, 이 가정은 올바릅니다. UML 모델러 API가 이 가정의 manifestation을 관리합니다.

UML 모델러 자원을 사용하는 컴포넌트의 경우 다음 공통 패턴이 나타납니다.

모델 메타 클래스 및 관련 API 참조:

plugin.xml 파일의 조치 필터:
  • @isModel: 대부분의 경우 이 필터를 소유자가 없는 패키지와 일치하며 프로파일이 아닌 새 @isModelRoot 필터로 바꾸십시오.
  • @isModelOrProfile: 대부분의 경우, 소유자가 없는 패키지와 일치하는 새 @isRootPackage 필터로 이 필터를 바꿉니다.
  • @isPackage: 정확히 패키지인 메타 클래스가 있는 요소에 소유자가 있을 때 이 필터를 사용하십시오.
  • @hasContainer 및 @hasNoContainer: 이 필터는 단순 패키지가 소유될 수 없음을 나타냅니다.
  • umlType 및 umlStrictType: 이 필터는 "Model" 값을 테스트합니다.

기타:

  • Java™는 모델 요소 유형 및 특수성을 나타내는 상수(com.ibm.xtools.uml.type.UMLElementTypes.MODEL)를 작성합니다. ( com.ibm.xtools.uml.core.internal.util.UMLType.MODEL은 사용되지 않음)
  • 프로파일 제한조건 또는 XML에서 나타날 수 있는 OCL 표현식
  • 다음에 대한 액세스를 제공합니다.
  • Model.allInstances(), oclIsKindOf(Model), oclIsTypeof(Model), oclAsType(Model)과 같은 메소드를 사용하는 모델 메타클래스.
  • Element::getModel()과 같은 메소드를 사용하는 UML 정의 조작.
  • 모델이 아니라 패키지여야 하는 템플리트 또는 라이브러리의 UML 모델 템플리트 및 라이브러리.
  • 모델 메타 클래스를 확장하는 스테레오타입의 UML 프로파일(대신, Package를 확장해야 할 수도 있음).
  • JET 템플리트, BIRT 보고서, XSLT 스타일시트 등에 대해 초기 /Model 단계가 있는 XPath 표현식.
  • 컴포넌트가 정의할 수 있는 모델 요소 유형의 특수성을 찾으며 모델 요소 유형(GMF 요소 유형)의 ID인 "com.ibm.xtools.uml.model".

com.ibm.xtools.modeler.ui.UMLModeler 클래스

com.ibm.xtools.modeler.ui.UMLModeler 패키지에는 UMLModeler 클래스가 포함됩니다. UMLModeler 클래스는 모델 및 프로파일 라이프사이클 조작을 공개하며 모델링 플랫폼에 대한 액세스를 제공하는 유틸리티 클래스입니다. UMLModeler 클래스에는 saveModelResourceAs(Element model, String file)saveProfileAs(Profile profile, String file) 메소드가 있습니다.

saveModelResourceAs(Element model, String file) 메소드는 루트 모델 요소가 지정하는 모델을 file이 지정하는 위치에 저장합니다. saveProfileAs(Profile profile, String file) 메소드는 프로파일이 지정하는 프로파일을 file이 지정하는 위치에 저장합니다.

주: Eclipse 문서 또는 개발자 안내서에 대한 링크와 같은 일부 정보는 제품 도움말의 주제에서만 사용 가능합니다.

피드백