강좌가 늦어진점 죄송합니다. 최근 갑자기 프로젝트들이 늘어나서 하루 업무시간을 2등분하여 작업하고 있고, 저녁에는 야외활동으로 피곤에 뻗어서 들어오자 마자 누워잔다고 -_-; 블로그 돌볼 시간이 좀 없었습니다. 헌데 요즘 시간이 다시 생겨서 관리에 들어갑니다. 주말에는 디카도 살 예정이고 ㅋㅋㅋ
이번 강좌에서는 잠깐 쉬어가는 페이지로 훌륭한 문서화란 무엇인지 제가 느끼고 있는 점들에 대해서 정리해 보겠습니다.
좋은 설계문서란...
- 문법에 맞아야 한다.
많은 프로그래머들이 그냥 넘어가는 부분이지만, 정말 제일 중요한 부분입니다. 직원들이 작성한 문서들을 보고 도대체 문법이 맞지를 않아서 무슨 말인지 물어본적이 한두번이 아닙니다. 제발 주어랑 동사정도는 맞추어 줍시다.
- 정중하고 정련된 표현이어야 한다
친구랑 술한잔하면서 내뱉는 문장표현들은 제발 자제합시다.
- 문서를 작성할 시, 아직 결정된 사항이 없는 부분에 대한 기술은 비워놓지 말고, 반드시 커멘트를 달아놓자.
- 반복되는 표현을 피해야 할것.
문서간의 참조를 최대한 활용하여 수정이나 갱신처리시 작업을 편리하게 만들어야 할것.
또한 반복을 피함으로 동일한 내용이나 조금씩 다른 표현으로 인해서 생기는 혼란을 피할 수 있다.
- 참고자료는 반드시 따로 정리해 놓을것.
- 애매모호한 표현들을 피해야 한다.
설계서라는 것이 전부 기호들만으로 표현이 불가능하고 세부사항들에대한 부과설명이 반드시
필요하기 때문에 문장을 해석하는 방법에서 사람마다 차이가 발생할 수 있는데,
각각의 해석들이 설계서에서 설명하고자하는 목적에 부합하다면, 차이가 있다한들 틀린것은 아니다.
그러나 전혀 다른 방향으로 해석이될 위험성이 있다면 최소한 이러한 혼란을 막기위해 충실한 정도의 자세한 설명과 표기법을 사용할 필요가 있다.
- 잘 정의된 표준구조, 표준기호, 표준어들을 사용하라
만약, 독자가 잘 모르는 표준기호들이라면, 참고자료에 이에대한 자료를 추가할 수 있을것.
- 반드시 근거를 남기라.
설계시 아키텍처나 상세 설계에서 패턴이나 기타 라이브러리 혹은 프레임워크등을 도입할 경우나 중요한 결정사함에 대한 언급을 할 경우 반드시 도입 근거를 남겨야 한다.
- 한번 작성이 완료되었다고 해서 끝이 아니다.
설계가 변경되면 소스코드뿐만이 아니라 설계문서에도 반드시 변경사항을 기록하자.
훌륭한 형상관리를 위한 첫 걸음이 될찌어니
- 반드시 리뷰를 실시하고 피드백을 반영하라
일본에서 일하면서 느낀것인데, 이 나라는 문서작성량이 장난이 아니라는 것입니다. 이에 비해 한국의 많은 IT벤처업체들의 상황은 열악하다라고 하는편이 옳을것입니다. 일본은 지나친 면에 많이 있는데 한국은 반대로 부족한 면이 있지요.
(참고로 일본에서 코드 한줄짜면 문서화로 10줄 정도는 적어야 되는 실정...)
모든 문서화의 기본 목적은 활용을 통한 생산성 향상과 사후 관리가 가장 큽니다.
이전까지는 사후관리에 초점이 많이 맞춰져 있었지만, 요즘은 생산성 향상에도 많은 관심들을
가지고 있습니다. 한권의 문서한장으로 설계자와 개발자간의 원활한 의사소통이 가능해지는 그날까지, 우리 힘내도록 합시다.
(참고로 일본에서 코드 한줄짜면 문서화로 10줄 정도는 적어야 되는 실정...)
모든 문서화의 기본 목적은 활용을 통한 생산성 향상과 사후 관리가 가장 큽니다.
이전까지는 사후관리에 초점이 많이 맞춰져 있었지만, 요즘은 생산성 향상에도 많은 관심들을
가지고 있습니다. 한권의 문서한장으로 설계자와 개발자간의 원활한 의사소통이 가능해지는 그날까지, 우리 힘내도록 합시다.
다음 강좌내용은 조금 고민이 됩니다.
MDA에서 PIM -> PSM으로 변환이 가능하게 해주는 여러 방법들중에 OMG에서 제안하는 OCL을 통한 변환 방법에 대해서 다룰지, 아니면 난이도를 조금 낮춰서 일반적인 시스템의 아키텍처 디자인에 대한 이야기를 할지 조금 고민중입니다. ^_^
MDA에서 PIM -> PSM으로 변환이 가능하게 해주는 여러 방법들중에 OMG에서 제안하는 OCL을 통한 변환 방법에 대해서 다룰지, 아니면 난이도를 조금 낮춰서 일반적인 시스템의 아키텍처 디자인에 대한 이야기를 할지 조금 고민중입니다. ^_^
'UML' 카테고리의 다른 글
선배 - Implement가 뭐에요? (부제:후배들에게 듣는 객체지향 질문) (0) | 2007.12.26 |
---|---|
About UML #05 - MDA (Model Driven Architecture) (0) | 2006.10.31 |
About UML #04 - Domain Modeling 2. (0) | 2006.10.27 |
About UML #04 - Domain Modeling 1. (0) | 2006.10.22 |
About UML #03 - Usecase (0) | 2006.10.10 |