포트 고려사항

포트는 메시지(기본 오퍼레이션, 트리거된 오퍼레이션 및 이벤트)를 보내거나 수신할 수 있는 오브젝트를 통한 상호작용점입니다.

UML에서 포트에는 유형(IBM® Rational® Rhapsody®에서는 계약이라고 함)이 있습니다. 포트 계약은 오브젝트 클래스와 유사합니다.

포트가 계약(예: 인터페이스 I)을 갖는 경우, 해당 포트는 정의상 I를 제공합니다. 포트가 추가 인터페이스(예: 인터페이스 J)를 제공하게 하려면, 포트는 하나의 유형만 갖기 때문에 UML에 따라 IJ를 상속해야 합니다. Rational Rhapsody의 경우, 제공된 인터페이스 목록에 J를 추가하면 이러한 상속이 자동으로 작성됩니다(다시, 이는 명시적 계약 I를 갖는 포트임). IJ가 관련되지 않은 경우에는 UML 표준에 따라 계약이 될 새 인터페이스를 지정하고 이 인터페이스가 IJ를 둘 다 상속하게 해야 합니다.

내재적 포트 계약

일부는 특수 인터페이스의 스펙을 포트 계약으로 강제 적용하는 것이 인위적임을 알았으므로 Rational Rhapsody내재적 계약에 대한 개념을 제공합니다. 이는 계약이 내재적이면 서로 관련되지 않은 제공된 필수 인터페이스 목록을 지정할 수 있는 반면, 계약 인터페이스는 여전히 내재적임을 의미합니다(모델의 포트에 대해 계약이 될 특수 인터페이스를 명시적으로 정의할 필요가 없음).

내재적 계약에 대한 작업은 장단점이 있습니다. 포트가 제공된 필수 인터페이스의 서브세트만 필요로 하고 이를 제공하는 다른 포트에 연결된 경우, 내재적 포트에 대한 작업을 하는 것이 보다 자연스럽습니다. 그러나 포트가 정확히 "되돌린" 다른 포트에 연결된 경우(포트 기능 창의 선택란 참조) 또는 다른 포트가 동일한 인터페이스 세트를 필요로 하고 이를 제공하는 경우에는 명시적 계약에 대한 작업을 하는 것이 타당합니다. 명시적 계약에 대한 작업은 클래스와 별도로 오브젝트를 지정하거나 이 유형 또는 클래스의 단일 오브젝트만 시스템에 존재하는 경우 내재적 클래스를 가진 오브젝트를 지정하는 것과 유사합니다.

고속 포트

고속 포트는 제공된 필수 인터페이스가 없는 포트입니다(명시적 계약을 가진 포트는 정의상 계약 인터페이스를 제공하기 때문에 계약이 내재적임을 의미함). 이러한 포트는 포트를 통해 수신되는 이벤트를 릴레이합니다. 고속 포트 개념은 Rational Rhapsody에 특정하며, 사용자가 포트를 사용하여 빠른 프로토타입 작성을 수행할 수 있게 합니다. 분석 또는 디자인 초기 단계에서 계약을 구체화하지 않아도 되므로 이 기능은 특히 상태 차트를 사용하여 동작을 지정하는 사용자에게 유익합니다.


피드백