Module View

|

모듈 뷰

시스템의 기본적인 구현 단위 또는 모듈과 함께 이들의 관계를 열거, 서술하는 뷰.

보통 모듈 구조(Module structure)는 시스템의 어떤 부분의 변경이 다른 부분에 얼마나 큰 영향을 미치는지를 결정한다. 변경용이성(Modifiability), 이식성(Portability), 재사용성(Resuability)과 관련된 시스템의 기능을 결정한다.


모듈 뷰의 요소, 관계, 속성

요소

  • 모듈: 모듈은 밀집성을 갖는 책임의 집합을 제공하는 소프트웨어의 구현 단위

관계

  • 일부분(is part of)
  • 의존(depends on)
  • 일종(is a)

속성

모듈의 속성은 구현과 분석에 이용되기 떄문에 모듈 뷰 문서에 기록되어야 한다.

  • 이름(Name)
  • 책임(Responsibility): 모듈의 이름이 책임을 알려줄 수는 있지만, 책임 속성을 통해 훨씬 더 명확하게 보여줄 수 있음
  • 인터페이스 가시성(Visibility of interface): 부모 모듈이 서브 모듈을 가지는 경우, 서브 모듈의 인터페이스는 외부에 노출되지 않는다. 하지만, 선택적으로 서브 모듈의 일부 인터페이스를 외부에 노출시키도록 표현할 수도 있다. 레이어와 서브 시스템이 주로 이런 방식을 사용한다.
  • 구현 정보(Implementation information): 모듈은 구현단위다. 엄격히 말하면 아키텍처적인 정보는 아니지만, 아키텍처 문서에 기록하는 것이 유용하다. 구현 정보에는 소스 코드 단위 매핑, 테스트 정보, 관리 정보, 구현 제약사항 등이 포함될 수 있다.


모듈 뷰 사용

모듈 뷰는 구현, 분석, 의사 소통 등의 용도로 많이 활용된다.

하지만, 모듈 뷰는 소프트웨어의 정적인 부분만을 보여준다. 따라서 모듈 뷰만 이용해서 시스템의 런타임(Runtime) 행위를 알아내는 것은 어렵다. 따라서 모듈 뷰는 일반적으로 성능, 신뢰성 등 런타임 품질 분석에는 사용되지 않는다.


모듈 뷰 표기법

모듈 뷰는 UML 또는 비형식적 표기법으로 둘 다 표현이 가능하다. UML을 이용할 경우 다음과 같이 표현한다.

image


모듈 뷰에서 관계는 다음과 같이 표현한다.

image


다른 뷰와의 관계

모듈 뷰는 일반적으로 C&C 뷰(컴포넌트 커넥터 뷰)에 매핑된다. 모듈은 주로 런타임시 실행되는 컴포넌트와 매핑이 되며, 일대일 또는 일대다 등의 관계로 매핑이 된다.

다만 모듈 뷰는 소프트웨어의 정적인 분할을 표현하는 것이기 때문에, 객체의 여러 인스턴스(ex. 데이터 리파지토리 또는 네트워크 등)는 모듈 뷰에 나타나지 말아야 한다.