IT Memory Note

[정보처리기사] 화면 설계 : UI 설계(2) 본문

자격증/정보처리기사

[정보처리기사] 화면 설계 : UI 설계(2)

h00ddu 2024. 1. 31. 09:27

 

1️⃣ UML

 


(6) UML의 유형

 

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

 

⓵ 클래스 다이어그램의 개념

 

  • 객체 지향 모델링 시 클래스의 속성 및 연산과 클래스 간 정적인 관계를 표현한 다이어그램

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

 

구성요소 설명
클래스(Class) 공통의 속성, 연산(메서드), 관계, 의미를 공유하는 객체들의 집합
속성(Attribute) 클래스의 구조적 특성에 이름을 붙인 것으로 특성에 해당하는 인스턴스가 보유할 수 있는 값의 범위를 기술
연산(Operation) / 
메서드(Method)
 이름, 타입, 매개변수들과 연관된 행위를 호출하는데 요구되는 제약사항들을 명시하는 클래스의 행위적 특징
 객체에 요청하여 행동에 영향을 줄 수 있는 서비스
접근 제어자(제한자)
(Access Modifier)
클래스에 접근할 수 있는 정도를 표현
 • - : 클래스 내부 접근만 허용(private)
 • + : 클래스 외부 접근을 허용(public)
 • # : 동일 패키지/파생 클래스에서 접근 가능(protected)
 • ~ : 동일 패키지 클래스에서 접근 가능(default)

※ 객체(Object) : 자신의 고유의 데이터(Attribute)를 가지며, 클래스에서 정의한 행위(Behavior)를 수행함


⓷ 클래스 간의 관계

 

구분 설명 예제
연관
(Association)
관계
 클래스가 서로 개념적으로 연결된 관계
 2개 이상의 사물이 서로 관련되어 있는 상태를 표현
 사물 사이를 실선으로 연결하여 표현하며, 방향성은 화살표로 표현
의존
(Dependency)
관계
 하나의 클래스가 또 다른 클래스를 사용하는 관계
 사물 사이에 서로 연관은 있으나 필요에 따라 서로에게 영향을 주는 짧은 시간 동안만 연관을 유지하는 관계를 표현
 하나의 클래스에 있는 멤버 함수의 인자가 변함에 따라 다른 클래스에 영향을 미칠 때의 관계
일반화
(Generalization)
관계
 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지를 표현하는 관계
 일반적인 개념을 부모(상위)라고 하고, 구체적인 개념을 자식(하위)이라 함
 다른 의미로 상속 관계라고 함
실체화
(Realization)
관계
 추상 클래스나 인터페이스를 상속받아 자식 클래스가 추상 메서드를 구현할 때 사용하는 관계
 사물이 할 수 있거나, 해야 하는 기능(행위, 인터페이스)으로 서로를 그룹화할 수 있는 관계를 표현
포함
(Composition)
관계
 집합 관계의 특수한 형태로, 포함하는 사물의 변화가 포함되는 사물에게 영향을 미치는 관계를 표현
 영구적이고, 집합 관계보다 더 강한 관계로 구성
 복합 관계라고도 함
집합
(Aggregation)
관계
 하나의 객체에 여러 개의 독립적인 객체들이 구성되는 관계
 하나의 사물이 다른 사물에 포함되어 있는 관계 표현

 


2. 유스케이스 다이어그램(Usecase Diagram)

 

⓵ 유스케이스 다이어그램의 개념

 

  • 시스템이 제공하고 있는 기능 및 그와 관련된 외부 요소를 사용자 관점에서 표현하는 다이어그램

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

 

구성요소 설명 표기법
유스케이스(Usecase)  시스템이 제공해야 하는 서비스, 기능을 표현하는 요소
 액터가 시스템을 통해 수행하는 일련의 행위
액터(Actor)  사용자가 시스템에 대해 수행하는 역할을 표현하는 요소
 시스템과 상호작용하는 사람 또는 사물
 이벤트 흐름을 시작하게 하는 객체
시스템(System) 전체 시스템의 영역을 표현하는 요소
시나리오(Scenario) 발생되는 이벤트의 흐름
이벤트의 흐름(Event Flow) 사람, 시스템, 하드웨어, 시간의 흐름

 


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

 

  • 관계는 액터와 유스케이스, 유스케이스와 유스케이스 사이에서 나타날 수 있음
관계 설명 사례
포함
(Include)
관계
 유스케이스를 수행할 때 다른 유스케이스가 반드시 수행되는 관계
 여러 유스케이스에서 공통적으로 발견되는 기능 표현
 <<include>>로 표현
확장
(Extend)
관계
 특정 조건일 때 한 유스케이스로만 확장되는 관계
 한 유스케이스에서 추가되거나 확장된 기능 표현
 <<extend>>로 표현

일반화
(Generalization)
관계
 추상적인 액터와 좀 더 구체적인 액터 사이에 맺어주는 관계
 하위 액터나 유스케이스에서 상위 액터, 유스케이스 쪽으로 속이 빈 삼각형 화살표를 실선으로 연결

 


3. 시퀀스 다이어그램(Sequence Diagram)

 

⓵ 시퀀스 다이어그램의 개념

 

  • 객체 간 상호작용을 메시지 흐름으로 표현한 다이어그램
  • 객체 간의 동적 상호작용을 시간적 개념을 중심으로 모델링 하는 과정
  • 객체의 오퍼레이션과 속성을 상세히 정의해야 함
  • 유스케이스를 실현(Realization) 함

⓶ 시퀀스 다이어그램의 구성요소

 

구성요소 설명 표기법
객체
(Object)
 위쪽에 표시되며 아래로 생명선을 가지는 요소
 사각형 안에 밑줄 친 이름으로 명시
생명선
(Lifeline)
 객체로부터 뻗어 나가는 점선
 실제 시간이 흐름에 따라 객체의 생명주기 동안 발생하는 이벤트를 명시
실행
(Activation)
 오퍼레이션(함수)이 실행되는 시간을 의미하는 요소
 직사각형이 길어질수록 오퍼레이션 수행시간이 긺
메세지
(Message)
 객체 간의 상호작용을 위한 요소
 한 객체에서 다른 객체로의 메시지를 전달하여 전달받은 객체의 오퍼레이션을 수행

 


4. 패키지 다이어그램(Package Diagram)

 

⓵ 패키지 다이어그램의 개념

 

  • 시스템의 서로 다른 패키지들 간의 의존 관계를 표현하기 위한 다이어그램

⓶ 패키지 다이어그램의 구성요소

 

구성요소 설명 표기법
패키지
(Package)
객체들을 그룹화한 요소
의존(Denpendency)
관계
 하나의 패키지가 다른 패키지를 사용하는 관계
 의존성 성질을 나타내기 위해 스테레오 타입을 붙일 수 있음
 스테레오 타입에는 <<import>>, <<access>>가 있음

 


5. 활동 다이어그램(Activity Diagram)

 

⓵ 활동 다이어그램의 개념

 

  • 시스템이 어떤 기능을 수행하는지를 객체의 처리 로직이나 조건에 따른 처리 흐름을 순서대로 표현하는 다이어그램
  • 오퍼레이션이나 처리과정이 수행되는 동안 일어나는 일들을 단계적으로 표현함
  • 하나의 유스케이스 안이나, 유스케이스 사이에서 발생하는 복잡한 처리 흐름을 명확하게 표현할 수 있음

⓶ 활동 다이어그램의 구성요소

 

  • 활동 다이어그램에서 하나의 활동이 처리되면 그 다음 활동으로 자동적으로 옮겨지며, 활동 상태의 시작과 종료는 항상 존재함
구성요소 설명 표기법
시작점
(Initial Node)
 활동의 시작(액션이나 액티비티 시작)을 표현하는 요소
 하나의 다이어그램 안에는 하나의 시작점만 존재
검은색 동그라미로 표현

전이
(Transition)
 실행 흐름을 나타내는 요소
화살표로 표현
액션(Action) /
액티비티(Activity)
 어떠한 일들의 처리와 실행을 표현하는 요소
 - 액션(Action) : 더 이상 분해할 수 없는 단일 작업
 - 액티비티(Activity) : 몇 개의 액션으로 분리될 수 있는 작업
모서리가 둥근 사각형으로 표현하고, 둥근 사각형 안에 액션이나 액티비티 명칭 기술
종료점
(Final Node)
 처리의 종료를 표현하는 요소
하나의 다이어그램 안에는 여러 개의 종료 노드가 있을 수 있음
 검은색 동그라미를 포함한 원으로 표현

조건(판단) 노드 
(Decistion Node)
 조건에 따른 제어 흐름의 분리를 표현하는 요소
마름모로 표현하고 들어오는 제어 흐름은 1개이고, 나가는 제어 흐름은 여러 개로 표현
병합 노드
(Merge Node)
여러 경로의 흐름이 하나로 합쳐진 것을 표현하는 요소
마름모로 표현하고 들어오는 제어 흐름은 여러 개 이고, 나가는 제어 흐름은 1개로 표현
포크 노드
(Fork Node)
평행적으로 수행되는 흐름을 나누는 노드
굵은 가로선으로 표현하고 들어오는 액티비티 흐름은 1개이고, 나가는 액티비티 흐름은 여러 개로 표현
조인 노드
(Join Node)
포크 노드로 나눠진 흐름을 다시 하나로 합치는 노드
굵은 가로선으로 표현하고 들어오는 액티비티 흐름은 여러 개이고, 나가는 액티비티 흐름은 1개로 표현
구획면
(Swim Lane)
액티비티 수행을 담당하는 주체를 구분하는 면
 가로 또는 세로 실선을 그어 구분

 


6. 상태 다이어그램(State Diagram)

 

⓵ 상태 다이어그램의 개념

 

  • 하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호작용에 따라 상태가 어떻게 변화하는지 표현하는 다이어그램
  • 어떤 이벤트에 의해 객체 자신이 속한 클래스의 상태 변화나 객체 간 상호작용하는 과정에서의 상태 변화를 표현함
  • 객체는 파악된 상태들 이외의 상태는 가질 수 없고, 특정 순간에는 오직 한 상태로만 존재할 수 있음
  • 객체의 상태 : 객체가 갖는 속성값의 변화

⓶ 상태 다이어그램의 구성요소

상태 다이어그램의 예시

구성요소 설명 표기법
상태
(State)
객체가 존재할 수 있는 조건을 표현하는 요소
둥근 사각형 안에 객체의 상태 기술
시작 상태
(Initial State)
객체의 시작 상태를 표현하는 요소
 속이 채워진 원으로 표현
종료 상태
(Final State)
객체의 종료 상태를 표현하는 요소
원 안에 속이 채워진 원으로 표현
전이
(Transition)
 객체 상태가 다른 상태로 변경되는 상태를 표현하는 요소
 화살표로 표현
이벤트
(Event)
 상태 변화를 주는 현상을 표현하는 요소
전이 위에 이벤트 이름 표시
전이 조건
(Transition Condition)
 특정 조건 만족 시 전이가 발생하기 위해 사용되는 요소

 


7. 커뮤니케이션 다이어그램(Communication Diagram)

 

⓵ 커뮤니케이션 다이어그램의 개념

 

  • 시퀀스 다이어그램과 같이 동작에 참여하는 객체들이 주고받는 메시지를 표현하고, 메시지뿐만 아니라 객체 간의 연관까지 표현하는 다이어그램
  • 시스템이나 객체들이 메시지를 주고받으며 시간의 흐름에 따라 상호작용하는 과정을 표현한 다이어그램

⓶ 커뮤니케이션 다이어그램의 구성요소

 

구성요소 설명 표기법
액터
(Actor)
시스템으로부터 서비스를 요청하는 외부 요소(사람, 외부 시스템)
객체
(Object)
 메시지를 주고받은 주체
콜론(:)을 기준으로 앞쪽에는 객체명, 뒤쪽에는 클래스명 기술
링크
(Link)
객체들 간의 관계를 표현하는 요소
 액터와 객체, 객체 간 실선으로 표현
 
링크에 메시지를 표현
메시지
(Message)
 객체 간의 상호작용을 위한 요소
화살표의 방향은 메시지를 받는 쪽으로 향하게 표현

 


8. 컴포넌트 다이어그램(Component Diagram)

 

⓵ 컴포넌트 다이어그램의 개념

 

  • 시스템을 구성하는 물리적인 컴포넌트와 그들 간의 의존 관계를 나타내는 다이어그램
  • 코드 컴포넌트 기반의 물리적 구조로 표현됨
  • 실질적 프로그래밍 작업에 사용함

⓶ 컴포넌트 다이어그램의 구성요소

 

구성요소 설명 표기법
컴포넌트
(Component)
 모듈화된 소프트웨어 시스템의 구성요소
 컴포넌트는 탭이 달린 직사각형으로 표현
인터페이스
(Interface)
 기능을 모아놓은 클래스
스테레오 타입을 이용하여 <<interface>>로 표기
의존
(Denpendency)
관계
 컴포넌트 간의 의존하는 관계
컴포넌트와 인터페이스는 화살표 모양의 점선으로 연결