[필기] 정보처리기사 20강
TOPIC : 프로세스, 프로그램 설계 및 시스템 평가와 문서화
> 프로세스의 경우 전반적으로, 개략적으로
> 프로그램의 경우 상세하게, 자세하게
1. 프로세스 설계
1-1. 프로세스 설계의 개요
> 프로세스 설계 : 입력과 출력 사이의 일련된 처리과정을 설계하는 것
> 프로그래밍 하기에 앞서, 전반적으로 어떻게 다뤄야 하는지 살펴보는 것을 의미.
> 따라서 전체 기틀을 잡기 위해 설계도를 먼저 그려야한다.
1-2. 설계도
설계도의 종류는 다음과 같으며, 이 중 순서도에 무게를 실어야한다.
- 블록 도표 (Block Chart)
- 시스템 순서도 (System Flowchart)
- 프로세스 순서도 (Process Flowchart)
- > 컴퓨터로 문제를 처리하기 위해 자료가 입력, 처리, 출력되는 과정을 그림으로 표시
- 프로그램 순서도 (Program Flowchart)
- > 프로그램에서 사용될 입출력자료와 처리, 조건, 절차 등을 세부적으로 표시한 도형.
- > 프로그래머가 작성하는 것이 특징이다.
설계도에서도 보이듯, 프로세스는 전반적인 처리과정을 살펴보는 반면, 프로그램의 경우 자료의 처리, 조건, 절차등을 상세하게 살펴보는 것이 특징이다. 굳이 따지자면 프로세스 설계 ⊃ 프로그램 설계 구조 인듯.
1-3. 프로세스 표준 패턴
> 포인트는 '반복적으로 이용되는 표준 패턴을 어떻게 이용할 것인가' 가 중점. 프로세스를 설계하기 위한 파일을 어떻게 작업하는 지 패턴 파악.
- 병합 (Merge) : 두 개이상의 파일을 정돈하여 하나의 파일을 만드는 작업
- 갱신 (Update) : 마스터파일의 내용을 트랜잭션 파일의 내용으로 변경시키는 작업 (마스터파일 = 원본)
- 분류 (Sort) : 정돈되지 않은 자료를 순서적으로 다시 재배열 하는 작업
- 대조 (Matching) : 두 개의 파일을 대조하여 순서나 기록 내용을 검사하는 작업
- 추출 (Extract) : 조건에 맞는 것을 파일 내에서 찾아내는 작업
1-4. 설계하는 것 까진 좋은데, 오류가 있는 지 없는지 확인하는 작업 : 체크 시스템코딩 다 짜고 오류 발견하기엔 너무 늦으니까 입력단계서부터 검사를 실시함.
- 순서검사 (Sequence Check) : 입력코드가 정해진 순서 (오름, 내림차순)으로 돼있는 지 검사
- 형태검사 (Mode Check) : 입력 코드가 정해진 형태 (문자형, 숫자형)에 맞게 돼있는 지 검사
- 한계검사 (Limit Check) : 입력 코드가 정해진 범위 (상한, 하한값)에 맞게 돼있는 지 검사
- 메아리검사 (Echo Check) : 입력 코드를 일차적으로 검사한 후, 수신측에서 오류 재확인후 송신
- 논리 검사 (Logical Check)
- 형식 검사 (Format Check)
- 균형 검사 (Balance Check) : 대차 대조의 균형이나 좌변 우변의 균형이 일치하는 지 검사
- 합계검사 (Sum Check)
2. 프로그램 설계
2-1. 프로그램 설계의 개요
> 프로그램 설계는 프로세스 설계에 비해 좀 더 상세하게, 세부적인 작업.
> 시스템 설계의 마지막 단계, 프로그램에 포함될 세부 내용을 정리하는 작업을 의미한다.
> 시스템 구조설계, 흐름도 설계, 프로그램 설계, 문서화의 설계를 수행한다.
* 문서화 작업 중요함, 개발된 모든 사항을 문서화 시킴으로서 관리 및 유지보수의 용이성과 개발 중 추가 변경에 따른 혼란 방지 및 인수인계에 용이함을 제공함.
2-2. 프로그래밍의 순서
- 업무 분석
- 타당성 조사
- 입출력 설계
- 순서도 작성 (실기)
- 개략 순서도 : 시스템 도형을 통해 입출력 자료와 처리내용을 개략적으로 표시한 도형
- 상세 순서도 : 개략순서도 내용을 바탕으로 알고리즘에 관한 자세한 내용을 표현한 도형
- 코딩
- 실행
- 수정
- 문서화
3. 시스템 평가
3-1. 시스템 평가의 개요
> 시스템 평가는 시스템이 제대로 작동하는 지 아닌지 확인하는 작업. 평가 항목은 세 가지 이다.
- 기능 평가 : 사용자가 요구하는 기능을 시스템이 얼마나 잘 수행하는가?
- 성능 평가 : CPU 처리속도 및 메모리 용량, 입출력장치의 속도, 파일 편성과 접근방법 등을 평가
- 신뢰성 평가 : 시스템을 얼마나 믿을 수 있는 지 확인.
3-2. 신뢰성 (Reliablity)
> 시스템이 얼마나 고장없이, 고장이 난다면 얼마나 빠르게 복구되어 정확한 결과시간 내에 산출하는 지의 척도를 확인한다. 확인 척도는 두 가지를 통해 계산한다.
> 평균 가동 시간 (MTBF, Mean Time Between Failure) : 시스템 고장 발생 시점으로 부터 다음 고장 발생까지 평균시간
> MTBF = 작업한 시간의 총합 / 작업횟수 를 통해 계산한다.
> 평균 수리 시간 (MTTR, Mean Time To Repair) : 시스템이 고장나서 보수하느라 작업하지 못 한 평균 수리 시간 의미.
> MTTP = 수리한 시간의 총합 / 고장 횟수 를 통해 계산한다.
MTBF와 MTTP를 이용하여 신뢰율 Reliablity = MTBF / (MTBF + MTTP) * 100% 로 산출한다.
(= 가동시간 / 전체 시간) * 100%
3-3. 소프트웨어 비용 산정 방법
> 개발하는 데 소모되는 비용 (= 소프트웨어 비용)은 어떻게 산정하는가? 두 가지 방법이 존재한다.
- 하향식 방법
- 전문가 감정
- 델파이법
- 상향식 방법
- 원시 코드 라인 수 (LOC, Line Of Code) 기법
- 개발 단계별 인/월수 기법
- COCOMO (COnstructive COst MOdel)
- Boehmn이 제안한 방법으로, 제품의 복잡도에 따라 세 가지로 구분지음.
- 조직형 (Organic Mode) : 5만 라인 이하
- 반분리형 (Semidetached Mode) : 30만 라인 이하
- 내장형 (Embedded Mode) : 30만 라인 이상
- Boehmn이 제안한 방법으로, 제품의 복잡도에 따라 세 가지로 구분지음.