1. 개요

    디플로이먼트 다이어그램은 "시스템을 구성하는HW 자원 간의 연결 관계를 표현하고, HW 자원에 대한SW 컴포넌트의 배치 상태를 표현한 다이어그램." 입니다.

    그리고 디플로이먼트 다이어그램은 시스템의 설계 단계의 마지막에 작성합니다. 즉, 모든 설계가 거의 마무리되어 SW 컴포넌트가 정의되고, 시스템의 HW 사양도 확정된 후 디플로이먼트 다이어그램이 작성될 수 있습니다. (항상 그런 것은 아니고 상황에 따라 변경이 됩니다.)

     

  2. 목적

    디플로이언트 다이어그램 작성하는 목적은 다음과 같습니다.

    1. SW시스템이 배치, 실행될 HW자원들을 정의합니다.

      디플로이먼트 다이어그램은 다른 UML 다이어그램들과는 달리 HW자원들을 명시적으로 정의하는 용도로 작성됩니다. 그러나 이렇게 HW를 정의하는 목적이 HW 자체의 사양을 정의하고 설명하기 위한 것은 아닙니다. 오히려 SW 시스템이 탑재되어 동작하는 매개체로서, HW자원을 정의한다라는 관점에서 정의합니다.

       

    2. SW 컴포넌트가 어떤 HW 자원에 탑재되어 실행될지 정의합니다.

      디플로이먼트 다이어그램은 실행모듈(컴포넌트)을 분산된 HW자원에 적절히 배치하여 원하는 성능과 효율을 낼지를 정의하는 목적으로 작성됩니다. 따라서 디플로이먼트 다이어그램에는 SW자원과 HW자원이 동시에 표현됩니다.

       

    3. HW 자원의 물리적인 구성을 정의합니다.

      SW컴포넌트가 탑재된 HW자원들은 적절한 성능을 내기 위해 물리적인 연결을 가지고 있어야 합니다. 디플로이먼트 다이어그램은 어떤 HW자원간에 연결이 있는지, 그 연결은 어떠한 성능을 가진 연결인지를 정의합니다.

       

  3. 구성요소

    디플로이먼트 다이어그램의 구성요소는 다음과 같습니다.

    1. Things 혹은 심볼 : 노드(Node), 컴포넌트(Component)
    2. Relationships : Connection, Dependency

     

    1. 노드

      노드는 직육면체로 표기하며, 노드 명은 심볼 내에 표기합니다.

      노드는 SW 컴포넌트가 탑재되어 처리되는데 관련된 HW 자원을 의미합니다. 주로 연산능력(computing power)이 있는 HW 즉, SW를 탑재하여 운용할 수 있는 능력을 가진 하드웨어가 표현됩니다. 그러나 표현할 수 있는 HW 자원의 종류가 제한된 것은 아니고, 아래와 같은 다양한 장비들이 노드로 정의될 수 있습니다.

      [HW 장비들의 예]

      Sensor, Printers ,Card readers, Communication devices, Mechanical processing resources

      [노드의 예]

      Web Server, DB Server

       

    2. 컴포넌트

      컴포넌트는 탭이 달린 직사각형으로 표기하며, 컴포넌트 명은 심볼 내에 표기합니다.

      컴포넌트는 독립적으로 배포되고 교체되며 재사용될 수 있는 SW조각를 의미합니다. 보통의 경우 실행모듈을 말하지만, 실제 통용되는 컴포넌트라는 용어는 항상 실행모듈만을 가리키지는 않습니다. 컴포넌트가 가끔은 아주 광의로 사용되어서 소스코드나 UI(User Interface), 분석, 설계 산출물들을 포함한 것을 의미하기도 합니다. 컴포넌트라는 용어의 의미는 문맥에서 말하는 사람의 의도를 생각해서 받아 들여야 합니다.

      [컴포넌트의 예]

      결재 시스템에서 결재, 사원 등, 전자 상거래 시스템에서 우편번호 검색, 신용카드 결재 등

       

    3. 연결

      Connection의 표기

      노드를 연결하는 실선으로 표기하며, 연결의 물리적 특성을 Stereo type으로 표기할 수 있습니다.

       

      Connection의 정의

      두 노드 사이의 물리적인 연결을 의미합니다. 두 노드 사이의 물리적인 연결 특성을 설명합니다.

       

    4. 의존관계

      Dependency의 표기

      점선 화살표로 표현하고 필요에 따라 선 위에 설명을 붙이기도 합니다.

       

      Dependency의 정의

      객체나 컴포넌트가 다른 객체나 컴포넌트의 실행을 요청하는 경우, 즉 사물간의 실행 혹은 참조관계를 표현합니다.

      Class와 Class, Package와 package, Component와 Component에 주로 사용되는 관계이고, 때로는 Class-Package-Component 상호 간에도 사용되는 관계입니다.

       

  4. 주의사항
    1. 목적을 전달할 수 있는 명확한 의미의 명칭을 부여해야 합니다.
    2. 노드 명과 스테레오 타입으로 정의하는 하드웨어 특성등은 표현 방식에 기준이 없습니다. 하지만 시스템과 관련없는 제 3 자가 보더라도 그 의미를 이해 할 수 있게 쉽고, 명확한 용어를 사용하여 명칭을 정의하야 합니다. 모호한 명칭으로 정의하면 혼란만 야기 시키는 결과가 됩니다.
    3. 문제 영역의 H/W에 대한 명쾌한 추상 개념을 제공하도록 작성합니다.
    4. SW 자원이 탑재되어 운영되는 보조적인 용도 뿐 아니라, 디플로이먼트 다이어그램은 시스템의 하드웨어 구성을 개념적으로 보여주는 훌륭한 도구가 됩니다. 이러한 용도를 살려 HW 자원의 구성에 대한 좋은 모델이 되도록 정의합니다.
    5. Model을 만든 목적을 전달하기에 필요한 수준까지만 분해되어 있습니다.
    6. 디플로이먼트 다이어그램에 모든 HW 장비가 나타날 필요는 없습니다. 오히려 이러한 시도는 다이어그램을 장황하고 복잡하게 만들어서 의미를 파악하기 힘들게 합니다. 목적과 용도에 부합하는 요소들만 정의하면 충분합니다.

'소프트웨어공학 > UML이야기' 카테고리의 다른 글

7. State chart Diagram  (1) 2009.05.27
3. B Usecase Discription  (0) 2009.05.26
5. Sequence Diagram  (1) 2009.02.06
4. Class Diagram  (0) 2008.10.26
3. A. Usecase Diagram  (0) 2008.06.23
Posted by 서오석
,