코딩하는라민

[정보처리기사 실기] 공통 모듈 본문

자격증 공부/정보처리기사

[정보처리기사 실기] 공통 모듈

코딩하는라민 2023. 9. 19. 23:58
728x90
반응형

[정보처리기사 실기] 공통 모듈

 


모듈

그 자체로 하나의 완전한 기능을 수행할 수 있는 독립된 실체
독립성이 높은 모듈은 수정 시 다른 모듈들에 영향을 미치지 않고, 오류 시 쉽게 해결 가능

 결합도응집도모듈 크기
  모듈의 독립성 높이기⬇️⬆️⬇️

 

모듈화 기법

기법설명
  루틴  🔹특정 동작을 수행하는 일련의 코드
  🔹기능을 가진 명령어들의 모임
  메인 루틴  🔹전체의 개략적인 동작 절차를 표시하도록 만들어진 루틴
  🔹서브 루틴 호출
  서브 루틴  🔹메인 루틴에 의해 필요할 때마다 호출

 

응집도 ⭐

모듈의 독립성을 나타내는 정도
모듈 내부 구성 요소 간 연관 정도
하나의 기능을 수행할 수록 응집도가 높다.

유형설명 
  연적모듈 내부의 각 구성 요소가 연관이 없을 경우응집도 낮음
 (나쁜 품질)
  리적유사 성격, 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 경우
  간적특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리하는 경우⬇️
⬇️
⬇️
  차적다수 관련 기능 가질 때 모듈 안 구성요소들이 그 기능을 순차적으로 수행할 경우
  신적동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여있는 경우
  차적한 활동으로부터 나온 출력값을 다른 활동이 사용할 경우의 응집도응집도 높음
(좋은 품질)
  능적모듈 내부의 모든 기능이 단일 목적을 위해 수행되는 경우

 

결합도 ⭐⭐

모듈 내부가 아닌 외부의 모듈과의 연관 정도 또는 모듈 간 상호 의존성
모듈 간의 관련성을 측정하는 척도

유형설명 
  다른 모듈 내부 변수/기능을 다른 모듈에서 사용하는 경우
하나의 모듈이 직접적으로 다른 모듈의 내용을 참조
결합도 높음
 (나쁜 품질)
  모듈 밖에 선언되어 있는 전역 변수 참조, 갱신하는 식으로 상호작용하는 경우
공유되는 공통 데이터 영역을 여러 모듈이 사용할 경우
  두 모듈이 외부에서 도입된 데이터 포맷, 통신 프로토콜, 디바이스 인터페이스를 공유할 경우
외부 모듈에서 선언한 데이터를 외부 다른 모듈에서 참조할 때
⬇️
⬇️
⬇️
  어떤 모듈이 다른 모듈의 내부 논리 조직을 제어하기 위한 목적으로 제어 신호를 이용하여 통신하는 경우
하위 모듈에서 상위 모듈로 제어 신호가 이동하여 상위 모듈에게 처리 명령을 부여하는 권리 전도 현상 발생
  탬프모듈 간 인터페이스배열, 객체, 구조 등이 전달되는 경우
동일한 자료 구조를 조회하는 경우의 결합도
자료 구조의 변화는 모든 모듈에 영향을 미치게 됨
결합도 낮음
(좋은 품질)
  모듈 간 인터페이스로 전달되는 파라미터를 통해서만 모듈 간 상호작용이 일어나는 경우
한 모듈의 내용이 변하더라도 다른 모듈에는 영향을 미치지 않는 상태로 가장 바람직

 

MVC 패턴

구분역할
 모델  애플리케이션이 무엇을 할 것인지를 정의
  내부 비즈니스 로직 처리
 뷰  화면에 무엇을 보여주기 위함
  모델, 컨트롤러가 보여주려고 하는 것을 화면에 처리
 컨트롤러  모델이 어떻게 처리할지를 알려주기 위함
  뷰에 명령을 보내어 화면 요청 결과 전달

 

팬인 / 팬아웃

 팬인팬아웃
개념 어떤 모듈을 제어(호출)하는 모듈의 수 어떤 모듈에 의해 제어(호출)되는 모듈의 수
모듈 수 계산 자신에게 들어오면 팬인 자신으로부터 나가면 팬아웃
고려 재사용 측면에서 좋지만, 단일 장애점 발생 가능
 관리 비용, 테스트 비용 증가
 불필요한 모듈 호출 여부 검토 필요
 단순화 여부 검토 필요
 작성 예시
팬인  A: 0, B: 1, C: 0, D: 1, E: 1, F: 2, G: 1, H: 2, I: 0, J: 1
팬아웃  A: 2, B: 0, C: 3, D: 0, E: 1, F: 2, G: 1, H: 0, I: 1, J: 0

 

공통 모듈 테스트

공통 모듈 테스트를 위해 IDE 도구를 활용하여 개별 공통 모듈에 대한 디버깅 수행
화이트박스 기법 활용
대표적인 단위 테스트 도구인 jUnit 을 활용하여 테스트 코드 구현

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