PMDEXIT 프로젝트 용어사전

UML

Unified Modeling Language · UML

객체지향 분석·설계를 표준 다이어그램으로 표현하는 통합 모델링 언어.

UML이란 무엇인가

UML(Unified Modeling Language, 통합 모델링 언어)은 객체지향 분석·설계의 결과를 표준화된 다이어그램으로 표현하기 위한 시각적 언어다. 자연어 명세가 사람마다 다르게 해석되는 한계를 줄이기 위해, 시스템의 구조와 행위를 약속된 기호와 표기로 일관되게 그려낸다.

1990년대 중반 서로 경쟁하던 여러 객체지향 방법론의 표기가 하나로 수렴하면서 정립되었고, 이후 국제 표준으로 자리 잡아 산업 전반의 공통 언어가 되었다. 즉 UML은 특정 프로그래밍 언어나 개발 도구에 종속되지 않는, 설계 의도를 전달하는 중립적 매개체다.

클래스도유스케이스시퀀스도UML구조 모델행위 모델
UML 다이어그램의 두 갈래

구조 모델과 행위 모델

UML 다이어그램은 크게 시스템의 정적 구조를 표현하는 부류와 시간에 따른 동적 행위를 표현하는 부류로 나뉜다. 구조 측면에서는 클래스 다이어그램이 객체의 속성·행위·관계를 그려 시스템의 골격을 보여준다.

행위 측면에서는 유스케이스 다이어그램이 사용자와 시스템의 상호작용 범위를 정의하고, 시퀀스 다이어그램이 객체 사이의 메시지 흐름을 순서대로 풀어낸다. 하나의 시스템을 여러 관점에서 동시에 바라보게 함으로써, 한 장의 그림으로는 드러나지 않는 누락과 모순을 교차 검증할 수 있다.

분석 단계의 UseCase 모델

분석 단계에서 가장 먼저 손에 잡히는 산출물은 대개 유스케이스 모델이다. 이는 시스템이 외부 행위자에게 어떤 기능을 제공하는지를 사용자의 언어로 정의해, 요구사항의 경계를 명확히 긋는 역할을 한다.

유스케이스는 내부 구현을 숨긴 채 무엇을 하는지에 집중하므로 발주사와 수행사가 같은 그림을 보며 합의하기에 적합하다. 이 합의된 기능 단위가 이후 설계에서 클래스와 객체 협력으로 구체화되며, 분석에서 설계로 자연스럽게 이어지는 출발점이 된다.

유스케이스가 부실하면 이후 모든 모델이 함께 흔들린다.

단계주 다이어그램역할
분석유스케이스기능 범위 정의
설계클래스도구조 골격 설계
검증시퀀스도행위 흐름 확인
단계별 UML 산출물

ooCBD 방법론과의 연결

국내 SI 현장에서 UML은 객체지향 컴포넌트 기반 개발, 즉 ooCBD 방법론과 결합되어 사용되는 경우가 많다. ooCBD는 분석·설계·구현 산출물을 단계별로 정의하는데, 그 표기 수단으로 UML 다이어그램을 채택한다.

유스케이스로 범위를 잡고, 클래스 다이어그램으로 구조를 설계하며, 시퀀스 다이어그램으로 행위를 검증하는 흐름이 방법론의 산출물 체계에 그대로 녹아 있다. 따라서 UML을 단순한 그림 도구가 아니라 방법론이 요구하는 품질 산출물을 생산하는 표준 언어로 이해해야 실무 맥락이 잡힌다.

문서가 아니라 소통의 도구

UML의 가치는 다이어그램의 정교함 자체가 아니라 이해관계자 사이의 오해를 줄이는 데 있다. 설계 의도를 말로만 전달하면 개발자마다 다른 구조를 만들지만, 약속된 표기로 그리면 동일한 그림을 공유하게 된다.

다만 모든 다이어그램을 완벽하게 그리려는 욕심은 오히려 산출물 작성에 일정을 빼앗기는 역효과를 낳는다. 시스템의 핵심 협력 구조와 위험한 흐름을 골라 집중적으로 모델링하고, 나머지는 코드와 함께 가볍게 관리하는 균형이 현실적이다.

결국 UML은 검토와 합의를 거쳐 살아 있을 때 의미를 가진다.

설계 검증과 변경의 기준선

잘 작성된 UML은 설계가 요구사항을 빠짐없이 반영했는지 점검하는 기준선이 된다. 유스케이스에 정의된 기능이 클래스와 시퀀스에 대응되는지를 추적하면 누락된 처리나 책임 없는 객체를 조기에 발견할 수 있다.

또한 변경 요청이 들어왔을 때 어떤 다이어그램의 어느 부분이 영향을 받는지를 먼저 그려보면, 변경의 파급 범위와 비용을 사전에 가늠할 수 있다. 이렇게 분석부터 변경관리까지 일관된 모델을 유지해야 설계 품질이 추적 가능한 상태로 관리된다.

관련 용어