다음 C 언어로 작성된 소스코드에서 나타나는 결합도로 옳은 것은?#in… | [7급 국가직 소프트웨어공학] 24년 1회차 기출문제 상세 페이지
1[7급 국가직 소프트웨어공학] 24년 1회차
다음 C 언어로 작성된 소스코드에서 나타나는 결합도로 옳은 것은?#include <stdio.h>
int sum_array(int *arr, int length) {
int i, ret;
ret = 0;
for (i = 0; i < length; i++)
ret += arr[i];
return ret;
}
int main() {
int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
printf("%d", sum_array(a, 10));
return 0;
}
1
제어 결합도
2
외부 결합도
3
스탬프 결합도
4
데이터 결합도
해설
이 코드에 나타나는 결합도는 스탬프 결합도이다. main이 sum_array에 배열(자료구조)을 인자로 넘기기 때문이다.
스탬프 결합도는 모듈 간에 배열·구조체 같은 자료구조를 전달할 때 생기며, 단순 값만 주고받는 데이터 결합도보다 강하다.
- 제어 결합도: 상대 모듈의 처리 흐름을 지시하는 플래그 등을 넘길 때로, 이 코드에는 제어 정보 전달이 없다.
- 외부 결합도: 외부에 선언된 데이터·파일·장치 형식을 공유할 때로, 이 코드는 외부 데이터를 공유하지 않는다.
- 데이터 결합도: 스칼라 값 같은 단순 데이터만 전달할 때로, 배열을 넘기는 이 코드에는 해당하지 않는다.
오류나 개정된 내용이 보이면 알려주세요