특징
UML은 객체지향 설게를 위한 표준 언어로, 소프트웨어 시스틈의 산출물을 가시화, 명세화, 구축, 문서화 하는데 사용된다.
- 가시화 : 소프트웨어의 개념 모델을 시각적인 그래픽 형태로 표기하고, 표기법에 사용하는 심볼에 명확한 정의를 부여하는 것이다. 이것을 통해 개발자들은 원할한 소통을 할 수 있다.
- 명세화 : 정확하고, 명백하며, 완전한 모델을 만드는 것을 뜻한다. UML은 소프트웨어 개발을 위한 분석, 설계, 구현 각 단계에서 필요한 모델을 정확하고 완전하게 명세하는 역할을 한다.
- 구축 : 다양한 프로그래밍 언어로 표현하는 것이다. 또한 이미 구축되어 있는 소스코드를 UML로 역변환하여 분석하는 역공학 (Reverse Engineering)도 있다.
- 문서화 : 요구 사항을 표현하고 시스템을 테스트하는 언어도 제공한다.
구성 요소
사물
- 의존 관계 (Dependency Relationship) : 두 사물 간의 의미적 관계로, 한 사물의 명세서가 바뀌면 그것을 사용하는 다른 사물에게 영향을 끼치는 것을 말한다. 예시) TV와 리모컨의 관계가 있다.
- 연관 관계 (Association Relationship) : 두 사물 간의 구조적 관계로, 어느 한 사물 객체가 다른 사물 객체와 연결되어 있음을 말한다. 연관을 표현할 때는 이름과 역할 그리고 다중성을 표기한다. ('has-a') 관계라고도 한다. 예시) 자동차와 부품들의 관계가 있다.
- 일반화 관계 (Generalization Relationship) : 일반화된 사물과 좀 더 특수화된 사물 사이의 관게를 말한다. ('is-a') 관계라고도 한다. 예시) 부모 클래스로서의 자동차와 자식클래스로서의 택시, 버스, 트럭 등
- 실체화 관계 (Realization Relationship) : 한 객체가 다른 객체에 의해 오퍼레이션을 수행하도록 지정하는 것이다. 예시) TV의 행동 중 일부가 리모컨의 행동을 실체화 함 클래스 (TV)와 인터페이스 (리모컨)가 가지는 관계.
다이어그램은 두 가지로 나눌 수 있다.
- 구조 다이어그램 : 정적 모델링을 위한 다이어그램
- 행위 다이어그램 : 동적 모델링을 위한 다이어그램
UML 모델링의 이해
네 가지 측면
- 정척 측면 : 모델링 대상 범위에서 객체의 구조와 관계를 나타냄
- 동적 측면 : 이벤트가 발생함에 따라 객체의 상태 변화를 나타냄
- 기능적 측면 : 사용자의 측면에서 본 시스템의 행동을 나타냄
- 물리적 측면 : 시스템 실행을 위해 필요한 컴퓨터와 기억 매체의 공간적인 배치 기술
세 가지 레벨
레벨은 모델의 추상도를 나타내는 것으로, 건축물로 예로 들면 대략적인 스케치부터 치수까지 기록한 상세한 설계도가 있는 것과 같다.
- 개념 레벨 : 문제 영역 (도메인)의 해석을 기록
- 사양 레벨 : 설계 작업
- 구현 레벨 : 개발 작업
정적 모델링 도구
클래스 다이어그램
객체지향 모델링에서 가장 많이 사용하는 개념이다. 클래스는 객체지향 프로그램에서 속성과 행위를 갖는 하나의 객체 단위다. 클래스의 구성 요소로는 이름, 속성, 메서드다.
절차)
- 클래스 명세를 결정하고 (클래스 후보 추출) -> 업무 명세서에서 명사를 찾아낸다
- 메서드 (오퍼레이션)을 찾은 후
- 필요한 속성을 추출
오브젝트 다이어그램
- 오브젝트는 클래스의 인스턴스 (구체적인 예)
- 특정 시점의 오브젝트들의 구조적 상태를 표현
컴포넌트 다이어그램
연관성이 높은 기능과 관련된 데이터를 하나로 묶어 처리하도록 만들어진 단위다.
모든 컴포넌트는 반드시 다른 컴포넌트와 통신할 수 있는 인터페이스가 정의되어 있으며, 컴포넌트의 인터페이스와 인터페이스의 구현은 컴포넌트를 구성하는 내부에 캡슐화 되어 있다.
인터페이스에 의해서 기능이 정의된, 독립적으로 개발, 배포, 조립 가능한 시스템의 구성 단위다.
배치 다이어그램
노드를 입체적으로 표현하고, 그 사이를 의존 화살표와 접속 관계를 나타내는 실선으로 연결해 이들 간의 통신 관계를 나타낸 것이다. 이를 다르게 설명하면 네트워크, 하드웨어 또는 소프트웨어들을 실행 파일 수준 컴포넌트들과 함께 표현한 것이다.
동적 모델링 도구
UML의 행위 다이어그램과 인터랙션 다이어그램에 해당한다. 시간의 흐름에 따라 유동적으로 변하는 객체의 상태나 행위, 객체 간의 상호작용 등을 표현한다.
유스케이스 다이어그램
액터의 관점에서 본 시스템의 기본적인 행동을 기술한 것 이다.
개념 레벨의 유스케이스는 이용자의 요구 를 기술하는 수단이다.
필요한 유스케이스(기능요구)가 모두 적혀 있는지 확인 가능하다.
순차 다이어그램
객체 간의 동적 상호작용을 시간의 흐름에 따라 나타낸 것 이다.
특징으로는 객체의 메서드(오퍼레이션)와 속성을 상세히 정의한 것 이다.
객체의 책임(Responsibility) : 순차 다이어그램의 객체는 다른 객체가 의뢰하는 일을 처리하는 과정이다 또한 순차 다이어그램은 유스케이스를 실현한다.
통신 다이어그램
순차 다이어그램이 메시지에 대한 시간적 순서를 나타낸 것이라면, 통신 다이어그램은 객체들 사이에 주고받는 메시지를 표현한 것 이다.
객체 와 객체 사이를 연결하는 링크 그리고 그 링크 사이에 오가는 메시지 로 구성된다.
상태 다이어그램
객체의 상태가 이벤트의 발생 혹은 시간의 경과에 의해 어떻게 변화하는지를 나타낸 것 이다.
특정 객체가 생성하여 소멸할 때까지의 라이프 사이클을 모델화 한 것 이다.
※ 표현하는 방법은 객체가 가질 수 있는 상태를 모서리가 둥근 사각형으로 나타내고, 전이(상태의 변화)를 나타내는 화살표와 화살표 위에 이벤트와 조건 등을 표시한다.
활동 다이어그램
예전부터 사용해왔던 순서도와 모양이 매우 비슷합니다.
순서도 를 객체지향 스타일로 개선시킨 형태다.
객체지향 스타일 모델을 상위 수준뿐만 아니라 하위 수준으로도 표현하기 위해, 객체나 조직 또는 역할에 대한 행위를 표현할 수 있도록 구획면을 추가했다.
※ 구획면이란 수영장의 레인처럼 구분된 세로 방향의 영역을 말하는데, 활동 다이어그램에 표현된 각 활동의 수행 주체를 표현할 때 이용된다.
절차
- 초기 클래스 다이어그램 작성
- 유스케이스 다이어그램 작성
- 클래스 다이어그램 변경
- 순차 다이어그램과 통신 다이어그램 작성
- 인터페이스를 식별 (클래스 다이어그램 변경)
- 활동 다이어그램과 상태 다이어그램을 작성
- 컴포넌트 다이어그램 및 배치 다이어그램 작성
https://hyun-am-coding.tistory.com/entry/Chapter-14-UML-%EB%AA%A8%EB%8D%B8%EB%A7%81
'CS > UML' 카테고리의 다른 글
[UML] 다이어그램 종류 및 특징 (구조별, 행위별) (0) | 2024.05.26 |
---|---|
UML 색상 관련 (0) | 2022.07.04 |
클래스 다이어그램 관계도 (0) | 2022.07.03 |