본문 바로가기
컴퓨터 과학/소프트웨어공학

[소프트웨어공학] 결합도와 응집도

by webcodur 2024. 3. 21.
728x90
반응형

목차

     

    결합도와 응집도는 소프트웨어 설계의 중요한 개념으로, 각각 모듈 간의 상호 의존성과 모듈 내부의 기능적 관련성을 나타낸다. 이 두 개념을 이해하고 구분하는 것은 효율적이고 유지보수가 용이한 시스템을 설계하는 데 필수적이다.

    결합도(Coupling) 유형

    결합도는 다른 모듈과 얼마나 강하게 연결되어 있는지, 즉 모듈 간의 의존도 수준을 나타낸다. 낮은 결합도를 유지하는 것이 바람직하다. 

     

    6가지 결합도 유형 ( 높은 결합도 => 낮은 결합도 👍 )

    1. 내용 결합(Content): 한 모듈이 다른 모듈의 내부를 직접 참조하거나 변경하는 경우.
    2. 공통 결합(Common): 두 모듈이 같은 전역 변수를 공유하여 사용할 때.
    3. 외부 결합(External): 두 모듈이 외부 데이터 포맷이나 통신 프로토콜 등을 공유할 때.
    4. 제어 결합(Control): 한 모듈이 다른 모듈에게 제어 신호나 제어 정보를 넘겨주는 경우.
    5. 스탬프 결합(Stamp): 두 모듈이 데이터 구조를 공유하여 사용할 때.
    6. 자료 결합(Data): 두 모듈이 매개변수를 통해서만 데이터를 교환할 때. ( 가장 낮음 ) 👍

    응집도(Cohesion) 유형

    응집도는 한 모듈 내부의 요소들이 얼마나 밀접하게 관련되어 있는지를 나타낸다. 높은 응집도를 가진 모듈이 바람직하다.

     

    6가지 응집도 유형 ( 낮은 응집도  => 높은 응집도 👍 )

    1. 우연적 응집도(Coincidental): 모듈 내의 작업들이 무관한 작업을 수행할 때. ( 가장 낮음 ).
    2. 논리적 응집도(Logical): 모듈 내의 작업들이 논리적으로 유사한 작업을 수행할 때
    3. 시간적 응집도(Temporal): 모듈 내의 작업들이 특정 시간에 실행되어야 할 때.
    4. 절차적 응집도(Procedural): 모듈 내의 작업들이 특정 순서대로 실행되어야 할 때.
    5. 통신적 응집도(Communicational): 모듈 내의 작업들이 같은 데이터를 사용할 때
    6. 순차적 응집도(Sequential): 모듈 내의 각 부분이 다음 부분의 입력으로 연결될 때.
    7. 기능적 응집도(Functional): 모듈 내의 모든 기능이 단일한 목적을 위해 작동할 때. 👍

     

    암기

    ( 낮은 값을 향해 )

     

    내공외제스자!

    우논시절통순기! 

    반응형