UML은 객체지향 소프트웨어 개발 과정에서 산출물을 명세화, 시각화, 문서화할 때 사용되는 모델링 기술과 방법론을 통합해서 만든 표준화된 범용 모델링 언어이다.
UML은 사물, 관계, 다이어그램으로 구성된다.
클래스(Class)
객체(Object)
컴포넌트(Component)
배치(Deployment)
복합체 구조(Composite Structure)
패키지(Package)
유스케이스(Usecase)
시스템과 사용자의 상호작용을 다이어그램으로 표현한 것으로 사용자의 관점에서 시스템의 서비스 혹은 기능, 또한 그와 관련된 외부 요소를 보인다.
연관 관계(Association)
유스케이스와 액터간 상호작용이 있다는 뜻으로, 실선으로 표시한다.
사용자는 로그인과 결제 모두를 수행하지만 은행은 로그인 과정에 관여하지 않아도 된다.
사용자는 로그인과 결제 모두와 연관 관계를 가지며, 은행은 결제에만 연관 관계를 가진다.
포함 관계(Include)
포함 관계는 두 개 유즈케이스 간 의존성을 나타낸다.
한 유스케이스가 실행될 때 포함 관계에 있는 유스케이스가 반드시 실행돼야 한다는 의미를 지닌다.
사용자는 로그인할 때마다 비밀번호를 확인해야 한다. 비밀번호 확인이 로그인 과정에 포함되며, 로그인 유스케이스에서 비밀번호 확인 유스케이스 방향으로 화살표를 그린 후 중앙에 << include >>를 표시하여 포함 관계를 나타낸다.
확장 관계(Extend)
확장 관계는 두 개 유스케이스 간 확장성을 나타낸다.
한 유스케이스가 실행될 때 포함 관계에 있는 유스케이스가 특정 상황에서만 실행된다는 뜻을 지닌다.
확장된 유스케이스에서 기존 유스케이스 방향을 가리키는 점선 화살표를 그리고, << extend >>를 화살표 중앙에 표시한다.
로그인 에러는 잘못된 비밀번호가 입력된 경우에만 나타난다.
이런 경우 로그인 에러 출력이 로그인의 확장 관계에 있는 것이다.
※ 확장 관계와의 차이점
일반화 관계에 있는 자식 유스케이스는 부모의 속성을 물려받으며, 부모 유스케이스에 해당하는 모든 포함, 확장 관계를 만족해야 한다.
그러나 확장 관계에 있는 유스케이스는 속성을 물려받은 것이 아니기에 기존 유스케이스와 다른 유스케이스와의 관계를 만족하지 않아도 된다.
체크카드와 무통장입금 결제는 결제 유스케이스와 일반화 관계이다.
해당 유스케이스가 실행될 때 부모 유스케이스인 결제 유스케이스와 포함 관계인 잔액 확인 유스케이스를 실행해야 하고, 실패시 확장 관계인 잔액 부족 알림 유스케이스를 실행해야 한다.
그러나 잔액 부족 알림 유스케이스는 결제 유스케이스와 확장 관계이기에 실행시 결제와 포함 관계인 잔액 확인 유스케이스를 실행하지 않는다.
시퀀스(Sequence)
커뮤니케이션(Communication)
시퀀스 다이어그램은 호출의 순서에 중점을 두며, 커뮤니케이션 다이어그램은 서로 간 연결을 강조할 때 유용하다.
기본 유형
<< include >>
<< extend >>
<< interface >>
<< entity >>
<< boundary >>
<< control >>