도구 사용 도움말: Rational Rose RealTime에서 활성 오브젝트 디자인
이 도구 사용 도움말은 활성 오브젝트의 컴포넌트를 설명하고 Rational Rose RealTime에서 활성 오브젝트를 사용하여 디자인하는 방법을 설명합니다.
도구: Rational Rose RealTime
관계
관련 요소
기본 설명

개요

활성 오브젝트는 프로토콜 및 포트가 있는 캡슐로 구성됩니다.

캡슐은 포트 오브젝트를 통해 다른 캡슐과의 메시지 기반 통신을 사용하는 상당히 캡슐화된 오브젝트입니다. 캡슐은 다른 캡슐을 집계할 수 있습니다. 캡슐 구조에는 캡슐 역할에 해당되는 다른 캡슐이 포함될 수 있습니다.

두 오브젝트 간에 교환되는 메시지 세트는 프로토콜이라고 하는 통신 패턴을 준수합니다. 기본적으로 프로토콜에서 참가자 사이에 교환할 수 있는 올바른 메시지 유형을 정의하는 계약입니다.

상태 다이어그램은 오브젝트 동작을 정의하기 위한 하나의 방법입니다. 이 다이어그램은 해당 응답 및 조치와 함께, 수신된 메시지의 응답으로 해당 수명 동안 오브젝트 또는 상호작용이 놓이는 상태의 시퀀스를 보여줍니다.

도구 단계

Rational Rose RealTime에서 활성 오브젝트로 디자인하려면 다음 단계를 수행하십시오.

  1. 캡슐 역할 작성
  2. 포트 작성 후 프로토콜에 바인드
  3. 캡슐 상태 머신 정의
  4. 상태 및 하위 상태 정의
  5. 상태 전이 정의
  6. 클래스에서 속성 정의

1. 캡슐 역할 작성

캡슐은 모델 브라우저의 논리 보기에서 작성됩니다.

  1. 도구 상자에서 캡슐 역할 도구를 선택하십시오.
  2. 캡슐 역할이 놓일 위치에 커서를 놓고 마우스 왼쪽 단추를 클릭하십시오.
  3. 드롭 다운 목록에서 새 캡슐 역할의 연관된 캡슐을 선택하십시오.
  4. 캡슐 역할에 적절한 이름을 제공하십시오.
  5. 작성할 캡슐 역할마다 위의 단계를 반복하십시오.

2. 포트 작성 후 프로토콜에 바인드

  1. 모델 브라우저 또는 클래스 다이어그램에서 캡슐을 찾으십시오.
  2. 브라우저에서 캡슐 아래에 있는 요소를 펼치거나 클래스 다이어그램에서 캡슐을 마우스 오른쪽 단추로 클릭하여 캡슐의 구조 다이어그램을 여십시오.
  3. 도구 상자에서 포트 도구를 사용하여 캡슐의 구조 다이어그램에 포트를 놓으십시오. 포트는 캡슐의 경계나 큰 직사각형 영역 안에 놓을 수 있습니다.
  4. 포트의 이름을 설정하십시오.
  5. 목록에서 프로토콜을 선택하거나 프로토콜을 새로 작성하십시오.
  6. 포트를 마우스 오른쪽 단추로 클릭하여 포트 스펙 대화 상자를 선택하십시오.
  7. 포트 스펙 대화 상자를 사용하여 프로토콜을 변경하고 포트 연결(wired) 또는 연결 해제(unwired) 여부를 선택하며 포트 결합 여부를 설정하십시오.

3. 캡슐 상태 머신 정의

  1. 모델 브라우저 또는 클래스 다이어그램에서 캡슐을 찾으십시오.
  2. 브라우저에서 캡슐 아래에 있는 요소를 펼치거나 클래스 다이어그램에서 캡슐을 마우스 오른쪽 단추로 클릭하여 캡슐의 상태 다이어그램을 여십시오.
  3. 상태 다이어그램 도구 상자를 사용하여 상태 및 전이를 상태 다이어그램에 놓으십시오.

4. 상태 및 하위 상태 정의

  1. 동작이 갱신되는 캡슐을 찾으십시오. 캡슐은 모델 브라우저나 클래스 다이어그램에서 찾을 수 있습니다.
  2. 캡슐을 마우스 오른쪽 단추로 클릭하여 상태 다이어그램을 여십시오. 그러면 상태 다이어그램 편집기에서 다이어그램이 열립니다.
  3. 도구 상자에서 상태 도구를 사용하여 새 상태를 다이어그램에 놓으십시오. 작성하려는 상태마다 수행하십시오.
  4. 상태마다 적절한 이름을 제공하십시오.
  5. 하위 상태를 갖게 될 상태를 두 번 클릭하십시오. 그러면 하위 상태를 추가할 수 있는 새 상태 다이어그램이 노출됩니다.
  6. 창의 맨 아래에 있는 탭을 사용하여 이전으로 탐색할 상태 레벨을 선택하십시오.

참고: 또는 상태 다이어그램 편집기의 네비게이터 영역을 통해 상태를 추가할 수도 있습니다.

5. 상태 전이 정의

초기 전이 추가

  1. 다이어그램에서 초기 지점을 클릭하고 대상 상태의 맨 위로 전이를 끄십시오. 초기 지점은 다이어그램의 왼쪽 맨 위 구석에 표시되는 검은색 원입니다.
  2. 전이에 적절한 이름을 제공하십시오(기본값이 아닐 경우). 초기 전이는 초기라는 기본 이름을 갖습니다. 레이블을 선택하고 입력하여 이름을 변경할 수 있습니다. 초기 전이는 캡슐 인스턴스가 작성될 때 런타임에서 자동으로 호출됩니다. 초기 전이와 연관되는 조치 코드는 캡슐 인스턴스가 작성되는 즉시 실행됩니다.

전이 추가

  1. 도구 상자에서 전이 도구를 선택하고 소스 상태에서 대상 상태로 전이를 끄십시오.
  2. 전이에 적절한 이름을 제공하거나 기본값을 승인하십시오.

상태 머신에 세부 코드 추가

C, C++ 또는 Java 코드는 런타임 시 실행할 캡슐 상태 다이어그램의 전이, 선택 지점 및 상태 시작 또는 종료에서 조치로 추가할 수 있습니다. 캡슐 상태 다이어그램에 추가된 코드만 모델에 대해 생성된 코드에 포함됩니다. 프로토콜 또는 데이터 클래스 상태 다이어그램의 세부 조치는 해당 클래스에 대해 생성된 코드에 포함되지 않습니다.

트리거 추가

전이에 트리거를 설정하려면 먼저 트리거가 수신될 포트를 정의해야 합니다.

  1. 전이를 두 번 클릭하여 전이 스펙 대화 상자를 여십시오. 
  2. 트리거 탭을 선택하십시오.
  3. 포트 목록 영역에 커서를 놓고 마우스 오른쪽 단추를 클릭한 후 메뉴에서 삽입을 선택하십시오.
  4. 포트 영역에서 트리거가 수신될 포트를 선택하십시오.
  5. 신호 영역에서 트리거 이벤트를 야기할 포트 신호를 선택하십시오.
  6. 확인 단추를 클릭하여 열린 대화 상자를 닫으십시오.

전이에 코드 추가

이제 필요한 모든 요소가 제 위치에 있으므로(초기 상태, 초기 전이 및 포트), 초기 전이와 상태 간 전이에 세부 코드를 추가해야 합니다. 세부 코드는 초기 전이가 모델 실행 시간에 실행될 때 또는 상태 간 전이에서 트리거가 수신될 때 실행됩니다.

  1. 전이를 두 번 클릭하여 전이 스펙 대화 상자를 여십시오.
  2. 조치 탭을 선택하여 코드 창을 표시하십시오.
  3. 전이에서 실행될 코드를 추가하십시오.
  4. 확인 단추를 선택하여 열린 대화 상자를 닫으십시오.

참고: 왼쪽 및 오른쪽 중괄호 '{`, `}'는 포함하지 않아도 됩니다. 이 중괄호는 코드 생성기에서 자동으로 추가됩니다.

6. 클래스에서 속성 정의

  1. 브라우저에서 캡슐을 두 번 클릭하거나 다이어그램에서 캡슐을 선택한 후 팝업 메뉴에서 스펙 열기를 선택하여 캡슐 스펙 대화 상자를 여십시오.
  2. 캡슐 스펙에서 속성 탭을 선택하십시오.
  3. 탭의 열린 영역에 커서를 놓고 마우스 오른쪽 단추를 클릭한 후 삽입을 선택하십시오.
  4. 이름을 NewAttribute1에서 더 의미있는 이름으로 변경한 후 ENTER를 누르십시오.
  5. 새 속성을 두 번 클릭하여 속성 스펙 대화 상자를 표시하십시오.
  6. 속성 스펙 대화 상자를 사용하여 속성 유형 및 초기값을 설정하십시오.