728x90
1. 공통 모듈 구현
- 공통 모듈 구현의 개념
- 모듈 : 크게 독립된 하나의 소프트웨어 또는 하드웨어 단위를 지칭
- 모듈의 특징 :
- 각각의 모듈은 상대적으로 독립성을 갖고있음
- 단독으로 컴파일할 수 있으며, 재사용 가능
- 독립성이 높을수록 수정 시에도 다른 모듈에는 영향을 거의 미치지 않고, 오류 발생 시 쉽게 해결 가능
- 독립성을 높이려면 결합도는 약하게, 응집도는 강하게, 모듈의 크기는 작게
- 모듈화 기법
- 루틴, 메인 루틴, 서브 루틴
- 소프트웨어 모듈 응집도
- 응집도(Cohesion) : 모듈의 독립성을 나타냄, 모듈 내부 구성요소 간 연관 정도
- 응집도 유형 :
-
유형 설명 우연적 응집도 모듈 내부의 각 구성요소가 연관이 없을 경우 논리적 응집도 유사한 성격, 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우 시간적 응집도 특정 시간에 처리되어야 하는 활동을 한 모듈에서 처리할 경우 절차적 응집도 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성요소들이 그 기능을 순차적으로 수행할 경우 통신적 응집도 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우 순차적 응집도 모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우 기능적 응집도 모듈 내부의 모든 기능이 단일한 목적을 위해 수행되는 경우
- 소프트웨어 모듈 결합도
- 결합도(Coupling) : 모듈 내부가 아닌 외부의 모듈과의 연관도 또는 모듈 간의 상호의존성
- 결합도 유형
-
유형 설명 내용 결합도 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용하는 경우 공통 결합도 파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 전역변수를 갱신하는 식으로 상호작용하는 경우 외부 결합도 두 개의 모듈이 외부에서 도입된 데이터 포맷, 통신 프로토콜 또는 디바이스 인터페이스를 공유할 경우 제어 결합도 단순 처리할 대상인 값만 전달되는 게 아니라 어떻게 처리를 해야 한다는 제어 요소가 전달되는 경우 스탬프 결합도 모듈 간 인터페이스로 배열이나 객체, 구조 등이 전달되는 경우 자료 결합도 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 간의 상호 작용이 일어나는 경우
- 공통 모듈 구현 대상
- 화면 모듈, 서비스 컴포넌트, 비즈니스 트랜잭션 컴포넌트 등
- 공통 모듈 구현 절차
- 공통 모듈은 DTO/VO - SQL - DAO - Service - Controller - 화면 구현
- MVC 패턴
- 모델, 뷰, 컨트롤러
- 팬인(Fan-In) 및 팬아웃(Fan-Out)
-
구분 팬인(Fan-In) 팬아웃(Fan-Out) 개념 어떤 모듈을 제어하는 모듈의 수 어떤 모듈에 의해 제어되는 모듈의 수 모듈 숫자 계산 모듈 자신을 기준으로 모듈에 들어오면 팬인 모듈 자신을 기준으로 모듈에서 나가면 팬 아웃 고려사항 팬인이 높음 -> 재사용 측면 설계 잘됨, 단일 장애점 발생 가능, 관리비용 및 테스트 피용 증가 팬아웃 높음 -> 불필요한 모듈 호출 여부 검토 필요, 단순화 여부 검토 필요 - 팬인 팬아웃 계산 방법
-
2. 공통 모듈 테스트
종류 | 설명 |
화이트박스 테스트 | 응용 프로그램의 내부 구조와 동작을 검사하는 소프트웨어 테스트 방식 소스 코드를 보면서 테스트 케이스를 다양하게 만들어 테스트를 수행 |
메서드 기반 테스트 | 공통 모듈의 외부에 공개된 메서드 기반의 테스트 메서드에 서로 다른 파라미터 값을 호출하면서 다양한 테스트를 수행 |
화면 기반 테스트 | 사용자용 화면이 있는 경우, 각각의 화면단위로 단위모듈을 개발 후에 화면에 직접 데이터를 입력하여 테스트 수행 사용자 시나리오에 기반한 공통 모듈 테스트를 할 수 있는 장점 |
테스트 드라이버/ 테스트 스텁 | 기능을 테스트할 수 있는 화면 또는 하위 모듈이 구현되지 않은 경우 테스트 드라이버 : 하위 모듈 있고 상위 모듈 없는 경우 테스트 스텁 : 상위 모듈 있고 하위 모듈 없는 경우 |
728x90
300x250