본문 바로가기

Database/모델링

프로젝트는 절대로 생각대로 흘러가지 않는다.

대학교 컴과를 나왔다면 소프트웨어 공학은 필수과목으로 지정되어 있다.
프로그램 개발에 있어서 어떠한 형식으로 어떤 절차를 거쳐서 산출물이 나오는지 공부하는 과목이다.
그 과목시간에 대표적으로 아니 시험문제에 무조건 나오는 모델이 두가지가 있는데
1. 폭포수 모델.
2. 나선형 모델.

[그림-1] 폭포수 모델의 예

[그림-2] 나선형 모델의 예

최초의 모델 설계를 기반으로 계획, 소비자의 요구분석, 그에 따른 설계, 구현과 테스트를 거쳐서 유지보수 단으로 가는 방식은 약간식 다르지만 두 모델의 흐름은 비슷하다.
이론을 들어보면 정말 맞는 이야기 같다. 저렇게 하는게 맞는거 아닌가요?! 아니 정확히는 맞다. 하지만 프로그래머들에게 없는게 딱 두가지가 있다고 생각한다. 시간과 예산.
언제나 프로젝트의 시간은 늘어나기는 커녕 줄어들고 예산은 말도 않되는 가격으로 하라는 경우가 허다하다.
그러한 상황에서 위의 모델들을 썼다가는 다음날 책상이 사라지는걸 경험하게 될것이다.
변칙적이고 계속 변하는 소비자의 요구와  마감일은 언제나 그대로라는것. 
그리고 산출물은 프로그램만이 아닌 각종 문서가 난무 한다는 사실이다.(이부분은 다음에 글을 쓸 예정이다.)


그렇다면 효과적인 모델이 무엇이냐고? 간단하다. 분석,코딩,적용,테스트 까지 모두 한번에 하는것이다. 


분석과 설계가 탄탄하면 더할 나위 없는 프로젝트의 시작이다. 하지만 어느 부분에선 분석 단계가 생략될수도 있으며, 설계또한 이미 나와있는 모델을 그대로 사용하여 지나갈수 있는 상황도 있다. 
간단한 예외처리 하나 하는것조차 분석/설계/코딩/테스트를 거치진 않는다.

또한 프로젝트가 완료후 유지보수 기간중에는 거의 대부분 위와 같은 상황으로 갈 수 밖에 없다. 한시가 바쁜 1분 1초를 다투는 기업의 이익이 달린 문제에서 어느누가 문제점 파악을위해 분석단계부터 기다리고 있겠는가?


기존의 모델이 잘못되었다는것이 아니다. 단지 우리에겐 예산과 시간이 너무나 한정적이라는것이 문제일뿐이다. 소비자를 설득시키지 못하고, 관리자를 설득시키지 못한 시점에서 프로그래머가 할 수 있는 일은 품질과 성능을 포기하는게 아닌 모델을 바꾸는게 최선을 선택이라 생각된다.

- 어떠한 프로젝트도 PIX 한 모델을 제시 할수 없을것이다.
- 프로젝트의 기간과 예산이 한정적일때를 예로 들었다.  
- 참고 : 어느 SW엔지니어의 변  지은이 : 이종국 

'Database > 모델링' 카테고리의 다른 글

[설계] CRC카드 , 클래스다이어그램  (0) 2011.04.02
DA# 교육에서 그렸던거...  (0) 2010.11.24
간단한 DB 이해(초보)  (0) 2010.09.25