Akashic Records

소프트웨어 모듈 결합도와 응집도 본문

오래된글/소프트웨어공학

소프트웨어 모듈 결합도와 응집도

Andrew's Akashic Records 2018. 4. 19. 10:54
728x90

PLT 16 소프트웨어 모듈 결합도와 응집도

결합도 특징

  • 모듈간 인터페이스 복잡도, 모듈 진입과 참조에 교환정보의 종류와 특성으로 결합도 결정

  • 결함도가 낮은 상태에서 소프트웨어의 품질에 좋은 결과가 나타남

  • 소프트웨어 설계 시에 모듈 결합도를 낮추기 위한 방안 수립이 필요함


결합도 수준

유형

교환정보

교환경로

내용

테이터

결합도

필수자료

단일

매개변수

  • 모듈간 매개변수를 통해 필요한 자료 교환

  • 모듈은 서로에 Black Box 결합

  • 독립성 높음, 최상의 결합

스탬프

결합도

복합자료

다중항목

자료구조

  • 복합 자료구조(Record, Array, File) 매개변수로 사용하는 경우

컨트롤

결합도

제어자료

제어Flag

  • 다른 모듈을 스위치/태크의 제어신호를 통해 조작

  • 모듈내부의 수행 Logic 외부에 공개

  • 독립성 훼손/대부분 소프트웨어 설계 현상

외부

결합도

외부자료

공통영역

  • 모듈이 외부환경과 연관되어 있는 경우(특수 H/W, 통신 Protocol, OS, Compiler…)

  • 모듈, 파일에서 정의된 자료 그대로 사용

  • 음성적 정보교환, 유지보수 곤란

공유

결합도

공통자료

공통영역

  • 동일 전역변수 공유, 자료 변경시에 영향

  • 매개변수를 교환하지 않는 간접 정보 교환

  • 모듈/자료 분리로 재사용 어려움

내용

결합도

내용

직접조작

  • 모듈이 다른 모듈의 내부기능/자료를 직접 참조

  • 다른 모듈의 중간으로 Branching

  • 유지보수 어려움


응집도 특징

  • 정보은닉 개념을 적용한 모듈의 기능연관성을 측정하는 척도

  • 응집도가 높아지면 다른 모듈과의 의존도가 작아지고 독립성이 강해짐

  • 모듈 내에 필요한 함수와 데이터들의 친화력을 측정하는 사용

  • 응집도가 높아지면 재사용성이 향상되고 품질도 향상되는 효과가 있음

  • 모듈간 결합도를 최소화하여 응집도를 높이고 유지보수를 용이하게


응집도 수준

유형

수행기능

응집대상

내용

기능

응집도

단일기능

개의 Task

  • 모든 명령이 한가지 문제해결을 위한 작업 수행

  • 필요한 모든 구성 요소들을 포함

  • 구조적 설계원리에 적합한 페러다임

  • 가장 이상적으로 재사용 추천

순차

응집도

자료처리

공통

데이터

  • 활동의 출력이 다음 활동의 입력으로 사용

  • 일련의 활동들이 체인 형식으로 구성

통신

응집도

자료처리

공통

데이터

  • 모듈내의 요소사이에 데이터를 송수신

  • 서로 다른 기능이 동일 자료 사용

  • 입력 값에 따라 출력이 달라짐

  • 처리 순서는 상관없음

절차

응집도

흐름제어

비공통

데이터

  • 관련 없는 기능요소가 배열된 순서로 수행

  • 모듈내의 활동들이 순차적으로 수행

  • 제어가 다음 활동으로 이동

시간

응집도

흐름제어

비공통

데이터

  • 기능 요소가 순서 상관없이 특정시점에 수행

  • 가공자료 t 다른

논리

응집도

자료처리

흐름제어

상호배제없이병행

  • 모듈내 기능요소가 일반적인 같은 성질을 처리

우연

응집도

자료처리

흐름제어

서로관련없는활동

  • 모듈구성요소가 아무 관계없는 기능요소 존재

  • 명령문 분류, 재구성 필요



728x90
Comments