[소프트웨어 공학] UML: Class, Sequence, Package Diagram
1. Class Diagram
문제나 해결책의 정적인 구조 표현
클래스와 그들간의 관계 표현
시스템의 내부 구조를 나타냄
1. 클래스
※ visibility (접근제어자) : (-) private (+) public (#) protected (~) package
- 반환형 : [0..*] -> (0개 이상), void -> 반환 안함
- 초기 값 지정도 가능 : - 주소:String = “서울특별시 …”
- +평균회원구매액():Money -> static
UML = 건물 설계 (평면도, 입면도, 투시도, 조감도 등 다양한 관점에서 표현)
※ UseCase Diagram : 시스템을 블랙박스로 보고, 내부 구조는 표현하지 않는다. (집 내부를 보여주지 않는다.)
2. 관계
1. 연관관계 (Assosiation)
클래스 (실선, 화살표 가능)
개념상 서로 연결 / 역할, 연관관계 이름 명시 (선택)
r1,r2 -> 역할 m1,m2 -> 다중성 / 연관 관계는 클래스의 속성으로 구현 (참조 가능)
다중성 해석 시
클래스인스턴스 관점으로 해석- 양방향 연관 관계
- 서로의 존재를 인지 / 클래스 —— 클래스
- 단방향 연관 관계
- 한 쪽만 존재 인지 / 클래스 —–> 클래스
인스턴스 (실선, 화살표 X)
- 갑돌이는 마스크를 2020년 4월 10일10장 주문했다.
- 갑돌이 - 고객 , 마스크 - 제품 (이름 생략 가능)
- Instance Assosiation
- 객체 간의 관계 - link (연관관계 X)라고 한다
- 객체간의 관계를 파악하여 객체 다이어그램 작성 후 클래스 다이어그램 작성도 가능
연관 클래스
- 연관 관계 이름으로
2. 일반화 관계 (Italic or guillemets) - extends
- 일반화는 is a kind of 관계 (가전제품(추상클래스) - 식기 세척기, 냉장고 …)
※ (Guillemets) - UML을 새로운 개념을 반영하여 확장하는 매커니즘 -> Stereotype
3. 집합 관계 - 전체와 부분간의 관계
- aggregation(집약) - 약한 결합
- composition(합성) - 강한 결합
4. 의존 관계
한 클래스에서 다른 클래스를 사용하는 경우
- 클래스의 속성에서 참조
- 연산의 인자로 참조
- 메소드의 지역 개체로 참조
지속적 관계 - 실선 화살표
찰나의 관계 - 점선 화살표
5. 실체화 관계 - guillemet, implement
- 인터페이스란 계약이다
인터페이스 - 클래스사이는 점선
- provided interface 클래스가 사용하는 인터페이스를 rquired interface를 사용하여 모델링
인터페이스 사용 장점
- 서비스 제공 클래스가 변경되도 서비스 사용 클라이언트 코드 영향 X
2. Object Diagram
- 클래스 다이어그램의 인스턴스 (사례를 보여줌)
클래스 추출
속성 추출
클래스 간 관계 추출
3. Sequence Diagram
Class Diagram : 구조 모델링
Sequence Diagram : 행위 모델링
전체 시스템을 나타내는 클래스는 제외
Activation (활성구간) , Return 생략할 수 있다.
Selft Message - 자기 자신 호출
4. Package Diagram
- 클래스 같은 여러 요소 그룹화 가능
- 모든 요소 하나의 패키지에만 존재 가능
- 패키지는 namespace 가진다 (같은 클래스 이름 다른 패키지에 존재 가능)
- 패키지 제거시 내부 모든 요소 제거됨
패키지 관계
- 의존 관계 존재
A에서 B패키지의 요소 사용
- B 패키지 변경 시 A에게 영향을 끼침 (반대는 성립하지 않음)
- A패키지를 B패키지 없이 단독 재사용 불가능
표현법 정리
관계 | 사용 | 표현 |
---|---|---|
Assosiation (지속적 관계) (link라고함) | 속성으로 참조 | 실선 |
Dependency (extended, included …) (찰나의 관계) | 특정 조건 만족 시 or 함수 내 지역변수로 사용 | 점선 |
Generalization (일반화) | is a kind of로 상속 관계 | 빈 세모 화살표 |
Aggregration (약한 집합) | 각 요소들이 하나로 구성될 때 / 독립 O | 빈 마름모 |
Composition (강한 집합) | 각 요소들이 하나로 구성될 때 / 독립 X | 찬 마름모 |
Realization (실체화) | 인터페이스 implement 해야함 | 빈 점선 세모 화살표 |
This post is licensed under CC BY 4.0 by the author.