● 다이어그램의 종류
■ 클래스 다이어그램
- Generalization(일반화 관계): 일반적인 것에서 특화된 것과의 관계, 보통 상속을 표현
- Realization(실체화 관계): 인터페이스와 그것을 구현한 것과의 관계
- Association(연관 관계): 한 객체가 다른 객체를 수요하거나 파라미터로 객체를 받아서 처리하는 관계
-Aggregation(집합): 메인 클래스가 삭제될 시 대상 클래스는 같이 삭제가 안됨(분리가 되도 독립적으로 동작, 약한 결합)
-Composition(합성): 메인 클래스가 삭제될 시 대상 클래스도 같이 삭제가 됨(분리가 되면 의미가 없어짐, 강한 결합)
- Dependency(의존 관계): 한 객체가 다른 객체를 소유하지는 않지만, 다른 객체의 변경에 따라 같이 변경을 해주어야 하는 관계
● Association(연관 관계)
- 단방향: 클래스간의 관계가 "->"로 구현 되며, 화살표의 대상은 자신을 가리키는 클래스의 존재 여부를 알지 못함
- 양항뱡: 클래스간의 관계가 "-"로 구현되며 서로 연관되어 있음
※ Aggregation(집합)
- 팩토리는 애드온을 건설할 수 있는데 이때 팩토리가 위치를 이동해도 애드온은 파괴되지 않음
- 빈 마름모와 닿아있는 클래스가 메인클래스, 반대가 대상 클래스
※ Composition(합성)
- 캐리어가 인터셉트 유닛을 생성하는데 캐리어가 죽으면 인터셉트도 같이 죽게됨
- 빨간색으로 채워진 마름모와 닿아있는 클래스가 메인 클래스, 반대가 대상 클래스
● Dependency(의존 관계)
- 한 객체가 다른 객체를 소유하지는 않지만, 다른 객체의 변경에 따라서 같이 변경을 해주어야 할 때 사용
- 점선 화살표 사용
■ 클래스 다이어그램 심화
● 연관(배열)
● 연관(벡터, 링크 등)
● 상속
● 인터페이스
● 추상클래스
● 내부클래스
● 익명 내부클래스
- 내부클래스와 동일 + 익명 내부 클래스 부분에 anonymous 기재
■ 시퀀스 다이어그램
- 객체 간의 동적 상호작용을 시간적 개념을 중심으로 모델링
- 수직방향이 시간이 흐름을 나타냄
- 객체들이 가져야 하는 오퍼레이션과 속성을 구체적으로 정의해야 함
- 객체의 책임은 오퍼레이션으로 정의되며, 오퍼레이션을 위한 객체의 속성도 정의해야 함
- 액터: 메시지 체인을 시작할 수 있는 엘리먼트
- 객체: 메시지를 송수신하는 객체
- 메시지: 객체간 연결 기능을 담당
- 회계 메시지: 같은 객체에 대한 함수를 호출
- 제어 블록: 제어문을 위한 루프
● 시퀀스 다이어그램과 커뮤니케이션 다이어그램
- 두 다이어그램 모두 상호작용 다이어그램의 구성요소
- 시간의 흐름에 따른 객체 사이의 메시지 이동을 보기 위해서는 시퀀스 다이어그램 사용, 이벤트 흐름을 돕기 위해
- 단순히 객체 간 메시지의 흐름 보기 위해서는 커뮤니케이션 다이어그램 사용
● 분석과 설계 단계 사용
- 분석 단계 대표 - 유스케이스 다이어그램
- 설계 단계 - 클래스 다이어그램
- 분석과 설계 단계에서 구조적 모델이 정의되면 이를 기반으로 시퀀스 다이어그램 작성
■ 시퀀스 다이어그램 구성요소
- 유스케이스 다이어그램의 액터, 클래스 다이어그램의 클래스 등을 의미
- 시작 순서에 따라 시작 객체를 왼쪽에 표현, 순차적으로 오른쪽 방향으로 표기
- 생명선은 객체의 생명주기를 의미
- 생명선에서 객체의 활성화를 사각형으로 표기 -> 활성화 블럭 or 제어 블럭
- 길이가 특정 시간 단위를 의미하지는 않음
- 서로 다른 객체 간의 의사소통
- 호출을 하는 객체의 생명선에서 호출받는 객체의 생명선으로 화살표 표시
- 객체는 자기 자신에게도 메시지를 보낼 수 있음
- 메시지 명칭은 위에 작성
- 동기: 호출한 객체가 결과를 받아야 종료되는 호출
- 비동기: 호출한 객체가 결과를 기다리지 않고 호출 후 별도의 업무 수행 또는 종료
- 반환: 동기호출의 결과를 반환
- 플랫: 동기/비동기 구분없이 일반적인 호출(비동기와 동일하지만 굵기가 굵음)
■ 작성 순서
1. 작성대상 선정: 유스케이스 등을 기반으로 시퀀스 다이어그램에 필요한 객체 선정
2. 객체 위치 선정: 좌측부터 시간 순서 및 중요도 순서대로 객체 선정
3. 메시지 정의: 객체 간 호출 관계나 처리 순서에 따른 메시지 정의
4. 시퀀스 다이어그램 평가: 객체와 메시지 배치를 평가하고 부족한 경우 객체 추가
5. 다이어그램 개선: 객체 추가 시 2번부터 재작업
● 음식 주문 예제
- 짜장면은 객체이긴 하나 주문이 들어올 때만 있는 객체라고 볼 수 있음
● 분석과 설계 예제