구조적 분석 산출물: DFD·자료사전·소단위 명세·HIPO
DFD, 자료 사전, 소단위 명세, HIPO의 구성 요소와 용도를 구분한다.
구조적 분석 산출물
| 산출물 | 답하는 질문 |
|---|---|
| DFD(Data Flow Diagram) | 데이터가 어디서 와서 어떤 처리 후 어디로 가는가? |
| 자료 사전(Data Dictionary) | 흐름·저장소·데이터 요소의 뜻과 구조는 무엇인가? |
| 소단위 명세(Mini-Spec) | 더 분해하지 않은 프로세스의 처리 규칙은 무엇인가? |
| HIPO | 기능은 어떻게 계층화되고 각 기능의 입력·처리·출력은 무엇인가? |
DFD의 네 요소

DFD 기본 요소도
| 요소 | 의미 | 이름 작성 기준 |
|---|---|---|
| 외부 개체(Entity) | 시스템 밖에서 데이터를 주거나 받는 대상 | 명사 |
| 프로세스(Process) | 입력 데이터를 출력 데이터로 변환하는 기능 | 동사형 기능명 |
| 자료 흐름(Data Flow) | 이동하는 데이터 | 명사 |
| 자료 저장소(Data Store) | 시스템이 보관하는 데이터 | 명사 |
표기 모양은 Yourdon/DeMarco, Gane/Sarson 등 표기법에 따라 다를 수 있으므로 모양보다 의미를 먼저 판단한다.
연결 규칙
- 외부 개체와 외부 개체를 직접 연결하지 않는다.
- 외부 개체와 자료 저장소를 직접 연결하지 않는다.
- 자료 저장소와 자료 저장소를 직접 연결하지 않는다.
- 데이터의 변환은 프로세스를 거쳐야 한다.
- 프로세스에는 의미 있는 입력과 출력이 있어야 한다.
대표 논리 오류
- 블랙홀: 입력은 있으나 출력이 없다.
- 미라클: 입력 없이 출력이 생긴다.
- 그레이홀: 입력만으로는 설명할 수 없는 과도한 출력이 생긴다.
DFD는 프로그램의 제어 순서, 반복 횟수, 화면 배치, 자료 구조의 물리 구현을 나타내는 도구가 아니다.
단계적 분해와 균형성
컨텍스트 다이어그램은 전체 시스템을 하나의 프로세스로 보고 외부 개체와 주요 입출력만 표현한다. 하위 DFD로 분해할수록 내부 프로세스와 저장소가 상세해진다.
상위 프로세스의 입출력은 하위 DFD 전체의 입출력과 일치해야 한다. 이를 균형성(Balancing)이라 한다. 하위에서 임의의 외부 입출력이 추가·삭제되면 균형이 깨진다.
자료 사전
자료 사전은 DFD에 사용한 데이터 이름·별칭·설명·구조·값의 범위를 통일한다.
| 기호 | 대표 의미 | 예 |
|---|---|---|
= | 정의 | 주문 = 주문번호 + 고객정보 + 주문항목 |
+ | 연결 | 성명 = 성 + 이름 |
[ | ] | 선택 | 결제수단 = [카드 | 계좌이체] |
( ) | 선택적 요소 | 고객 = 고객번호 + (이메일) |
{ } | 반복 | 주문 = 주문번호 + {주문항목} |
* * | 주석 | * 배송지가 없으면 기본 주소 사용 * |
교재에 따라 선택·반복 기호 표현이 조금 다를 수 있으므로 문제에서 제시한 범례를 우선한다.
소단위 명세
최하위 프로세스의 처리 규칙을 구조적 영어, 의사코드, 결정표, 결정트리 등으로 기술한다.
- 조건과 행동 조합이 많으면 결정표가 유리하다.
- 조건의 분기 순서가 중요하면 결정트리가 이해하기 쉽다.
- 순차·선택·반복 논리를 간결하게 쓰려면 구조적 영어·의사코드를 사용할 수 있다.
HIPO

HIPO 계층 구조 예시
HIPO(Hierarchy plus Input Process Output)는 기능 계층과 각 기능의 입력·처리·출력을 문서화한다.
- 가시적 도표: 전체 기능의 계층 관계
- 총체적 도표: 각 기능의 입력·처리·출력 개요
- 세부적 도표: 기본 요소 수준의 상세 처리
DFD가 데이터 흐름 중심이라면 HIPO는 기능 계층과 IPO 관계 중심이다.
분석 자동화 도구
CASE 등 분석 자동화 도구는 다이어그램 작성, 데이터 사전 연계, 일관성 검사, 문서 생성, 버전 관리를 지원할 수 있다. 그러나 요구의 업무 타당성, 이해관계자 합의, 모델의 의미를 자동으로 보장하지 않는다.