관리 메뉴

nkdk의 세상

UML이란 무엇인가? 본문

My Programing/UML

UML이란 무엇인가?

nkdk 2008. 3. 9. 22:12
UML은 Unified Modeling Language의 약자입니다. 그럼 UML에 대하여 구체적으로
살펴볼까요?
UML은 Unified 체계입니다.
Unified란 단어는 기존의 여러 방법론에서
사용되어 오던 표기법들을 통합한 것이라는
의미로 사용되었습니다. UML은 새롭게 창조되어
생소하고 검증이 덜 된 체계가 아니라, 기존에
사용되던 안정되고 검증된 표기체계들을
이어받고 통합한 것입니다. 물론 기존에 사용되던
체계 그대로가 아니라 많은 부분을 발전적으로
수정하고 보완한 완성도 높은 체계입니다.
UML은 Modeling Language입니다.
UML은 복잡한 방법론(Methodology)이 아닙니다. 방법론은 SW개발과정 중에
따라야 할 절차와 기법과 도구를 제시하는 것이지만, 모델링을 위한 표기체계,
즉 언어(Language)라고 합니다.
그리고 언어이기에 구성요소와 룰과 원칙(문법)이 존재하지만 그 적용분야가
제한되지 않습니다. 이러한 이유로 UML은 여러 다양한 방법론에서 응용할 수 있는
범용성 높은 모델링 언어이고, SW 분야뿐 아니라 모델링이 필요한 모든 분야에
적용이 가능한 것입니다.
UML의 특징은 다음과 같습니다.
가시화 언어("Language for Visualizing", The UML User's Guide)
UML은 여러 개의 그래픽 기호로 구성되어 있으며 각 기호들은 정확한 의미를 가지고
있습니다. 그러므로, UML로 모델링한 것은 통일된 의미를 갖기 때문에 UML로 작성된
문서를 보는 사람들은 시스템에 대해 동일한 의미를 공유할 수 있게 됩니다.
명세화 언어("Language for Specifying", The UML User's Guide)
명세화란 정확하고, 명백하며, 완전한 모델을 의미하는데, UML은 분석, 설계,
구현에서의 모든 중요한 결정에 대한 명세서를 다룰 수 있게 합니다.
구축하는 언어("Language for Constructing", The UML User's Guide)
UML 언어에서는 프로그래밍 코드를 생성하는 것이 가능하고, 또한 구현된 코드로부터
UML 모델을 다시 생성할 수 있는 역공학(reverse engineering)도 가능합니다.
문서화 언어("Language for Documenting"- The UML User's Guide)
UML은 시스템 구조와 그것의 모든 상세 내역에 대한 문서화를 다루며, 요구사항을
표현하고 시스템을 시험하는 언어와 프로젝트 계획과 배포관리 액티비티를
모델링하는 기능을 제공합니다.
 
UML 이전의 모델링 체계
 
OMT는 James Rumbaugh가 GE 프로젝트들을 수행한 경험을 토대로 개발한 객체지향
모델링 체계입니다. 이것은 1990년 "Object-Oriented Modeling and Design"
출간함으로써 세상에 소개되었으며, 발표 이후 UML에 통합되기 전까지 전 세계에 걸쳐
가장 널리 적용된 객체지향 모델링 체계 중 하나입니다. 그리고 시스템의 표현을 위한
다음과 같은 다양한 모델들을 제공하여 완전한 모델링의 구축을 추구하였습니다.

시스템의 표현을 위한 모델링에 대하여 자세히 살펴봅시다.
객체 모델(Object Model)
시스템의 기능구현을 위해 식별된 모든 클래스와 클래스 간의 정적인 관계를 표현
모델입니다. 이 모델은 시간과 사건의 개념이 포함되지 않고, 모든 객체가 하나의
평면에 표현되기 때문에 정적모델이라고 하는 이것은 어떻게 정의해야 할까요?
객체모델을 정의하기 위해서는 다음 순서의 일을 수행해야 합니다.
※ 깜박이는 화살표를 클릭하세요.
동적 모델(Dynamic Model)
시스템의 특정 기능에 참여하는 객체들과 객체간 동적 상호관계를 표현한 모델입니다.
이 모델은 시간과 사건에 따른 객체의 순서적 행위를 표현하기 때문에 동적 모델이라고
합니다. 동적 모델에는 객체 자체와 객체의 상태 그리고 기능을 유발하는 사건과
기능을 수행하는 시간개념이 포함됩니다.
기능 모델(Functional Model)
시스템이 어떠한 기능을 수행해야 하는 지를 나타내는 모델입니다. 이 모델은 객체와
객체간 메시지 교환을 통해 기능이 어떤 방식으로 구현될 지에 대해 설명합니다.
Grady Booch가 국방, 상업 등 대규모 시스템들에 대한 개발
경험을 기반으로 정립한 모델링 체계입니다. 이것은 90년
초반에 저서 "Object-oriented Analysis and Design with
Applications
"을 출간함으로써 Booch Method가 소개되었습니다.
Booch Method의 특징은 다음과 같습니다.
시스템 아키텍처에 초점
시스템의 구성요소 및 구성요소와 구성요소간 관계와 상호작용을 정의한 아키텍쳐를
중시한 모델링 체계
를 제시하였습니다.
시스템을 다양한 관점에서 분석하는 개념을 제시
여러 종류의 모델링 방법을 제시함으로써 시스템을 다양한 관점에서 분석할 수 있게
하였습니다. 이러한 모델링 관점의 다양화는 보다 완전한 모델 구축을 가능하게 합니다.
반복적이고, 점증적인 개발 프로세스 제시
시스템을 개발할 때 과거와 같이 한번에 개발하는 대신, 작은 영역으로 쪼개어 여러
번에 걸쳐 나누어 개발하는 방식을 주창하였습니다. 이 방식은 개발과정에 숨겨져
있는 위험(Risk)들을 조기에 발견하여 대처하게 함으로써 시스템 개발이 실패할
위험을 줄여줍니다.
OOSE (Object-Oriented Software Engineering)는 Ivar Jacobson에 의해 제안된
객체지향 개발 방법론입니다. Objectory는 통신, 금융 분야에서의 Ivar Jacobson의
방법론에 기반하여 다양한 시스템에 적용된 방법입니다.

OOSE/Objectory 방법론의 특징은 유스케이스 중심 접근법 (Use-Case Driven
Approach)
으로 대표됩니다.

유스케이스 모델을 간단히 소개하면, 시스템 개발 초기단계에 작성되어 다른 모든 모델을
유도해 내는 기준 모델이라고 합니다. 즉, 유스케이스 모델은 시스템과 상호 작용하는
방식들을 파악하여 시스템의 모든 기능들을 서술하는 것이라고 할 수 있습니다.
 
UML의 탄생과정과 의의
 
UML은 1997년 표준으로 채택되었지만, 기존 방법론들의 장점들을 취합한
표기체계입니다. UML이전에도 객체지향 기반의 모델링 체계를 포함한 방법론들이
많이 존재했었지만, 너무 많아서 문제가 있었습니다. 많은 개발자들이 모델링 체계가
달라 의사소통에 불편을 느끼게 되었기 때문입니다. 그래서 자연스럽게 하나의 표준
표기체계가 필요하다는 것을 느끼게 되었습니다. 통합되고 표준화된 객체지향
표기체계의 필요성이 대두되던 이 시점에 UML이 등장
하게 된 것입니다.

1960년대부터 현재에 이르기까지 UML의 탄생과 발정과정을 아래의 표와 그림으로
살펴봅시다.
1967년 최초의 객체지향 언어 SIMULA 탄생
1980년대와
90년대 초반
다양한 객체지향기반 표기체계 및 방법론(약 50여 가지)이 난립
1995년
Booch의 Booch 방법론과 Rumbaugh의 OMT방법론이 통합
객체지향 학술대회인 OOPSLA('95)에 발표
1996년
Jacobson의 OOSE 방법론이 추가로 통합
대표적인 3대 방법론에서 쓰이던 표기체계가 통합됨
UML(Unified Modeling Language)로 명명되어 v 0.9로 정의
1997년
1월 : UML ver. 1.0 발표
9월 : UML ver. 1.1 발표
        객체지향 기술표준 기구인 OMG에 표준화안 상정
11월 : OMG 표준 인증
1999년 UML ver. 1.3 발표
2001년 UML ver. 1.4 발표
2002년 UML ver. 2.0 예정
* OMG : Objec Management Group. "www.omg.org"
 

1997년 UML은 버전 1.0이 OMG(Objec Management
Group."www.omg.org")의 표준인증을 획득하여
객체지향 모델링 체계의 세계 표준이 되었습니다.

UML은 다음과 같은 의의를 가집니다.
표기체계의 통합 및 표준화
1980년대에서 90년대에는 50여 가지의 표기체계가 난립하였습니다. UML은 이러한
표기체계를 하나로 통합함으로써 표준화의 대업을 이루었습니다. UML은 개인이나
기업이 아닌 비영리 표준화 단체인 OMG에 의해 사양과 업그레이드가 관리되며,
이것의 등장으로 재사용과 원할한 의사소통 효과를 비롯한 많은 효과를 기대할 수
있게 된 것입니다.
개발 프로세스와 개발언어에 독립적 표기체계
UML은 특정 개발방법론에 얽매이지 않은 개방적인 표기체계를 제시하였습니다.
방법론에 독립적일 뿐 아니라 개발언어의 물리적 제한사항을 수용하는 추상성을
제공하는 표기체계를 채택함으로써 개발언어에도 독립적입니다. 따라서 우리는
UML의 등장으로 개발 방법론과 개발언어에 제한없이 적용될 수 있는 개방적인
모델링 체계를 갖게 된 것입니다.
적용에 제한이 없는 범용적 표기체계
UML은 적용하기 위한 별도의 비용이나 허가가 필요없는 공개된 표준 모델링 체계를
제공합니다. UML을 사용하기 위한 제한된 조건은 없으며, 이것의 등장함으로써
우리는 SW시스템의 개발과정뿐 아니라 비즈니스 영역을 비롯한 적용가능한 모든
분야에서 폭넓게 응용할 수 있는 범용적인 표기체계를 갖게 된 것입니다.