객체지향 분석, 설계, Use-case, Class, Sequence, Activity |
I. 객체지향 분석, 설계를 위한 모델링 언어, UML의 개요
가. UML(Unified Modeling Language)의 정의
- 객체지향 분석과 설계를 하기 위한 모델링 언어로 OMG(Object Management Group)에서 모델링 기술과, 방법론을 표준화한 언어
나. UML의 특징
특징 |
내용 |
가시화 언어 |
프로젝트 계획, 실행, 변경 통제 |
문서화 언어 |
요구사항관리, 범위 정의, 산출물, 베이스라인 관리 |
구현 언어 |
WBS 승인, 일정 수행 및 평가 조정 |
명세화 언어 |
프로젝트 활동 완료를 위한 모든 비용, 예산 관리 |
II. UML의 구조 및 모델
가. UML의 구조
구성요소 |
내용 |
Things |
모델에서 주제를 나타내는 요소 단어 중에서 명사, 혹은 동사 의미 요소 |
Relationships |
Things와 Things를 연결하여 그들간의 관계를 표현 단어 중에서 형용사나 부사 요소 |
Diagrams |
Things와 Relationship을 모아 그림으로 표현 시스템의 구조와 행위를 표현하는 13개의 다이어그램 존재 |
나. UML의 모델
모델 |
내용 |
기능적 모델 |
사용자 측면에서 본 시스템의 기능을 나타내며 Use Case Diagram으로 표현 |
객체 모델 |
객체, 속성, 관계, 오퍼레이션에 의하여 시스템 구조를 나타냄 |
동적 모델 |
시스템의 내부 동작을 나타냄 |
III. UML의 4+1 View 및 다이어그램
가. UML의 4+1 View
나. UML의 다이어그램 (구cocd행aud상sc)
구분 |
다이어그램 |
설명 |
구조 다이어그램 |
Class Diagram |
- 시스템 내 클래스들의 정적 구조를 표현하고 클래스는 객체들의 집합으로 속성과 동작으로 구성 |
Object Diagram |
- 클래스의 여러 오브젝트 인스턴스를 나태내는 대신에 실제 클래스를 사용 - 클래스 다이어그램에서 2가지 예외를 제외하고 동일 표기법 사용 - 관계 있는 모든 인스턴스를 표현 |
|
Component Diagram |
- 코드 컴포넌트에 바탕을 둔 코드의 물리적 구조를 표현 - 컴포넌트는 논리적 클래스 or 클래스 자신의 구현에 대한 정보 포함 - 실질적인 프로그래밍 작업에 사용 |
|
Deployment Diagram |
- 시스템 HW와 SW간 물리적 구조를 표현하며, 컴퓨터와 Device간의 관계 표현 - 컴포넌트 사이의 종속성을 표현 |
|
행위 다이어그램 |
Activity Diagram |
- 행위의 순차적 흐름을 표시 - 순서도난 병렬적인 처리를 요하는 행위를 표현할 때 사용 |
Use Case Diagram |
- 사용자의 입장에서 본 시스템의 기능적인 요구 행동을 표현 - Use Case는 시스템의 기능적인 요구사항 정의 |
|
State Chart Diagram |
- 클래스의 객체가 가질 수 있는 모든 가능한 상태와 상태간의 전이를 표현 - 진입, 탈출 조건, 상태전이에 필요한 사건 등 자세한 사항 기술 - 설계 단계에서 클래스 객체의 동적인 행동을 표현하는데 사용 |
|
상호작용 다이어그램 |
Sequence Diagram |
- 객체와 객체간의 상호작용을 메시지 흐름으로 표현 - 오브젝트 사이에 메시지를 보내는 시간, 순서를 보여주기 위해 사용 |
Collaboration Diagram |
- 오브젝트간의 연관성을 표현하며, 내용이 중요한 경우에 이용 |
'IT기술노트 > 소프트웨어공학' 카테고리의 다른 글
시퀀스 다이어그램 (Sequence Diagram) (0) | 2021.01.31 |
---|---|
액티비티 다이어그램 (Activity Diagram) (0) | 2021.01.31 |
클래스 다이어그램 (Class Diagram) (0) | 2021.01.31 |
UML 2.0 (0) | 2021.01.31 |
다형성 (Polymorphism) (0) | 2021.01.31 |
객체지향 (Object-Oriented) (0) | 2021.01.31 |
객체지향 설계원칙 (0) | 2021.01.31 |
모듈화 (Modularity) (0) | 2021.01.31 |
댓글