지금까지 프로그램 설계를 위해 몇 년에 걸쳐 UML 툴을 이것저것 써봤는데, 정말 마음에 꼭 드는 툴은 하나도 없었습니다. 기억나는데로 적어보면 Visio, StarUML, ArgoUML, Visual Paradigm, NetBeans UML plugin, Enterprise Architect, Metamill, PowerDesigner 등을 잠깐씩 만져봤는데, 라이센스 문제로 평가판을 받아서 써 본 툴이나 잠깐 구경만 해본 툴들은 장단점을 제대로 파악하기는 어렵고, 제대로라고까지 말하긴 뭐하지만 좀 오래 붙잡고 써 본 툴들은 Visio, StarUML 정도인것 같습니다. Visio는 그냥 드로잉 툴이라 UML 그리기가 여간 괴로운게 아니고, StarUML은 개발이 중단된 상태라 계속 사용하기가 좀 그렇죠. 이 툴들은 모두 UML로 직접 다이어그램을 그려가며 설계하는 툴들인데, 제 경우엔 이런 방식으로는 설계가 잘 안되더라구요. 반드시 설계 과정에서 좀 꼬이게 됩니다. 그래서 의사 코드(pseudo code)를 약간 작성하고, 이를 토대로 다이어그램을 그리고, 이 과정에서 나오는 문제점을 다시 의사 코드에 반영하고, 이를 다시 다이어그램에 그리고.. 하는 식으로 작업을 하게 됩니다. 그래서 제 경우엔 UML 설계가 현재의 툴들로는 좀 불편하고 번잡한 작업이 되어버립니다. 아마 제가 설계하는 방식이 UML과 딱 맞지는 않아서 그렇겠죠. 그렇다면 저 같은 사람에게 적합한 기능은 무엇일까 찾아봤습니다. 툴 상에서 UML 다이어그램과 실제 코드가 연동되어 동작하면서 다이어그램을 수정하면 바로 코드에 반영되고, 역으로 코드를 수정해도 바로 다이어그램에 반영되는 방식을 round trip engineering이라고 부르는데, round trip engineering이 제대로 구현된 툴은 상당히 고가이고, Java나 C#과 같이 이미 기반 라이브러리가 단단하게 구축되어 있고 상당부분 추상화된 언어가 아닌 다음에는 잘 동작하지도 않습니다. 제 경우엔 C++ 프...