서브시스템 외부 동작은 실현하는 인터페이스에 의해 주로 정의됩니다. 서브시스템이 인터페이스를 실현하는 경우 인터페이스에서 정의한 각각의 모든 오퍼레이션을 지원하도록 확약합니다. 오퍼레이션은 서브시스템에 포함된
디자인 요소에서 오퍼레이션으로 차례로 실현되고 (예: 디자인
클래스 또는 디자인 서브시스템) 해당 오퍼레이션에는 다른 디자인 요소와의 협업이 요청됩니다.
서브시스템의 모델 요소 협업은 서브시스템 동작이 실현되는 방법을 표시하는 시퀀스 다이어그램을 사용하여 문서화되어야 합니다. 서브시스템에서 실현되는 인터페이스의 각 오퍼레이션에는 문서화된 시퀀스 다이어그램이
포함되어야 합니다. 서브시스템이 해당 다이어그램을 소유하고 서브시스템의 내부 동작 디자인에 사용됩니다.
서브시스템 동작이 상태에 의존하는 정도가 높고 하나 이상의 제어 스레드를 표시하는 경우 상태 머신이 일반적으로 서브시스템 동작 설명에 유용하게 사용됩니다. 이 컨텍스트에서 상태 머신은 일반적으로 시스템(이 경우에는
서브시스템)의 제어 스레드 분리를 나타내는 활성 클래스와 같이 사용되고 상태 차트 다이어그램에 설명됩니다. 상태 차트: 상태 차트
다이어그램를 참조하십시오. 실시간 시스템에서 중간 산출물: 캡슐의
동작도 상태 머신을 사용하여 설명됩니다.서브시스템에서 활성 클래스로 표시되는 실행 독립 스레드가 있을 수 있습니다.
실시간 시스템에서 중간 산출물: 캡슐은
해당 스레드 캡슐화에 사용됩니다.
예제:
시스템의 필수 동작 몇 가지를 수행하기 위한 서브시스템 협업은 시퀀스 다이어그램을 사용하여 표시될 수 있습니다.
이 다이어그램은 서브시스템 인터페이스가 시나리오 수행에 사용되는 방법을 표시합니다. 특히, 네트워크 처리 서브시스템에 대해 서브시스템이 지원해야 하는 특수한 인터페이스(이 경우 ICoordinator) 및
오퍼레이션을 보게 됩니다. 또한, 네트워크 처리 서브시스템이 IBHandler 및 IAHandler 인터페이스에 종속되는 것도 보게 됩니다.
서브시스템을 자세히 보면 ICoordinator 인터페이스가 실현되는 방법을 알게됩니다.
Coordinator 클래스는 ICoordinator 인터페이스의 "프록시"로 수행되어 인터페이스 오퍼레이션을 처리하고 인터페이스 동작을 조합합니다.
이 "내부" 시퀀스 다이어그램은 인터페이스를 제공하는 클래스, 서브시스템 기능 제공을 위해 내부에서 발생해야 하는 작업 및 서브시스템에서 메시지를 송신하는 클래스를 정확히 표시합니다. 이 다이어그램은 내부 디자인을
명백하게 설명하며 복잡한 내부 디자인으로 되어있는 서브시스템에는 반드시 필요합니다. 또한 서브시스템 동작을 더 쉽게 이해하도록 도와주며 컨텍스트에서 재사용가능하도록 렌더링하기도 합니다.
이러한 "인터페이스 실현(realization)" 다이어그램 작성은 필요한 동작을 수행하는 새 클래스 및 서브시스템을 작성하는 데 필요합니다. 프로세스는 유스 케이스 분석에 정의된 프로세스와 비슷하지만, 유스
케이스 대신 인터페이스 오퍼레이션에 대해 작업하게 됩니다. 각 인터페이스 오퍼레이션에 대해 오퍼레이션 수행에 필요한 현재 서브시스템의 클래스(또는 필수 동작이 복잡한 경우 포함된 서브시스템)를 식별합니다. 기존
클래스/서브시스템에서 필요한 동작을 제공하지 못하는 경우(그래도 재사용은 시도해야 함) 새 클래스/서브시스템을 작성하십시오.
새 디자인 요소를 작성하면 서브시스템 컨텐츠 및 경계를 다시 고려해야 합니다. 다른 두 서브시스템에서 유효한 동일한 클래스를 만들지 마십시오. 이런 클래스를 만들게 되면 서브시스템 경계를 잘 나타낼 수 없게됩니다.
주기적으로 타스크: 디자인 요소 식별을 다시 검토하여 서브시스템 책임의 밸런스를 재조정하십시오.
서브시스템 클라이언트를 대상으로 하는 스펙과 구현자를 대상으로 하는 실현(realization)과 같이 서브시스템의 독립된 두 개의 내부 모델을 작성하면 유용할 때가 있습니다. 스펙에는 "이상적인" 클래스 및
협업이 포함되어 이상적인 클래스 및 협업의 관점으로 서브시스템 동작을 설명합니다. 반면에 실현은 구현에 더 가깝게 대응되고 결국 구현으로 전개됩니다. 디자인 서브시스템 스펙 및 실현에 대한 자세한 정보는
중간 산출물 가이드라인: 디자인 서브시스템, 서브시스템 스펙 및 실현을 참조하십시오.
|