카테고리 없음
객체지향 설계 - 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. 타이밍 다이어그램
- 시스템의 객체가 어떻게 행동하고 시간에 따라 어떻게 상호작용하는지 표현
- 실시간 시스템이나 복잡한 시퀀스 다이어 그램 표현에 사용