본문 바로가기
CS/SW공학

[SW공학] 모듈화(Modulariation): 결집도와 응집도의 종류와 강도

by jangThang 2023. 4. 27.
반응형

 소프트웨어는 모듈화되어 개발됩니다. 각 모듈 간 결집도는 낮을수록 좋고, 모듈 내 응집도는 높을수록 좋습니다. 이러한 이유를 살펴보고, 결집도와 응집도의 종류에 대해 알아보겠습니다.

 

[ Contents ]

     

     

    1. 모듈화 (Modulariation)

     

     소프트웨어 설계에서 기능 단위로 분해하여 추상화한 단위를 '모듈(Module)'이라고 합니다. 소프트웨어는 각 기능 단위로 모듈화되어있으며, 각각의 독립성을 보장해야 합니다.

     모듈의 독립성이 보장되어야 모듈의 디버깅 및 수정, 테스트, 통합이 용이합니다. 만약 하나의 모듈이 여러 모듈에게 영향을 끼친다면, 그 모듈들을 모두 수정해야하는 번거로움이 생깁니다.

     따라서 모듈간의 결합도는 낮고, 모듈 내 응집력은 강해야 좋습니다.

     

     

     

    2. 결합도 (Coupling)

    - 자료 결합도: 파라미터로 데이터를 주고받음 (Call by value)
    - 스탬프 결합도: 동일한 자료구조를 참조 (배열 등)
    - 제어 결합도: 타 모듈 내 기능을 제어하는 요소 전달 (Flag, Switch)
    - 외부 결합도: 동일한 외부 모듈, 데이터를 참조
    - 공통 결합도: 동일한 데이터 영역 참조 (전역변수, call by reference)
    - 내용 결합도: 타 모듈의 내부 기능과 데이터를 직접 참조

     

     모듈 간 결합도는 낮을수록 좋습니다. 위 결합도는 낮은 순서대로 작성했고, 데이터만 주고받는 자료 결합도가 가장 낮습니다.

     

     

     

    3. 응집도 (Cohesion)

    - 기능적(함수적) 응집도: 모든 요소들이 단일 기능을 수행하기 위해 반드시 필요
    - 순차적 응집도: 한 요소의 출력이 다른 요소의 입력으로 사용됨
    - 정보적(교환적) 응집도: 모든 요소들이 동일 입력 또는 출력 자료를 이용
    - 절차적 응집도: 기능 요소가 순차적으로 제어되어 수행됨
    - 시간적(일시적) 응집도: 순서에 상관없이 특정 시점에 반드시 수행됨
    - 논리적 응집도: 논리적으로 유사한 기능이지만, 밀접한 관련은 없음
    - 우연적 응집도: 뚜렷한 관련 없이 요소들이 구성됨

     

     모듈 내 요소간의 응집도는 높을수록 좋습니다. 위 응집도는 높은 순서대로 작성했고, 기능적 응집도가 가장 응집도가 높습니다.

     

     

    star가 되고나서 Tistory

    반응형

    댓글