Clean Code hochulshin.com

Design - 좋은 UML 툴 추천

2015-07-21

UML diagram 툴 경험

지금까지 많은 UML diagram 툴들을 써왔다. 소프트웨어 디자인을 잘하려면 모델링을 잘해야 한다고 생각해서 회사에서 제공하는 비싸고 전문적인 디자인 툴부터 가벼운 온라인 버전까지 많은 툴들을 프로젝트를 위해 사용해 보았다. 개발 경력이 쌓여갈수록 툴에 대한 요구사항도 까다롭게 되어 툴들을 다양하게 써보았다. UML 툴들 중 최악은 회사 SE 팀에서 추천한 최신 기능과 표준 스펙으로 무장한 쇳덩이 툴이었다. 툴은 툴일뿐 너무 많은 기능과 익숙치 않은 표준은 개발자에게 전혀 도움을 주지 못한다.

visual studio ultimate

제일 좋다고 생각했던 것visual studio ultimate가 제공하는 모델링 툴이다. 사실, 개발자 간, 혹은 매니저와의 커뮤니케이션을 위해서 가장 많이 사용되는 것은 layered architecture이다. 안타깝게도 많은 UML 툴들이 layered architecture를 제대로 지원하지 않기에 Powerpoint를 이용해 그리곤 했다. 그런데 visual studio ultimate를 사용하면 layered architecture diagram을 쉽고 빠르고, 이쁘게 그릴 수 있다. 그것만으로도 충분히 좋은 툴이라고 생각하는데, 다른 diagram을 그리는 것도 쉽고 편하다.

umlet

무료 uml 툴인 umlet은 java기반으로 만들어져 Windows, OSX, Ubuntu에서 동작하며, markdown스러운 접근법을 사용하고 있다. 모든 종류의 diagram을 지원한다.

  • Eclipse plugin의 경우 property를 수정하지 못하는 문제가 보고되었다. 혹시 문제가 있다면 standalone버전을 사용하자.

websequencediagrams

온라인 UML 툴인 websequencediagrams을 써보고 Sequence diagram만은 websequencediagrams이 최고라는 생각이 들었다. text를 통해 diagram을 그린다는 마크다운스러운 접근법과 직관적인 사용법이 너무나 맘에 들었다. 많은 모델을 만들고 재사용해야 하는 대규모 프로젝트에는 적당하지 않지만, 생각을 빠르게 정리하고 개발자간 의사소통을 위한 용도에는 딱 맞는 툴이라고 생각된다. 무료로 제공되는 기본 기능만으로도 충분히 만족감을 느낄 수 있었다.

objectaid

objectaid는 강력한 uml diagram 자동 생성 tool이다. code를 통해 uml diagram을 생성해주며, eclipse plugin 형태로만 사용되고, 지원되는 언어도 내가 알기로는 Java가 유일하다. 그리고 class diagram은 거의 무료로 사용할 수 있지만, sequence diagram부터느 유료이다. 이런 저런 단점에도 불구하고 매우 강력한 diagram 자동 생성 기능을 가지고 있다. 예전에 사용했던 rapsody의 그것보다 더 깔끔하면서도 강력한 기능인듯하다. 유료로 사용하기를 원하다면 반드시 evaluation version을 먼저 사용후에 만족할 경우 구매를 진행하도록 하자.

정리

UML 툴 중 설계를 위해 추천할 만한 것은 훌륭한 UI, 적당한 수준의 기능과 재사용성을 갖춘 visual studio ultimate가 제공하는 모델링 툴이다. 각종 uml 다이어그램을 지원하는 무료 tool을 찾고 있다면 umlet을 사용하자. sequence diagram에 촛점을 맞춘다면, websequencediagrams를 추천한다. (회사에서 보안상의 이유로 사이트 접근을 막지 않는다면 말이다.). 코드로부터 uml diagram을 자동 생성하는 것이 꼭 필요하다면 objectaid를 참고하기 바란다.


Comments