728x90

1. 공통 모듈 구현

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

2. 공통 모듈 테스트

종류 설명
화이트박스 테스트 응용 프로그램의 내부 구조와 동작을 검사하는 소프트웨어 테스트 방식
소스 코드를 보면서 테스트 케이스를 다양하게 만들어 테스트를 수행
메서드 기반 테스트 공통 모듈의 외부에 공개된 메서드 기반의 테스트
메서드에 서로 다른 파라미터 값을 호출하면서 다양한 테스트를 수행
화면 기반 테스트 사용자용 화면이 있는 경우, 각각의 화면단위로 단위모듈을 개발 후에 화면에 직접 데이터를 입력하여 테스트 수행
사용자 시나리오에 기반한 공통 모듈 테스트를 할 수 있는 장점
테스트 드라이버/ 테스트 스텁 기능을 테스트할 수 있는 화면 또는 하위 모듈이 구현되지 않은 경우
테스트 드라이버 :  하위 모듈 있고 상위 모듈 없는 경우
테스트 스텁 :  상위 모듈 있고 하위 모듈 없는 경우

 

728x90
300x250
WONILLISM