075. 모듈
1) 모듈(Module)
- 모듈화를 통해 분리된 시스템의 각 기능
- 모듈의 독립성은 결합도와 응집도에 의해 측정됨
2) 결합도(Coupling)
- 모듈 간에 상호 의존하는 정도
내용 결합도 (Content Coupling)
|
한 모듈이 다른 모듈의 내부 기능 및 그 내부 자료를 직접 참조하거나 수정할 때
|
공통(공유) 결합도 (Common Coupling)
|
공유되는 공통 데이터 영역을 여러 모듈이 사용할 때
|
외부 결합도 (External Coupling)
|
어떤 모듈에서 선언한 데이터(변수)를 외부의 다른 모듈에서 참조할 때
|
제어 결합도 (Control Coupling)
|
어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해 제어 신호나 제어 요소를 전달하는 결합도
|
스탬프 결합도 (Stamp Coupling)
|
모듈 간의 인터페이스로 배열이나 레코드 등의 자료 구조가 전달될 때의 결합도
|
자료 결합도 (Data Coupling)
|
모듈 간의 인터페이스가 자료 요소로만 구성될 때의 결합도
|
3) 응집도(Cohesion)
- 모듈의 내부 요소들이 서로 관련되어있는 정도
기능적 응집도 (Functional Cohesion)
|
모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우
|
순차적 응집도 (Sequential Cohesion)
|
모듈 내 하나의 활동으로부터 나온 출력 데이터를 그 다음 활동의 입력 데이터로 사용할 경우
|
교환(통신)적 응집도
(Communication Cohesion) |
동일한 입력과 출력을 사용하여 서로 다른 기능을 수행하는 구성요소들이 모였을 경우
|
차적 응집도 (Procedural Cohesion)
|
모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성 요소들이 그 기능을 순차적으 로 수행할 경우
|
시간적 응집도 (Temporal Cohesion)
|
특정 시간에 처리되는 몇 개의 기능을 모아 하나의 모듈로 작성할 경우
|
논리적 응집도 (Logical Cohesion)
|
유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들로 하나의 모듈이 형성되 는 경우
|
우연적 응집도 (Coincidental Cohesion)
|
모듈 내부의 각 구성 요소들이 서로 관련 없는 요소로만 구성된 경우
|
4) 팬인(Fan-In)/팬아웃(Fan-Out)
-팬인 :어떤모듈을제어하는모듈의수
- 팬아웃: 어떤 모듈에 의해 제어되는 모듈의 수
5) N-S 차트(Nassi-Schneiderman Chart)
- 논리의 기술에 중점을 두고 도형을 이용해 표현하는 방법
076. 단위 모듈
1) 단위 모듈(Unit Module)
- 한 가지 동작을 수행하는 기능을 모듈로 구현한 것
- 단위 모듈 구현 과정 : 단위 기능 명세서 작성 -> 입, 출력 기능 구현 -> 알고리즘 구현
2) IPC(Inter-Process Communication)
- 모듈 간 통신 방식을 구현하기 위해 사용되는 대표적인 프로그래밍 인터페이스 집합
- IPC의 대표 메소드 5가지
: Shared Memory, Socket, Semaphores, Pipes&named Pipes, Message Queueing
3) 단위 모듈 테스트(단위 테스트)
- 모듈이 정해진 기능을 정확히 수행하는지 검증하는 것
4) 테스트 케이스(Test Case)
- 소프트웨어가 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위한 테스트 항목에 대한 명세서
077. 공통 모듈
1) 공통 모듈
- 여러 프로그램에서 공통으로 사용할 수 있는 모듈
2) 공통 모듈 명세 기법의 종류
- 정확성(Correctness)
: 시스템 구현 시 해당 기능이 필요하다는 것을 알 수 있도록 정확히 작성함
- 명확성(Clarity)
: 해당 기능을 이해할 때 중의적으로 해석되지 않도록 명확하게 작성함
- 완전성(Completeness)
: 시스템 구현을 위해 필요한 모든 것을 기술함
- 일관성(Consistency)
: 공통 기능들 간 상호 충돌이 발생하지 않도록 작성함
- 추적성(Traceability)
: 기능에 대한 요구사항의 출처, 관련 시스템 등의 관계를 파악할 수 있도록 작성함
3) 재사용(Reuse)
- 이미 개발된 기능들을 새로운 시스템이나 기능 개발에 사용하기 적합하도록 최적화하는 작업
- 재사용 규모에 따른 분류: 함수와 객체, 컴포넌트, 애플리케이션
4) 효과적인 모듈 설계 방안
- 결합도↓ 응집도↑ -> 모듈의 독립성↑ 재사용성↑
- 복잡도↓ 중복성↓ 일관성 유지
'it자격증 준비 > 정보처리기사(실기)' 카테고리의 다른 글
04. 서버 프로그램 구현 | 서버 개발, 보안 및 API, 배치 프로그램, 패키지 소프트웨어 (0) | 2023.08.19 |
---|---|
04. 서버 프로그램 구현 | ★디자인 패턴(Design Pattern), 코드(Code), 개발 지원 도구 (0) | 2023.08.16 |
04. 서버 프로그램 구현 | 객체지향(Object-Oriented), 객체지향 분석 및 설계 (0) | 2023.08.12 |
04. 서버 프로그램 구현 | 개발 환경 구축, 소프트웨어 아키텍처, 아키텍처 패턴 (0) | 2023.08.10 |
03. 통합 구현 | 통합 구현, XML(eXtensible Markup Language), 연계 테스트 (0) | 2023.08.07 |