동일한 UML 클래스 다이어그램에 관해서 두 가지 질문이 있습니다. 첫 번째는 UML 기본 유형으로 템플릿 클래스를 모델링하는 방법에 관한 것입니다. 두 번째 방법은 OCL 제약 조건에서 템플릿 클래스를 처리하는 방법입니다.기본 UML 유형이있는 템플릿 클래스 및 템플릿 클래스의 OCL 제약
질문 1 : 템플릿 클래스 나 간격에 대한 템플릿 클래스를 사용하여 UML 표준을 사용하여 표현하고자하는
. 간격은 정수 및 부동 소수점에 사용할 수 있어야합니다. 지금까지 발견 된 가장 좋은 방법은 다음과 같다 : 여기
아이디어는 매개 변수 T
중 하나 Integer
및 Float
클래스의 슈퍼 클래스 인 상태, 템플릿 클래스를하는 것입니다.
내가보기에 문제는 그룹화하기 위해 UML의 기본 유형을 재정의해야한다는 것입니다. 나는 템플릿 클래스를 정의하고, 이 integer
또는 float
(여기서 UML의 프리미티브 임) 중 하나임을 알리는 명확한 방법이 있는지 알고 싶습니다.
질문 2 : 템플릿 클래스
내 문제의 두 번째 측면에 대한 OCL 제약 내 간격은 최소 2 개 요소를 포함해야한다는 말을 OCL 제약 조건을 추가 할 수 있도록한다는 것이다. 문제는 이전 클래스 다이어그램에서 T
의 바인딩에 따라 규칙이 동일하지 않아야한다는 것입니다. 수레를 들어
: 정수의 경우
context Interval
inv : self.supBound > self.infBound
:
context Interval
inv : (self.infBoundIncluded and self.supBoundIncluded) implies supBound - infBound >= 1
context Interval
inv : (not(self.infBoundIncluded) and self.supBoundIncluded) implies supBound - infBound >= 2
context Interval
inv : (self.infBoundIncluded and not(self.supBoundIncluded)) implies supBound - infBound >= 2
context Interval
inv : (not(self.infBoundIncluded) and not(self.supBoundIncluded)) implies supBound - infBound >= 3
그래서 내가 T
이 Integer
에 바인딩 할 때 몇 가지 규칙 만 적용된다는 말을 OCL의 방법을 찾을 필요가 있고, 다른 사람 그것은 Float
에 묶여있다. OCL 전문가가 아니기 때문에 도움이되는 정보를 찾을 수 없으므로 도움이 필요합니다.
미리 감사드립니다.
바스 티앙. 1 솔루션은 제네릭 형식과 템플릿 클래스를 사용하는 것입니다
(이 클래스에 따라 인스턴스화되지 않습니다
질문 :