🎇 [UML]🎇
< UML(Unified Modeling Language)의 개념 >
객체 지향 소프트웨어 개발 과정에서 산출물을 명세화,시각화,문서화할 때 사용되는 모델링 기술과 방법론을 통합해 만든 표준하된 모델링 언어
< 특징 >
가시화 언어 : 개념 모델 작성 시 오류가 적고 의사소통 용이
구축 언어 : 다양한 프로그래밍 언어로 실행 시스템의 예측 가능, UML을 소스 코드로 변환하여 구축 가능하다. 역 변환하여 역공학 가능
명세화 언어 : 정확한 모델 제시, 완전한 모델 작성 가능
문서화 언어 : 시스템에 대한 평가 및 의사소통의 문서
< 구성요소 >
사물 : 추상적 개념, 주제를 나타내는 요소, 단어 관점에서 '명사' 또는 '동사'를 의미한다.
관계 : 사물의 의미를 확장하고 명확히 하는 요소,사물과 사물을 연결하여 관계를 표현하는 요소,단어 관점에서 '형용사' 또는 '부사' 의미 한다.
다이어그램 : 사물과 관계를 모아 그림으로 표현한 형태, 형식과 목적에 따라 9가지로 정의
🌳< UML 다이어그램 >🌳
< UML 다이어그램 개념 >
사물과 관계를 그림으로 표현한 형태
< UML 다이어그램 개념 >
구조적(정적) 다이어그램, 행위적(동적) 다이어그램으로 구분된다.
컴포넌트, 배치 다이어그램은 구현 단계에서 사용되는 다이어그램이다.
구분 | 다이어그램 | 설명 |
구조적 다이어그램(Structural Diagram)/정적 다이어그램(Static Diagram) | 클래스(Class) | ⓐ.시스템 내 클래스의 정적 구조를 표현 ⓑ.속성과 동작으로 구성 ⓒ.시스템의 구조를 파악하고 구조상의 문제점 도출이 가능하다. ⓓ.클래스와 클래스, 클래스의 속성 사이의 관계를 표현한다. |
객체(Object) | ⓐ.클래스에 속한 사물(객체)들, 즉 인스턴스(Instance)를 특정 시점의 객체와 객체 사이의 관계로 표현 ⓑ.객체 인스턴스를 나타내는 대신 실제 클래스를 사용 ⓒ.연관된 모든 인스턴스를 표현 |
|
컴포넌트(Component) | ⓐ.코드 컴포넌트 기반의 물리적 구조 표현 ⓑ.실질적 프로그래밍 작업에 사용한다. |
|
배치(Deployment) | ⓐ.컴포넌트 사이 종속성을 표현한다. ⓑ.결과물,프로세스,컴포넌트 등 물리적 요소들의 위치를 표현한다. |
|
복합체 구조(Composite Structure) | ⓐ.클래스나 컴포넌트가 복합 구조를 갖는 경우 그 내부 구조를 표현한다. | |
패키지(Package) | ⓐ.유스 케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현한다. | |
행위적 다이어그램(Behavioral Diagram) / 동적 다이어그램(Dynamic Diagram) | 유스케이스(Usecase) | ⓐ.사용자 관점에서 시스템의 활동을 표현 ⓑ.유스케이스는 시스템의 기능적 요구 정의에 활용 |
시퀀스(Sequence) | ⓐ.객체 간 상호 작용을 메세지 흐름으로 표현 ⓑ.객체 사이 메세지를 보내는 시간을 표현 ⓒ.교류 다이어그램(Interaction Diagram)의 한 종류라고 볼 수 있다. |
|
커뮤니케이션(Communication) | ⓐ.시퀀스 다이어그램과 같이 동작에 참여하는 객체들이 주고 받는 메세지를 표현하는데, 메세지뿐만 아니라 객체 간의 연관까지 표현한다. | |
상태(State) | ⓐ.하나의 객체가 되어 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호 작용에 따라 상태가 어떻게 변화하는지 표현 ⓑ.모든 가능한 상태와 전이를 표현 ⓒ.진입 조건, 탈줄 조건, 상태 전이 등 기술 |
|
활동(Activity) | ⓐ.시스템이 어떤 기능을 수행하는지를 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서대로 표현 ⓑ.활동의 순서대로 흐름을 표현 |
|
타이밍(Timing) | ⓐ.객체 상태 변화와 시간 제약을 명시적으로 표현 |
< UML 상세 >
🚀< 클래스 다이어그램 >🚀
객체 지향 모델링 시 클래스의 속성 및 연산과 클래스 간 정적 관계를 표현한 다이어그램이다.
클래스와 클래스, 즉 클래스 속성 사이의 관계를 표현한다.
< 클래스 다이어그램 구성요소 >
클래스 다이어그램의 구성요소로는 클래스 이름, 속성, 연산, 접근 제어자가 있다.
구성요소 | 설명 |
클래스 이름 | 클래스의 이름 |
속성 | 클래스의 특징에 이름을 부여 |
연산 | 클래스에 속하는 객체에 적용될 메서드를 정의 클래스의 동작을 의미하며, UML에서는 동작에 대한 인터페이스를 지칭한다. |
접근 제어자 | 클래스에 접근할 수 있는 정도를 표현 ------------------------------------------------------------------------ - 클래스 내부접근만 허용(private) + 클래스 외부접근을 허용(public) # 동일 패키지,파생 클래스에서 접근 가능(protected) ~ 동일 패키지 클래스에서 접근 가능(default) |
🚀< 유스케이스 다이어그램 >🚀
유스케이스 다이어그램은 시스템이 제공하고 있는 기능 및 그와 관련된 외부 요소를 사용자 관점에서 표현하는 다이어 그램이다.
< 유스케이스 다이어그램 구성요소 >
유스케이스 : 시스템이 제공해야 하는 서비스,액터가 시스템을 통해 수행하는 일련의 행위
표기법 :
액터 : 사용자가 시스템에 대해 수행하는 역할, 시스템과 상호 작용하는 사람 또는 사물
액터명은 물리적인 사람이나 조직명보다는 역할 중심으로 추상화하여 정의해야 한다.
액터는 필수 항목 중심으로 최소화하여 만들어야 한다.
하나의 액터는 여러 개의 유스케이스와 상호작용(Interact)가능
표기법:
시스템 : 전체 시스템의 영역을 표현
Reference : Reference : 2023 수제비 정보처리기사
https://product.kyobobook.co.kr/detail/S000200275590
'소프트웨어 설계' 카테고리의 다른 글
애자일(Agile) (0) | 2023.05.28 |
---|---|
소프트웨어 요구사항 확인/2.1요구사항 확인 (0) | 2023.05.22 |
소프트웨어 요구사항 확인/1.6# 현행 시스템 분석 (0) | 2023.05.22 |
소프트웨어 요구사항 확인/1.5# 현행 시스템 분석 (0) | 2023.05.22 |
소프트웨어 요구사항 확인/1.4# 현행 시스템 분석 (0) | 2023.05.22 |