중요한 개발은 종종 유추의 결과로 생긴다. 제대로 이해하지 못하고 있는 주제를, 좀 더 잘 이해하고 있는 무언가와
비교함으로써 주제를 잘 이해할 수 있게 하는 방법으로 비유를 사용하는 것을 "모델링" 이라고 한다.
일반적으로 모델은 생생하고 포괄적인 개념으로 이해될 수 있는 힘이 있다. 모델은 특성과 관계, 그리고 추가적인 영역을
제공하고 때때로 비유가 지나치게 확대되는 경우에 오해를 불러일으킬 수 있는 영역을 제안하기도 한다.
※ 비유에 사용하는 모델을 지나치게 확대하는 것은 위험하다.
비유는 모든 사람들이 이해할 수 있는 당연한 행위라는 장점을 가지고 있기 때문에, 비유로 인해 불필요한 의사 소통이나
오해가 줄어들고 학습과 교육의 속도가 빨라진다. 실제로, 비유는 개념을 내재화하고 추상화하는 방법이며, 좀 더 높은 수준에서 생각하고 낮은 수준에서의 실수를 피하도록 해준다.
이러한 비유의 특징은 아래와 같이 정리될 수 있다.
1. 비유는 알고리즘이 아니라 발견적 학습 1이다. 그렇기 때문에 다소 부주의한 경향이 있다. 2
2. 어떤 비유들은 다른 비유들보다 낫다.
3. 비유는 일반적으로 상호 배타적이지 않다. 하지만 가장 효과적인 비유의 결합을 사용하는게 좋다.
2. 어떤 비유들은 다른 비유들보다 낫다.
3. 비유는 일반적으로 상호 배타적이지 않다. 하지만 가장 효과적인 비유의 결합을 사용하는게 좋다.
이제는 지금까지 알아본 비유를 소프트웨어 개발에 적용해보자,
- 소프트 구현을 건축 공사로 비유해보면, 신중한 준비 과정이 필요하다는 것과 크고 작은 프로젝트간의 차이점을
분명히 알 수 있다.
- 소프트웨어 개발 방법을 정신적인 도구라고 생각해 보면, 모든 프로그래머들은 많은 도구를 가지고 있으며,
모든 일에 적합한 도구는 없다는 것을 알 수 있다. 각각의 문제에 대한 올바른 도구를 선택하는 것이 효율적인
프로그래머가 되는 핵심 요소이다.
'Programing > 소프트웨어 공학' 카테고리의 다른 글
Agile(애자일) 개발방법론 (0) | 2009.07.31 |
---|---|
소프트웨어 구현 (0) | 2009.05.19 |