UML다이어그램은 통합 모델링 언어를 사용하여,
시스템 상호작용, 업무흐름, 시스템 구조, 컴포넌스 관계 등을 그린 도면이다.
프로그래밍을 단순화 시켜 표현하여, 의사소통하기 좋고 또 대규모 프로젝트 구조의 로드맵을 만들거나 개발을 위한 시스템 구축에 기본을 마련한다.
이번 세미나에는 대표적인 다이어그램 6가지를 기준으로 알아보도록 하겠다.
요구 분석 과정에서 시스템과 외부와의 상호 작용을 묘사한다.
유스케이스 다이어그램의 구성요소는 시스템, 액터, 유스케이스, 관계로 구성되어있다.
현재 개발할 푸로그램을 나타낸다.
프라이머리 액터와 세컨더리 액터 사이의 사각형으로 표기한다.
사용자의 입장에서 바라본 시스템의 추상적인 기능으로 시스템의 요구사항을
나타내며 타원형으로 표기한다.
시스템 외부에 존재하며 시스템과 상호작용을 하는 모든 것을 말한다,
대게 시스템을 사용하는 사용자와, 시스템을 사용함으로써 상호작용 되는
다른 시스템이 액터가 될 수 있다.
1) 프라이머리 액터
2) 세컨더리 액터
액터와 유스케이스, 유스케이스 사이의 유스케이스의 관계를 나타낸다.
관계는 연관, 의존, 일반화가 있으며, 의존관계는 포함과 확장으로 나눠진다.
단방향 화살표일 경우 : 한쪽은 알지만 다른 쪽은 상대방의 존재를 모른다.
ex) 사람과 핸드폰의 관계
양방향 실선일 경우 : 두 클래스의 객체들이 서로를 인지합니다.
ex) 의사와 환자의 관계
부모클래스는 추상적인 개념이고, 삼각형 표시가 있는 쪽을 의미한다.
자식클래스는 추상적인 개념을 물려받은 구체적인 개념이다. 삼각형이 없는 쪽이다.
ex) 가전제품(부모) <- 세탁기,티비,식기세척기
💡연관 관계와 의존 관계가 헷갈릴 수도 있다. 둘 모두 한 클래스에서 다른 클래스를 사용하기 때문이다.
결정적인 차이는 연관 관계는 클래스 A가 클래스 B를 멤버 변수로 가지고 있고,
의존 관계는 클래스 A가 클래스 B의 메서드를 가지고 있다. 혹은 클래스 B를 메서드의 인자로 받는다.
객체 간의 메세지 전달을 시간적 흐름에서 분석한다.
어떠한 순서로 어떤 객체들과 어떻게 상호작용했는지를 표현하는 다이어그램이다.
시퀀스 다이어그램을 사용하면 API 등의 유즈 케이스를 디테일하게 알 수 있고 타 시스템의 API 호출 동의 로직을 모델링할 수 있어 시나리오를 파악하기 좋다.
모델링 되는 인스턴스를 나타낸다.
Lifeline은 네모와 점선으로 이루어져 있으며 네모가 객체의 관점으로 표현했다면 클래스이고, 서비스 관점으로 표현했으면 컴포넌트가 된다. 점선은 시간의 경과를 나타낸다.
Activation은 Lifeline의 인스턴스가 다른 인스턴스와 상호 작용을 하며 활성화 되어 있는 것을 나타낸다
Activation은 직사각형의 막대로 Lifeline의 점선 가운데에 표시합니다.
메세지는 인스턴스 간 주고 받은 데이터를 나타낸다.
일반적으로 요청과 응답(HTTP 통신 기준)으로 나타낸다.
동기메세지는 실선과 꽉 찬 화살표로 표현을 한다.
동기메세지 이므로 요청을 보낸 후 결과가 올 때까지 기다린다.
비동기 메세지는 실선과 선으로 이뤄진 화살표를 표현한다
비동기 메세지이므로 요청을 보낸 후 결과를 기다리지 않는다.
상태들이 이벤트에 의하여 어떻게 작동하는지 그리는 것이 상태 다이어그램이다.
상태 다이어그램은 실시간 임베디드 어플리케이션설계에 많이 사용된다.
이벤트기반으로 상태의 기반으로 동적인 행위를 보여주기 때문에 실시간 또는
이벤트 주도적 시스템을 모델링 하는데 좋다.
여기서 이벤트 주도적 시스템이란?
관계 시스템과 같이 어떤 이벤트가 발생할때 어떤 일을 수행하는지
정의하는 시스템을 말한다.
ex) 주차 중립 후진 전진
ex) 주차상태에서는 중립상태를 변경되거나 아니면 상태 다이어그램을 종료시킨다.
하지만 중립상태에서는 주차상태로 될 수도 있고 후진,전진 상태로 될 수 있다.
ex) 중립상태에서 주차상태로 변경 되려면 주차하다라는 이벤트가 발생한다.
ex) 전진했을때 클러치를 밟으면서 앞으로 차가 전진하게 될때
상태에 있는 동안 수행되는 시작,종료,수행 활동을 가진다.
트리거 이벤트에 반응해서 현재 상태에서 다음 상태로 상태가
변경되는 동안에 취해지는 경로를 말한다.
전이 되기 전에 평가되는 보호조건을 선택 할 수 있다.
평가결과가 참이면 트리거 이벤트가 발생하게 된다.
클래스 오퍼레이션이란?
클래스 동적인 특징을 개념적으로 정의해 놓은 것이다.
여기서 직교상태란?
병렬로 실행되는 개별 상태 다이어그램으로 생각하면 된다.
병행 기능을 표현한다.
서브머신 상태에서 연결 위치 참조를 표현할 수 있다.
연결 위치 참조란?
서브머신의 내부에서 들어오고 나가는 위치를 시작점과 종료점 위치로 표현한다.
동적 조건 분기란?
활동이 다음 보호 조건 평가를 변경시킬 수 있다.
정적 조건 분기란?
활동이 다음 보호 조건 평가를 변경시키지 않는다.