응집도와 결합도(Cohesion and Coupling)
응집도는 모듈의 독립성을 나타내는 정도로, 모듈 내부 구성요소 간 연관 정도를 말한다.
하나의 모듈이 하나의 기능을 수행할수록 응집도가 높다. (응집도는 높을수록 좋다)
우논시절통순기(우연적, 논리적, 시간적, 절차적, 통신적, 순차적, 기능적)--낮은 순서에서 높은 순서로 나열
- 우연적 응집도(Coincidental) : 모듈 내부의 각 구성요소가 연관이 없음
- 논리적 응집도(Logical) : 유사한 성격, 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우
- 시간적(Temporal) : 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리해야할 경우
- 절차적(Procedual) : 모듈이 다수의 관련 기능을 가질 때 구성요소들이 그 기능을 순차적으로 수행할 경우
- 통신적(Communication) : 동일한 입출력을 사용해 다른 기능을 수행하는 활동들이 모여있을 경우
- 순차적(Sequential) : 모듈 내의 한 활동에서 나온 출력값을 다른 활동이 사용할 경우
- 기능적(Fuctional) : 모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우
결합도는 외부의 모듈들과 연관도 및 상호 의존성을 나타내며 모듈 간의 관련성을 측정하는 척도이다.
(결합도가 낮을수록 품질이 좋다)
내공외제스자(내용, 공통, 외부, 제어, 스탬프, 자료) --결합도가 높은순서에서 낮은 순서로 나열
- 내용 결합도(Content) : 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우
- 공통 결합도(Common) : 모듈 밖의 전역변수를 참조, 갱신하는 방식의 상호작용을 하는 경우
- 외부 결합도(External) : 외부 모듈에서 선언한 변수를 외부의 다른 모듈에서 참조할 때의 경우
- 제어 결합도(Control) : 어떤 모듈이 다른 모듈의 내부 논리 로직을 제어하기 위해 제어 신호를 이용하여 통신하는 경우
- 스탬프 결합도(Stamp) : 모듈간 인터페이스를 통해 배열, 객체, 구조 등이 전달되는 경우
- 자료 결합도(Data) : 인터페이스로 전달되는 파라미터를 통해서만 모듈간 상호작용이 발생할 때의 경우
시스템 복잡도를 최적화 하기 위해서는 팬인은 높게, 팬아웃 은 낮게 설계해야 함
팬인?(모듈 자신을 기준으로 모듈에 들어오면 팬인)
팬아웃?(모듈 자신을 기준으로 모듈에서 나가면 팬아웃)
공통 모듈 테스트
공통 모듈 테스트를 위해 IDE를 사용해 개별 공통 모듈에 대한 디버깅을 수행하고, 공통 모듈 테스트는 화이트박스 기법을 활용한다 ex) jUnit
공통 모듈 테스트의 종류는 다음과 같다
- 화이트박스 테스트 : 응용 프로그램의 내부 구조와 동작을 검사하는 소프트웨어 테스트 방식
- 메서드 기반 테스트 : 공통 모듈의 외부에 공개된 메서드 기반의 테스트
- 화면 기반 테스트 : 화면 단위로 모듈을 개발하고, 직접 데이터를 입력함으로써 테스트를 수행
- 테스트 드라이버(Driver)/테스트 스텁(Stub) 활용 : 드라이버는 하위 모듈은 있지만, 상위 모듈이 없는 경우 사용, 스텁은 이 반대
'자격증 > 정보처리기사' 카테고리의 다른 글
9장 소프트웨어 개발 보안 구축 - (1) 소프트웨어 개발 보안 설계 (0) | 2022.07.16 |
---|---|
8장 서버 프로그램 구현 - (1) 개발환경 구축 (0) | 2022.07.14 |
7장 SQL 응용 - (1) 데이터베이스 기본 (0) | 2022.07.14 |
6장 프로그래밍 언어 활용 - (2) 언어 특성 활용하기 (0) | 2022.07.12 |
5장 인터페이스 구현 - (2) 인터페이스 기능 구현 (0) | 2022.07.09 |