DFD(Data Flow Diagram)은 데이터가 소프트웨어 내의 각 프로세스를 따라 흐르면서 변환되는 모습을 나타낸 그림이다. 데이터 흐름도라고도 칭한다.

1. 구조적 방법론과 DFD
DFD는 구조적 방법론을 대표하는 다이아그램이다.
구조적 분석/설계에서의 데이터는 기능 사이에서 주고받는 형태로만 나타나며 기능의 계속된 분해와 이의 분석을 통해서만 데이터가 나타나게 된다.
2. DFD 작성의 이익
- 현업사용자의 업무 및 요구사항을 쉽게 문서화할 수 있다.
- 현업사용자와 분석가(또는 개발자) 사이의 의사소통을 위한 공용어의 역할을 한다.
- 일관성있고 정확한 사용자의 요구사항을 파악할 수 있는 요구분석용 도구의 역할을 한다.
3. DFD의 구성요소
일반적으로 사용되는 표기법은 Yourdon과 Coad, Yourdon과 DeMarco, Gane과 Sarson 이 있다.
각 표기법마다 표현하는 그림의 모양이 달라진다.
하지만 어느 표기법이든, 아래 4가지 구성요소는 항상 나타나야 한다.
- 프로세스
- 데이터 흐름
- 데이터 저장소
- 외부 엔티티
여기서는 Yourdon과 DeMarco 표기법을 기준으로 설명한다.
3-1. 프로세스
- 입력되는 데이터를 원하는 데이터로 변환하여 출력시키기 위한 과정
- 표현은 원으로 하며, 원안에 이름을 표현한다.
- 자체적으로 데이터를 생성할 수 없고 항상 입력 데이터가 있어야 한다.
- 항상 새로운 가치를 부가해야한다.
💡 함수의 느낌
3-2. 데이터 흐름
- 구성요소들간의 인터페이스를 나타낸다.
- 대부분의 데이터 흐름은 프로세스들 사이를 연결하지만, 데이터 저장소로부터의 흐름을 나타내기도한다.
- 명칭을 부여하거나 부여하지 않은 화살표로 표시한다.
단, 후속작업들의 참조를 위해 되도록 명칭을 부여하는 것이 바람직하다.
- 서로 다른 데이터 흐름에는 동일한 이름을 부여하지 않는다.
3-3. 데이터 저장소
추후의 액세스를 위해 데이터를 저장하는 수동적 객체이다. 단순히 데이터 저장이나 액세스 요구에 반응만 한다.
- 데이터가 저장되어 있는 집합이다.
- 단순히 데이터의 저장을 나타내는 것이다.
- 데이터 흐름을 표시함으로서 데이터의 입출력을 나타낸다.
- 표현은 2개의 직선으로 평행선을 나타내고, 평행선 안에 데이터 저장소의 명칭을 부여한다.
💡 DB의 느낌
3-4. 외부 엔티티
데이터를 생성, 소비함으로서 DFD를 주도하는 객체이다.
외부 엔티티는 DFD의 입력과 출력에 붙는다. 즉, 보통 데이터 흐름도의 경계에 놓인다.
- 프로세스 처리 과정의 데이터 발생의 시작과 종료를 나타낸다.
- DFD 상에서 프로세스와의 상호관련성을 표시하며, 일반적으로 DFD 범위 밖에 사각형 형태로 표시한다.
💡 객체의 느낌
4. 작성 방법
- 업무를 분석하여 프로세스에 대한 모든 입출력 데이터흐름을 식별한다. 그리고 업무의 주변 경계에 그들을 표시한다.
- 데이터흐름상 필요하거나 제공되어야 할 외부엔티티를 정의한다.
- 입력으로부터 출력으로, 출력으로부터 입력으로, 또는 중간 지점부터의 데이터흐름을 식별한다.
- 모든 접속관계 데이터흐름에 주의깊게 명칭(혹은 자료 내역)을 부여한다.
- 프로세스에 대해 입력 데이터흐름과 출력 데이터흐름의 명칭에 따라 이름을 부여한다.
- 프로세스에 관련된 데이터저장소를 정의한다.
- 검토하고 보완한다.
- 상위레벨 DFD완성후 다음 하위 레벨의 DFD로 분할하여 최하위 레벨까지 그린다.
- 데이터 흐름도의 규모가 너무 커서 한 장의 종이에 그릴 수 없을 때는 시스템을 서브시스템(Subsystems)들로 분할한다. 분할된 서브시스템들의 규모가 클때는 다시 분할을 계속한다. 이렇게 세분화를 계속하여 마지막에는 데이타 흐름도를 단순한 기능들만으로 그릴 수 있는 단계까지 분할한다. (일반적으로 레벨3까지면 적당하다)
💡 표현 방법을 토대로 상식적으로 그리면 될듯하다.
참조 페이지
1. https://cjmyun.tripod.com/Knowledgebase/DFD.htm
2. https://www.lucidchart.com/pages/ko/data-flow-diagram