정의
데이터 흐름도(Data Flow Diagram, DFD)는 시스템·프로세스 내에서 데이터가 어떻게 흐르고 변환되는지를 시각적으로 표현한 다이어그램이다. 주로 소프트웨어 공학, 정보 시스템 분석·설계 단계에서 요구사항을 구조화하고, 시스템의 기능적 흐름을 파악하기 위해 이용된다. 데이터 흐름도는 데이터의 이동 경로, 저장소(데이터 저장소), 처리(프로세스), 외부 엔터티(외부와의 인터페이스)를 네 가지 기본 요소로 나타낸다.
역사·출처
데이터 흐름도는 1970년대에 미국의 시스템 분석가인 톰 데마르코(Tom DeMarco)가 제시한 방법론 중 하나로 알려져 있다. 정확한 발표 연도와 최초 사용 사례에 대한 상세한 기록은 공개된 문헌에서 확인되지 않는다.
주요 구성 요소
| 기호 | 명칭 | 설명 |
|---|---|---|
| ☐ (사각형) | 외부 엔터티 | 시스템 외부에 존재하며 데이터 입력·출력을 수행하는 사람, 조직, 다른 시스템 등을 나타낸다. |
| ○ (원) | 프로세스 | 데이터를 받아 처리하고, 결과 데이터를 출력하는 기능적 작업을 나타낸다. 프로세스는 일반적으로 “프로세스 번호·이름” 형태로 표기한다. |
| ⇆ (양방향 화살표) | 데이터 흐름 | 데이터가 흐르는 방향을 표시한다. 화살표는 데이터의 유형(예: 주문서, 결과 보고서)과 함께 라벨링한다. |
| ▭ (두꺼운 사각형) | 데이터 저장소 | 시스템 내에서 데이터를 영구적으로 보관하는 저장소(파일, 데이터베이스 등)를 나타낸다. |
계층 구조
데이터 흐름도는 일반적으로 0수준(컨텍스트 다이어그램)에서 시작하여, 필요에 따라 1수준, 2수준 등으로 세분화한다. 각 레벨은 이전 레벨에서 정의된 프로세스를 보다 상세히 분해하여 보여준다.
표준화 및 표기법
- Gane–Sarson 표기법: 1970년대에 Gane과 Sarson이 제안한 표기법으로, 위에 설명된 네 가지 기호를 사용한다.
- Yourdon 표기법: Edward Yourdon이 제시한 표기법으로, Gane–Sarson과 유사하지만 일부 기호와 라벨링 규칙이 다르다.
두 표기법 모두 국제 표준(예: ISO/IEC 10115)에서 직접 채택된 것은 아니지만, 실무에서 널리 활용된다.
활용 분야
- 시스템 분석·설계: 요구사항 정의 단계에서 사용자와 개발자 간의 공통 이해를 돕는다.
- 프로세스 개선: 현재 업무 흐름을 시각화하여 병목 현상, 중복 작업 등을 식별한다.
- 교육: 소프트웨어 공학·정보시스템 교육 과정에서 기본 모델링 기법으로 가르친다.
작성 절차
- 범위 정의: 분석 대상 시스템의 경계와 외부 엔터티를 식별한다.
- 주요 데이터 흐름 식별: 데이터가 시스템에 들어오고 나가는 주요 흐름을 도출한다.
- 프로세스와 저장소 구분: 흐름에 따라 필요한 처리 단계와 저장소를 정의한다.
- 다이어그램 작성: 선정된 표기법에 따라 기호와 라벨을 사용해 시각화한다.
- 검증 및 리뷰: 이해관계자와 검토하여 누락·오류를 수정한다.
제한점
- 데이터 흐름도는 동적인 제어 흐름(제어 구조, 순차·조건·반복 등)을 직접적으로 표현하지 않는다. 이를 보완하기 위해 UML 시퀀스 다이어그램이나 흐름도(Flowchart)와 병행 사용한다.
- 대규모 복잡 시스템에서는 레벨이 깊어질수록 다이어그램 관리가 어려워질 수 있다.
관련 개념
- UML 액티비티 다이어그램: 프로세스 흐름을 시각화하는 데 사용되며, 데이터 흐름도와 일부 개념이 중복된다.
- ER 다이어그램(Entity‑Relationship Diagram): 데이터 구조(엔터티와 관계)를 나타내며, 데이터 흐름도와는 목적이 다르다.
참고 문헌
- DeMarco, T. (1979). Structured Analysis and System Specification. Yourdon Press.
- Gane, C., & Sarson, T. (1979). Structured Systems Analysis: Tools and Techniques. Prentice Hall.
(위 문헌은 데이터 흐름도 개념의 초창기 제시와 표기법에 관한 기본 자료이며, 구체적인 연도·출판 정보는 해당 출판물에서 확인할 수 있다.)