Study/정보처리기사

042 단위 모듈 구현 - 2장 통합 구현 - 2과목 소프트웨어 개발

삼공비 2022. 1. 22. 14:19

1. 단위 모듈의 개요

- 소프트웨어 구현에 필요한 한가지 동작을 수행하는 기능을 모듈로 구현한 것

- 사용자나 다른 모듈로부터 값을 전달받아 시작되는 작은 프로그램을 의미하기도 함

- 두 개의 단위 모듈이 합쳐질 경우 두 개의 기능을 구현할 수 있다

- 구성 요소 : 처리문, 명령문, 데이터 구조 등

- 독립적인 컴파일이 가능, 다른 모듈에 호출되거나 삽입되기도 한다

- 구현을 위해서는 단위 기능 명세서를 작성한 후 입출력 기능과 알고리즘을 구현

 

2. 단위 기능 명세서 작성

- 설계 과정에서 작성하는 기능 및 코드 명세서나 설계 지침과 같이 단위 기능을 명세화한 문서들을 의미

- 복잡한 시스템을 단순하게 구현하기 위한 추상화 작업이 필요

- 대형 시스템을 분해하여 단위 기능별로 구분하고, 각 기능들을 계층적으로 구조화 한다

- 모듈의 독립적 운용과 한 모듈의 정보가 다른 모듈에 영향을 주지 않도록 정보 은닉을 고려한다

 

3. 입출력 기능 구현

- 단위 기능 명세서에서 정의한 데이터 형식에 따라 입출력 기능을 위한 알고리즘 및 데이터를 구현

- 단위 모듈 간의 연동/통신을 위한 입출력 데이터를 구현

- 사용자 인터페이스(CLI, GUI)와의 연동을 고려

IPC(Inter-Process Communication
- 모듈 간 통신 방식을 구현하기 위한 인터페이스
- 복수의 프로세스를 수행하고 통신까지 구현
1. Shared Memory - 다수의 프로세스가 공유 가능한 메모리를 구성하여 프로세스 간 통신을 수행
2. Socket - 네트워크 소켓을 이용하여 통신
3. Semaphores - 공유 자원에 대한 접근 제어를 통해 통신
4. Pipes & named Pipes - Pipe라고 불리는 선입ㅂ선출 형태로 구성된 메모리를 여러 프로세스가 공유하여 통신
                                          - 하나의 프로세스가 Pipe를 이용 중이라면 다른 프로세스는 접근 불가
5. Message Queueing - 메시지가 발생하면 이를 전달하는 형태로 소통

 

4. 알고리즘 구현

- 입출력 데이터를 바탕으로 단위 기능별 요구 사항들을 구현 가능한 언어로 구현

- 구현된 단위 기능들이 사용자의 요구와 일치하는지 확인하는 과정이 필요하다

- 단위 기능의 종류에 따라 종류가 나뉜다

                                     1. 디바이스 드라이버 모듈 - 하드웨어 주변 장치의 동작을 구현한 모듈

                                     2. 네트워크 모듈 - 네트워크 장비 및 데이터 통신을 위한 기능을 구현한 모듈

                                     3. 파일 모듈 - 컴퓨터 내부의 데이터 구조 영역에 접근하는 방법을 구현한 모듈

                                     4. 메모리 모듈 - 파일을 프로세스의 가상 메모리에 매핑/해제하는 방법, 프로세스 사이의 통신 기능을 구현한 모듈

                                     5. 프로세스 모듈 - 하나의 프로세스 안에서 다른 프로세스를 생성하는 방법을 구현한 모듈