설계를 하는 이유는 품질을 향상하기 위해서이다.
품질을 향상하기 위해서는 새로운 기능을 추가하기 쉽고, 유지 보수가 편리해야한다.

시스템을 각 구성하는 요소를 모듈이라고 부르며,
모듈을 추가하거나 수정할 경우 파급효과를 최소화하는
모듈 독립성
이 기본으로 갖추어져야 한다.
비슷한 기능은 최대한 모아서 하나의 모듈의 응집도를 높이고,
다른 모듈과의 결합도를 줄이는 것이 핵심이다.

모듈과 모듈간의 결합은 이해도 높게 작성되어야 한다.
이해도를 높이기 위해서는 먼저 시스템을 여러개의 독립된 서브 시스템으로 나누어
규모를 줄여야 한다. 서브 시스템으로 나눈 이상 서브 시스템간 통신은 필수적이다.
최소한의 통신을 위해 결합도를 낮추고, 불필요한 정보는 감춘다.
코드 컨벤션과 문서은 시스템 이해가 큰 도움이 된다.

시스템의 환경은 계속적으로 변해 가기 때문에 적응도가 높아야 한다.
적응도는 환경 결합도가 낮고, 내부 응집도가 높다는 이야기이다.

외부 환경과 결합할 수 밖에 없는 부분은 최대한 작게 지역화해서
최소한의 수정으로 변화에 적응할 수 있어야 한다.



이올린에 북마크하기(0) 이올린에 추천하기(0)
2009/06/10 17:57 2009/06/10 17:57