결합도 편집하기

IT위키

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

최신판 당신의 편집
1번째 줄: 1번째 줄:
[[분류:소프트웨어 공학]]
[[분류:소프트웨어 공학]]
;Coupling
;Coupling


*[[응집도|응집도(Cohesion)]]와 함께 모듈의 독립성을 판단하는 지표
* [[응집도|응집도(Cohension)]]와 함께 모듈의 독립성을 판단하는 지표
*'''결합도는 모듈과 모듈간의 상호 결합 정도를 나타낸다.'''
* '''결합도는 모듈과 모듈간의 상호 결합 정도를 나타낸다.'''
*응집도는 모듈 내부의 기능적인 응집 정도를 나타낸다.
* 응집도는 모듈 내부의 기능적인 응집 정도를 나타낸다.
*'''결합도는 낮을수록 좋고''', 응집도는 높을수록 좋다.
* '''결합도는 낮을수록 좋고''', 응집도는 높을수록 좋다.


결합도와 응집도의 차이를 간단하게 나타내자면
결합도와 응집도의 차이를 간단하게 나타내자면


결합도는 우리 하나가 되자에 가까운 말이고
결합도는 : 우리 하나가 되자 에 가까운 말이고.
응집도는 우리 필요하니까 이 부분에서 협력하고 나머지는 따로따로 하자라는 의미에 가깝다.  당연히 소스코드를 물리적으로 합쳐버리면 양이 너무 많아져서 나중에 찾아내기가 어렵고
응집도는 : 우리 필요하니까 이부분에서 협력하고 나머지는 따로따로 하자.
공통으로 쓰는 부분을 하나만 두고 쓰면 불필요한 중복코드를 작성하지 않아도 돼서 편리한 원리이다.


==종류==
라는 의미에 가깝다.  당연히 소스코드를 물리적으로 합쳐버리면 양이 너무 많아져서 나중에 찾아내기가 어렵고
공통으로 쓰는부분을 하나만 두고 쓰면 불필요한 중복코드를 작성하지 않아도 되서 편리한 원리이다.


== 종류 ==
;자료 결합도 < 스탬프 결합도 < 제어 결합도 < 외부 결합도 < 공통 결합도 < 내용 결합도<ref>아래 내용 출처 [https://raisonde.tistory.com/entry/결합도Coupling과-응집도Cohension 지식잡식 블로그]</ref>
;자료 결합도 < 스탬프 결합도 < 제어 결합도 < 외부 결합도 < 공통 결합도 < 내용 결합도<ref>아래 내용 출처 [https://raisonde.tistory.com/entry/결합도Coupling과-응집도Cohension 지식잡식 블로그]</ref>
 
* '''자료 결합도(Data Coupling)'''
*'''자료 결합도(Data Coupling)'''
** 모듈간의 인터페이스 전달되는 파라미터를 통해서만 모듈간의 상호 작용이 일어나는 경우
**모듈간의 인터페이스 전달되는 파라미터를 통해서만 모듈간의 상호 작용이 일어나는 경우
** 깔끔한 Call by value
**깔끔한 Call by value
* '''스탬프 결합도(Stamp Coupling)'''
*'''스탬프 결합도(Stamp Coupling)'''
** 모듈간의 인터페이스로 배열이나 오브젝트, 스트럭쳐등이 전달되는 경우
**모듈간의 인터페이스로 배열이나 오브젝트, 스트럭쳐등이 전달되는 경우
* '''제어 결합도(Control Coupling)'''
*'''제어 결합도(Control Coupling)'''
** 단순히 처리를 해야할 대상인 값만 전달되는게 아니라 어떻게 처리를 해야 한다는 제어 요소(DCD, Flag등)이 전달되는 경우.
**단순히 처리를 해야할 대상인 값만 전달되는게 아니라 어떻게 처리를 해야 한다는 제어 요소(DCD, Flag등)이 전달되는 경우.
* '''외부 결합도(External Coupling)'''
**어떤 모듈이 다른 모듈의 내부 논리 조직을 제어하기 위한 목적으로 제어신호를 이용하여 통신하는 경우이며, 하위 모듈에서 상위 모듈로 제어신호가 이동하여 상위 모듈에게 처리 명령을 부여하는 권리 전도현상이 발생하게 됨.(정처기 20년 3회 기출)
** 어떤 모듈에서 반환한 값을 다른 모듈에서 참조해서 사용하는 경우
*'''외부 결합도(External Coupling)'''
* '''공통 결합도(Common Coupling)'''
**어떤 모듈에서 반환한 값을 다른 모듈에서 참조해서 사용하는 경우
** 파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 전역변수를 갱신하는 식으로 상호작용하는 경우
*'''공통 결합도(Common Coupling)'''
* '''내용 결합도(Content Coupling)'''
**파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 전역변수를 갱신하는 식으로 상호작용하는 경우
** 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용 하는 경우
*'''내용 결합도(Content Coupling)'''
**다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용 하는 경우
<references />
IT위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 IT위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소 편집 도움말 (새 창에서 열림)