반응형
-
UML의 개요
-
UML의 정의
- 객체 기술에 관한 국제 표준화 기구(OMG; Object Management Group)에서 인정한 객체 지향 분석, 설계를 위한 통합 모델링 언어
- Jabcoson(Use Case Model), Rumbaugh(OMT), Booch(Object Design)의 기법 통합
-
방법론과 모델링 언어의 차이점
- 방법론 : 생각과 행동을 구조화하는 방법을 제공(모델을 만들 때 어떻게, 언제, 무엇을, 왜라는 모든 방법을 제시하는 것
- 모델링 언어 : 모델을 단지 표현하는 것
-
UML의 출현 배경
- 시스템의 대형화 및 복잡도가 증가하여 좋은 모델링 언어의 필요성이 부각
- 모든 영역에 있어서 어떤 구조의 복잡도라도 설명할 수 있는 표기(Notation)와 의미(Semantic)를 표현 가능한 모델링 언어가 필요함
- 객체 지향 분석/설계 개발 방법론의 표준 부제
-
UML의 특징
- 단순한 표기법이라기 보다는 사용하는 형식과 각각의 표기에 의미를 가지며, 즉시 사용 가능하면서 표현력이 강한 시각적 모델링 언어
- 개발자, 관리자, 공급자, 획득자에게 통일된 인터페이스 제공함으로써 이용 시 의사소통이 원할하며 개발규모, 개발 프로세스, 개발 언어에 관계없이 적용 가능
- UML은 객체 지향 개발만을 위한 것이 아니라 통합 모델링이므로 다른 모델을 모델링 시 사용가능
- Framework, Pattern, CBD에 적용이 가능하고 특히 분산 처리/Web/임베디드(Embedded) 시스템에 적합
-
-
UML의 구성
- UML의 구성 요소
구성요소 | 종류 |
사물(Things) | 구조(Structure), 행동(Behavioral), 그룹(Grouping), 주해(Annotation) |
관계(Relationship) | 의존(Dependency), 연관(Association), 일반화(Generalization),실체화(Realization) |
도해(Diagrams) | Class, Object, Use Case, Sequence, Collaboration, State, Activity, Component, Deployment |
-
UML의 구조
- 소프트웨어 중심 시스템의 아키텍처 모델링(Rational 4+1 View Model)
분류 | 관점 | 목적 | 기능 | 정적도 | 동적도 |
Logical View |
End User |
|
시스템의 기능적 요구를 작성하여 초기 클래스들의 정적인 그림과 그들의 관계를 제공 |
|
|
Component (Implementation) View |
Programmers |
|
개발 환경 내에서 실제의 소프트웨어 모듈 조직을 관리 |
|
|
Use Case View | Analysts / Testers |
|
시스템의 개괄적인 요구 분석 단계에서 사용 --> 이벤트와 기능 위주로 표현 |
|
|
Process View | System Integrators |
|
프로세스의 분해에 초점, 프로세스에 대한 컴포넌트 할당을 보여줌 --> 실행 시 소프트웨어 구조를 의미 |
|
|
Deployment View |
System Engineer |
|
프로세싱 노드에 대해 프로세스들을 매핑 |
|
|
표 UML의 View 비교
- 모델의 종류
기능 모델 | Use-Case Diagram(Static), Activity Diagram(Dynamic) |
정적 모델 | Class Diagram, Component Diagram, Deployment Diagram |
동적 모델 | Sequence Diagram, Collaboration Diagram, State Diagram |
-
객체(정적) 모델링
- 시스템에 요구되는 객체들을 보여줌으로써 주로 시스템의 정적 구조를 모델링
- 객체 모델링은 시스템의 기능에 초점을 맞추기보다 시스템을 구성하고 있는 객체를 강조함으로써, 실 세계에 더욱 접근한 표현을 가능하게 하고 계속적인 변화에 탄력적으로 대처할 수 있게 해줌
- 추상화, 분류화, 일반화, 집단화 등의 개념들이 사용
-
동적 모델링
- 객체 모델링이 끝난 후 시간의 흐름에 따른 객체들 상이의 변화를 조사
- 객체들 사이의 제어 흐름, 상호 작용, 동작 순서 등을 다룸
- 상태(State), 사건(Event), 동작(Action) 등의 개념들이 사용
-
기능 모델링
- 입력 값으로 부터 계산을 거쳐 어떤 결과가 나타나는지의 기능을 보여주며, 어떻게 유도되어쓴지의 구현 방법은 아직 고려하지 않음
-
객체 모델링에서 규명된 객체와 동적 모델링에서 밝혀진 각 객체의 형태 변화에서 새로운 상태로 들어갔을 때 수행되는 동작들을 기술하는데 사용
-
UML의 역할
- 가시화 언어 : 개념 모델 작성, 오류없이 전달, 의사소통 용이, 그래픽 언어
- 명세화 언어 : 정확한 모델 제시, 완전한 모델 작성, 분석/설계의 결정 표현
- 구축 언어 : 다양한 프로그램 언어와 연결, 왕복 공학 가능(순공학/역공학), 실행 시스템 예측 가능
-
문서화 언어 : 시스템에 대한 통제, 평가, 의사소통의 문서(요구사항 아키텍처, 설계, 원시 코드, 프로젝트 계획, 테스트, 프로토타입, 릴리즈)
-
UML의 동향
- 객체 지향 소프트웨어를 개발하기 위한 풍부한 분석 및 설계 장치를 제공
- 향후 상당 기간 동안 산업계 표준으로 지속적인 활용이 예상됨
- 웹 서비스, 웹 프로그래밍 방법론으로 RUP의 반복 프로세스(Iteration Process) 적용이 확산
- 재사용성, 개발 생산성 향성을 위한 방안으로 지속적 사용이 확산
반응형
'밥벌이 > 소프트웨어 공학' 카테고리의 다른 글
객체 지향 분석 설계의 개요 (0) | 2011.08.19 |
---|---|
UML Diagram (0) | 2011.08.19 |
소프트웨어 품질의 개요 (0) | 2011.01.03 |
소프트웨어 품질 보증 (0) | 2011.01.03 |
소프트웨어 품질 표준 (0) | 2011.01.03 |