동산로의 블로그
UML component diagram 본문
UML 컴포넌트 다이어그램 (component diagram)
컴포넌트 다이어그램은 UML(Unified Modeling Language)에서 구조 다이어그램(Structual Diagram)의 한 종류로, 시스템 모듈 간 구조와 상호작용을 시각화하는 데 사용됩니다.
1. 컴포넌트란 무엇인가.
컴포넌트는 일반적으로 캡슐화된 교체 가능한 모듈로 이해할 수 있습니다 UML 2.0 명세에서 엄밀하게 정의 된 것은 아니지만, 대부분의 경우 이렇게 해석하는 편이 유용합니다. 각 컴포넌트들은 독립적으로 개발, 배포, 교체될 수 있으며, 외부와의 인터페이스를 통해 통신합니다.
2. 컴포넌트 다이어그램의 목적
컴포넌트 다이어그램은 시스템의 상위수준(high-level) 구조를 설계하는 데 사용됩니다. 각 컴포넌트의 기능적 역할과 상호작용 관계를 보여주기 때문에, 전체 시스템의 로드맵 또는 설계 아키텍처를 명확히 파악할 수 있습니다.
3. 컴포넌트

컴포넌트는 사각형 상자 속에 컴포넌트 이름을 명시하며, 상단에 겹화살괄호 <<>> 를 통해 스트레오타입(stereotype)을 표기할 수 있습니다. 또한 아이콘을 함께 표시하거나, 두 표기법을 조합해 사용하는 것도 가능합니다. 아이콘은 이전 버전의 UML에서 사용하던 방법을 계승한 것입니다.
4. 인터페이스
인터페이스는 외부의 컴포넌트와의 통신을 위해 인터페이스를 가집니다. 인터페이스는 크게 두 가지 종류가 있습니다.
<<>> 기호를 통해서 컴포넌트의 인터페이스를 명시할 수도 있지만, 외부로 이어진 선을 통해서 표기할 수도 있습니다.

provided Interface 컴포넌트가 외부에 제공하는 기능 , 원으로 표시
Required Interface 외부에서 제공받아야 하는 기능, 통칭 소켓이라고 불리는 반원으로 표시

5. 인터페이스간 관계
인터페이스간 관계는 선으로 나타냅니다. 화살표는 의존성이 있을 때 이를 나타내기 위해서 사용합니다.

6. 인터페이스 포트
인터페이스와 컴포넌트 사이에 네모가 있는 경우 이는 포트를 나타냅니다.

7. 컴포넌트 속의 서프 컴포넌트
큰 사각형의 컴포넌트 속에 작은 사각형의 서브 컴포넌트를 그릴수 있습니다.
8. 다양한 관계(Relationships)
의존성 외에 몇몇 관계의 예시입니다.
Association
두개의 컴포넌트가 인터페이스를 통해서 통신을 하는 경우 선으로 잇습니다.

Composition
한개의 컴포넌트가 다른 컴포넌트의 구성에 있어서 필수적으로 요구될 때 사용됩니다.
꽉 채워진 다이아몬드를 그립니다. 꽉 채워진 다이아몬드가 연결된 컴포넌트가 삭제될 시 선으로 연결된 컴포넌트는 일반적으로 삭제됩니다.

Aggregation
composition과 비슷하지만 필수요구사항은 아닌 경우입니다. parent class가 없어져도 유지되는 경우에 사용합니다.

https://www.visual-paradigm.com/guide/uml-unified-modeling-language/uml-aggregation-vs-composition/
https://developer.ibm.com/articles/the-component-diagram/
https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-component-diagram/