UML 구성 요소 다이어그램: 지침

Visual Studio Ultimate에서 구성 요소 다이어그램을 그려 소프트웨어 시스템의 구조를 표시할 수 있습니다. 비디오 데모는 Designing the Physical Structure by using Component Diagrams를 참조하십시오.

UML 구성 요소 다이어그램을 만들려면 아키텍처 메뉴에서 새 다이어그램을 클릭합니다.

구성 요소는 환경 내에서 대체할 수 있는 모듈식 단위입니다. 구성 요소의 내부는 숨겨져 있지만 구성 요소 기능에 액세스할 때 사용할 수 있는 제공된 인터페이스가 하나 이상 정의되어 있습니다. 구성 요소에는 필요한 인터페이스도 있을 수 있습니다. 필요한 인터페이스는 다른 구성 요소로부터 요청하는 기능 또는 서비스를 정의합니다. 여러 구성 요소의 제공된 인터페이스와 필요한 인터페이스를 연결하면 더 큰 구성 요소를 생성할 수 있습니다. 결과적으로 전체 소프트웨어 시스템을 하나의 구성 요소로 이해할 수 있습니다.

구성 요소 다이어그램을 그리면 다음과 같은 몇 가지 이점을 얻을 수 있습니다.

  • 주요 블록 관점에서 디자인을 생각하면 개발 팀이 기존 디자인을 이해하고 새 디자인을 만드는 데 도움이 됩니다.

  • 시스템을 제공된 인터페이스와 필요한 인터페이스가 잘 정의되어 있는 구성 요소 컬렉션으로 간주하면 구성 요소 간 분리를 개선할 수 있습니다. 즉, 디자인을 잘 이해하고 요구 사항이 변경될 경우 쉽게 변경할 수 있게 됩니다.

구성 요소 다이어그램을 사용하면 현재 또는 앞으로 사용할 언어나 플랫폼에 관계없이 디자인을 나타낼 수 있습니다.

항목 내용

다른 다이어그램과의 관계

구성 요소 다이어그램을 그리는 기본 단계

구성 요소의 내부 파트 표시

구성 요소 디자인

참고

구성 요소 다이어그램의 요소에 대한 자세한 내용은 UML 구성 요소 다이어그램: 참조를 참조하십시오.

다른 다이어그램과의 관계

구성 요소 다이어그램을 다른 다이어그램과 함께 사용할 수 있습니다.

다른 다이어그램

디자인과 관련하여 논의하고 의견을 교환할 요소

UML 시퀀스 다이어그램

  • 시스템 구성 요소 간의 상호 작용

  • 구성 요소 내에 있는 파트 간의 상호 작용

자세한 내용은 UML 시퀀스 다이어그램: 지침을 참조하십시오.

UML 클래스 다이어그램

  • 구성 요소의 파트를 구성하는 클래스 및 구성 요소의 인터페이스

  • 구성 요소의 인터페이스를 통해 매개 변수로 보낸 데이터

자세한 내용은 UML 클래스 다이어그램: 지침을 참조하십시오.

동작 다이어그램

  • 들어오는 메시지에 대한 응답으로 구성 요소에서 수행하는 내부 처리

자세한 내용은 UML 동작 다이어그램: 지침을 참조하십시오.

레이어 다이어그램

  • 구성 요소의 논리 아키텍처 계층

자세한 내용은 레이어 다이어그램: 참조를 참조하십시오.

구성 요소 다이어그램을 그리는 기본 단계

구성 요소 다이어그램의 요소에 대한 자세한 내용은 UML 구성 요소 다이어그램: 참조를 참조하십시오.

디자인 프로세스에서 구성 요소 다이어그램을 사용하는 방법에 대한 자세한 내용은 소프트웨어 시스템의 아키텍처 모델링을 참조하십시오.

참고

모델링 다이어그램을 만드는 자세한 단계는 방법: UML 모델 및 다이어그램 편집를 참조하십시오.

구성 요소 다이어그램을 만들려면

  1. 아키텍처 메뉴에서 새 다이어그램을 클릭합니다.

  2. 템플릿에서 UML 구성 요소 다이어그램을 클릭합니다.

  3. 다이어그램 이름을 지정합니다.

  4. 모델링 프로젝트에 추가에서 솔루션의 기존 모델링 프로젝트를 선택하거나 새 모델링 프로젝트 만들기를 선택하고 확인을 클릭합니다.

    UML 구성 요소 다이어그램 도구 상자와 함께 새 구성 요소 다이어그램이 나타납니다. 이 도구 상자에는 필요한 요소 및 관계가 포함되어 있습니다.

구성 요소 그리기

인터페이스가 포함된 구성 요소

시스템 또는 응용 프로그램에서 각 주요 기능 단위에 대해 구성 요소(1)를 만듭니다.

예를 들면 응용 프로그램, 하드웨어 장치, 웹 서비스, .NET 어셈블리, 프로그램 클래스나 클래스 그룹 또는 프로그램의 분리 가능 세그먼트 등이 있습니다.

구성 요소를 만들려면

  1. 도구 상자에서 구성 요소를 클릭하고 다이어그램의 빈 부분을 클릭합니다.

    -또는-

    기존 구성 요소를 복사하여 붙여넣습니다.

    1. 다이어그램 또는 UML 모델 탐색기에서 기존 구성 요소를 찾습니다.

    2. 구성 요소를 마우스 오른쪽 단추로 클릭하고 복사를 클릭합니다.

    3. 복사한 구성 요소를 나타낼 다이어그램을 엽니다.

    4. 다이어그램에서 빈 부분을 마우스 오른쪽 단추로 클릭하고 붙여넣기를 클릭합니다.

      새 이름이 지정된 구성 요소 복사본이 나타납니다.

  2. 이름을 변경하려면 구성 요소의 이름을 클릭합니다.

  3. 구성 요소의 헤더만 표시하려면 펼침 단추(5)를 클릭합니다.

구성 요소의 포트 표시

포트(2, 3)는 구성 요소 내부/외부로 전달되는 메시지 또는 작업 호출 그룹을 나타냅니다. 이 그룹은 포트 형식을 정의하는 인터페이스에 의해 기술됩니다. 포트는 인터페이스를 제공하거나 요청할 수 있습니다.

제공된 인터페이스가 있는 포트(2)는 구성 요소에 의해 구현되고 다른 구성 요소에서 사용할 수 있는 작업을 제공합니다.

예를 들면 사용자 인터페이스, 웹 서비스, .NET 인터페이스 또는 프로그래밍 언어의 함수 컬렉션 등이 있습니다.

필요한 인터페이스가 있는 포트(3)는 다른 구성 요소나 외부 시스템에서 제공할 서비스 또는 작업 그룹에 대한 구성 요소 요구 사항을 나타냅니다.

예를 들면 웹 브라우저가 웹 서버를 요청하거나 응용 프로그램 추가 기능이 응용 프로그램의 서비스를 요청하는 경우입니다.

구성 요소에 사용할 수 있는 포트 수에는 제한이 없습니다.

구성 요소에 포트를 추가하려면

  1. 도구 상자에서 제공된 인터페이스 또는 필요한 인터페이스를 클릭합니다.

  2. 포트를 추가할 구성 요소를 클릭합니다.

    구성 요소의 경계에 포트가 나타납니다.

    이 포트의 형식으로 새 인터페이스가 만들어집니다. 이 인터페이스는 UML 모델 탐색기에 나타납니다.

  3. 구성 요소 경계 주위에서 포트를 끌어 원하는 위치에 놓습니다.

  4. 포트 레이블을 끌어 위치를 조정합니다.

  5. 레이블을 변경하려면 클릭합니다. 레이블에는 인터페이스 이름이 표시됩니다. 즉, 레이블을 변경하면 인터페이스의 이름이 변경됩니다.

구성 요소 간 연결

종속성(4)을 사용하면 다른 구성 요소에서 제공하는 작업 또는 서비스로 구성 요소의 요구 사항이 충족될 수 있음을 나타낼 수 있습니다.

제공된 인터페이스로 필요한 인터페이스를 충족시킬 수 있음을 나타내려면

  1. 도구 상자에서 종속성을 클릭합니다.

  2. 한 구성 요소에서 필요한 인터페이스가 있는 포트를 클릭한 다음, 다른 구성 요소에서 제공된 인터페이스가 있는 포트를 클릭합니다.

그룹의 모든 구성 요소가 다른 모든 구성 요소에 종속되는 종속성 루프를 디자인하지 않도록 해야 합니다.

기존 인터페이스의 포트를 구성 요소에 추가하려면

  • UML 모델 탐색기에서 인터페이스를 찾은 다음, 구성 요소로 끌어 옵니다.

    또는

  • 다이어그램에서 인터페이스에 대한 참조를 복사하여 붙여넣습니다.

    1. 클래스 다이어그램 또는 구성 요소 다이어그램에서 인터페이스를 마우스 오른쪽 단추로 클릭하고 복사를 클릭합니다.

    2. 구성 요소 다이어그램에서 구성 요소를 마우스 오른쪽 단추로 클릭하고 참조 붙여넣기를 클릭합니다.

      제공된 인터페이스가 구성 요소에 나타나고 작업 태그가 근처에 나타납니다.

      참고

      참조 붙여넣기 대신 붙여넣기를 사용하면 새 이름이 지정된 새 인터페이스가 만들어집니다.

    3. 필요한 인터페이스를 만들려면 작업 태그를 클릭하고 필요한 인터페이스로 변환을 클릭합니다.

구성 요소의 내부 파트 표시

내부 파트를 보여 주는 구성 요소 다이어그램

구성 요소(1)에 파트(3)를 배치하면 구성 요소가 서로 상호 작용하는 더 작은 구성 요소로 어떻게 이루어져 있는지 나타낼 수 있습니다.

그림의 다이어그램에서는 Dinner Now Web Service 형식의 모든 인스턴스에 Customer Server 인스턴스 하나와 Kitchen Server 인스턴스 하나가 포함되어 있음을 보여 줍니다.

파트는 부모 구성 요소의 속성이며, 대체로 특성이 일반 클래스에 속하는 것과 같습니다. 파트에는 고유 형식이 있으며 이 형식도 대개 구성 요소입니다. 파트 레이블은 다음과 같이 일반 특성과 형식이 같습니다.

+ partName : TypeName

부모 구성 요소 내에서 각 파트는 형식에 대해 정의된 제공된 인터페이스와 필요한 인터페이스를 보여 줍니다(4, 5). 한 파트에 필요한 작업 또는 서비스는 다른 파트에서 제공할 수 있습니다. 파트 어셈블리 연결선을 사용하면 파트가 서로 연결되는 방식을 나타낼 수 있습니다(6).

부모 구성 요소의 인터페이스가 실제로 제공되었는지 아니면 파트 중 하나에 필요한지를 나타낼 수도 있습니다. 위임 관계(9)를 사용하여 부모의 포트를 내부 파트의 포트에 연결할 수 있습니다. 이때 두 포트는 종류(제공된 포트 또는 필요한 포트)가 같아야 하고 인터페이스 형식이 호환되어야 합니다.

새 형식을 지정하거나 기존 형식을 사용하여 새 파트를 만들 수 있습니다.

구성 요소에 파트를 추가하려면

  1. 부모 구성 요소의 파트로 간주하는 각 주요 기능 단위에 대한 파트를 만듭니다.

    1. 도구 상자에서 구성 요소를 클릭하고 부모 구성 요소(1) 내부를 클릭합니다.

      새 파트(3)가 부모 구성 요소 내에 나타납니다.

      UML 모델 탐색기에 새 구성 요소가 만들어집니다. 이 구성 요소가 새 파트의 형식입니다.

      -또는-

      UML 모델 탐색기의 기존 구성 요소를 부모 구성 요소로 끌어 옵니다.

      새 파트(3)가 부모 구성 요소 내에 나타납니다. 새 파트의 형식은 UML 모델 탐색기에서 끌어 온 구성 요소입니다.

      -또는-

      다이어그램 또는 UML 모델 탐색기에서 구성 요소를 마우스 오른쪽 단추로 클릭하고 복사를 클릭합니다.

      부모 구성 요소에서 마우스 오른쪽 단추로 클릭하고 참조 붙여넣기를 클릭합니다.

      새 파트(3)가 부모 구성 요소 내에 나타납니다. 새 파트의 형식은 복사한 구성 요소입니다.

    2. 이름을 변경하려면 새 파트의 이름을 클릭합니다. 형식은 변경할 수 없습니다.

    3. 제공된 인터페이스와 필요한 인터페이스(4, 5)를 새 파트에 추가할 수 있습니다. 제공된 인터페이스 또는 필요한 인터페이스 도구를 클릭하고 파트를 클릭합니다.

      -또는-

      UML 모델 탐색기의 기존 인터페이스를 파트로 끌어 옵니다.

      인터페이스가 파트 형식에 추가되고 파트 자체에 나타납니다. 필요한 경우 부모 구성 요소가 크기를 조정합니다.

  2. 파트를 다른 파트에 연결합니다.

    • 다른 파트의 포트를 연결하려면 종속성 도구를 사용합니다(6).
  3. 파트를 부모 구성 요소의 포트에 연결합니다.

    1. 부모 구성 요소에 하나 이상의 포트(7)를 만듭니다. 도구 상자에서 필요한 인터페이스 또는 제공된 인터페이스를 클릭하고 부모 구성 요소를 클릭합니다.

    2. 포트를 하나 이상의 파트에 위임합니다(9). 위임 도구를 클릭한 다음, 부모 구성 요소의 포트와 파트의 포트를 차례로 클릭합니다. 인터페이스를 제공하거나 요청하는 포트를 같은 방식으로 연결할 수 있습니다.

파트의 파트 표시

구성 요소를 파트로 분해한 후에는 각 파트 형식을 고유한 내부 파트로 분해할 수 있습니다.

별도의 구성 요소 다이어그램에서 분해 레이어를 각각 처리하는 것이 더 간단합니다. 먼저 파트의 형식을 찾아야 합니다. 예를 들어 그림에서 한 파트의 이름은 DNCustomerServer이고 형식은 CustomerServer라는 구성 요소입니다. UML 모델 탐색기에서 이 형식을 찾아 다른 다이어그램에 배치할 수 있습니다. 그런 다음 고유한 내부 파트를 만들 수 있습니다.

파트의 형식을 다이어그램에 배치하려면

  1. 파트 형식의 정규화된 이름을 확인합니다.

    파트를 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.

    속성 창의 형식 필드에 형식 이름이 나타납니다.

  2. UML 모델 탐색기에서 파트의 형식을 찾습니다.

    보기를 클릭하고 다른 창을 가리킨 다음, UML 모델 탐색기를 클릭합니다.

    프로젝트를 확장하고, 필요한 경우 형식이 속한 패키지도 확장합니다.

    형식이 구성 요소로 나열됩니다.

    원하는 경우 이름을 변경할 수 있습니다.

  3. 다른 구성 요소 다이어그램을 열거나 만듭니다.

  4. UML 모델 탐색기의 형식을 다이어그램으로 끌어 옵니다.

    형식 뷰가 다이어그램에서 구성 요소로 나타납니다.

    파트에 정의한 것과 같은 인터페이스가 포함되어 있습니다.

    이제 내부에 파트를 추가할 수 있습니다.

구성 요소 디자인

파트의 공동 작업 방식 기술

부모 구성 요소에 도착하는 메시지에 응답하여 파트가 공동으로 작업하는 방식을 나타내기 위해 시퀀스 다이어그램을 그릴 수 있습니다.

이러한 다이어그램을 사용하면 기존 구성 요소를 설명하고 새 구성 요소를 디자인할 수 있습니다.

아직 구성 요소를 디자인하는 중이면 구성 요소에 포함할 파트를 결정하기 전에 시퀀스 다이어그램을 그릴 수 있습니다. 시퀀스 다이어그램을 사용하면 파트, 필요한 인터페이스 및 메시지 시퀀스 등을 다르게 하여 실험해 볼 수 있습니다. 들어오는 메시지 중에서 가장 많고 가장 중요한 메시지에 대해 시퀀스 다이어그램을 그립니다. 그런 다음 결정한 수명선에 해당하는 파트를 구성 요소에 만들 수 있습니다.

시퀀스 다이어그램을 사용하면 시스템 작업이 서로 다른 구성 요소 간에 분산되는 방식을 평가할 수 있습니다.

  • 작업이 한 파트에만 너무 많으면 고르게 분산된 경우에 비해 응용 프로그램에서 업데이트하기가 어렵습니다.

  • 상호 작용이 많아서 작업이 너무 적게 분산되면 시스템 성능이 저하되고 이해하기가 어렵습니다.

공동 작업 파트를 보여 주는 시퀀스 다이어그램

파트 간 공동 작업을 나타내는 시퀀스 다이어그램을 그리려면

  1. 새 시퀀스 다이어그램을 만듭니다.

    자세한 내용은 UML 시퀀스 다이어그램: 지침을 참조하십시오.

  2. 이 구성 요소에 메시지를 보내는 외부 구성 요소, 사용자, 장치 또는 다른 행위자(1)에 대한 수명선을 만듭니다.

    이 수명선의 행위자 속성을 true로 설정하여 고려 중인 구성 요소와 관계가 없음을 나타낼 수 있습니다. 수명선 위에 사람 모양 아이콘이 나타납니다.

  3. 선택한 행위자가 메시지를 보내는 이 구성 요소의 제공된 인터페이스(2)에 대한 수명선을 만듭니다.

  4. 구성 요소의 각 파트(3)에 대한 수명선을 만듭니다.

  5. 구성 요소의 각 필요한 인터페이스(4)에 대한 수명선을 만듭니다.

  6. 외부 행위자(5)에서 메시지를 가져옵니다. 메시지가 파트에 전달되는 방식 및 파트가 공동으로 이 메시지에 응답하는 방식을 나타내십시오.

  7. 필요한 경우 필요한 인터페이스(6)에 전송되는 메시지를 표시합니다. 메시지 실행 내부의 세부 정보는 나타내지 마십시오.

파트의 하위로 사용되는 구성 요소

구성 요소가 파트 컬렉션에 지정된 이름일 뿐인 경우도 있습니다. 모든 작업은 파트에서 수행되고 런타임에 구성 요소를 나타내는 코드 또는 다른 아티팩트가 없습니다.

구성 요소의 간접 인스턴스화됨 속성을 설정하여 모델에서 이를 나타낼 수 있습니다. 이 경우에는 구성 요소의 모든 인터페이스가 내부 파트에 위임된 상태로 포트에 있어야 합니다.

각 파트 내에 프로세스 기술

동작 다이어그램을 사용하면 구성 요소가 들어오는 각 메시지를 처리하는 방식을 나타낼 수 있습니다. 자세한 내용은 UML 동작 다이어그램: 지침을 참조하십시오.

데이터 버퍼가 포함된 동작 다이어그램

이벤트 적용 동작(1)을 사용하여 들어오는 메시지가 새 스레드를 시작한다는 것을 나타냅니다.

개체 노드 및 입/출력 핀을 사용하여 정보 흐름을 표시하고 정보 저장 위치를 나타냅니다. 이 예제에서는 스레드 간에 버퍼링되는 항목을 나타내기 위해 개체 노드(2)를 사용합니다.

데이터 및 클래스 정의

UML 클래스 다이어그램을 사용하여 다음 요소의 자세한 내용을 기술할 수 있습니다.

  • 구성 요소의 인터페이스

  • 인터페이스에서 작업 매개 변수에 전달된 데이터

  • 구성 요소에 저장된 데이터(예: 동작 다이어그램에서 개체 흐름에 표시)

구성 요소 간의 일반 종속성

디자인의 주요 파트 및 파트의 상호 종속성만 나타내려는 경우 구성 요소 다이어그램을 사용할 수 있습니다.

구성 요소 간의 종속성

종속성 도구를 사용하여 종속성을 그립니다. 이는 한 구성 요소의 디자인이 다른 구성 요소를 기반으로 한다는 것을 나타냅니다.

일반적인 종속성 유형은 다음과 같습니다.

  • 한 구성 요소가 다른 구성 요소 내의 코드를 호출합니다.

  • 한 구성 요소가 다른 클래스에 정의되어 있는 클래스를 인스턴스화합니다.

  • 한 구성 요소가 다른 구성 요소에서 만든 정보를 사용합니다.

종속성 화살표의 이름을 사용하여 특정 용도를 나타낼 수 있습니다. 이름을 설정하려면 화살표를 마우스 오른쪽 단추로 클릭한 다음, 속성을 클릭하고 속성 창에서 이름 필드를 설정합니다.

참고 항목

참조

UML 시퀀스 다이어그램: 참조

개념

방법: UML 모델 및 다이어그램 편집

UML 구성 요소 다이어그램: 참조

UML 사용 사례 다이어그램: 참조

UML 클래스 다이어그램: 참조

UML 구성 요소 다이어그램: 참조

기타 리소스

Video: Designing the Physical Structure by using Component Diagrams