보키_기록용

[UML 실전에서는 이것만 쓴다 :: 1장] 이 책의 개요 본문

공부/UML

[UML 실전에서는 이것만 쓴다 :: 1장] 이 책의 개요

bokki0117 2022. 8. 21. 21:36

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) : 시스템의 상태가 바뀜.

시스템의 행동 방식을 파악할때 용이하다. 

Comments