[컴퓨터공학]/[소프트웨어공학]

[소프트웨어공학] 컴포넌트 다이어그램(Component Diagram)

딥러닝 도전기 2022. 3. 18. 00:22

[소프트웨어공학] 컴포넌트 다이어그램(Component Diagram)

 

지난 포스팅에서 클래스 다이어그램을 알아봤습니다.

이번 포스팅에서는 컴포넌트 다이어그램에 대해 알아보도록 하겠습니다.

 

  • 구조 다이어그램(Structure Diagram)
    • 클래스 다이어그램(Class Diagram)
    • 컴포넌트 다이어그램(Component Diagram)

 

  • 행위 다이어그램(Behavior Diagram)
    • 유스케이스 다이어그램(Use-case Diagram)
    • 시퀀스 다이어그램(Sequence Diagram)
    • 콜라보레이션 다이어그램(Collaboration Diagram)
    • 상태 다이어그램(State chart Diagram)
    • 활동 다이어그램(Acticity Diagram)

 


컴포넌트란?

  • Source code(.h, .cpp, ...)
  • Run-time library(.dll)
  • 실행 파일(.exe)

컴포넌트 다이어그램의 표현

  • 컴포넌트와 인터페이스의 의존관계
  • 컴포넌트와 인터페이스의 실체화관계

UML의 의존관계와 실체화관계 표기는 다음과 같습니다.

하지만 컴포넌트 다이어그램에서는 실체화관계를 간단하게 표현하기 위해 다음과 같이 표기합니다.

 

 

컴포넌트와 컴포넌트 사이는 의존관계로, 컴포넌트와 인터페이스 사이는 실체화관계로 나타냅니다.

  • 컴포넌트와 컨포넌트의 의존관계 표현

  • 컴포넌트와 인터페이스의 실체화 표현

 

  • 컴포넌트와 클래스의 공통점

- 둘 다 이름이 있고, 정해진 인터페이스를 실현할 수 있음.

- 의존성이 있고 일반화가 가능함.

- 연관 관계와 교류에 참여할 수 있고 중첩이 가능하며 인스턴스를 가질 수 있음.

 

  • 컴포넌트와 클래스의 차이점

- 클래스는 논리적인 추상화이지만 컴포넌트는 물리적인 요소

- 컴포넌트는 클래스나 통신과 같은 서로 다른 논리적 요소들을 물리적으로 패키지화한 것

- 클래스는 속성과 오퍼레이션을 직접 가질 수 있지만, 컴포넌트는 자신의 인터페이스를 통해 접근할 수 있는 오퍼레이션들만 가질 수 있음.

반응형