2012-03-18 4 views
0

여러 클래스에 대한 코드를 생성하는 시스템을 작성 중이며이를 UML 다이어그램으로 문서화해야합니다. 클래스는 동일한 구조를 따를 것이지만 사용자가 설정 한 이름을 갖습니다. CCodeGenerator이이 클래스의 코드를 생성하도록 지정하는 방법이 있습니까?클래스가 다른 클래스의 코드를 생성하는 관계를 지정하는 방법이 있습니까? UML

또한 현재 CDataDefinition 클래스 (생성 된 각 클래스에 포함되어야하는 것을 정의 함)와 CCodeGenerator 사이에 관계가 있으며 생성 된 클래스와 클래스 간의 관계가 다양하다는 것을 나타낼 수있는 방법이 있습니다. 생성기는 정확히 CDataDefinition 인스턴스의 수와 같습니다.

이 클래스는 UML 클래스 다이어그램도 필요로하는 다른 시스템에서 사용됩니다. 이 프로젝트의 수업 (CEditior)에서 사용하는 방법을 보여줄 수 있습니까? 작업의

예 :

나는 X가 Y 및 Z를 내 CCodeGenerator 인스턴스가이 3 개 클래스 (.cs 파일에서 C# 코드)를 생성합니다 클래스를 정의 3 CDataDefinition 개체가.

CEditor은 별도의 솔루션으로이 세 클래스와 인터페이스합니다.

답변

0

MOF의 소개 정보를 읽으면 UML 패밀리에서 한 계층의 메타 클래스 인스턴스가 다음 계층의 분류 자임을 알 수 있습니다.

귀하의 경우, 출력에서 ​​클래스를 설명하는 코드 생성기의 클래스는 메타 클래스 (CDataGenerator)와 메타 클래스의 인스턴스가 나타내는 출력의 클래스가됩니다.

'X는 유형 Y'이외의 연결에 대해 일반 UML에서 레이어를 교차하는 방법이 없습니다.

MOV QVT (쿼리, 뷰, 변환 - 한 모델을 다른 모델로 매핑하는 언어)를 사용하여 이러한 관계를 모델링 할 수는 있지만 도구 지원의 현재 상태는 알 수 없으며 코드 생성기를 작성하지 않아도되는 QVT 도구가 있습니다.

0

CCodeGenerator에서 만들 수있는 클래스 구조를 나타내는 템플릿 클래스 (CDataDefinition)를 만들어야합니다. 실제로 바인딩을 할 때 클래스를 만들면 CCodeGenerator에 classGenerator (name : String)를 조작 한 후 (CDA)이 클래스가 CDataDefinition에 적절한 바인딩으로 클래스를 생성 함을 보여줄 수 있습니다.

관련 문제