결합도 & 응집도

JIHYUN·2023년 9월 21일
0

정처기

목록 보기
11/13

결합도

  • 내용
    Content
    다른 모듈 내부에 있는 변수나 기능을 직접 참조하는 경우
    다른 모듈의 로컬 데이터에 접근하는 경우, 사용하고자 하는 모듈의 내용(코드)을 알고 있어야 한다.
    모듈 변경이 발생하는 경우 이를 참조하는 모듈의 변경이 불가피.

  • 공통
    Common
    여러 모듈이 하나의 데이터 영역을 참조
    (예. 전역변수, 전역 변수의 변경이 여러 모듈에 영향을 끼칠 수 있다. )

  • 외부
    External
    모듈이 외부에 있는 다른 모듈 또는 데이터를 참조할 때
    모듈이 외부의 데이터, 통신 프로토콜 등을 공유할 때 발생

  • 제어
    Control
    어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하는 요소를 전달
    파라미터로 전달되는 값에 따라 모듈 내부 로직의 처리가 달라진다.
    (예. Flag: 무엇인가를 기억해야하거나 다른 프로그램에게 약속된 신호를 남기기 위한 용도. )

  • 스탬프
    Stamp

  • 자료
    두 모듈이 동일한 자료 구조를 참조
    모듈 간의 인터페이스로 배열 또는 오브젝트 등이 전달되는 경우
    자료 구조의 형태가 변경되면 그것을 참조하는 모든 모듈에 영향을 준다
    Data
    모듈끼리 단순히 데이터를 주고받는 경우
    모듈의 기능에 영향을 끼치지 않는 순수 자료형 요소

응집도

  • 우연적
    Coincidental
    모듈 내부의 각 구성 요소들이 아무런 관련 없이 구성됨
    논리적 응집도와 달리 유사한 성격이나 형태가 없음

  • 논리적
    Logical
    유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들로 모듈 구성
    논리적으로 비슷한 기능이지만 서로의 관계는 밀접하지 않음

  • 시간적/일시적
    Temporal
    각 기능 요소들이 순서에 상관없이 특정 시점에 반드시 수행됨
    (예. 초기화)

  • 절차적
    Procedural
    모듈내에서 기능 요소가 순차적으로 수행, 다음 기능 요소는 데이터가 아닌 흐름 제어 요소
    (예. 파일을 읽을 때 접근 허가를 확인한 후 파일을 읽는 형태)

  • 통신적/교환적
    Communication
    모든 요소들이 동일한 입력 또는 출력 데이터를 사용하여 서로 다른 기능을 수행
    순차적 응집도와 달리 처리 순서가 중요하지 않음

  • 순차적
    Sequential
    한 요소의 출력이 다른 요소의 입력으로 사용됨

  • 기능적
    Funtional
    모듈 내의 모든 요소들이 하나의 기능을 수행하기 위해 구성됨

profile
🍋

0개의 댓글