10강. UML(Unified Modeling Language)의 개요, 사물
- 시스템 개발 과정에서 원활한 의사소통을 위해 표준화한 대표적인 객체지향 모델링 언어
- Rumbaugh, Booch, Jacobson 등의 객체지향 방법론의 장점을 통합
- OMG(Object Management Group)에서 표준으로 지정
- 구성 요소 : 사물(Things), 관계(Relationships), 다이어그램(Diagram)
1. 사물(Things)
- 다이어그램 안에서 관계가 형성될 수 있는 대상들
- 모델을 구성하는 가장 중요한 기본 요소
1) 구조 사물(Structural Things) : 시스템의 개념적, 물리적 요소
ex) 클래스(Class), 유스케이스(Use Case), 컴포넌트(Component), 노드(Node) 등
2) 행동 사물(Behavioral Things) : 시간과 공간에 따른 요소들의 행위를 표현
ex) 상호작용(Interaction), 상태 머신(State Machine) 등
3) 그룹 사물(Grouping Things) : 요소들을 그룹으로 묶어서 표현
ex) 패키지(Package)
4) 주해 사물(Annotation Things) : 부가적인 설명이나 제약조건 등을 표현
ex) 노드(Node)
11강. UML - 관계(Relationship)
2. 관계
- 사물과 사물 사이의 연관성을 표현하는 것
ex) 연관, 집합, 포함, 일반화, 의존, 실체화
1) 연관(Association) 관계
- 2개 이상의 사물이 서로 관련되어 있는 관계
- 실선으로 연결하여 표현
- 방향성은 화살표로 표현, 양방향 관계는 화살표를 생략하고 실선으로 표현
- 다중도를 선 위에 표현
- 1..* : 1개 이상, n..m : n개 이상 m개 이하, * : 연관된 객체가 다수임
ex) 사람1 -> 1집 : 사람 하나당 집 하나, 사람이 집을 소유
ex) 선생님1..* -> 1..*학생 : 선생 다수와 학생 다수는 각각 연관되어 있음
2) 집합(Aggregation) 관계
- 하나의 사물이 다른 사물에 포함되어 있는 관계
- 포함하는 쪽(전체, Whole)과 포함되는 쪽(부분, Part)은 서로 독립적임
- 부분에서 전체로 속이 빈 마름모를 연결하여 표현
ex) 컴퓨터 ◇- 프린터 : 프린터는 컴퓨터에 연결하여 사용, 다른 컴퓨터로도 가능
3) 포함(Composition) 관계
- 집합 관계의 특수한 형태, 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계
- 포함하는 쪽(전체, Whole)과 포함되는 쪽(부분, Part)은 서로 독립될 수 없고 생명주기를 함께 함
- 부분에서 전체로 속이 채워진 마름모를 연결하여 표현
ex) 문 ◆- 키 : 문을 열 수 있는 키는 하나이며, 해당 키로 다른 문은 못 열고, 문이 없으면 키도 필요 없어짐
4) 일반화(Generalization) 관계
- 하나의 사물이 다른 사물에 비해 더 일반적이거나 구체적인 관계
- 보다 일반적인 개념을 상위(부모), 보다 구체적인 개념을 하위(자식)라고 부름
- 하위 사물에서 상위 사물로 속이 빈 화살표를 연결하여 표현
ex) 아메리카노 -▷ 커피 : 아메리카노는 커피, 커피의 종류에 아메리카노가 있음
5) 의존(Dependency) 관계
- 서로 연관은 있으나 필요에 의해 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계
- 영향을 주는 사물이 영향을 받는 사물 쪽으로 점선 화살표를 연결하여 표현
ex) 등급 ---> 할인율 : 등급이 높으면 할인율을 적용하고, 등급이 낮으면 할인율을 적용하지 않음
6) 실체화(Realization) 관계
- 사물이 할 수 있거나 해야 하는 기능으로, 서로를 그룹화할 수 있는 관계
- 사물에서 기능 쪽으로 속이 빈 점선 화살표를 연결하여 표현
ex) 비행기 ---▷ 날 수 있다 : 비행기는 날 수 있고, 새도 날 수 있으므로 비행기와 새는 날 수 있다로 그룹화 가능
12강. UML - 다이어그램(Diagram)
3. 다이어그램(Diagram)
- 사물과 관계를 도형으로 표현한 것
- 여러 관점에서 시스템을 가시화한 뷰를 제공함으로써 의사소통에 도움을 줌
- 객체 모델링 : 객체 다이어그램 vs 정적 모델링 : 구조적 다이어그램 vs 동적 모델링 : 행위 다이어그램
1) 구조적 다이어그램
- 클래스 다이어그램(Class Diagram) : 클래스, 클래스가 가지는 속성, 클래스 사이 관계
- 객체 다이어그램(Object Diagram) : 클래스에 속하는 객체들, 즉 인스턴스(Instance)를 관계로 표현, 럼바우 객체지향 분석의 객체 모델링에 활용
- 컴포넌트 다이어그램(Component Diagram) : 모듈인 컴포넌트 간의 관계, 인터페이스를 표현, 구현 단계에서 사용
- 배치 다이어그램(Deployment Diagram) : 물리적 요소들의 위치를 표현, 구현 단계에서 사용
- 복합체 구조 다이어그램(Composite Structure Diagram) : 클래스나 컴포넌트가 복합 구조를 갖는 경우 그 내부 구조를 표현
- 패키지 다이어그램(Package Diagram) : 모델 요소들을 그룹화한 패키지들의 관계를 표현
2) 행위적 다이어그램
- 유스케이스 다이어그램(Use Case Diagram) :사용자의 요구를 분석, 기능 모델링 작업에 사용, 사용자와 사용 사례로 구성
- 시퀀스 다이어그램(Sequence Diagram) : 상호 작용하는 시스템이나 객체들이 주고받는 메시지를 표현
- 커뮤니케이션 다이어그램(Communication Diagram) : 동작에 참여하는 객체들이 주고받는 메시지, 연관관계를 표현
- 상태 다이어그램(State Diagram) : 소속된 클래스의 상태 변화, 다른 객체와의 상호 작용에 따른 한 객체의 상태 변화를 표현
- 활동 다이어그램(Activity Diagram) : 시스템이 수행하는 기능을 조건에 따른 처리 흐름의 순서에 따라 표현
- 상호작용 개요 다이어그램(Interaction Overview Diagram) : 상호작용 다이어그램 간의 제어 흐름을 표현
- 타이밍 다이어그램(Timing Diagram) : 객체 상태 변화와 시간 제약을 명시적으로 표현
3) 스테레오 타입(Stereotype)
- UML에서 표현하는 기본 기능 외에 추가적인 기능을 표현하는 것
- 길러멧(Guilemet)이라고 부르는 겹화살괄호<<>> 사이에 표현할 형태를 기술
ex) <<include>> : 포함 관계, <<extend>> : 확장 관계, <<interface>> : 인터페이스를 정의, <<exception>> : 예외를 정의, <<constructor>> : 생성자 역할을 수행
'IT > 정보처리기사' 카테고리의 다른 글
[시나공 토막강의] 20-21강 정리 (0) | 2023.02.07 |
---|---|
[시나공 토막강의] 16-19강 정리 (0) | 2023.01.31 |
[시나공 토막강의] 13-15강 정리 (0) | 2023.01.30 |
[시나공 토막강의] 04-09강 정리 (13) | 2023.01.22 |
[시나공 토막강의] 01-03강 정리 (0) | 2023.01.17 |