[- Disclaimer -]
아래 내용은 정보보안 공부 목적으로 작성된 것이나, 이를 토대로 허가되지 않은 대상에 실습을 진행할 경우 해킹 시도로 간주하여 법적 처벌을 받을 수 있음을 알려 드립니다.
UML (=Unified Modeling Language)
✦ OMG (=Object Management Group, 국제표준화기구)에서 객체 기술 표준 제정
✦ 시스템 분석, 설계, 구현 등 시스템 개발 과정에서 개발자 <-> 고객 간, 개발자 간 원할한 의사 소통을 위해 표준화된 대표적인 객체 지향 Modeling 언어 // 시각적 Diagram화, 동시 공용 언어에서의 공통 표현법
✦ Rumbaugh(=럼바우, OMT), Booch, Jacobson 등 객체 지향 방법론 장점 통합
✦ 시스템 구조 표현
✧ Diagram 6개
✦ 시스템 동작 표현
✧ Diagram 7개
UML 기본 구성 요소 - Things (=사물)
✦ Model 구성 기본 요소
✦ Diagram 간 관계 형성 가능 대상
✦ Structural Things (=구조 사물)
✧ 시스템 개념적, 물리적 요소 표현 Ex) Class, Use Case, Component, Node 등
✦ Behavioral Things (=행동 사물)
✧ 시/공간에 따른 요소들 행위 표현 Ex) Interaction (=상호 작용), State Machine 등
✦ Grouping Things (=그룹 사물)
✧ 요소들 Group화 // package
✦ Annotation Things (=주해 사물)
✧ 부가적 설명, 제약 조건 등 표현
UML 기본 구성 요소 - Relationships (=관계)
✦ 사물 간 연관성 표현
✦ Association Relationships (=연관 관계)
✧ 2개 이상의 사물 간 서로 연관된 관계이며 사물 간 실선은 연결, 방향성이고 화살표, 양방향 시 화살표 생략 // 선 위에 다중도 표시
// Multiplicity (=다중도)
1: 연관 객체 1개
2: 연관 객체 n개
0..1: 연관 객체 없음 or 1개만 존재
0..* 또는 *: 연관 객체 없음 or 다수
1..*: 연관 객체 최소 1개 이상
n..*: 연관 객체 최소 n개 이상
n..m: 연관 객체 최소 n개 ~ 최대 m개
Plain Text
복사
✦ Aggregation Relationships (=집합 관계)
✧ 한 사물이 다른 사물에 포함된 관계이며 포함하는 쪽(전체, Whole) <-> 포함되는 쪽(부분, Part) 간 서로 독립 // Part에서 Whole로(여기에) 속 빈 마름모 표시
✦ Composition, Relationships (=포함 관계)
✧ 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계이며 포함하는 쪽(전체, Whole) <-> 포함되는 쪽(부분, Part) 간 서로 비독립, 생명 주기 함께 함 // Part에서 Whole로(여기에) 흑 마름모 표시
✦ Generalization Relationships (=일반화 관계)
✧ 한 사람이 다른 사물에 비해 더 일반적, 구체적 여부 표현 (일반 (상위) 부모, 구체 (하위) 자식) // 하위에서 상위(여기에)로 속 빈 마름모 표시
✦ Dependency (=의존 관계)
✧ 필요 시 잠깐 연관을 유지하며 한 사물이 다른 사물의 소유가 아니지만 사물의 변화가 다른 사물에 영향 미침 // 영향을 주는 사물(이용자)가 영향 받는 사물(제공자)로 점선 화살표 표시
✦ Realization Relationships (=실체화 관계)
✧ 사물이 할 수 있거나 해야 하는 기능 (행위, Interface)이며 Groupping 가능
UML 기본 구성 요소 - Diagram
✦ 사물 간 관계 도형화
✦ 종류
✧ Structural Diagram, Behavioral Diagram
UML Diagram - Structural Diagram (=구조적 다이어그램)
✦ Class Diagram
✧ Class 간, Class 속성 및 Operation 간, 속성과 Operation 제약 조건 간 관계 표현
✧ 시스템 구조 파악, 구조적 문제점 도출 가능
+: public
-: private
#: protected
-: package
Plain Text
복사
✦ Object Diagram
✧ 특정 시점의 Instance에 대한 객체 간 속성, 관계 표현
✧ Rumbaugh 객체 지향 분석 기법에서 객체 Modeling 시 사용
✦ Component Diagram
✧ 실제 구현 Module인 Component 간 관계 및 Component 간 Interface 표현
✧ 구현 단계에서 사용
✦ Deployment Diagram (=배치 다이어그램)
✧ 결과물, Process, Component 등 물리적 요소들 위치 표현
✧ 구현 단계에서 사용
✦ Composite Structure Diagram (=복합체 구조 다이어그램)
✧ Class나 Component가 복합한 구조일 경우 그 내부 구조를 표현
✦ Package Diagram
✧ Use Case나 Class 등 Model 요소들을 Groupping한 Package 간 관계 표현
UML Diagram - Behavioral Diagram (=행위 다이어그램)
✦ Use Case Diagram
✧ 사용자와 외부 요소들이 개발된 시스템을 통해 수행 가능한 기능들을 사용자 관점에서 표현
✧ 사용자 요구 분석에 대한 기능 Modeling 시 사용
✧ 외부 요소 <-> 시스템 간 상호 작용 확인 가능
✧ 사용 사례 간 여러 형태의 관계로 이뤄짐
✧ System/System Scope로 시스템 범위 파악 가능: 시스템 내부 내 기능 <-> 외부 시스템 기능 간 구분 목적으로 시스템 내부 Use Case들을 사각형으로 묶어 시스템 범위 표현
Actor (=사용자): 시스템과 상호작용 하는 모든 외부 요소, 사람이나 외부 시스템을 의미
Ex) 시스템으로부터 Service를 요청하는 외부 요소
주 Actor: 시스템 사용 시 이득 얻는 대상으로, 주로 사람
부 Actor: 주 Actor 목적 달성을 위해 시스템에 Service를 제공해주는 외부 시스템
주로 조직, 기관 등
Use Case (=사용 사례): 사용자 관점에서 시스템이 Actor에게 제공하는 Service 또는 기능
Relationships (=관계): Use Case Diagram 관계는 Actor <-> Use Case, Use Case 간 나타날 수 있으며 포함 관계, 확장 관계, 일반화 관계 이렇게 3 종류 존재
Plain Text
복사
✦ Sequence Diagram
✧ 상호 작용하는 객체 간 주고 받은 Message 표현
✧ 표현 범위를 Use Case 명세서 외 하나의 Class에 포함된 Operation으로 표현하기도 함
Actor
Object: Message 송/수신 주체
Lifeline: 객체가 메모리에 존재하는 기간
Active Box: 객체가 Message를 주고 받으며 구축중
Message: 객체 상호작용 Message
Plain Text
복사
✦ Communication Diagram
✧ Sequence Diagram + 객체들 연관까지 표현
✦ State Diagram
✧ 한 객체가 자신이 속한 Class의 상태 변화 혹은 다른 객체 간 상호 작용에 따른 변화 표현
✧ Rumbaugh 객체 지향 분석 기법에서 동적 Modeling 시 사용
✦ Activity Diagram (=활동 다이어그램)
✧ 시스템이 어떤 기능을 수행하는지 객체 Logic, 조건 등 처리 흐름 순서 표현
✦ Interaction Overview Diagram (=상호 작용 개요 다이어그램)
✧ 상호 작용 Diagram 간 제어 흐름 표현
✦ Timing Diagram
✧ 객체 상태 변화 및 시간 제약 명시적 표현
Stereotype (=스테레오 타입)
✦ UML 기본 표현 외 추가 표현
✦ Guilemet 기호 용도
<<include>>: 연결된 다른 UML 요소에 대해 포함 관계에 있을 시 사용
<<extend>>: 연결된 다른 UML 요소에 대해 확장 관계에 있을 시 사용
<<interface>>: Interface 정의 시 사용
<<exception>>: 예외 정의 시
<<constructor>>: 생성자 역할 수행 시
Plain Text
복사



