[정처기 필기] 「1」 | 요구사항 확인 - (1.5) UML, 주요 UML 다이어그램

728x90

[정처기 필기] 1」 | 요구사항 확인 - (1.5) UML, 주요 UML 다이어그램

> 「1」 소프트웨어 설계

> 요구사항 확인, 화면 설계, 애플리케이션 설계, 인터페이스 설계

「2」 소프트웨어 개발

「3」 데이터베이스 구축

「4」  프로그래밍 언어 활용

「5」  정보시스템 구축 관리

 

1 소프트웨어 생명 주기

2 스크럼(Scrum) 기법

3 XP(eXtreme Programming) 기법

4 현행 시스템 파악

5 개발 기술 환경 파악

6 요구사항 정의

7 요구사항 분석

8 요구사항 분석 CASE와 HIPO

> 9 UML(Unified Modeling Language)

> 10 주요 UML 다이어그램

9. UML(Unified Modeling Language)

UML(Unified Modeling Language)의 개요

 

시스템 개발 과정에서 상호 간의 의사소통이 원활히 이뤄지도록 표준화한 대표적인 객체지향 모델링 언어

 

- 객체지향 방법론의 장점을 통합, 국체표준화기구 OMG에서 표준으로 지정

- 시스템의 구조를 표현하는 6개의 구조 다이어그램, 시스템의 동작을 표현하는 7개의 행위 다이어그램

- 각각 다이어그램은 사물과 사물 간의 관계를 용도에 맞게 표현

- 사물(Things), 관계(Relationships), 다이어그램(Diagram)

 

사물(Things)

 

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

 

- 구조 사물, 행동 사물, 그룹 사물, 주해 사물

 

구조 사물(Structural Things)

- 시스템의 개념적, 물리적 요소를 표현

- 클래스(Class), 유스케이스(Use Case), 컴포넌트(Component), 노드(Node)

 

행동 사물(Behaveioral Things)

- 시간과 공간에 따른 요소들의 행위를 표현

- 상호작용(Interaction), 상태 머신(State Machine)

 

그룹 사물(Grouping Things)

- 요소들을 그룹으로 묶어 표현

- 패키지(Package)

 

주해 사물(Annotation Things)

- 부가적인 설명, 제약조건 등 표현

- 노트(Note)

 

관계(Relationships)

 

사물과 사물 사이의 연관성 표현

 

- 연관 관계, 집합 관계, 포함 관계, 일반화 관계, 의존 관계, 실체화 관계

 

연관(Association) 관계

- 2개 이상의 사물이 서로 관련

- 사물 사이 실선, 방향성 화살표

- 양방향의 경우, 화살표 생략 후 실선

- 객체의 개수를 의미하는 다중도(Multiplicity)를 선 위에

- ex) '사람'과 '집', '선생님'과 '학생'

 

다중도 의미
1 1개의 객체가 연관
n n개의 객체가 연관
0..1 연관된 객체가 없거나 1개만
0..* 또는 * 연관된 객체가 없거나 다수
1..* 연관된 객체가 적어도 1개 이상
n..* 연관된 객체가 적어도 n개 이상
n..m 연관된 객체가 최소 n개에서 최대 m개

 

집합(Aggregation) 관계

- 하나의 사물이 다른 사물에 포함되어 있는 관계

- 포함하는 쪽과 포함되는 쪽은 서로 독립적

- 포함되는 쪽에서 포함하는 쪽으로 속이 빈 마름모를 연결

- ex) '컴퓨터'와 '프린터'

 

포함(Composition) 관계

- 집합 관계의 특수한 형태, 서로 영향을 미치는 관계

- 포함하는 쪽과 포함되는 쪽은 서로 독립적이지 않고, 생명주기를 함께 함

- 포함되는 쪽에서 포함하는 쪽으로 속이 채워진 마름모를 연결

- ex) '문'과 '열쇠'

 

일반화(Generalization) 관계

- 하나의 사물이 다른 사물에 비해 더 일반적인지 구체적인지 표현

- 일반적인 개념을 상위(부모), 구체적인 개념을 하위(자식)

- 구체적(하위)에서 일반적(상위) 쪽으로 속이 빈 화살표를 연결

- ex) '커피'와 '아메리카노', '에스프레소'

 

의존(Dependency) 관계

- 짧은 시간동안만 연관을 유지하는 관계

- 소유관계는 아니지만 사물의 변화가 다른 사물에 영향을 미치는 관계

- 한 클래스가 다른 클래스를 오퍼레이션의 매개 변수로 사용하는 경우

- 영향을 주는 사물(이용자)이 영향을 받는 사물(제공자) 쪽으로 점선 화살표를 연결

- ex) '등급'과 '할인율'

 

실체화(Realization) 관계

- 사물이 할 수 있거나 해야 하는 기능으로 그룹화 할 수 있는 관계

- 한 사물이 다른 사물에게 수행하도록 지정하는 의미적 관계

- 사물이 기능 쪽으로 속이 빈 점선 화살표를 연결

- ex) '날 수 있는'과 '비행기', '새'

 

다이어그램(Diagram)

 

사물과 관계를 도형으로 표현

 

- 시스템을 가시화한 뷰(View)를 제공함으로 의사소통에 도움

- 정적 모델링구조적 다이어그램, 동적 모델링행위 다이어그램

 

구조적(Structural) 다이어그램 종류

 

클래스 다이어그램
(Class Diagram)
- 클래스와 클래스, 클래스와 속성 사이의 관계를 표현
- 시스템의 구조 파악, 구조상 문제점 도출
객체 다이어그램
(Object Diagram)
- 클래스에 속한 인스턴스를 특정 시점의 객체와 객체 사이의 관계로 표현
- 럼바우(Rumbaugh) 객체지향 분석 기법에서 객체 모델링에 활용
컴포넌트 다이어그램
(Component Diagram)
- 컴포넌트 간의 관계, 컴포넌트 간의 인터페이스를 표현
- 구현 단계에서 사용
배치 다이어그램
(Deployment Diagram)
- 물리적 요소들의 위치를 표현
- 노드와 의사소통(통신) 경로로 표현
- 구현 단계에서 사용
복합체 구조 다이어그램
(Composite Structure Diagram)
- 복잡 구조를 갖는 경우, 그 내부를 표현
패키지 다이어그램
(Package Diagram)
- 모델 요소들을 그룹화한 패키지들의 관계

 

 

행위(Behavioral) 다이어그램 종류

 

유스케이스 다이어그램
(Use Case Diagram)
- 요구를 분석, 기능 모델링 작업에 사용
- 사용자와 사용 사례로 구성, 사용 사례 간에 여러 형태의 관계로 표현
순차 다이어그램
(Sequence Diagram)
- 상호작용하는 시스템이나 객체들이 주고 받는 메시지를 표현
커뮤니케이션 다이어그램
(Communication Diagram)
- 동작에 참여하는 객체들이 주고 받는 메시지뿐만 아니라, 객체들의 연관까지 표현
상태 다이어그램
(State Diagram)
- 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호작용에 따라 상태가 어떻게 변화하는지 표현
- 이벤트(event)에 의한 객체들의 상태변화를 그림으로 표현
- 럼바우(Rumbaugh) 객체지향 분석 기법에서 동적 모델링에 활용
활동 다이어그램
(Activity Diagram)
- 객체의 처리 로직이나 조건에 따른 처리 흐름을 순서대로 표현
- 처리 과정이 수행되는 동안 일어나는 일을 단계적으로 표현
상호작용 개요 다이어그램
(Interaction Overview Diagram)
- 상호작용 다이어그램 간의 제어 흐름을 표현
타이밍 다이어그램
(Timing Diagram)
- 객체 상태 변화와 시간 제약을 표현

 

>스테레오 타입(Stereotype)<

 

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

 

- 길러멧(Guilemet)이라 부르는 겹화살괄호(≪≫) 사이에 표현할 형태 기술

 

≪include≫ 연결된 다른 UML 요소에 대해 포함 관계에 있는 경우
≪extend≫ 연결된 다른 UML 요소에 대해 확장 관계에 있는 경우
≪interface≫ 인터페이스를 정의하는 경우
≪exception≫ 예외를 정의하는 경우
≪constructor≫ 생성자 역할을 수행하는 경우

 

10. 주요 UML 다이어그램

유스케이스(Use Case) 다이어그램

 

사용자와 다른 외부 시스템들이 개발될 시스템을 이용해 수행할 수 있는 기능을 사용자의 관점에서 표현

 

- 외부 요소와 시스템 간의 상호작용 확인

- 요구사항을 분석하기 위한 도구

- 시스템의 범위 파악

 

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

시스템 범위, 액터, 유스케이스, 관계

 

- 액터가 인식할 수 없는 시스템 내부의 기능을 하나의 유스케이스로 판단하면 안 됨

 

시스템(System) / 
시스템 범위
(System Scope)
- 시스템 내부에서 수행되는 기능들을 외부 시스템과 구분하기 위해 내부의 유스케이스들을 사각형으로 묶어 시스템의 범위를 표현
액터(Actor) - 시스템과 상호작용 하는 모든 외부 요소, 사람이나 외부 시스템
- 주액터 : 시스템을 사용함으로 이득을 얻는 대상, 사람
- 부액터(시스템 액터) : 시스템에 서비스를 제공하는 외부 시스템, 조직이나 기관
유스케이스
(Use Case)
- 사용자가 보는 관점에서 시스템이 액터에게 제공하는 서비스 or 기능
관계
(Relationship)
- 액터와 유스케이스, 유스케이스와 유스케이스 사이에서만 포현
- 연관 관계, 포함 관계, 확장 관계(유스케이스가 특정 조건에 부합되어 확장될 때 - ≪extend≫), 일반화 관계

 

클래스(Class) 다이어그램

 

시스템을 구성하는 클래스, 속성, 오퍼레이션, 제약조건, 관계를 표현

 

- 시스템 구성 요소에 대해 이해할 수 있는 구조적 다이어그램

- 시스템 구성 요소를 문서화

- 코딩에 필요한 정보를 잘 표현, 시스템을 모델링하는데 자주 사용

 

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

클래스, 제약조건, 관계

 

클래스
(Class)
- 각각 객체들이 갖는 속성과 오퍼레이션을 표현
- 클래스의 이름, 속성, 오퍼레이션으로 표기
- 속성(Attribute) : 클래스의 상태나 정보
- 오퍼레이션(Operation) : 클래스가 수행할 수 있는 동작, 함수
제약조건 - 속성값에 대한 제약조건, 오퍼레이션 지정 조건
관계 - 클래스와 클래스 사이의 연관성
- 연관 관계, 집합 관계, 포함 관계, 일반화 관계, 의존 관계

 

>접근제어자<

 

속성과 오퍼레이션에 동일하게 적용

 

접근제어자 표현법 내용
public + 어떤 클래스에서라도 접근 가능
private - 해당 클래스 내부에서만 접근 가능
protected # 동일 패키지 내의 클래스 or 해당 클래스를 상속받은 외부 패키지의 클래스에서 접근 가능
package ~ 동일 패키지 내부에 있는 클래스에서만 접근 가능

 

순차(Sequence) 다이어그램

 

시스템이나 객체들이 메시지를 주고받으며, 시간의 흐름에 따라 상호작용 하는 과정을 액터, 객체, 메시지 등의 요소로 그림으로 표현

 

- 각 동작에 참여하는 시스템, 객체들의 수행 기간을 확인할 수 있음

- 수직 방향시간의 흐름

- 객체들을 기본 단위, 객체들의 상호작용 표현

- 유스케이스 명세서를 하나의 표현 범위, 하나의 클래스에 포함된 오퍼레이션을 하나의 범위로 표현하기도 함

 

순차 다이어그램의 구성 요소

액터, 객체, 생명선, 실행, 메시지

 

액터
(Actor)
- 서비스를 요청하는 외부 요소, 사람이나 외부 시스템
객체
(Object)
- 메시지를 주고 받는 주체
생명선
(Liftline)
- 객체가 메모리에 존재하는 기간, 객체 아래에 점선을 그어 표현
실행 상자
(Active Box)
- 객체가 메시지를 주고 받으며 구동되고 있음을 표현
메시지
(Message)
- 객체가 상호 작용을 위해 주고 받는 메시지
회귀 메시지
(Reply / Return Message)
- 객체가 처리한 반환값이 담긴 메시지
제어 블록
(Loop)
- 반복 처리되는 영역 표시

 

 

 

 

 

 

 

 

 

 

 

 

출처 | <시나공> 정보처리기사 필기 2024 기본서 (길벗알앤디)

 

728x90