분석 모델링
- 현실 세계 요구사항을 단순화해 개념적 (인간중심적)으로 표현하는 과정으로 요구사항 분석 핵심
- 객체와 객체 간 관계 및 종속성 반영
- 객체지향 모델링 언어인 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) | 자료처리 과정 기술 |
'Study > 정보처리기사 실기' 카테고리의 다른 글
[정보처리기사 실기] 2장 화면 설계 _ UI 요구사항 확인 (1) | 2025.02.07 |
---|---|
[정보처리기사 실기] 1장 요구사항 확인 _ 아키텍처 패턴, 디자인 패턴 (0) | 2025.02.04 |
[정보처리기사 실기] 1장 요구사항 확인 _ 요구사항 확인 (0) | 2025.01.31 |
[정보처리기사 실기] 1장 요구사항 확인 _ 현행 시스템 및 개발 기술 분석 (2) | 2025.01.23 |
[정보처리기사 실기] 1장 요구사항 확인 _ 소프트웨어 생명주기 (SDLC) 모형 (1) | 2025.01.21 |