본문 바로가기
IT License/정처기-1과목

2024 #정보처리기사 필기요약 #1-1. UML

by 시뮝 2024. 7. 5.
728x90

 

제 1과목 소프트웨어 설계 > 요구사항 확인 > UML


UML(Unified Modeling Language)의 개념 [2022년 1회]

  • UML은 객체지향 소프트웨어 개발 과정에서 산출물을 명세화, 시각화, 문서화할 때 사용되는 모델링 기술과 방법론을 통합해서 만든 표준화된 범용 모델링 언어이다.
  • UML은 비즈니스 프로세스 개발 분야에 특화되어 사용 · 발전되었다.
  • UML은 방법론을 통합한 것으로, 표준화된 모델링 기법을 제공한다.

UML 도입 효과

  1. 개발 기획과 산출물에 대한 확인
  2. 프로그램 개발이라는 행위에 대해 전문가와 비전문가가 서로 대화할 수 있는 도구

UML의 특징 (가구명문)

특징 설명
시화 언어 개념 모델 작성 시 오류가 적고 의사소통이 용이
축 언어 다양한 프로그래밍 언어로 실행 시스템의 예측 가능
UML을 소스 코드로 변환하여 구축 가능, 역 변환하여 역공학 가능
세화 언어 정확한 모델 제시, 완전한 모델 작성 가능
서화 언어 시스템에 대한 평가 및 의사소통의 문서

UML 구성요소 [2020년 3회]

  • 사물 Things
  • 관계 Relationships
  • 다이어그램 Diagrams

사물(Things)의 종류 [2023년 1회]

모델을 구성하는 가장 중요한 기본 요소로, 다이어그램 안에서 관계가 형성될 수 있는 대상들을 말한다.

구조 사물
(Structural Things)
시스템의 개념적, 물리적 요소를 표현한다.
종류: 클래스(Class) / 유스케이스(Use Case) / 컴포넌트(Component) / 노드(Node) 등
행동 사물
(Behavioral Things)
시간과 공간에 따른 요소들의 행위를 표현한다.
종류 : 상호작용(Interaction) / 상태 머신(State Machine) 등
그룹 사물
(Grouping Things)
요소들을 그룹으로 묶어서 표현한다.
종류 : 패키지(Package)
주해 사물
(Annotation Things)
부가적인 설명이나 제약조건 등을 표현한다.
종류 : 노트(Note)

 

 


UML 다이어그램 유형

UML 다이어그램은 구분에 따라 구조적(정적) 다이어그램, 행위적(동적) 다이어그램으로 구분된다.

종류 : 래스 / 체 / 포넌트 / 치 / 합체 구조 / 키지 / 스케이스 / 퀀스(순차) / 뮤니케이션 / 태 / [2021년 2회] [2023년 1회]

 

구조적(정적) 다이어그램 (클객 컴배 복패) [2020년 1회] [2022년 1회]

래스 / 체 / 포넌트 / 치 / 합체 구조 / 키지

 

클래스 다이어그램(Class Diagram)

객체지향 모델링 시 구성요소간 정적인 관계를 표현한 다이어그램이다. [2021년 1회]

클래스 다이어그램의 구성요소

  • 클래스 이름(Class Name)
  • 속성(Attribute) : 클래스의 상태나 정보
  • 연산(Operation) : 클래스의 동작 [2021년 3회]
  • 접근 제어자(접근 제한자)

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

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

 

 

행위적(동적) 다이어그램 (유시커 상활타) [2020년 2회] [2023년 2회]

스케이스 / 퀀스(순차) / 뮤니케이션 / 태 / 동 / 이밍

유스케이스 다이어그램(Usecase Diagram, 사용 사례 다이어그램)  [2022년 2회] [2023년 2회]

  • 사용자 측면에서의 요구사항으로, 사용자가 원하는 목표를 달성하기 위해 수행할 내용을 기술한다.
  • 사용자의 요구사항을 빠르게 파악함으로써 프로젝트의 초기에 시스템의 기능적인 요구를 결정하고 그 결과를 문서화할 수 있다.
  • 자연어로 작성된 사용자의 요구사항을 구조적으로 표현한 것으로, 일반적으로 다이어그램 형식으로 묘사된다.
  • 유스케이스 다이어그램이 완성되면, 각각의 유스케이스에 대해 유스케이스 명세서를 작성한다.
  • 시스템과 상호작용하는 모든 외부 요소는 액터이다.
  • 사용자의 관점(View)에서 표현하는 다이어그램이다. 기능 모델링 작업에 사용된다. 
  • 외부 요소와 시스템 간의 상호 작용을 확인할 수 있다.
  • 사용자의 요구사항을 분석하기 위한 도구로 사용된다.
  • 사용자의 범위를 파악할 수 있다.
  • 액터가 인식할 수 없는 시스템 내부의 기능을 하나의 유스케이스로 파악해서는 안된다.
  • 시스템 액터는 다른 프로젝트에서 이미 개발되어 사용되고 있으며, 본 시스템과 데이터를 주고받는 등 서로 연동되는 시스템을 말한다.

유스케이스 다이어그램의 구성요소

시스템/시스템 범위
(System/System Scope)
시스템 내부에서 수행되는 기능들을 외부 시스템과 구분하기 위해 시스템 내부의 유스케이스들을 사각형으로 묶어 시스템의 범위를 표현함
액터
(Actor)
시스템과 상호작용을 하는 모든 외부 요소로, 사람이나 외부 시스템을 의미함 [2021년 2회] [2023년 3회]

부액터
주액터의 목적 달성을 위해 시스템에 서비스를 제공하는 외부 시스템으로, 조직이나 기관 등이 될 수 있음
유스케이스
(Use Case)
사용자가 보는 관점에서 시스템이 액터에게 제공하는 서비스 또는 기능을 표현한 것
관계
(Relationship)
유스케이스 다이어그램에서 관계는 액터와 유스케이스, 유스케이스와 유스케이스 사이에서 나타날 수 있으며, 연관 관계, 포함 관계, 확장 관계, 일반화 관계가 있다. [2022년 2회]

 

유스케이스 다이어그램의 관계

포함(include) 관계 <<include>> 유스케이스를 수행할 , 다른 유스케이스가 반드시 수행되는 관계
확장(Extend) 관계 <<extend>> 유스케이스가 특정 조건에 부합되어 유스케이스의 기능이 확장될  원래의 유스케이스와 확장된 유스케이스와의 관계를 확장 관계라고 한다. [2021년 2회] [2023년 2회]
일반화 관계   추상적인 액터와 구체적인 액터 사이에 맺어주는 관계

하위 액터나 유스케이스에서 상위 액터, 유스케이스 쪽으로 속이 삼각형 화살표를 실선으로 연결

 

순차(시퀀스) 다이어그램(Sequence Diagram)

  • 객체 간 상호작용을 메시지 흐름으로 표현한 다이어그램이다. [2021년 1회]
  • 주로 동적인 측면에서 모델링을 설계하기 위해 사용한다. [2021년 3회] [2023년 1회]
  • 시간의 흐름에 따라 객체들이 주고 받는 메시지의 전달 과정을 강조한다.
  • 수직 방향이 시간의 흐름을 나타낸다.

순차(시퀀스) 다이어그램의 구성요소 [2020년 3회]

  • 객체(Object) : 사각형 안에 밑줄 친 이름으로 명시
  • 생명선(Lifeline) : 객체로부터 뻗어나가는 점선
  • 실행(Activation) : 점선 위 직사각형, 직사각형은 실행 시간을 의미
  • 메시지(Message) : 화살표
  • 제어 블록 등

상태 다이어그램(State Diagram)

객체들 사이에 발생하는 이벤트(event)[2023년 3회] 에 의한 객체들의 상태 변화를 그림으로 나타낸 다이어그램이다.

하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호 작용에 따라 상태가 어떻게 변화하는지를 표현한다.럼바우(Rumbaugh) 객체지향 분석 기법에서 동적 모델링에 활용된다.

활동 다이어그램(Activity Diagram) [2023년 1회]

오퍼레이션이나 처리 과정이 수행되는 동안 일어나는 일들을 단계적으로 표현한 다이어그램


UML의 관계(Relationships)

UML의 관계는 사물과 사물 사이의 연관성을 표현하는 것이다.

*영어로 보기가 나옴

구분 설명 예시
연관 관계
(Association)
2개 이상의 사물이 서로 관련된 상태를 화살표 실선으로 표현

양방향 관계의 경우 화살표를 생략하고 실선 표현
집합 관계
(Aggregation)
포함되는 쪽(부분)에서 포함하는 쪽(Whole)으로 속이 빈 마름모를 연결하여 표현
포함 관계
(Composition)
집합 관계의 특수한 형태로, 포함하는 사물의 변화가 포함되는 사물에 영향을 미치는 관계를 표현

포함되는 쪽(부분)에서 포함하는 쪽(전체)으로 속이 채워진 마름모를 연결하여 표현
일반화 관계
(Generalization)
하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지를 표현

일반적인 개념을 부모(상위)라고 하고, 구체적인 개념을 자식(하위)이라 함

구체적(하위)인 사물에서 일반적(상위)인 사물 쪽으로 속이 빈 화살푤르 연결하여 표현 [2020년 2회]
의존 관계
(Dependency)
하나의 사물의 변화가 다른 사물에게영향을 미치는 관계로, 일반적으로 한 클래스가 다른 클래스를 오퍼레이션의 매개변수로 사용하는 경우 [2021년 3회] [2023년 2회]

의존 관계는 사물 사이에 서로 연관은 있으나 필요에 따라 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계를 표현


영향을 주는 사물이 영향을 받는 사물 쪽으로 점선 화살표를 연결하여 표현
실체화 관계
(Realization)
실체화 관계는 사물이 할 수 있거나 해야 하는 기능(행위, 인터페이스)으로 서로를 그룹화할 수 있는 관계를 표현 [2021년 2회]

한 객체가 다른 객체에게 오퍼레이션을 수행하도록 지정하는 의미적 관계 [2021년 2회]

사물에서 기능 쪽으로 속이 빈 점선 화살표를 연결하여 표현

 

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

  • UML의 기본적 요소 이외에 새로운 요소를 만들어 내기 위한 확장 메커니즘이다.
  • 형태는 기존의 UML의 요소를 그대로 사용하지만 내부 의미는 다른 목적으로 사용하도록 확장한다.
  • UML의 스테레오 타입은 '<<>>'(길러멧; Guillemet) 기호를 사용하여 표현한다. [2020년 1회] [2023년 3회]
타입 설명 예시
<<include>> 하나의 유스케이스가 어떤 시점에 반드시 다른 유스케이스를 실행하는 포함 관계
<<extend>> 하나의 유스케이스가 어떤 시점에 다른 유스케이스를 실행할 수도 있고, 그렇지 않을 수도 있는 확장 단계
<<interface>> 모든 메소드가 추상 메소드이며, 바로 인스턴스를 만들 수 없는 클래스로 추상 메소드와 상수만으로 구성된 클래스
<<entity>> 일반적으로 정보 또는 오래 지속되는 연관된 행위를 형상화하는 클래스로 유스케이스 처리 흐름이 수행되는 과정에서 기억 장치에 저장되어야 할 정보를 표현하는 클래스

<<boundary>> 시스템과 외부 액터와의 상호작용을 담당하는 클래스
<<control>> 시스템이 제공하는 기능의 로직 및 제어를 담당하는 클래스

 


 

 

728x90

댓글