2010-07-27 2 views
5

원활한 동기화가 가능한 UML 라운드 트립 엔지니어링 도구는 무엇입니까?코드와 완벽하게 동기화 된 UML 모델을 완벽하게 유지할 수있는 도구가 있습니까?

합리적인 슈트입니다. 그러나 그것은 드로잉에서 매우 비싸고 clunky한데 (로즈 데이보다 나빴습니다) 대부분의 부서에 도달하지 못했습니다.

무료 란 무엇입니까 Bouml 환상적인 일을하는 것 같습니다. 사용하기에는 너무 거추장 스럽습니다. 그것은 많은 기능을 가지고 있으며 무료입니다 (!), 매우 빠르며, 리버스 엔지니어들은 C++을 매우 잘 처리합니다. 또한 아주 멋진 시퀀스 다이어그램을 포함하여 다이어그램을 지원합니다. 인터페이스는 아직 완성되지 않았지만 (가장 오른쪽 모니터의 대화 상자가 계속 열림) 매우 유능한 제품의 시작을 알 수 있습니다. 인터페이스가 너무 뼈가없고 많은 노력을 들여야하는 것은 수치 스럽습니다. 아마도 저자가 대부분의 시간을 실제 기능에 집어 넣었 기 때문일 수 있습니다. Bouml을 제품 수명주기 전반에 걸쳐 사용해 본 경험이 있습니까? 비싼 MagicDraw, 매우 지원하면서도 합리적인 가격 엔터프라이즈 설계자하고 매끄러운 보이는 비주얼 패러다임

. 이 중 Visual Paradigm만이 프로젝트의 C++ 헤더를 리버스 엔지니어링하는 데 문제가있었습니다.

MagicDraw에는 이상하고 오래된 느낌이 있습니다. 복잡한 C++ 프로젝트의 왕복 엔지니어링이 원활하게 진행되는지 여부는 아직까지 알 수 있지만 리버스 엔지니어링 자체는 훌륭하게 수행됩니다. 그들은 다국어 버전으로 1800 달러 이상을 원하기 때문에 Rational 도구와 비슷한 가격이 책정됩니다.

엔터 프라이즈 아키텍트은 훨씬 더 비싸지 만 가장 완벽한 기능 일 것 같습니다. 그것은 완벽하게 분석하고 C++을 생성합니다. 주석과 서식도 그대로 유지됩니다. 훌륭한 교육 자료가 있습니다. 그러나 Objective-C는 처리하지 못하므로 iOS 및 Mac OS X 혼합 코드 프로젝트에 유용하지 않습니다. 자동 시퀀스 다이어그램 생성은 훌륭하게 들리지만 Windows .NET 프로젝트에서만 작동합니다.

Visual Architect (다중 언어 2-way의 경우 $ 800 이상)은 필자가 만났던 가장 멋진 소프트웨어 모델링 도구입니다. 일부 왕복 문제가 남아있을지라도 손으로 모델을 구축하는 데는 즐거움입니다. 로즈은 어떤면에서 좋았습니다. 커서에서 필요한 도구를 바로 가져올 수있는 직관적 인 방법을 제공합니다. 그러나 제가 언급했듯이 현재 모델을 소스와 동기화시키는 것이 목표에 미치지 못합니다. 그리고 종종 수입이 제대로 작동하지 않았거나 중복 된 클래스가 만들어 졌음을 (심지어 같은 이름으로) 알려주지도 않습니다. 또한 대화 상자를 사용하여 메시지 매개 변수를 입력하는 것이 어렵지만 다른 매개 변수는 다이어그램에서 바로 변경할 수 있습니다. (무료 Bouml은 MagicDraw와 마찬가지로 뛰어납니다.)

다중 언어 (Java, C++, C#, ObjC++, Python, Ruby, SQL) 왕복 엔지니어링 툴을 발견 한 사람이 있습니까? (메시지의 커스텀 매개 변수와 같은) 커스터마이징이 처리되는 실제 프로젝트에도, 다음 소스 코드 임포트에 의해 지워지지는 않을까요?

그리고 생성시 모든 서식과 주석이 완전히 보존됩니다. 닫기만으로는 충분하지 않습니다. 툴이 소스 코드 포맷팅을 엉망으로 만드는 경우 개발자는 소스에서 툴을 실행시키지 않을 것입니다.

답변

3

Peter Coad의 Together-J는 하나의 IDE (따라서 이름)에서 다이어그램과 편집기를 함께 사용했습니다. 다이어그램 및 코드 변경 다른 방법으로도 마찬가지입니다.

UML 도구와 편집기 모두 약간 느립니다. 나는 오늘날의 기계가 저력을 잃어 버렸고 그것을 가장 유리하게 보여주지 못했다고 생각한다.

저는 Peter Coad가 그것을 Borland에 판매했다고 생각합니다. 볼랜드가 IDE 사업에서 벗어난 것처럼 보입니다. 여전히 here을 얻을 수 있습니다.

IntelliJ가 최고의 Java IDE라고 생각합니다. 당신은 그것을 사용하여 멋진 UML 다이어그램을 생성 할 수 있습니다.

진짜 질문은 UML이 왜 그렇게 중요한 이유입니까? 나는 코드를 갖고 싶어. 필자는 일반적으로 아이디어를 얻고 단위 테스트로 코드를 작성한 다음 문서화를 위해 리버스 엔지니어링하기에 충분한 UML을 수행합니다. UML 다이어그램을 디버그하거나 테스트 할 수 없습니다. 작업 코드를 갖는 것이 더 좋습니다.

+0

예, Together-J는 상당히 뛰어 났지만 말처럼 오늘의 기계에는 너무 느립니다. 분할 화면 다이어그램/코드 오버/언더는 대단한 특수 효과 였지만 코드에 화면 공간을 사용하고 싶다는 사실을 빨리 깨달았습니다. : -> 그렇다면 UML이 왜 중요한가요? 그것은 장면의 설명을 읽는 대신 그림을 보는 것과 같습니다. 코드의 정보를 특정 목적을위한 필수 요소로 추출합니다. 중요한 정보를 다른 건축가, 구현 자에게 전달하기위한 것입니다. 최신 상태 인 경우에만 유용합니다). 따라서 "끊김없는"요구 사항. – Rubski

+0

나는 UML의 배경을 잘 알고있다. 나는 그 가치에 동의하지 않는다. 나는 아이디어를 스케치하는데 좋다고 생각한다. 복잡한 시스템에 대한 완벽한 표현은 코드를 한눈에 볼 때처럼 그림에서 쉽게 이해할 수 없게됩니다. – duffymo

+0

당신의 요점을 봅니다. 그래서 명확히하기 위해, 내 질문은 시스템에 대한 UML 다이어그램의 자동 생성이 아니라 건축가가 생성 한 몇 가지 다이어그램을 유지할 도구가 있는지 여부와 관련이 있습니다. 아마도 실제로 시스템의 이해를 돕고, 손으로 만들어진 방식으로 중요한 상호 작용을 문서화하고, 외래 클래스, 작업, 매개 변수 및 상호 작용을 제외시키는 것입니다. 따라서 동기화되는 것은 모델링 된 몇 가지 상호 작용과 물론 이름, 유형 등입니다. 입력 해 주셔서 다시 한 번 감사드립니다. – Rubski

2

Bouml ... 가장 기본적으로 사용되어야하는 모니터 Bouml에 표시하는 다중 모니터 구성에서 오른쪽 모니터

에 대화 상자가 Bouml에 대한 다른 당신이 지속적으로 열립니다 그냥 아주 큰 모든 모니터를 포함한 모니터. 물론 기본 모니터를 나타내는 것은 다른 모니터를 사용할 수 없다는 것을 의미하지 않으며 원하는 위치에서 대화 상자/기본 창을 이동할 수 있습니다. 사용할 기본 모니터의 정의는 the environment dialog을 통해 수행됩니다.

0

Enterprise Architect는이 작업을 훌륭하게 수행하는 것으로 보입니다. 당신이 지적한대로 합리적인 가격이 책정됩니다. 또한 다이어그램 및 문서를 생성하고 소스 코드를 가져 오거나 내보낼 수도 있습니다.