728x90
반응형
UML 개요 및 원리
1. UML 개요
- UML (Unified Modeling Language): 시스템 관점에서 운용 시에도 관리를 하자는 취지로 사용되는 모델링 언어. 소프트웨어 시스템의 설계, 시각화, 문서화를 위해 사용되며, 객체 지향 소프트웨어 개발의 표준 언어로 자리 잡음.
2. UML 소개
2.1 사용법
스케치:
- 의사소통용으로 사용
- 단순한 개념을 전달하는 데 사용
- 개념 관점에서 사용
청사진:
- 코딩 직전에 사용
- 복잡한 시스템의 명세를 제공
- 명세 관점에서 사용
프로그래밍 언어:
- 실제 구현을 위한 상세한 설계
- 구현 관점에서 사용
2.2 MDA (Model Driven Architecture)
컴퓨터 독립 모델 (CIM):
- 시스템과 별개로 현업끼리 대화에 사용하는 문서 등을 의미
- 비즈니스 요구사항을 기술
플랫폼 독립 모델 (PIM):
- 분석 및 설계 단계에서 사용
- 특정 기술과 독립적으로 시스템의 구조와 동작을 기술
플랫폼 종속 모델 (PSM):
- 구현 단계에서 사용
- 특정 환경에 종속된 모델
- 리버스 엔지니어링을 통해 생성 가능
UML = 로테이션:
- 설계 중심에서 분석 중심으로 전환
3. UML 다이어그램 분류
3.1 구조 다이어그램 (Structure)
Class (클래스 다이어그램):
- 시스템의 정적 구조를 표현
- 클래스와 클래스 간의 관계를 나타냄
Component (컴포넌트 다이어그램):
- 시스템의 물리적 구성 요소를 표현
- 컴포넌트 간의 관계를 나타냄
Object (객체 다이어그램):
- 특정 시점의 객체와 객체 간의 관계를 나타냄
- 클래스 다이어그램의 인스턴스
Profile (프로파일 다이어그램):
- 시스템 규모가 클 때, 시스템 분할의 단위로 사용
- 서브 시스템 수준으로 설계
Composite Structure (복합 구조 다이어그램):
- UML 2.0에서 추가된 기능
- 실행 시간에 클래스 분할과 관련
Deployment (배치 다이어그램):
- 시스템의 물리적 배치를 나타냄
- 하드웨어 노드와 소프트웨어 아티팩트의 배치
Package (패키지 다이어그램):
- 시스템의 논리적 그룹화를 나타냄
- 큰 시스템을 서브 시스템으로 분할
3.2 행위 다이어그램 (Behaviour)
Activity (액티비티 다이어그램):
- 절차적, 병렬적 행위를 표현
- 비즈니스 프로세스나 내부 로직을 나타냄
UseCase (유즈케이스 다이어그램):
- 사용자와 시스템 간의 상호작용을 나타냄
- 요구사항 정의용으로 사용
Interaction (상호작용 다이어그램):
- Sequence (시퀀스 다이어그램):
- 객체 간 메시지 교환을 시간 순서대로 나타냄
- Communication (커뮤니케이션 다이어그램):
- 객체 간의 구조적 관계를 나타냄
- Interaction Overview (상호작용 개요 다이어그램):
- 시퀀스와 액티비티 다이어그램을 결합
- Timing (타이밍 다이어그램):
- 특정 시점의 객체 상호작용을 나타냄
- Sequence (시퀀스 다이어그램):
State Machine (상태 기계 다이어그램):
- 객체의 상태 변화와 이벤트를 나타냄
- 객체의 생명주기를 표현
4. UML 표기법
4.1 합법적인 UML
규범적인 규칙 (Prescriptive Rules):
- UML 표준에 따른 규칙
서술적인 규칙 (Descriptive Rules):
- UML 표준을 따르지 않더라도 이해할 수 있는 규칙 (Martin's 추천)
4.2 불완전성
- 모든 것을 표현할 순 없으며, 다른 툴을 사용해도 무방
4.3 아키텍처
- 4 + 1 뷰 모델:
- 설계 뷰: 시스템의 설계 구조를 나타냄
- 프로세스 뷰: 시스템의 동적 동작을 나타냄
- 구현 뷰: 시스템의 구현 구조를 나타냄 (형상관리 포함)
- 배치 뷰: 시스템의 물리적 배치를 나타냄 (하드웨어 반영)
- 유즈케이스 뷰: 상단 4개의 뷰에 모두 영향을 미침, 요구사항 정의
5. 개발 프로세스 개요
5.1 방법론 VS 프로세스
- 관리 + 개발 프로세스 / 개발 프로세스만 존재
5.2 반복 VS 폭포수
- 폭포수 안에 반복이 포함됨
5.3 예측계획법과 적응계획법
- 실제론 예측이 불가능
5.4 기민한(Agile) 프로세스
- XP: 소프트웨어 중심, 사람 중심
- Scrum: 관리 관점, 1달 단위 반복
5.5 RUP (Rational Unified Process)
- 개발 + 관리 방법론
- 도입 -> 발단 -> 구축 -> 전이
6. UML 맞춤
6.1 요구사항 분석
- 유즈케이스 + 클래스
6.2 설계
- 클래스 + 시퀀스
6.3 문서화
- UML을 통해 문서화
6.4 레거시 코드
- UML을 역공학하여 클래스 관계 파악
7. UML 개발 생명주기
7.1 독립성
- UML은 개발 프로세스에 독립적
7.2 단계
- 도입 -> 발단 -> 구축 -> 전이
7.3 특이사항
- 비즈니스 유즈케이스 모델링 생략
- 비전문서: 스마트폰 도입 등
- UI 분석 단계 필요
- 관리자와 개발자 간 커뮤니케이션 차단도 위험 관리의 일환
728x90
반응형