보키_기록용
[UML 실전에서는 이것만 쓴다 :: 1장] 이 책의 개요 본문
UML(통합 모델링 언어) : 소프트웨어 개념을 다이어그램으로 그리기 위해 사용하는 시각적인 표기법.
- 문제 도메인(problem domain)
- 소프트웨어 설계 제안
- 이미 완성된 소프트웨어 구현에 대한 다이어그램
을 사용할 때 UML을 쓴다.
마틴파울러의 3가지 차원의 UML
- 개념(conceptual)
- 사람이 풀고자하는 문제 도메인 안에 있는 개념과 추상적 개념을 기술하기 위한 속기용 기호
- 어떻게 해석하느냐에 따라 의미가 달라진다.
- 명세(specification)
- 소스코드로 바꾸려고 그리는 것
- 구현(implementation)
- 이미 있는 소스코드를 설명하려 그리는 것
다이어그램의 유형
- 정적 다이어그램(static diagram)
- 클래스, 객체, 데이터 구조와 이것들의 관계를 그림으로 표현해서 소프트웨어 요소에서 변하지 않는 논리적 구조를 보여준다.
- 동적 다이어그램(dynamic diagram)
- 실행 흐름을 그림으로 그리거나 실체의 상태가 어떻게 바뀌는지 그림으로 표현해서 소프트웨어 안의 실체가 실행 도중 어떻게 변하는지 보여준다.
- 물리적 다이어그램(physicla diagram)
- 소스파일, 라이브러리, 바이너리 파일, 데이터파일 등의 물리적 실체와 이것들의 관계를 그림으로 표현해서 소프트웨어 실체의 변하지 않는 물리적 구조를 보여준다.
※ 4P [코드 1.1 TreeMap.java] 참조
- 클래스 다이어그램(Class Diagram)
- 클래스 : 사각형
- 관계 : 화살표, 이 다이어그램에서 모든 관계는 연관이다.
- 연관(association) : 한 쪽 객체가 다른 쪽 객체를 참조하며, 그 참조를 통해 그 객체의 메서드를 호출하는 것
- 참조를 담는 변수의 이름 : 연관위 의 이름
- 관계를 맺음으로써 생기는 인스턴스의 개수 : 화살표 옆 숫자. 1보다 크다면 어떤 컨테이너를 쓴다는 것. 대개 배열을 쓴다.
- 클래스 이름 : 클래스 아이콘의 첫 번째 구역.
- 함수, 변수 : 클래스 아이콘의 다른 구역
- <<interface>> : 해당 이름의 인터페이스를 의미
- 위의 표기법은 선택해서 쓸 수 있음.
- 객체 다이어그램(Object Diagram)
시스템 실행 중 어느 순간의 객체와 관계를 포착하여 보여 준다. 한 순간의 메모리 상태를 스냅 사진으로 찍어둔 것.
- 객체 : 사각형. 이름에 밑줄이 있다.
- 클래스의 이름 : 콜론(:) 다음의 이름
- 아래 구역에 itsKey 변수의 값이 나와있다.
- 연결(link) : 객체 사이의 관계
- 시퀀스 다이어그램(Sequence Diagram)
해석 : 호출자가 TreeMap.add()를 호출한다. topNode 변수가 null일 경우, TreeMap은 응답으로 새로운 TreeMapNode를 생성하고 그것을 topNode에 할당한다. 그렇지 않은 경우에는 topNode에 add 메시지를 보낸다.
- 사람 : 알려지지 않은 메소드 호출자
- 가드(guard) : 대괄호([ ]). 어떤 경로를 따라가야 할지 알려준다
- 생성(construction) : TreeMapNode아이콘에 닿은 화살표
- 데이터 토큰(data token) : 한쪽 끝에 원이 그려진 작은 화살표, 여기서는 생성자의 인자
- 활성 상자(activation) : TreeMap 아래 홀쭉한 사각형. add() 메서드가 실행되는데 시간이 얼마나 걸리는지를 보여준다.
- 협력 다이어그램(CollaborationDiagram)
- 시퀀스 다이어그램에 담긴 정보와 같다.
- 시퀀스 다이어그램은 메세지를 보내고 받는 순서를 명확히 하는 것이 목적이고, 협력 다이어그램은 객체 간의 관계를 명확히 하는 것이 목적이다.
- 객체들은 연결이라는 관계로 맺어진다.
- 메세지 : 연결 위로 지나다니는 것. 작은 화살표로 그리며, 메세지 위에는 이름과 시퀀스 숫자(메세지가 호출되는 순서), 메세지를 보낼 때 적용하는 모든 가드를 적는다.
- 점(.) : 호출의 계승 구조. ex ) 1.1번은 메세지 1번이 호출한 함수에서 처음 보내는 메세지이다.
- 상태 다이어그램
UML에는 유한 상태 기계(finite state machine)를 나타내기 위한 방대한 표기법이 들어 있다.
유한 상태 기계(finite state machine) : 어떤 상태를 다른 상태로 변환하는 방법. 시작 상태(Start State), 끝 상태(Final State)가 하나 이상 있다. 오로지 하나의 상태만 갖고 있을 수 있으며 각 상태별 동작과 상태끼리의 전이에 대한 내용을 설계하게 된다.
전이(Transition) : 시스템의 상태가 바뀜.
시스템의 행동 방식을 파악할때 용이하다.
'공부 > UML' 카테고리의 다른 글
[UML 실전에서는 이것만 쓴다 :: 5장] 유스케이스 (0) | 2022.10.30 |
---|---|
[UML 실전에서는 이것만 쓴다 :: 4장] 시퀀스 다이어그램 (0) | 2022.10.30 |
[UML 실전에서는 이것만 쓴다 :: 3장] 클래스 다이어그램 (0) | 2022.08.24 |
[UML 실전에서는 이것만 쓴다 :: 2장] 다이어그램으로 작업하기 (0) | 2022.08.22 |
Comments