클래스 다이어그램

From CS Wiki

시스템에서 사용되는 객체 타입을 정의하고, 그들 간의 존재하는 정적인 관계를 다양한 방식으로 표현한 다이어그램

  • Class, Interface, collaboration, Relation을 이용하여 시스템의 정적인 관점들을 가시화하고 구축을 위한 자세한 내용을 명세화
  • 객체지향 설계 시 가장 대중적으로 쓰이는 다이어그램 중 하나

특징[edit | edit source]

  • 클래스(Class), 인터페이스(Interface), 공동작업(Collaboration) 간의 관계 중심
  • 시스템 내 클래스들의 정적인 구조를 표현
  • 작성 후 바로 프로그램 코드로 변환 가능

구성[edit | edit source]

  • 클래스
    • 속성
    • 연산
  • 관계

클래스[edit | edit source]

클래스 표기는 박스를 세 부분으로 나누어 첫번째 부분에는 클래스 이름이 위치하며, 두번째 부분은 속성, 세번째 부분은 연산을 기술

클래스 다이어그램 클래스 예시.png

  • 클래스 이름: 일반적으로 첫번째 글자는 대문자로 표기
  • 속성(attribute): 의미 있는 명사형으로 표현
    • Class의 특징(property)에 이름을 부여
  • 연산(operation): 의미있는 동사형으로 표현
    • 객체 행동에 영향을 주기 위해 특정 class의 객체로부터 요청할 수 있는 서비스를 표현

관계[edit | edit source]

요약[edit | edit source]

명칭 표현 설명
연관 관계 ────> 객체간 개념적으로 연관
의존 관계 - - - - - -> 객체 변경 시 관계된 다른 객체도 변경
집합 관계 ────◇ 전체와 부분인 연관 관계
합성 관계 ────♦ 전체 소멸 시 부분도 소멸되는 집합 연관 관계
상속 관계 ────▷ 일반화된 개념과 구체화된 객체의 관계
상속 관계[edit | edit source]

특수화/일반화 관계(Specialization/Generalization Relationship)

  • 상위와 하위의 관계를 의미. 하위는 상위의 공통점을 상속받아 가짐
  • ‘is a 관계’ 또는 ‘is a kind of’ 관계라고도 함

500x500픽셀

연관 관계(Association Relationship)[edit | edit source]

  • 한 객체가 다른 객체와 연결되어 있음을 나타낼 때 그들을 연관관계로 지칭하며. 클래스들 사이에 선을 그어서 표현
  • 한 클래스와 다른 클래스 간에 연결된 선이 있으면 한 클래스의 객체가 다른 클래스의 객체를 사용하는 것을 암시
  • 방향(navigability)과 멀티플리시티(multiplicity) 표현 가능

UML 일방향과 양방향.png

기타[edit | edit source]

  • 집합 관계(Aggregation Relationship)
    • 클래스와 클래스간의 부분과 전체의 관계를 의미
    • UML 2.0에서는 사용하지 않음
  • 합성 관계(Composition Relationship)
    • 집합 관계와 같이 부분과 전체 관계이나, 전체 클래스 소멸 시 부분 클래스도 소멸하는 관계
  • 의존 관계(Dependency Relationship)
    • 한 클래스의 변화가 다른 클래스에 영향을 미치는 관계
    • 한 클래스가 변경 되었을 때 이것을 사용하는 다른 클래스에 영향이 미치는 관계(그러나 반드시 역이 성립하는 것은 아니다.)