금요일, 2월 23, 2007

『여전히 강세인 통합 모델링 언어』

『여전히 강세인 통합 모델링 언어』
(Unified Modeling Language Is Still Going Strong)
by David Norton

UML은 객체 지향 분석 및 설계(OOA&D: object-oriented analysis and design)에 있어 주도적 표기법으로 유지되고 있으며, 그 인기 역시 상승되고 있다. 개발 관리자들이 OOA&D 모델링으로부터 실질적인 혜택을 얻길 원한다면, UML의 유효 범위와 이의 한계에 대해 분명히 이해할 필요가 있을 것이다.


핵심 발견 사항
l UML은 여전히 우세한 시스템 모델링 언어이나, 비즈니스 모델링에 있어 완전히 수용되지는 못하고 있다.

l UML은 비즈니스 모델링에 사용될 수는 있으나, 객체 관리 그룹(OMG: Object Management Group) 비즈니스 프로세스 모델링 표기법(BPMN: Business Process Modeling Notation) 표준이 비즈니스 프로세스 분석에 보다 적합하다. 이러한 표준을 구현하는 도구는 별개의 시장에서 다루어진다.(‘비즈니스 프로세스 분석 도구에 대한 매직 퀀드런트, 2006년(Magic Quadrant for Business Process Analysis Tools, 2006)’ 참조)

l UML의 명세를 정확히 구현하기 위해서는, 벤더들의 상당한 노력이 여전히 요구되고 있다. 또한 이 명세를 기반으로 한 개발 중인 조직의 OOA&D 모델링에 대한 최상의 관행은 많은 시간을 소요로 한다.

예측 사항
l 2008년까지 50%에 달하는 대규모 이니셔티브가 구조화 된 방법 사용을 계속할 테지만, 2007년까지 UML은, 일부의 OOA&D를 적용하는 프로젝트 중 80%에 있어 주도적인 OOA&D 표기법으로 자리할 것이다. (확률 0.8)

l Microsoft와 같은 일부 벤더들은, 주어진 플랫폼(예시: .NET)에 대한 배치를 최적화 할 수 있는 여타 유형의 OOA&D 모델링 개념을 사용하려 할 것이다. 따라서 UML은 OOA&D 모델링 도구 시장 점유율 중 20%를 DSL(도메인 특정 언어: Domain Specific Language)에 빼앗길 것이다. (확률 0.7)

l UML 도구 벤더들은 UML 확장 메커니즘을 사용하여, 기술 및 비즈니스 도메인에 DSL 가능화 도구를 제공하는 것을 선택할 것이다. (확률 0.8)

l OMG 워킹 그룹 사이의 협력은 UML과 BOMN 표준 간의 통합을 가능케 할 것이다. (확률 0.8)

권고 사항
l 비즈니스 수준에서 UML을 사용할 시, 비즈니스 프로세스 모델링을 위한 BPMN, 또는 비객체 지향 개념 및 논리 데이터 모델링을 위한 ERD(실체 관련도: Entity Relationship Diagram)와 같은 여타 기법으로 이를 보강하도록 대비하라.

l 모델링 책임자는 생명주기 전반에 모델이 어떻게 사용될 지에 대해 명확히 이해하고, 개발의 다음 국면을 지원할 수 있도록 적합한 엄격성 수준을 적용하도록 해야 한다.

l 자동적으로 구현을 생성하도록 의도한 모델을 개발할 시, 상세 내용과 검증에 있어 보다 정형화하도록 하라.

l 다수의 OOA&D 도구가 UML을 지원하고 있으며, 이는 모델링 투자에 대한 이해를 도울 것이다. 대다수의 도구 벤더들은 최상의 관행을 비롯하여, 방법론 지원, 교육 및 자문을 제공하는 것이 가능하다. 도구는 전체 모델링 전략 없이 그 자체만으로 성공을 이끌어낼 수 없다고 하겠다.

l 모델링 전략 적용 시, 조직 문화, 기술, 규제적 요구사항, 기존의 프로세스에 대해 참작하도록 하라. 신규 작동 사안을 규정하는 데 실패할 수 있는 리스크에 상대되도록 모델링을 통한 이점으로 균형을 잡고, 인센티브 제공에 대비할 수 있도록 하라.

분석

주지 사항
.NET 및 Java 2 플랫폼과 Enterprise Edition 환경에 있어 애플리케이션의 서비스 지향 개발을 이동/지원하기 원하는 조직들은, 객체 지향 분석 및 설계에 있어 실질적인 표준인 통합 모델링 언어를 사용하여 서비스 및 컴포넌트를 모델링하는데 투자해야 할 것이다. 서비스와 컴포넌트 설계 및 구성에 중점을 두고 있는 조직들은, 많은 저가의 모델링 도구 대안을 찾게될 것이다.
보다 아키텍처 수준의 모델링을 요구로 하는 비즈니스의 경우 UML, BPMN, 데이터 모델링 표준을 지원하는 단일 도구, 또는 통합 스위트로 판매하는 도구와, 전반 조직 역할을 망라하는 방법론에 보다 세심한 주의를 기울여야 할 것이 권고된다.

OOA&D 방법론과 도구의 성공은 그 적용에 달려 있다. 대부분의 도구 벤더들은 최상의 관행 방안을 비롯하여, 조직 내로 당 방법과 도구를 동화할 수 있도록 하는 교육 및 자문을 제공한다. 많은 외부 서비스 공급업체(예시: 컨설팅 업체) 도한 이와 같은 서비스를 보유하고 있다. 하지만 최상의 관행은 계속하여 발전하고 있으며, 조직들은 SODA로 레거시 개발자를 이전할 시, 객체 지향 방법론에 의해 요구되는 변화의 정도를 과소평가해서는 안 될 것이다.

서설(Introduction)
UML 2.0의 배포는 OMG에 대해 중요한 이정표를 점하였다.(주석 1 참조) OMG의 관리 하에, UML은 주도적인 객체 지향 모델링 표준으로 부상해 왔다고 하겠다. UML은 성숙한 표기법임에도 불구하고, 여전히 개발 커뮤니티 내에서 집중적인 논의의 대상이 되고 있다. 이와 같은 논의는 하기와 같은 다수의 공통 주제에 집중되어 있다.

n 모델링 오버헤드 - UML 및 비주얼 모델링의 어떤 부분이 개발 생명 주기에 작용하는가?
n 비즈니스 모델링 - UML은 얼만큼이나 비즈니스 분석가 역할을 지원하고 있는가? 그리고 BPM에 있어 UML은 어떠한 부분을 담당할 것인가?
n 모델 주도형 개발(MDD) - UML은 MDD를 특별하게 지원할 수 있는가?
n 의미론 - 현재의 UML 명세는 MDD 지원에 있어 충분하게 의미론적으로 상세한가?
n 추상화 - UML의 추상화 수준으로 작업하는 것은 최대의 생산성을 제공하는가?

모델링 오버헤드(Modeling Overhead)
비주얼 모델링에 대한 비판 중 하나는 이것이 코드 개발에 저해가 된다는 것이다. 이러한 논의의 중심은 UML과 같은 가치 부가 표기법과, 이것이 감당할 수 있는 생산성 획득이라고 할 수 있다.

XP(extreme programming: 극한 상황의 프로그래밍)나 SCRUM과 같은 기민성 방법은 ‘실체 조명(modeling light)'으로 고려될 수 있다. 이와 같은 모델은 전체 설계 또는 명세를 포착하도록 의도된 것이 아니라, 조력 수단으로 사용되며, 많은 경우 메시지를 전달하는데 정도만 충분한 표기법을 이용한 개략 이상은 되지 않는다.

모델 주도형 개발은 주어진 표준에 모델이 완전히 부합될 것을 요구로 하는 보다 엄격한 견지를 요구로 한다. 이와 같은 접근법은 ARAD(Architecture Rapid Application Development: 아키텍처 급속 애플리케이션 개발) 또는 AMD(Architecture Model Driven: 모델 주도형 아키텍처)에서는 보편적인 것이며, OMG 모델 주도형 아키텍처 이니셔티브에 있어서 전제 조건이 된다. AMD와 더불어, 이의 초점은 모델 형태상의 아키텍처 및 설계를 획득하는 것과, 구현을 위해 모델 해석을 자동화하는 것에 있다고 하겠다.

UML 2.x가 우선적인 방법론 및 개발 문화 쟁점이기 때문에, 시스템 개발에 요구되는 모델링 수준과 관련하여 UML 2.x는 끊임없는 논쟁을 야기할 것이다. UML은 다양한 엄격성 수준과 더불어 지속적으로 사용될 전망으로 보인다.

비즈니스 프로세스 및 데이터 모델링(Business Process and Data Modeling)
UML은 단순한 객체 지향 모델링 표기법 이상이 되기를 항시 열망해 왔지만, 이는 여전히 비즈니스 분석가 커뮤니티의 다수에게 시스템 모델링을 위해서만 사용되는 것으로 인지되고 있다.

UML 2.0의 배포와 더불어, OMG는 UML을 이용한 비즈니스 모델링과 관련한 일부 쟁점을 다루기 시작하였다. 액티버티 다이어그램(Activity diagram)은 Petri-Net 이론을 기반으로 하고 있으며, 이는 ‘풀과 스윔 레인(pool and swim lane)’ 지원 사항을 보유하여 더 이상은 상태 모델(state model)의 아류 형태가 아니라 할 수 있다.

OMG는 ERD 및 물리적 데이터 모델링을 이한 데이터 관리 프로파일을 개발하는, UML 정보 메타모델 관리 프로젝트와의 데이터 모델링 쟁점에 대해 대처하는 과정에 있다. OMG 작업과는 별도로, Eriksson-Penker 또는 Rational's Business Profile과 같은 다수의 비즈니스 모델링 프로파일은 비즈니스 분석가 역할을 지원하기 위해 UML을 확장하였다.

OMG 비즈니스 모델링 및 통합 도메인 특별 위원회(OMG Business Modeling & Integration Domain Task Force)는 OMG 비즈니스 모델링 노력(이미 배포된 BPMN을 포함하여)에 있어 선봉의 역할을 하고 있다. OMG는 BPMN과 UML이 공통의 메타모델 또는 표기법과 더불어 상호간에 어떠한 방식으로 보완할 수 있을 가를 고려하는 중이다.

비즈니스 모델링에 대한 타깃이 되는 수용자들은 OOA&D의 타깃 수용자들과는 상이한 기대와 요구사항을 가지고 있다는 것을 인식하는 것은 중요하다. 비즈니스 분석가 또는 프로세스 구축자들은 비즈니스 단위나 조직 내부 또는 이를 망라하여 워크플로와 인간 대 시스템(human-to-system) 프로세스를 모델링(종종 BPMN을 이용하여) 하며, 이는 종종 시뮬레이션, 행동 기반 원가 계산 또는 창출 가치 분석(earned value analysis), 비즈니스 규칙 설계를 비롯하여, 점진적으로 더 많이 전체 비즈니스 프로세스 관리(BPM)을 포함한다.

UML은 비즈니스 프로세스 분석(BPA)에 대한 최상의 관행을 구현하길 원하는 조직에서 필요한 기능 전반을 제공하기에는 아직 미흡하다고 할 수 있지만, 그렇다고 하여 이것이 비즈니스 모델을 서비스와 컴포넌트로 분해하는 표기법으로서의 UML의 장점을 희석하지는 않는다. 조직들은 이와 같은 기법이 공존할 수 있고, 통합되고 상호 연결된 방식으로 기업을 지원하는 것을 보장할 수 있는 전략을 가지도록 해야 할 것이다.(‘스위트로 병합되고 있는 BPA, UML, 데이터베이스 설계 모델링 도구(BPA, UML and Database Design Modeling Tools Are Converging Into Suites)’ 참조)

의미론(Semantics)
UML 2.0을 개발하려는 대다수의 노력은, 모델링 구성과 이의 의미론과 관련한 더 많은 세부 내역을 제공하려는 것에 집중되어 왔다. 이와 같은 작업은, 이의 토대와 마찬가지로 명료한 모델링 표기법을 요구로 하는 OMG MDA(Model-Driven Architecture: 모델 주도형 아키텍처)를 지원하는데 필수적이었다고 하겠다. 이 작업은 UML 2.0 인프라 명세의 형태인 메타 모델 정의로 귀결되어, UML과 OMG의 MOF(Meta-Object Facility: 메타 모델 정의 언어) 및 CWM(Common Warehouse Metamodel: 공통 웨어하우스 메타모델) 구성의 공통 핵심을 제공한다.

현재의 UML 2.x 명세는, 당 의미론이 많은 분량의 명세 문서를 통해 배포되고 있기는 하지만, 보다 의미론적으로 상세한 내역을 제공하고 있다. UML 메타모델은 복잡하며, 종종 고찰하기에 어려워서, 이의 의미론을 이해하는 것을 힘들게 한다. 또한 이 명세는 여전히 도구 벤더와 모델 언어 설계자에게 해석이라는 무거운 짐을 지우고 있다. 모델 주도형 개발을 지원하길 원하는 벤더들은, 당 명세 및 의미론 구조의 복잡성을 감안했을 때, 모델 변환 도구 개발에 있어 엄청난 작업을 직면하게 될 것이다.

최종사용자들은 모델링 또는 변환 프로세스를 제한하는 벤더별 특정 확장 또는 명세 해석에 주의를 할 것이 권고되는 바이다.

추상화(Abstraction)
OMG는 기능이 풍부한 일반 모델링 표기법과 도메인 특정 기능 간의 균형을 유지해야만 한다. 이는 Microsoft와 같은 일부 업체에서 자동화 된 개발에 대한 UML의 가치에 의문을 제기하도록 야기하였고, DSL 개념이 부상하도록 초래 하였다.

DSL의 지지자들은 또한, UML 객체 지향 모델의 근원을 고려했을 시, 이의 추상화 수준이 실제 생산성 획득을 제공하기 위한 구현에 너무 근접해 있다고 주장하고 있다. DSL 솔루션은 도메인 전문가와 동일한 추상화 수준으로 모델링 구성을 제공하고 있고, 여기에는 시스템 개발을 자동화하는데 필수적인 해당 규칙, 프레임워크, 패턴, 변환 등이 포함된다.

DSL의 도입은 간과되어서는 안 된다. 특정 도메인이나 제품을 위해 모델링 표기법을 개발하는 것은 상당한 노력과 전문성을 요구로 하나, 이의 생산성 획득은 일단 DSL이 생산에 들어갈 경우 높은 수준이라 할 수 있다.

UML은 사용자와 도구 벤더들에게 표기법을 재단하는 다수의 상이한 방식을 제공하는데, 여기에는 의미적 변형점(semantic variation point), 프로파일 및 MOF가 포함된다. UML 명세에 더하여 이를 기반으로 DSL을 개발하는 것은, 일부 한계점을 가지고 있긴 하지만, 대부분의 상업 조직에 있어 보다 실용적인 접근법이라 할 수 있을 것이다. 개발에 있어 생산 라인 접근법을 취하길 바라는 이들과, UML 확장의 한계점을 극복할 수 없는 이들은 UML을 기반으로 하지 않은 DSL 솔루션을 고려할 것이 권고된다.

요약(Summary)
UML은 통합 프로세스 또는 기민성과 같은, 적합한 OOA&D 방법과 더불어 사용될 시와, SODA의 최상 관행과 결합될 시, 20%의 노력 감소가 획득되는 것과 함께, 실질적인 이점을 제공할 수 있다.(확률 0.7) 보다 상세한 내용을 위해, ‘개발 노력을 감소하는 SODA(SODA Reduces Development Efforts)'를 참조하라.

대규모 이니셔티브의 50%가 2008년까지 전통적 방법론 사용을 지속하긴 하겠지만(확률 0.8), 2007년까지, 80%의 조직들이 OOA&D 방법론의 일부를 적용하게 될 것이다(확률 0.8). 이를 위해 조직들은 OOA&D와 UML, 비즈니스 프로세스 분석과 데이터 모델링/설계를 이을 수 있는, 모델링 및 도구 전략을 개발할 것이 요구될 것이다.

UML 2.0은 OMG에 있어 주요 과제였기 때문에, 또 다른 대형 배포(UML 3.0)는 2010년까지는 이루어 지지 않을 것으로 보인다.(확률 0.7) 그러나, UML은 점진적으로 발전을 지속할 것이다. 단기에서 중기에 걸쳐, OMG는 핵심 도메인 및 기술, 특히 OMG MDA를 가능케 하는 것에 대한 UML 프로파일 제공에 중점을 둘 것이다. OMG는 또한 UML을 기반으로 한 DSL 사용을 촉진할 것이며, 같은 맥락에서 도구 벤더들과 오픈 소스 커뮤니티는 UML 특화를 개발할 것으로 보인다.

추천 자료
l ‘비즈니스 프로세스 분석 도구에 대한 매직 퀀드런트, 2006년(Magic Quadrant for Business Process Analysis Tools, 2006)’

l ‘스위트로 병합되고 있는 BPA, UML, 데이터베이스 설계 모델링 도구(BPA, UML and Database Design Modeling Tools Are Converging Into Suites)’

l ‘개발 노력을 감소하는 SODA(SODA Reduces Development Efforts)'

용어 및 약어 정의
AMD 모델 주도형 아키텍처(Architecture Model Driven)
ARAD 아키텍처 급속 애플리케이션 개발(Architecture Rapid Application Development)
BPA 비즈니스 프로세스 분석(business process analysis)
BPM 비즈니스 프로세스 관리(business process management)
BPMN 비즈니스 프로세스 모델링 표기법(business process modeling notation)
CWM 공통 웨어하우스 메타모델(Common Warehouse Metamodel)
DSL 도메인 특정 언어(Domain Specific Language)
ERD 실체 관련도(Entity Relationship Diagrams)
MDD 모델 주도형 개발(Model-Driven Development)
MOF 메타모델 정의 언어(Meta-Object Facility)
OCL 객체 제약 언어(Object Constraint Language)
OMG 객체 관리 그룹(Object Management Group)
SODA 서비스 지향 애플리케이션 개발(service-oriented development of applications)
UML 통합 모델링 언어(Unified Modeling Language)

주석 1. 객체 관리 그룹
OMG는 상업, 정부, 학계 조직을 대표하는 400여 회원을 가진 비영리 조직이다. OMG 명세에는 UML, CORBA, MDA CWM, BPMN이 포함된다. OMG의 회원으로는 IBM, HP, Borland, Oracle, Bank of America, Boeing 등이 속해있다.

OMG UML 명세는 하기와 같은 표준으로 구성되어 있다.
l UML 2.0 상부 구조(superstructure) - UML을 모델링 하는데 요구되는 모델링 구성, 의미론, 표기법을 규정

l UML 2.0 하부 구조(infrastructure) - UML 상부 구조 명세를 개발하는데 사용되는 핵심 토대 계층 정의

l UML 2.0 객체 제약 언어(OCL) - 사전 또는 사후 조건 및 불변 사항을 정의하는데 사용하는 정형화 된 제약 언어
UML 2.0 다이어그램 상호 교환 - 그래픽 정보 교환

월요일, 8월 07, 2006