[정보처리기사] UML(Unified Modeling Language) 다이어그램

yurinnn·2024년 2월 22일
0

정보처리기사

목록 보기
8/21

UML(Unified Modeling Language) 이란?

객체지향 소프트웨어 개발 과정에서 산출물을 명세화, 시각화, 문서화할 때 사용되는 모델링 기술과 방법론을 통합해서 만든 표준화된 범용 모델링 언어

구조적(정적) 다이어그램

키워드 : 관계, 구조, 위치
종류 : 클래스(class) / 객체(object) / 컴포넌트(Component) / 배치(Deployment) / 복합체 구조(Composite Structure) / 패키지(Package)

클래스 다이어그램 접근제어자

종류설명
-클래스 내부 접근만 허용(private)
+클래스 외부 접근을 허용(public)
#동일 패키지, 파생 클래스에서 접근 가능(protected)
~동일 패키지 클래스에서 접근 가능(default)

행위적(동적) 다이어그램

키워드 : 요구 분석, 메시지, 상태 변화, 로직, 흐름, 제약

종류 : 유스케이스(Use Case) / 시퀀스(Sequence) / 커뮤니케이션 / 상태(State) / 활동(Activity) / 타이밍(Timing) / 상호작용 개요(Interaction Overview)

  • 시퀀스 다이어그램 구성요소 객체(Object) : 사각형 안에 밑줄 친 이름으로 명시
    생명선(Lifeline) : 객체로부터 뻗어나가는 점선
    실행(Activation) : 점선 위 직사각형, 직사각형은 실행 시간을 의미
    메시지(Message) : 화살표

UML의 관계

관계설명
연관 관계(Association)-2개 이상의 사물이 서로 관련된 상태를 화살표 실선으로 표현
- 양방향 관계의 경우 화살표를 생략하고 실선 표현
ex) 집 <— 사람
집합 관계(Aggregation)포함되는 쪽(부분)에서 포함하는 쪽(Whole)으로 속이 빈 마름모를 연결하여 표현
ex) 컴퓨터 ◆— 프린터
포함 관계(Composition)- 포함 관계는 집합 관계의 특수한 형태로, 포함하는 사물의 변화가 포함되는 사물에 영향을 미치는 관계를 표현
- 포함되는 쪽(부분)에서 포함하는 쪽(전체)으로 속이 채워진 마름모를 연결하여 표현
ex) 문 ◇— 열쇠
일반화 관계(Generalization)- 일반화 관계는 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지를 표현
- 일반적인 개념을 부모(상위)라고 하고, 구체적인 개념을 자식(하위)이라 함
- 구체적(하위)인 사물에서 일반적(상위)인 사물 쪽으로 속이 빈 화살표를 연결하여 표현
ex) 커피(부모) ◁— 아메리카노(자식)
의존 관계(Dependency)- 한 사물의 명세서가 바뀌면 그것을 사용하는 다른 사물에게 영향을 끼치는 것
- 영향을 주는 사물이 영향을 받는 사물 쪽으로 점선 화살표를 연결하여 표현
ex) 할인율 ← - - 등급
실체화 관계(Realization)- 실체화 관계는 사물이 할 수 있거나, 해야하는 기능(행위, 인터페이스)으로 서로를 그룹화할 수 있는 관계를 표현
- 한 객체가 다른 객체에게 오퍼레이션을 수행하도록 지정함
- 사물에서 기능 쪽으로 속이 빈 점선 화살표를 연결하여 표현
ex) 날 수 있다 ◁- - - 비행기

UML 확장 모델의 스테레오 타입(Stereotype)

UML에서 표현하는 기본 기능 외에 추가적인 기능을 표현하는 것

스테레오 타입은 '<< >>'(길러멧; Guillemet) 기호를 사용하여 표현

종류설명
<<include>>                   하나의 유스케이스가 어떤 시점에 반드시 다른 유스케이스를 실행하는 포함 관계
<<extend>>하나의 유스케이스가 어떤 시점에 다른 유스케이스를 실행할 수도 있고, 그렇지 않을 수도 있는 확장 단계
<<interface>>모든 메소드가 추상 메소드이며, 바로 인스턴스를 만들 수 없는 클래스로 추상 메소드와 상수만으로 구성된 클래스, 인터페이스 정의
<<entity>>일반적으로 정보 또는 오래 지속되는 연관된 행위를 형상화하는 클래스로 유스케이스 처리 흐름이 수행되는 과정에서 기억 장치에 저장되어야 할 정보를 표현하는 클래스
<<boundary>>시스템과 외부 액터와의 상호작용을 담당하는 클래스
<<control>>시스템이 제공하는 기능의 로직 및 제어를 담당하는 클래스
profile
슬기로운 개발 생활

0개의 댓글