jude-community는 무료이고, reverse engineering이 됩니다.
더 많은 기능을 지원하는 jude-professional도 있습니다만, 30일 평가판이후 라이센스 등록을 요구합니다.(그러나 실행하기 전에 시스템의 날짜를 평가판 사용기간의 날짜로 바꾸어 실행하는 것정도는 할 수 있네요)
자체로 몰론 GUI의 어플리케이션입니다만, 이 둘다 api를 제공하고 있습니다. 이 API로, save한 .jude파일을 읽거나 edit하는 것이 가능합니다. api는 jar의 형태로 제공하고 있습니다.
이를 사용해서 java로 save한 jude파일을 제어할 수 있습니다만, 이러한 작업이라면 역시 groovy를 사용하는 쪽이 더 매력적이라고 생각합니다.
다음은 groovy를 사용하여 jude의 api에 접근하는 방법을 나타냅니다.
우선 groovy를 실행할 때, API를 함께 load하도록 합니다.
>edit c:\Program Files\Java\groovy\conf\groovy-starter.conf
해서 다음을 추가
load /Progra~1/JUDE-P~1/*.jar
그리고 이하는 groovy script 소스입니다
class_listup.groovy
import com.change_vision.jude.api.inf.project.*
import com.change_vision.jude.api.inf.model.*
scriptName = System.getProperty("script.name")
if (args.length < 1) {
println "groovy ${scriptName} [jude fileName]"
return
}
def printClasses(packageObj) {
packageObj.ownedElements.each {
if (it instanceof IClass) {
println it.name
}
else if(it instanceof IPackage) {
printClasses(it)
}
}
}
def pro = ProjectAccessorFactory.projectAccessor
pro.open(args[0])
printClasses(pro.project)
pro.close()

1 comment:
물론 argouml 이라는 무료 툴도 있습니다만,
http://argouml.tigris.org/
저는 jude쪽에 점수를 더 주고 싶군요.
그런데 argouml은 ava, C++, C#, PHP4 and PHP5의 Code Generation을 해주는 기능이 있네요. 사용해 보신 분은 코멘트 부탁합니다.
Post a Comment