Wednesday, December 27, 2006

 

YanneDesigner 3

YanneDesigner는 하나의 실험이다. 동기는 C++를 이용한 OOP(Object Oriented Programming)을 좀 더 쉽게 하기 위해서였다. 솔직히 말하면, 귀찮은 잡일(Chore)들을 컴퓨터가 자동으로 수행해 줬으면 편하겠다는 생각에서 만든 것이다. Object들은 "CLASS"로 모델되고, Member Variable이나 Method들을 GUI 상에서 직접 입력할 수 있도록 만들었다. (물론 이러한 프로그램이 처음은 아니다. 인터넷을 검색해 보면 유사하면서도 더욱 강력한 도구들을 많이 찾아볼 수 있을 것이다.)

이 작은 실험은 나에게 많은 것을 가르쳐줬다. 표현 형태가 Text냐 아니면 Diagram이냐의 차이만으로도 큰 변화가 발생하는 것이다.

1. Text Code의 경우, 한달 정도 공백이 지난 후 다시 프로그램을 짜려면 며칠간 코드를 이리 저리 뒤적거리면서 학습을 해야 했다. 하지만 Graphical 하게 표현된 경우에는 몇 시간만에 Review를 마치고 작업을 시작할 수 있었다.

2. Diagram으로 표현된 코드는 S/W Architecture 설계에 많은 신경을 쓰게 만든다. 왜냐하면 눈에 그 구조가 드러나기 때문이다. Class hierarchy를 어떻게 설계할 것인지, member variable, member method가 과연 필요한지 등등에 대한 깊은 고찰을 하게 됨으로써 높은 품질의 코드를 작성하는 것이 가능하였다.

3. 그리고 기존의 코드를 재사용하는 것이 용이해졌다. Diagram 표현으로 인해 Architecture 레벨에서 생각을 진행하게 되므로, 예전에 만들어 놓았던 어떤 Component가 재사용될 수 있을지에 대한 판단을 좀 더 명확하게 할 수 있었던 것 같다. 실제 Import 작업은 예전에 작성해 놓았던 Diagram 도형을 현재 Design으로 옮겨오는 것이 다이다.

YanneDesigner 실험은 아주 초보적인 것이다. 하지만 그 효과는 생각보다 컸다. 이를 좀 더 발전시켜 Formal한 S/W Architecture 모델을 기술할 수 있는 Framework을 만들고, 그것에 의해 기술된 S/W Specification을 자동으로 코드로 변환할 수 있다면 얼마나 좋을까? 처음부터 인공지능 코드 작성기를 기대하는 것은 무리일 것이다. 하지만, 사용자가 제공해 주어야 하는 정보를 천천히 줄여나가면서, 기계가 수행하는 작업을 늘려 간다면 점진적인 도구의 향상을 볼 수 있을 것이다. 그리고 언젠가 매우 똑똑한 S/W Modeling/Synthesis 도구가 만들어지게 될 것이다. (현재는 거의 90% 이상의 정보를 프로그래머가 제공해 주어야 한다..)


Comments: Post a Comment



<< Home

This page is powered by Blogger. Isn't yours?