기타

결합도, 응집도

서울소시민 2018. 5. 9. 17:53

결합도, 응집도

유지보수성이 높은 소프트웨어는 결합도는 낮게 응집도는 높게 구성되어야 한다.

결합도

소프트웨어 코드의 한 요소가 다른 것과 얼마나 강력하게 연결되어 있는지, 얼마나 의존적인지를 나타내는정도이다. 한 부분의 코드를 바꾸면 다른것에 얼마나 영향을 미치는지 나타내는 척도로 낮으면 좋다.

응집도

프로그램의 한 요소가 얼마만큼의 연관된 책임과 아이디어가 뭉쳐있는지를 나타내는 정도이다. 예로는 다음 경우가 있다.

  • 다른 기능 영역의 메소드를 다수 포함한 클래스 - 클래스가 한 가지 기능에 집중하지 못한다. 이미지를 처리하는 기능과 사운드를 처리하는 기능을 가진 클래스는 응집도가 낮다고 볼 수 있다.

  • 너무 많은 책임을 짋어진 클래스 - 돈의 지불과 관련한 기능 (현금, 수표, 신용카드)과 관련된 모든 기능을 Payment라는 클래스에 넣으면 이는 응집도가 낮아진다. 이를 해결하려면 지불과 관련한 기능을 Payment 클래스에 정의하고, 그에 따른 Money, Check, CreditCard와 같은 상속받은 하위 클래스에 정의해야 높은 응집도를 가진다.

출처

'기타' 카테고리의 다른 글

EC2에 배포하기  (0) 2018.05.11