본문 바로가기

Study/정보처리기사 실기

[정보처리기사 실기] 1장 요구사항 확인 _ UML 분석모델 확인

분석 모델링

- 현실 세계 요구사항을 단순화해 개념적 (인간중심적)으로 표현하는 과정으로 요구사항 분석 핵심

- 객체와 객체 간 관계 및 종속성 반영

- 객체지향 모델링 언어인 UML 사용


UML (Unified Modeling Language)

- 객체지향 분석, 설계 위한 통합 모델링 언어

- Rumbaugh, Booch, Jacobson 등 객체 지향 방법론 통합함

- 개발자와 고객, 개발자 상호 간 원활한 의사소통 제공

- 객체 기술 표준화 기구 OMG에서 표준으로 지정

- 사물, 관계, 다이어그램 3가지 요소로 구성


UML 구성요소

1) 사물 (Things)

- 다이어그램 안에서 관계 맺을 수 있는 대상, 객체 의미

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

구조사물 시스템 구조 표현
ex) 클래스, 유스케이스, 컴포넌트, 노드
행동사물 시스템 행위 표현
ex) 상호작용, 상태 머신
그룹사물 시스템 개념 그룹화
ex) 패키지 (package)
주해사물 부가적 개념이나 제약조건 표현
ex) 노트 (note)

2) 관계 (Relationships)

사물과 사물 간 연관성 표현

연관 (Association) 관계 - 2개 이상 사물이 서로 관련됨 표현
- 사물 사이 실선 방향성은 화살표
- 양방향 관계 시 실선으로만 연결
- 다중도 (Multiplicity)를 선 위에 표기
집합 (Aggeregation) 관계 - 하나의 사물이 다른 사물에 포함된 관계
- 포함하는 쪽 (전체)과 포함되는 쪽 (부분)은 서로 독립적
- 부분에서 전체 쪽으로 속이 빈 마름모 연결
포함 (Composition : 합성) 관계 - 집합 관계 특수한 형태로 합성관계라고도 함
- 포함하는 쪽 (전체)과 포함되는 쪽 (부분)은 서로 독립될 수 없고 생명주기 함께 함
- 부분에서 전체 쪽으로 속 채워진 마름모 연결
의존 (Dependency) 관계 - 사물 간 필요에 의해 서로 영향 주고 받는 연관관계
- 영향 주는 사물 (이용자)이 영향 받는 사물 (제공자) 쪽으로 점선 화살표 연결해 표현
일반화 (Generalization) 관계 - 사물 간 관계 일반적인지 구체적인지 표현
- 일반적인 개념을 상위 (부모), 구체적 개념을 하위 (자식)로 구분
- 구체적인 쪽에서 일반적인 쪽으로 속이 빈 화살표 연결
실제화 (Realization : 구현) 관계 - 사물이 할 수 있거나 해야하는 기능으로 그룹화하는 관계
- 사물에서 기능 쪽으로 속이 빈 점선 화살표 연결

3) 다이어그램

- 사물과 관계를 도형으로 연결해 표현한 것

- 시스템 구조와 동작을 여러 관점 (view)에서 제공해 의사 소통에 도움 줌

- 구조적 다이어그램과 행위 다이어그램으로 구분


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

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

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

유스케이스 다이어그램
(UseCase Diagram)
- 사용자 요구 분석하는 것으로 기능 모델링 작업에 사용
- 사용자 (Actor)와 사용 사례 (Use Case)로 구성, 사용 사례 간 여러 형태 관계로 이뤄짐
시퀀스 다이어그램
(Sequence Diagram)
시스템이나 객체들이 상호작용하는 메시지 표현
커뮤니케이션 다이어그램
(Communication Diagram)
시퀀스 다이어그램과 같이 동작에 참여하는 객체들이 주고받는 메시지를 표현하는데
메시지뿐만 아니라 객체들 간 연관까지 표현
상태 다이어그램
(State Diagram)
- 하나의 객체가 자신이 속한 클래스 상태 변화 혹은 다른 객체와의 상호작용에 따라
상태가 어떻게 변화하는지 표현

- 럼바우 객체지향 분석 기법에서 동적 모델링에 활용
활동 다이어그램
(Activity Diagram)
시스템이 어떤 기능 수행하는지 객체 처리 과정이나 조건에 따른처리 흐름 순서에
따라 표현
상호작용 개요 다이어그램
(Interaction Overview Diagram)
상호작용 다이어그램 간 제어 흐름 표현
타이밍 다이어그램
(Timing Diagram)
객체 상태 변화와 시간 제약 명시적으로 표현

스테레오 타입 (Stereo Type)

- UML에서 제공하는 기본 요소 외 추가적인 확장요소 나타내는 것

- 길러멧 (Guillement, << >>) 사이에 입력

- <<include>>, <<extend>>, <<abstract>>, <<interface>> 등 자주 사용

<<include>> 연결된 다른 UML 요소에 대해 포함 (공통의 내용) 관계 있는 경우
<<extend>> 연결된 다른 UML 요소에 대해 확장관계 있는 경우
<<interface>> 인터페이스 정의하는 경우
<<exception>> 예외 정의하는 경우
<<constructor>> 생성자 역할 수행하는 경우

 


주요 UML 다이어그램

1) UseCase 다이어그램

- 사용자 요구 사항을 분석하기 위한 다이어그램

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

 

UseCase 다이어그램 구성요소

구성요소 내용
액터 (Actor) 시스템을 제외한 모든 외부요인 사람, 기계, 외부 시스템 행위를 할 수 있는 사용자 역할
유스케이스 (UseCase) - 시스템이 제공해야 하는 기능
- 액터가 시스템 통한 일련 행위
관계 (Relationship) 포함 (Include)
- 공통, 중복내용을 별도 분리해 유스케이스 구성

확장 (extend)
- 어떤 조건에 따라 유스케이스 기능 확장될 때 구성하는 유스케이스 참조하는 관계
시스템 (System) 전체 시스템 영역 표현 / 특별한 의미 갖지 못함

2) Class 다이어그램

- 클래스 속성, 동작, 클래스와 클래스 사이 관계 표현한 다이어그램

- 시스템 구성요소를 이해할 수 있는 구조적 다이어그램으로 문서화에 사용

 

Class 다이어그램 구성요소

클래스  각 객체들이 갖는 속성과 동작을 표현, 접근 제어자 설정
관계 클래스와 클래스 관계 설정
ex) 연관, 집합, 의존, 일반화 등
제약조건 속성에 입력될 값에 대한 제약조건, 동작에 대한 조건 기술

 

접근제어자 (Visibility)

접근제어자 표시 설명
Public + 어떤 클래스 객체에서든 접근 가능
Private - 이 클래스에서 생성된 객체들만 접근 가능
Protected # 동일 패키지에 있거나 상속 관계에 있는 하위 클래스 객체들만 접근 가능
Package ~ 동일 패키지에 있는 클래스 객체들만 접근 가능

3) Sequence 다이어그램

- 시스템이나 객체들이 메시지 주고 받으며 상호작용하는 과정 표현

- 시간 흐름에 따른 각 객체들 상호 동작, 즉 오퍼레이션 표현

 

Sequence 다이어그램 구성요소

구성요소 의미
액터 (Actor) 시스템으로부터 서비스 요청하는 외부요소 사람이나 외부시스템 의미
객체 (Object) 메시지 주고 받는 주체
생명선 (LifeLine) 객체가 메모리에 존재하는 기간
실행(활성)상자 (Active Box) 객체가 메시지 주고 받으며 구동됨 표현
메시지 객체가 상호작용 위해 주고 받는 메시지
객체소멸 해당 객체가 더이상 메모리에 존재하지 않음
프레임 (Frame) 다이어그램 전체 또는 일부 묶어 표현

4) State 다이어그램

- 객체들 사이 발생하는 이벤트에 의한 객체들 상태변화 표현하는 다이어그램

- 객체들 상태는 객체가 갖는 속성값 변화 의미


5) Package 다이어그램

- 유스케이스나 클래스 등 요소들을 그룹화한 패키지들 간 의존관계 표현한 다이어그램

- 패키지는 또 다른 패키지 요소 될 수 있음


럼바우 객체지향 분석 모델링

- 객체 모델링 기법인 OMT (Object Modeling Technic) 개발

- OMT는 3단계 모델링 과정 거쳐 완성됨

객체 모델 (Object Model) -> 동적 모델 (Dynamic Model) -> 기능 모델 (Functional Model)

모델링 적용 다이어그램 의미
객체모델링 객체 다이어그램 - 시스템 정적 구조 파악
- 객체, 객체 간 관계 식별
동적모델링 상태 다이어그램 - 시스템 동적 행위 파악
- 시간 흐름에 따른 객체들 상호작용
기능모델링 자료흐름도 (DFD) 자료처리 과정 기술