기출문제/정보처리기사

2022년 1회 정보처리기사 기출문제 68번

엉클지니 2025. 3. 6. 21:59

68. 좋은 소프트웨어 설계를 위한 소프트웨어의 모듈간의 결합도(Coupling)와 모듈 내 요소 간 응집도(Cohesion)에 대한 설명으로 옳은 것은?

응집도는 낮게 결합도는 높게 설계한다.

 응집도는 높게 결합도는 낮게 설계한다.

양쪽 모두 낮게 설계한다.

양쪽 모두 높게 설계한다.

 

문제:
좋은 소프트웨어 설계를 위한 소프트웨어의 모듈 간의 **결합도(Coupling)**와 모듈 내 요소 간 **응집도(Cohesion)**에 대한 설명으로 옳은 것은?

**결합도(Coupling)**와 **응집도(Cohesion)**란?

  1. 응집도(Cohesion):
    • 응집도모듈 내의 요소들이 얼마나 밀접하게 연관되어 있는지를 나타내는 지표입니다.
    • 응집도가 높다는 것은 모듈 내의 모든 요소들이 같은 목적을 가지고 함께 동작하는 경우를 의미합니다.
    • 높은 응집도는 모듈 내의 기능들이 잘 정의되고 명확하게 구분되어 있어, 이해하기 쉽고 유지보수가 용이한 소프트웨어를 만듭니다.
  2. 결합도(Coupling):
    • 결합도모듈 간의 상호 의존성을 나타냅니다.
    • 결합도가 낮다는 것은 모듈들이 서로 독립적으로 동작하고, 한 모듈의 변경이 다른 모듈에 미치는 영향이 적다는 뜻입니다.
    • 결합도가 낮으면 각 모듈이 독립적이고 재사용 가능하며, 유지보수가 용이합니다.

좋은 소프트웨어 설계를 위한 이상적인 목표

  • 응집도는 높고 결합도는 낮아야 소프트웨어가 잘 설계된 것으로 평가됩니다. 즉, 각 모듈 내의 기능이 잘 정의되어 있고 독립적인 구조가 되어야 합니다.
  • 높은 응집도는 모듈 내부의 일관성을 증가시키며, 낮은 결합도는 모듈 간의 의존도를 줄여서 변경과 유지보수를 용이하게 만듭니다.

각 선택지 분석

  1. ① 응집도는 낮게 결합도는 높게 설계한다.
    • 틀린 설명입니다.
    • 응집도가 낮고 결합도가 높다는 것은 불안정하고 유지보수가 어려운 설계를 의미합니다. 낮은 응집도는 모듈 내에서 각 요소들이 서로 관련이 적다는 뜻이고, 높은 결합도는 모듈 간의 의존성이 커서 한 모듈을 수정할 때 다른 모듈에 영향을 많이 미치게 됩니다. 이는 좋지 않은 설계입니다.
  2. ❷ 응집도는 높게 결합도는 낮게 설계한다.
    • 맞는 설명입니다.
    • 응집도는 높게, 결합도는 낮게 설계하는 것이 좋은 소프트웨어 설계입니다. 높은 응집도는 각 모듈이 독립적이고 명확한 기능을 수행하게 하며, 낮은 결합도는 모듈 간의 의존성을 줄여 수정과 유지보수를 용이하게 만듭니다. 이는 소프트웨어의 품질과 안정성을 높이는 설계입니다.
  3. ③ 양쪽 모두 낮게 설계한다.
    • 틀린 설명입니다.
    • 응집도와 결합도가 모두 낮다는 것은 소프트웨어가 불필요하게 분산되고 비효율적일 수 있습니다. 응집도가 너무 낮으면 모듈들이 불필요하게 분리되어 각 모듈의 기능이 불명확하고, 결합도가 낮으면 각 모듈이 너무 독립적이어서 협업하기 어려운 경우가 발생할 수 있습니다. 응집도는 높고 결합도는 낮게 설계하는 것이 이상적입니다.
  4. ④ 양쪽 모두 높게 설계한다.
    • 틀린 설명입니다.
    • 응집도와 결합도가 모두 높다는 것은 모듈 간의 의존성이 커지고 각 모듈의 기능이 너무 복잡해지는 결과를 초래할 수 있습니다. 높은 결합도는 모듈 간의 의존성을 증가시켜 수정할 때 다른 부분에 영향을 미칠 수 있습니다. 높은 응집도는 좋지만, 높은 결합도는 좋지 않습니다.

결론

정답은 ❷ 응집도는 높게 결합도는 낮게 설계한다.

  • 응집도가 높고 결합도가 낮은 설계는 좋은 소프트웨어 설계의 중요한 특징으로, 소프트웨어가 유지보수성이 좋고, 확장성이 뛰어나며, 재사용성이 높습니다.

 

반응형