본문 바로가기
정보처리기사 필기/[4과목] 프로그래밍언어활용

[정보처리기사] 모듈의 결합도(Coupling)와 응집도(Cohesion)

by Devinus 2021. 3. 5.

1. 모듈

- 모듈은 시스템의 각 기능으로 소프트웨어의 성능을 향상시키거나 수정 및 재사용을 용이하게 하기 위해 기능 단위로 분해한 것을 말한다.

- 모듈의 독립성은 결합도(Coupling)를 약하게, 응집도(Cohesion)를 강하게, 모듈의 크기가 작을 때 독립성이 높아진다.

- 독립성이 높은 모듈일수록 모듈을 수정하더라도 다른 모듈들에게는 거의 영향을 미치지 않고, 오류가 발생하더라도 쉽게 발견하고 수정할 수 있다.

 

2. 결합도(Coupling)

- 결합도는 모듈 간에 상호 의존하는 정도 또는 두 모듈 사이의 연관 관계를 의미한다. 결합도가 약할수록 독립적인 모듈

- 결합도는 약할수록 좋다.

 

결합도 종류 내용
결합도 약함 자료 결합도
(Data Couplign)
모듈 간의 인터페이스가 자료 요소로만 구성될 때의 결합도
스탬프 결합도
(Stamp Coupling)
모듈 간의 인터페이스로 배열이나 레코드 등의 자료 구조가 전달될 때의 결합도
제어 결합도
(Control Coupling)
어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해 제어 신로를 통신하거나 제어 요소(Flag)를 전달하는 결합도
외부 결합도
(External Coupling)
어떤 모듈에서 선언한 데이터(변수)를 외부의 다른 모듈에서 참조할 때의 결합도
공유 결합도
(Common Coupling)
공유되는 공통 데이터 영역(전역변수)을 여러 모듈이 사용할 때의 결합도
결합도 강함 내용 결합도
(Content Coupling)
한 모듈이 다른 모듈의 내부 기능 및 그 내부 자료를 직접 참조하거나 수정(public 속성)할 때의 결합도

 

3. 응집도(Cohesion)

- 응집도는 명령어나 호출문 등의 모듈의 내부 요소들의 서로 관련있는 정도, 즉 모듈이 독립적인 기능으로 구성됐는지 정도를 의미한다. 응집도가 강할수록 독립적인 모듈

- 응집도는 강할수록 좋다.

응집도 종류 내용
응집도 강함 기능적 응집도
(Functional Cohesion)
모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우의 응집도
순차적 응집도
(Sequential Cohesion)
모듈 내 하나의 활동으로부터 나온 출력 데이터를 그 다음 활동의 입력 데이터로 사용할 경우의 응집도
교환적 응집도
(Communication Cohesion)
동일한 입력과 출력을 사용해 서로 다른 기능을 수행하는 구성 요소들이 모였을 경우의 응집도
절차적 응집도
(Procedural Cohesion)
모듈의 다수의 관련 기능을 가질 때 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행할 경우의 응집도
시간적 응집도
(Temporal Cohesion)
특정 시간에 처리되는 몇 개의 기능을 모아 하느이 모듈로 작성할 경우의 응집도
논리적 응집도
(Logical Cohesion)
유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들로 하나의 모듈이 형성되는 경우의 응집도
응집도 약함 우연적 응집도
(Coincidental Cohesion)
모듈 내부의 각 구성 요소들이 서로 관련 없는 요소로만 구성된 경우의 응집도

 


 

정보처리기사 필기 기출문제

 

64.
시스템에서 모듈 사이의 결합도(Coupling)에 대한 설명으로 옳은 것은?
[정답률: 21%] 정보처리기사(2020년 이후) 필기 (2020년 1회·2회 통합 기출문제)
① 한 모듈 내에 있는 처리요소들 사이의 기능적인 연관 정도를 나타낸다. 응집도에 대한 설명이다.
② 결합도가 높으면 시스템 구현 및 유지보수 작업이 쉽다. 결합도가 높으면 유지보수가 어렵다.
③ 모듈 간의 결합도를 약하게 하면 모듈 독립성이 향상된다. 결합도 낮게, 응집도 높게 -> 독립성 향상
④ 자료결합도는 내용결합도보다 결합도가 높다. 자료 결합도는 결합도가 가장 낮다.

 

77.
응집도가장 낮은 것은?
[정답률: 75%] 정보처리기사(2020년 이후) 필기 (2020년 1회·2회 통합 기출문제)
① 기능적 응집도  
② 시간적 응집도  
③ 절차적 응집도  
④ 우연적 응집도 우연적 응집도(Coincidental Cohesion)이 가장 낮은 응집도를 갖는다.

 

65.
효과적인 모듈 설계를 위한 유의사항으로 거리가 먼 것은?
[정답률: 31%] 정보처리기사(2020년 이후) 필기 (2020년 3회 기출문제)
① 모듈간의 결합도를 약하게 하면 모듈 독립성이 향상된다.  
② 복잡도와 중복성을 줄이고 일관성을 유지시킨다.  
③ 모듈의 기능은 예측이 가능해야 하며 지나치게 제한적 이여야 한다. 지나치게 제한적일 필요는 없다.
④ 유지보수가 용이해야 한다.  

 

70.
다음이 설명하는 응집도유형은?
[정답률: 24%] 정보처리기사(2020년 이후) 필기 (2020년 3회 기출문제)
① 기능적 응집도  
② 우연적 응집도  
③ 논리적 응집도  
④ 절차적 응집도 기능을 순차적으로 수행한다 -> 절차적 응집도
출력 데이터가 다음 활동의 입력 데이터로 활용 -> 순차적 응집도

 

72.
다음 중 가장 결합도강한 것은?
[정답률: 23%] 정보처리기사(2020년 이후) 필기 (2020년 3회 기출문제)
① date coupling  
② stamp coupling  
③ common coupling 보기 중에서 공유 결합도(Common Coupling)이 가장 강한 결합도를 갖는다.
결합도가 가장 강한건 내용 결합도(Content Coupling)이다.
④ control coupling  

 

77.
어떤 모듈이 다른 모듈의 내부 논리 조직을 제어하기 위한 목적으로 제어신호를 이용하여 통신하는 경우이며, 하위 모듈에서 상위 모듈로 제어신호가 이동하여 상위 모듈에게 처리 명령을 부여하는 권리 전도현상이 발생하게 되는 결합도는?
[정답률: 26%] 정보처리기사(2020년 이후) 필기 (2020년 3회 기출문제)
① data coupling  
② stamp coupling  
③ control coupling 설명에 논리 제어, 제어신호, 권리 전도 등이 나오면 제어 결합도(Control Coupling)이다.
④ common coupling  

 

20.
바람직한 소프트웨어 설계 지침아닌 것은?
[정답률: 90%] 정보처리기사(2020년 이후) 필기 (2020년 4회 기출문제)
① 적당한 모듈의 크기를 유지한다.  
② 모듈 간의 접속 관계를 분석하여 복잡도와 중복을 줄인다.  
③ 모듈 간의 결합도는 강할수록 바람직하다. 모듈 간의 결합도는 낮을수록 바람직하다.
④ 모듈 간의 효과적인 제어를 위해 설계에서 계층적 자료 조직이 제시되어야 한다.  

 

73.
결합도(Coupling)에 대한 설명으로 틀린 것은?
[정답률: 48%] 정보처리기사(2020년 이후) 필기 (2020년 4회 기출문제)
① 데이터 결합도(Data Coupling)는 두 모듈이 매개변수로 자료를 전달할 때, 자료구조 형태로 전달되어 이용 될 때 데이터가 결합되어 있다고 한다. 자료구조 형태로 전달 -> 스탬프 결합도(Stamp Coupling)
자료 요소로만 구성 -> 데이터 결합도(Data Coupling)
② 내용 결합도(Content Coupling)는 하나의 모듈이 직접적으로 다른 모듈의 내용을 참조할 때 두 모듈은 내용적으로 결합되어 있다고 한다.  
③ 공통 결합도(Common Coupling)는 두 모듈아 동일한 전역 데이터를 접근한다면 공통결합 되어 있다고 한다.  
④ 결합도(Coupling)는 두 모듈간의 상호작용, 또는 의존도 장도를 나타내는 것이다.  

 

74.
응집도의 종류 중 서로 간에 어떠한 의미 있는 연관관계도 지니지 않은 기능 요소로 구성되는 경우이며, 서로 다른 상위 모듈에 의해 호출되어 처리상의 연관성이 없는 서로 다른 기능을 수행하는 경우의 응집도는?
[정답률: 36%] 정보처리기사(2020년 이후) 필기 (2020년 4회 기출문제)
① Functional Cohesion  
② Sequential Cohesion  
③ Logical Cohesion  
④ Coincidental Cohesion 연관성이 없는 기능들로 구성 -> 우연적 응집도(Coincidental Cohesion)