2011년 6월 2일 목요일

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

PLT 16 소프트웨어 모듈 결합도와 응집도
결합도 특징
  • 모듈간 인터페이스 복잡도, 모듈 진입과 참조에 교환정보의 종류와 특성으로 결합도 결정
  • 결함도가 낮은 상태에서 소프트웨어의 품질에 좋은 결과가 나타남
  • 소프트웨어 설계 시에 모듈 결합도를 낮추기 위한 방안 수립이 필요함

결합도 수준
유형교환정보교환경로
내용
테이터
결합도
필수자료단일
매개변수
  • 모듈간 매개변수를 통해 필요한 자료 교환
  • 모듈은 서로에 Black Box 결합
  • 독립성 높음, 최상의 결합
스탬프
결합도
복합자료
다중항목
자료구조
  • 복합 자료구조(Record, Array, File) 매개변수로 사용하는 경우
컨트롤
결합도
제어자료
제어Flag
  • 다른 모듈을 스위치/태크의 제어신호를 통해 조작
  • 모듈내부의 수행 Logic 외부에 공개
  • 독립성 훼손/대부분 소프트웨어 설계 현상
외부
결합도
외부자료
공통영역
  • 모듈이 외부환경과 연관되어 있는 경우(특수 H/W, 통신 Protocol, OS, Compiler…)
  • 모듈, 파일에서 정의된 자료 그대로 사용
  • 음성적 정보교환, 유지보수 곤란
공유
결합도
공통자료
공통영역
  • 동일 전역변수 공유, 자료 변경시에 영향
  • 매개변수를 교환하지 않는 간접 정보 교환
  • 모듈/자료 분리로 재사용 어려움
내용
결합도
내용
직접조작
  • 모듈이 다른 모듈의 내부기능/자료를 직접 참조
  • 다른 모듈의 중간으로 Branching
  • 유지보수 어려움

응집도 특징
  • 정보은닉 개념을 적용한 모듈의 기능연관성을 측정하는 척도
  • 응집도가 높아지면 다른 모듈과의 의존도가 작아지고 독립성이 강해짐
  • 모듈 내에 필요한 함수와 데이터들의 친화력을 측정하는 사용
  • 응집도가 높아지면 재사용성이 향상되고 품질도 향상되는 효과가 있음
  • 모듈간 결합도를 최소화하여 응집도를 높이고 유지보수를 용이하게

응집도 수준
유형수행기능응집대상
내용
기능
응집도
단일기능 개의 Task
  • 모든 명령이 한가지 문제해결을 위한 작업 수행
  • 필요한 모든 구성 요소들을 포함
  • 구조적 설계원리에 적합한 페러다임
  • 가장 이상적으로 재사용 추천
순차
응집도
자료처리
공통
데이터
  • 활동의 출력이 다음 활동의 입력으로 사용
  • 일련의 활동들이 체인 형식으로 구성
통신
응집도
자료처리
공통
데이터
  • 모듈내의 요소사이에 데이터를 송수신
  • 서로 다른 기능이 동일 자료 사용
  • 입력 값에 따라 출력이 달라짐
  • 처리 순서는 상관없음
절차
응집도
흐름제어
비공통
데이터
  • 관련 없는 기능요소가 배열된 순서로 수행
  • 모듈내의 활동들이 순차적으로 수행
  • 제어가 다음 활동으로 이동
시간
응집도
흐름제어
비공통
데이터
  • 기능 요소가 순서 상관없이 특정시점에 수행
  • 가공자료 t 다른
논리
응집도
자료처리
흐름제어
상호배제없이병행
  • 모듈내 기능요소가 일반적인 같은 성질을 처리
우연
응집도
자료처리
흐름제어
서로관련없는활동
  • 모듈구성요소가 아무 관계없는 기능요소 존재
  • 명령문 분류, 재구성 필요

댓글 없음:

댓글 쓰기

ETL 솔루션 환경

ETL 솔루션 환경 하둡은 대용량 데이터를 값싸고 빠르게 분석할 수 있는 길을 만들어줬다. 통계분석 엔진인 “R”역시 하둡 못지 않게 관심을 받고 있다. 빅데이터 역시 데이터라는 점을 볼때 분산처리와 분석 그 이전에 데이터 품질 등 데이...