각종 언어들로 기술 세계가 복잡해져 가고있다. 프로그래밍 언어만 하더라도 고급 언어, 저급 언어, 객체지향 언어, 절차 언어, 스크립팅 언어, 마크업 언어 등등 그 종류를 따져보자면 더 많이 열거할 수도 있다. 앞에서 언급한 어떤 언어에도 속하지는 않지만 UML(Unified Modeling Language)은 시스템을 설계하고 의사소통하는데 사용되는 표준 개념(시각적 언어라 표현할 수도 있음)이라고 할 수 있다. 의사소통 수단으로 다이어그램을 사용하고 텍스트를 지원하는 UML을 사용하면 팀 구성원들이 시스템을 성공적으로 개발할 수 있도록 협력작업을 하는데 큰 도움을 받을 수 있다. 큰 그림만 본다면 UML은 표현력이 풍부하고 다양한 언어이다. 근래 들어와서는 UML이 거의 모든 소프트웨어 개발 제품의 제조사로 추천 받으면서 소프트웨어 시스템을 문서화하고 명세하는 업계 표준으로 자리잡아가고 있다. 이에 오라일리에서는 독자들에게 UML을 소개하고 언어를 마스터하는 절차를 차근차근 일러주는 『Learning UML』이란 책을 출간하였다.
UML을 다루고 있는 대부분의 문서들은 언어가 작동법을 확실하게 이해시켜주는 것이 아니라 방법론이나 프로세스만을 중점적으로 다루고 있다. 하지만 이 책 『Learning UML』은 효과적이고 성공적으로 UML을 적용하는 방법을 중점적으로 다루고 있다. 일단 이 책의 전체적인 내용과 구성에 대해 살펴보자. 독자들은 시스템의 구조를 모델링하는데 UML이 어떻게 사용되는지부터 배우게 된다. 다음으로 핵심 UML 개념, 특히 일반 (클래스) 대 특정 (객체)에 대한 개념이 챕터에 도식화되어 있다. 그러면서 독자들은 시스템의 기능을 모델화 하기위해 유즈-케이스 다이어그램을 사용하는 방법을 익히게 된다. 마지막으로 물리적 환경에서 시스템이 배치되는 방식으로 컴포넌트와 배치 다이어그램이 모델에 사용되는 방법을 익힌다.
이 책은 각 챕터마다 점진적으로 핵심 UML 개념을 익혀가는 예제 중심의 접근 방식을 취하고 있으며 점점 더 어려운 예제로 주제가 심화되어 간다. 또한 프로젝트 관리 시스템 케이스 스터디를 수록하고 있어, UML을 어떻게 읽고, 이해하고, 쓰는지, 적용하는 방법까지 상세하게 일러줌으로써 UML을 익힐 수 있게 구성되어 있다. 물론 예제는 독자들의 실력을 갈고 닦을 수 있도록 도움을 주기위해 수록되었다.
독자들이 이 책을 독파하고 나면, 자기들이 의사소통하기 원하는 것, 어떤 개개의 다이어그램을 강조해야 하는지에 기본을 둔 다양한 UML 다이어그램과 요소 사용법을 습득할 수 있게 될 것이라고 하면서 저자는 다음과 같이 덧붙였다. “기본 배경지식 없이 보았을 때, UML이란게 뒤죽박죽 얽혀있는 상이한 종류의 다이어그램이란 생각이 들지만 이 책을 보고 나면 언어 이면에 놓인 원리를 바라보는 통찰력은 물론이고 어떻게 해서 각기 다른 언어가 서로 조화를 이루게 되는지에 대해서도 훤히 알게 될 것이다. UML을 적용하면 서로 다른 다이어그램이 더 효율적이게 될 수 있다.”
UML을 배워서 적용해보고자 하는 사람이라면 이 책을 꼭 한 번은 봐야 할 것이다. 요구사항을 명세해야 하는 엔드 유저나 분석가, 조건을 충족시켜야 하는 시스템을 광범위하게 설계해야 하는 분석가, 디자이너, 설계한 것을 구현시켜야 하는 개발자, 요구사항에 맞게 시스템이 잘 동작하는지 검증해야 하는 테스터, 시스템 개발력을 조율해야 하는 메니저들을 비롯하여 다양한 사람들에게 추천해줄 책이다. 이 책을 보기 전에 특별하게 마스터 해둘 학습사항이나 기술은 없다. UML에 관심있는 사람이라면 누구나 볼 수 있는 책이다.