검수요청.png검수요청.png

다이어그램

위키원
rudgh01 (토론 | 기여)님의 2020년 9월 2일 (수) 11:53 판
이동: 둘러보기, 검색

다이어그램은 정보를 조율, 묘사, 상징화 하여 2차원 기하학 모델로 시각화하는 기술이다. 때때로 2차원 표면에 그래픽적 투사 과정을 거쳐 3차원 공간에 시각화된다. 그래프(graph)와 다이어그램(diagram)의 용어를 혼용하기도 한다. [1]

개요

다이어그램의 기능과 목적은 전달에 있으며, 강력한 전달력을 활용한 계몽적 측면과 의미를 빠르고 정확하게 알려야 하는 고지적 측면을 갖는 시각 언어이다. 다이어그램은 표현 내용에 따라 비교 통계 다이어그램(도표, 그래프, 통계도표 등), 기구 계통 다이어그램(조직도, 계보도, 계통도 등), 기능 및 해부 다이어그램(기상도, 구조도, 해부도 등), 행사 예정표 및 일람표(예정도표), 통계 지도 및 장식 지도(노선 안내도 등) 등이 있다.[2]

특징

다이어그램의 종류는 많지만 보통 개발 업무에서는 9가지를 보고 있다.

클래스 다이어그램

클래스 다이어그램의 경우 시스템 내부에 존재하는 클래스들을 선별하여 나타내고 각 클래스의 속성(Attribute)과 행위(Behavior)를 기재한다. 여기서 클래스들 사이에 여러 가지 관계(Relationship)를 맺을 수 있다. 예를 들어 연관관계(Association)는 클래스와 클래스가 어떠한 연관이 있음을 나타내고 여기서 세부적으로 복합연관(Composition)과 집합 연관관계 (Aggregation) 등으로 나누어 질 수 있다. 이외에 상속관계(Generalization), 의존관계(Dependency)가 나타날 수 있다. 클래스 다이어그램을 그리고자 할 때 항상 추상화 단계를 고려하여서 그리도록 하여야 할 것이다. 추상화의 단계가 높은 경우 대충의 속성과 행위를 기재하고 대충의 관계를 기재하여도 충분할 것이다. 이 단계에서 너무 상세한 내용을 찾고 기재하다 보면 클래스 다이어그램 내부에서 구현의 단계에서 이루어져야 할 일이 이루어지는 오류를 범하게 된다. 이러한 오류는 실제 구현 단계에서 커다란 위험의 요소를 내재하게 된다.[3]

시퀸스 다이어그램

시퀸스 다이어그램은 콜라보레이션 다이어그램과 함께 시스템의 동적인 면을 나타내는 대표적인 다이어그램이다. 시스템이 실행 시 생성되고 소멸하는 객체를 표기하고 객체들 사이에 주고받는 메시지를 나타내게 된다. 콜라보레이션 다이어그램 또한 메시지의 흐름을 나타내지만 시퀸스 다이어그램만의 특징이라면 가로축을 시간 축으로 하여 시간의 흐름을 나타내어 메시지의 순서에 역점을 두고 있다.[3]

콜라보레이션 다이어그램

콜라보레이션 다이어그램 또한 시퀸스 다이어그램과 함께 메시지의 흐름을 나타낸다. 하지만 콜라보레이션 다어그램은 객체와 객체들 사이의 관계 또한 표기하게 된다. 실제 UML에서 클래스의 인스턴스인 객체를 표기하는 다이어그램이 명시적으로 존재하지 않는다. 이러한 객체들 사이의 관계를 나타내기 위해 별도로 오브젝트 다이어그램(Object Diagram)을 사용하여도 되지만 오브젝트 다이어그램은 클래스 다이어그램과 크게 차이점이 없는 관계로 UML의 표준에는 포함되어있지 않다. 갑자기 이러한 오브젝트 다이어그램을 여기서 언급하는 이유는 객체들 사이의 관계를 표기하기 위해 클래스 다이어그램과 거의 같은 오브젝트 다이어그램을 그리기보다는 특별히 클래스 다이어그램과 차이점이 되는 부분을 여기 콜라보레이션 다이어그램에 기재하는 것이 좋을 것이다.[3]

유스케이스 다이어그램

유스케이스 다이어그램은 유스케이스를 그려놓은 다이어그램이다. 여기서 유스케이스란 말 그대로 컴퓨터 시스템과 사용자가 상호작용을 하는 하나의 경우이다. 예를 들어 보험처리 프로그램의 경우에 "고객이 보험증권에 sign 한다. 판매원이 판매 통계량을 종합한다." 등이 use case가 된다. 이러한 유스케이스 다이어그램은 시스템 구축의 초기에 이 시스템이 어떠한 일을 하는지에 대한 부분을 사용자 관점에서 이해할 수 있을 정도로 기술하여야 한다. 이러한 유스케이스 다이어그램은 사용자와의 대화수단으로 그리고 앞으로 구축해 나갈 때의 밑바탕이 되는 것이다.[3]

상태 다이어그램

상태 다이어그램은 한 객체의 상태 변화를 다이어그램으로 나타낸 것이다. 시스템의 실행 시 객체의 상태는 메시지를 주고받음으로써 또한 어떠한 이벤트를 받음으로써 많은 변화가 있을 수 있다. 실제 시스템에서 실행 시 많은 객체가 생성되고 소멸한다. 이렇게 무수한 객체의 상태 전부를 모두 다이어그램으로 나타내는 것은 불가능하다. 결국 상태 다이어그램은 특별히 관심을 가져야 할 객체에 관하여 그리고 특정 조건에 만족하는 기간 동안의 상태를 표시하여야 한다.[3]

액티비티 다이어그램

액티비티 다이어그램은 플로우챠트가 UML에 접목되었다면 가장 이해가 빠를 것이다. 시스템 내부에 존재하는 여러 가지 행위들 그리고 각 행위의 분기, 분기되는 조건 등을 모두 포함 하게 된다. 이러한 액티비티 다이어그램에서 기존 플로우 챠트와 다른 점은 어떠한 행위에 따라 객체의 상태를 표기할 수 있다는 것이다. 이러한 점을 제외하고 기존 플로우챠트와 표기법과 의미가 약간씩 달라질 뿐 크게 다르지 않다고 보아도 좋다.[3]

컴포넌트 다이어그램

컴포넌트 다이어그램(Component Diagram)은 소프트웨어 컴포넌트 사이의 의존관계를 묘사한다. 소프트웨어 컴포넌트를 구성하는 요소들과 그것들을 구현하는 요소들도 모두 표현될 수 있다.[4]

배포 다이어그램

객체 다이어그램

각주

  1. 위키백과, 〈다이어그램〉, 《위키피디아》
  2. 한글글꼴용어사전, 〈다이어그램〉, 《네이버 지식백과》
  3. 3.0 3.1 3.2 3.3 3.4 3.5 C1 SW, 〈다이어그램 종류와 개념에 대해 알아보자〉, 《개인블로그》, 2017-07-02
  4. Geunhee Zhang, 〈다이어그램(Diagram) 종류〉, 《개인블로그》, 2015-04-24

참고자료

같이보기

  검수요청.png검수요청.png 이 다이어그램 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.