-나쁜 설계의 냄새-
1. 경직성 :
무엇이든 하나를 바꿀 때마다 반드시 다른 것도 바꿔야 하며,
그러고 나면 또 다른 것도 바꿔야 하는 변화의 사슬이 끊이지 않기 때문에 시스템을 변경하기 힘들다.
2. 부서지기 쉬움 :
시스템에서 한 부분을 변경하면 그것과 전혀 상관없는 다른 부분이 작동을 멈춘다.
3. 부동성 :
시스템을 여러 컴포넌트로 분해해서 다른 시스템에 재사용하기 힘들다.
4. 끈끈함 :
개발 환경이 배관용 테이프나 풀로 붙인 것처럼 꽉 달라붙는 상태다.
편집 - 컴파일 - 테스트 순환을 한 번 도는 시간이 엄청나게 길다.
5. 쓸데없이 복잡함 :
괜히 머리를 굴려서 짠 코드 구조가 굉장히 많다.
이것들은 대개 지금 당장 하나도 필요 없지만
언젠가는 굉장히 유용할지도 모른다고 기대하며 만들었다.
6. 필요 없는 반복 :
코드를 작성한 프로그래머 이름이 마치 '복사'와 '붙여넣기'같다.
7. 불투명함 :
코드를 만든 의도에 대한 설명을 볼 때 그 설명에 '표현이 꼬인다.'라는 말이 잘 어울린다.
-JAVA 프로그래머를 위한 UML 실전에서는 이것만 쓴다!의 내용-