카테고리 없음

객체지향 설계 - UML 다이어그램

jjh0119 2025. 3. 21. 16:58

01. UML 다이어그램?

  • SW 시스템을 시각화 및 문서화 하고, SW시스템의 구조와 동작을 명세하는 표준화된 모델링 언어

UML의 특징

  • 가시화, 명세화, 구축, 문서화

UML의 구성요소

  • 사물 : 구조, 행동, 그룹, 주해
  • 관계
  • 다이어그램
  • 스테레오 타입 : 추가적인 확장 요소 표현

관계

일반화(Generalization)(-▷)

  • 한 클래스가 다른 클래스를 포함하는 상위개념일 때의 관계
  • 객체지향에서의 상속(Inheritance)

실체화(Realization)(--▷)

  • 인터페이스를 구현받아 추상메서드를 오버라이딩 하는 것

연관(Association)(->)

  • 2개 이상 사물이 서로 관련된 관계
  • 한 클래스가 다른 클래스의 기능을 사용할 때

의존(Dependency)(-->)

  • 연관 관계와 같이 한 클래스가 다른 클래스에서 제공하는 기능을 사용할 때 표시
  • 연관 관계와의 차이점: 두 클래스의 관계가 한 메서드를 실행하는 동안 같이 매우 짧은 시간만 유지됨
  • 한 클래스의 명세가 바뀌면 다른 클래스에 영향을 줌
  • 한 클래스가 다른 클래스를 오퍼레이션의 매개변수로 사용하는 경우

집합관계 : 집약(Aggregation)(-♢)

  • 한 객체가 다른 객체를 소유하는 관계
  • 전체 객체의 라이프타임과 부분객체의 라이프타임은 독립적
  • 전체 객체가 사라진다해도 부분객체는 사라지지 않음

집합관계 : 합성(Composition)(-♦︎)

  • 부분 객체가 전체 객체에 속하는 관계로 긴밀한 필수적 관계
  • 전체 객체의 라이프타임과 부분객체의 라이프타임은 의존적
  • 전체 객체가 사라지면 부분 객체도 없어짐

02. 다이어그램

구조 다이어그램(정적)

1. 클래스 다이어그램

  • 시스템의 정적 구조 표현
  • 시스템의 클래스와 그 클래스들 간의 관계 표현
  • 접근 제한자 표현법
    • private( - ) : 해당 클래스 내만
    • default( ~ ) : 패키지 내만
    • protected( # ) : 상속 / 동일패키지 내만
    • public( + ) : 어디서든

2. 객체 다이어그램

  • 시스템의 객체와 그 객체들 간의 관계 표현
  • 시스템의 실제 인스턴스 표현

3. 컴포넌트 다이어그램

  • 시스템의 물리적인 구조 표현
  • 시스템의 구성요소들과 그들 간의 상호작용 표현

4. 배치 다이어그램

  • 시스템의 물리적인 배치 표현
  • 하드웨어, 소프트웨어, 네트워크, 미들웨어 등의 시스템 구성요소와 그들의 관계 표현

5. 복합체 구조 다이어그램

  • 시스템 내의 복합 구조 표현
  • 클래스나 컴포넌트가 상호작용 하는 내부 구조 표현

6. 패키지 다이어그램

  • 시스템의 패키지와 그들간의 관계 표현
  • 패키지는 클래스나 다른 패키지 그룹화에 사용됨

행위 다이어그램(동적)

1. 유스케이스 다이어그램

  • 시스템의 기능과 액터 간 상호작용 표현
  • 사용자 요구사항을 추출하고 분석하는 데 사용
  • 구성요소 : 시스템, 액터(사용자 및 외부시스템), 유스케이스, 관계
  • 관계
    - 연관 : 액터 - 유스케이스
    - 포함 : A -<<include>>-> B ➡︎ A가 B를 포함
    - 확장 : A <-<<extend>>- B ➡︎ A에서 B가 확장
    - 일반화: A ◁- B ➡︎ A가 B를 추상화

2. 시퀀스 다이어그램

  • 시스템의 객체들이 특정 기능을 수행하는 동안 상호작용하는 방식을 시간순서에 따라 표현
  • 특정 시나리오나 트랜잭션 표현에 유용
  • 구성요소 : 액터, 객체, 생면선, 실행박스, 메시지

3. 커뮤니케이션 다이어그램

  • 시스템의 객체들 간의 상호작용과 통신을 표현
  • 시간의 흐름에 초점을 두지 않고, 객체간의 관계에 중점

4. 상태 다이어그램

  • 객체의 생명주기 동안의 상태변화 표현
  • 시스템이 내외부 이벤트에 어떻게 반응하는지 표현

5. 활동 다이어그램

  • 시스템의 프로세스 또는 워크플로우 표현
  • 시스템의 활동들과 그들 사이의 흐름 표현
  • 비즈니스 프로세스 모델링에 사용

6. 상호작용 다이어그램

  • 시스템의 상호작용을 하나의 고수준 워크플로우로 표현
  • 활동 다이어그램과 시퀀스 다이어그램의 혼합형태

7. 타이밍 다이어그램

  • 시스템의 객체가 어떻게 행동하고 시간에 따라 어떻게 상호작용하는지 표현
  • 실시간 시스템이나 복잡한 시퀀스 다이어 그램 표현에 사용