토요일, 12월 29, 2007

소스분석에 대한 고찰

누군가의 소스 분석하려면... 아무리 잘 만들어진 것이라 할지라도, 대략 난감하기 이를때 없다.

검색과 경험을 통해 몇가지 방안을 소개
- eclipse(eclipse.org)의 call hierarchy (ctrl + alt + h)
어디에서 자신을 호출 한것과 사용하는 리스트 보여줌.

- RSA(Rational Software Architech 7):
아시다 싶이 IBM에서 나온 Eclipse기반 개발 툴이지요. 역공학이 가능합니다. 좀더 설명하자면, visual 하게 class diagram을 볼수 있고, source와 diagram이 동기화 되고 클래스 전체 구조를 볼수 있어 좋은 듯 합니다. 하지만, 인스톨 하기 쉽지않고, 약간의 사전 지식이 있어야 사용할수 있습니다. 위에 있는 call hierarchy와 같이 사용하면 그나마 좀 수고를 덜 수 있습니다.

- doxgen(http://www.stack.nl/~dimitri/doxygen) : 문서가 없다면 문서를 만들어 주고 정리해 줍니다만, 소스 doc작업이 안되어 있다면 허당입니다. 소스상에 doc 작업이 되있다면 쉽게 해볼수 있는 작업이 되겠습니다. 소스에 주석을 안달려고 노력하신 분이 있다는 것에 한숨입니다만..

- Magnum1.26(http://blog.naver.com/joneyrio) : 인스톨없이 쉽게 사용하고 visual하게 보여줍니다. 잠깐 잠깐 몇개의 클래스 보기에는 괸찮은 툴로 생각됩니다. 위에있는 rsa처럼 막대한 기능은 없지만, 작은만큼 그때 그때 편하게 사용할 수 있을것으로 생각됩니다.

- mind map을 이용한 소스분석(http://blog.naver.com/mis8855?Redirect=Log&logNo=150016760089)
저도 이것을 사용합니다만, 이것 저것 기억하고 정리해야할 부분이 많은 것을 효과적으로 정리하게 해줍니다. 소스 분석에서도 예외는 아닙니다. 저는 mind manager pro 7.0을 사용하고 있습니다.

- 기타 상용툴이 있겠습니다만,.. 베타라도 사용해 보기 쉽지 않네요.

제가 사용하는 플러그인
- eclipse europa & myeclipse 6.0
- OOP와는 별로 친하지 않지만 현실세계의 영원한 큰 형님이신 ERD도 필수 이겠습니다.( http://www.azzurri.co.jp)
- java byte code 분석 밎 보기위해(bytecode outline plug-in)
- 버그검색 밎 일관성있는 관리를 위해(FindBugs Plug-in)
- decompile을 편하게 하기위한 jadclipse
- svn과 trac 연동을위한 플러그인들
- vocibulary plug-in
- Log4E가 빠졋네요

그 다음에 작업별 workspace(회사용1,2,3.., 공부workspace, project1,2)가 따로 존재하고, eclipse version도 같은 이유로 몇개(?) 존재합니다.

댓글 없음:

댓글 쓰기