[정보처리기사] 소프트웨어 모듈의 독립성 (결합도, 응집도)
- 자격증,이론/정보처리기사
- 2020. 5. 21. 15:34
시나공 기준 개정된 2020 정보처리기사에서는 이전과 달리 모듈 부분에 결합도와 응집도는 똑같지만 팬인/팬아웃이 추가되었다.
모듈 (Module) 개요
- 모듈은 모듈화를 통해 분리된 시스템의 각 기능들을 의미
- 모듈은 단독으로 컴파일이 가능, 재사용 가능
- 모듈의 독립성은 결합도와 응집도에 의해 측정됨
- 독립성을 높이려면 결합도는 약하게, 응집도는 강하게, 모듈의 크기는 작게 만들어야 함
* 모듈화 : 소프트웨어 성능 향상이나 수정 및 재사용 등이 용이하도록 시스템의 기능들을 모듈 단위로 분해하는 것
결합도 (Coupling) - 약할수록 좋음
- 모듈간에 상호 의존하는 정도, 두 모듈 사이의 연관 관계를 의미
- 결합도가 강하면 시스템 구현 및 유지보수가 어려움
- 결합도의 종류 : 자료 < 스탬프 < 제어 < 외부 < 공통 < 내용
(결합도 약함)
자료 결합도 |
- 모듈 간 인터페이스가 자료 요소로만 구성되는 제일 바람직한 결합도 |
스탬프 결합도 |
- 모듈 간 인터페이스로 배열 등 자료구조가 전달될 때의 결합도 |
제어 결합도 |
- 다른 모듈 내부의 흐름 제어를 위해 통신하거나 제어 요소를 전달할 때의 결합도 |
외부 결합도 |
- 어떤 모듈에서 선언한 데이터를 외부의 다른 모듈에서 참조할 때의 결합도 |
공통 결합도 |
- 공유되는 공통 데이터 영역을 여러 모듈이 사용할 때의 결합도 |
내용 결합도 |
- 다른 모듈의 내부기능이나 내부자료를 직접 참조하거나 수정할 때의 결합도 |
(결합도 강함)
응집도(Cohesion) - 높을수록 좋음
- 정보은닉의 개념을 확장한 것으로 모듈 내부 요소들이 서로 관련되어 있는 정도를 의미
- 모듈이 독립적인 기능으로 정의되어 있는 정도
- 응집도가 높을수록 품질이 높음
- 응집도의 종류 : 기능적 > 순차적 > 교환적 > 절차적 > 시간적 > 논리적 > 우연적
(응집도 강함)
기능적 응집도 (Functional) |
- 모듈 내부의 모든 기능이 단일 문제와 연관될 경우의 응집도 |
순차적 응집도 (Sequential) |
- 모듈 내 출력 데이터를 그 다음 활동의 입력 데이터로 사용할 경우의 응집도 |
교환적 응집도 (Communication) |
- 동일 입출력을 사용, 서로 다른 기능을 수행하는 요소들이 모였을 경우의 응집도 |
절차적 응집도 (Procedural) |
- 모듈 내부 구성 요소들이 특정 기능을 순차적으로 수행할 경우의 응집도 |
시간적 응집도 (Temporal) |
- 특정 시간에 처리되는 기능을 모아 하나의 모듈로 작성할 경우의 응집도 |
논리적 응집도 (Logical) |
- 유사한 성격을 갖는 처리 요소들로 하나의 모듈이 형성되는 경우의 응집도 |
우연적 응집도 (Coincidental) |
- 모듈 내부의 각 구성 요소들이 서로 관련 없는 요소로만 구성된 경우의 응집도 |
(응집도 약함)
팬인/팬아웃
- 팬인 : 어떤 모듈을 제어하는 모듈의 수
- 팬아웃 : 어떤 모듈에 의해 제어되는 모듈의 수
- 시스템 복잡도를 최적화하려면 팬인은 높게, 팬아웃은 낮게 설계해야 함
'자격증,이론 > 정보처리기사' 카테고리의 다른 글
[정보처리기사] E-R (개체-관계) 모델, 다이어그램 표기법 및 기호 (0) | 2020.05.22 |
---|---|
[정보처리기사] 데이터베이스 설계의 순서, 스키마 3계층 (0) | 2020.05.21 |
[정보처리기사] 자료구조 (배열/선형리스트/스택/큐/데크/트리/그래프) (0) | 2020.05.21 |
[정보처리기사] 객체지향의 구성요소와 개념 (객체/클래스/캡슐화/상속성/다형성) (0) | 2020.05.20 |
[정보처리기사] UML의 구성요소, 다이어그램의 종류 (0) | 2020.05.18 |