- 모듈의 개념과 특징
- 모듈의 개념
- 모듈 (Module): 모듈화를 통해 분리된 시스템의 각 기능으로, 서브루틴, 서브시스템, 소프트웨어 내의 프로그램, 작업 단위 등을 의미
- 결합도 (Coulping): 모듈 간에 상호 의존하는 정도 또는 두 모듈 사이의 연관 관계
- 결합도의 종류: 내용 결합도 (Content Coupling), 공통 (공유) 결합도 (Common Coupling), 외부 결합도 (External Coupling), 제어 결합도 (Control Coupling), 스탬프(검인) 결합도 (Stamp Coupling), 자료 결합도 (Data Coupling)
- 결합도의 강도: 내용 결합도 > 공통(공유) 결합도 > 외부 결합도 > 스탬프(검인) 결합도 > 자료 결합도
- 응집도 (Cohension): 모듈의 내부 요소들이 서로 관련되어 있는 정도
- 응집도의 종류: 기능적 응집도 (Functional Cohesion), 순차적 응집도 (Sequential Cohesion), 교환 (통신)적 응집도 (Communication Cohesion), 절차적 응집도 (Procedual Cohesion), 시간적 응집도 (Temporal Cohesion), 논리적 응집도 (Logical Cohesion), 우연적 응집도 (Coincidental Cohesion)
- 응집도의 강도: 기능적 응집도 > 순차적 응집도 > 교환(통신)적 응집도 > 절차적 응집도 > 시간적 응집도 > 논리적 응집도 > 우연적 응집도
- 팬인 (Fan-In) / 팬아웃 (Fan-Out)
- 팬인 (Fan-In): 어떤 모듈을 제어하는 모듈의 수
- 팬아웃 (Fan-Out): 어떤 모듈에 의해 제어되는 모듈의 수를 의미
- N-S 차트 (Nassi-Schneiderman Chart): 논리의 기술에 중점을 두고 도형을 이용해 표현하는 방법
- 모듈의 개념
- 단위모듈
- 단위 모듈 (Unit Module)의 구현
- 단위 모듈의 개요
- 단위 모듈: 소프트웨어 구현에 필요한 여러 동작 중 한 가지 동작을 수행하는 기능을 모듈로 구현한 것
- 단위 모듈의 구현 과정: 단위 기능 명세서 작성 -> 입출력 기능 구현 -> 알고리즘 구현
- 단위 기능 명세서 작성: 셀계 과정에서 작성하는 기능 및 코드 명세서나 설계 지침과 같이 단위 기능을 명세화한 문서들을 의미
- 입출력 기능 구현: 단위 기능 명세서에서 정의한 데이터 형식에 따라 입출력 기능을 위한 알고리즘 및 데이터를 구현함
- 알고리즘 구현: 입출력 데이터를 바탕으로 단위 기능별 요구 사항들을 구현 가능한 언어를 이용하여 모듈로 구현함
- IPC (Inter-Process Communication)
- IPC: 모듈 간 통신 방식을 구현하기 위해 사용되는 대표적인 프로그래밍 인터페이스 집합
- IPC의 대표 메소드 5가지: Shared Memory, Socket, Semaphores, Pipes & named Pipes, Message Queueing
- 단위 모듈의 개요
- 단위 모듈 테스트
- 단위 모듈 테스트의 개요
- 단위 모듈 테스트: 프로그램의 단위 기능으로 구현된 모듈이 정해진 기능을 정확히 수행하는지 검증하는 것
- 단위 테스트 (Unit Test)라고도 하며, 화이트박스 테스트와 블랙박스 테스트 기법을 사용함
- 테스트 케이스 (Test Case)
- 테스트 케이스: 구현된 소프트웨어가 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위해 설계된 값, 시행 조건, 기대 결과 등으로 구성된 테스트 항목에 대한 명세서
- ISO/IEC/IEEE 29119-3 표준에 따른 테스트 케이스의 구성 요소
- 식별자 (Identifier)
- 테스트 항목 (Test Item)
- 입력 명세 (Input Specification)
- 출력 명세 (Output Specification)
- 환경 설정 (Environmental Needs)
- 특수 절차 요구 (Special Procedure Requirement)
- 의존성 기술 (Inter-case Dependecies)
- 테스트 프로세스
- 테스트 프로세스: 테스트를 수행하는 모든 작업들이 테스트의 목적과 조건을 달성할 수 있도록 도와주는 과정
- 테스트 프로세스 5단계
- 계획 및 제어 단계
- 분석 및 설계 단계
- 구현 및 실현 단계
- 평가 단계
- 완료 단계
- 단위 모듈 테스트의 개요
- 단위 모듈 (Unit Module)의 구현
- 공통 모듈
- 공통 모듈: 여러 프로그램에서 공통으로 사용할 수 있는 모듈
- 공통 모듈 명세 기법의 종류: 정확성 (Correctness), 명확성 (Clarity), 완전성 (Completeness), 일관성 (Consistency), 추적성 (Traceability)
- 재사용 (Reuse): 이미 개발된 기능들을 새로운 시스템이나 기능 개발에 사용하기 적합하도록 최적화하는 작업
- 효과적인 모듈 설계 방안
- 결합도 (Coupling)은 줄이고 응집도 (Cohesion)는 높여서 모듈의 독립성과 재사용성을 높임
- 복잡도와 중복성을 줄이고 일관성을 유지시킴
- 모듈의 기능은 예측이 가능해야 하며 지나치게 제한적이어서는 안됨
- 모듈 크기는 시스템의 전반적인 기능과 구조를 이해하기 쉬운 크기로 분해함
- 효과적인 제어를 위해 모듈 간의 계층적 관계를 정의하는 자료가 제시되어야 함
- 디자인 패턴
- 디자인 패턴 (Design Pattern): 모듈 간의 관계 및 인터페이스를 설계할 때 참조할 수 있는 전형적인 해결 방식 또는 예제를 의미함
- 생성 패턴 (Creational Pattern): 클래스나 객체의 생성과 참조 과정을 정의하는 패턴
- 구조 패턴 (Structural Pattern): 구조가 복잡한 시스템을 개발하기 쉽도록 클래스나 객체들을 조합하여 더 큰 구조로 만드는 패턴
- 행위 패턴 (Behavioral Pattern): 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴
'정보처리기사' 카테고리의 다른 글
[정보처리기사] 실기 노트 - 화면 설계 (0) | 2025.01.07 |
---|---|
[정보처리기사] 실기 노트 - 인터페이스 구현 (0) | 2025.01.07 |
[정보처리기사] 실기 노트 - 서버 프로그램 구현 1 (0) | 2025.01.06 |
[정보처리기사] 실기 노트 - 통합구현 (0) | 2025.01.06 |
[정보처리기사] 실기 노트 - 데이터 입출력 구현 4 (1) | 2025.01.03 |