DFD의 역사
데이터 흐름도는 컴퓨팅 분야의 선구자인 Ed Yourdon과 Larry Constantine이 1970년대 후반에 출간한 저서 '구조적 설계(Structured Design)'를 통해 널리 알려지게 되었습니다. 이들은 David Martin과 Gerald Estrin이 개발한 '데이터 흐름 그래프' 계산 모델을 기반으로 데이터 흐름도를 발전시켰습니다. 구조적 설계 개념과 DFD 기법은 이후 소프트웨어 엔지니어링 및 비즈니스 분야 전반에 걸쳐 폭넓게 채택되었습니다.
이와 같은 DFD 방법론의 확산에 기여한 또 다른 전문가로는 Tom DeMarco, Chris Gane, Trish Sarson이 있습니다. 이들은 다양한 조합으로 협력하며 데이터 흐름도에 사용되는 기호와 표기법을 정리하는 데 핵심적인 역햘을 했습니다.
DFD에 사용되는 기호와 표기법
데이터 흐름도 작성을 시작하기 전에 다양한 데이터 흐름도 기호를 먼저 익혀 두는 것이 좋습니다. 시스템마다 사용하는 기호에 약간의 차이가 있을 수 있지만, 다른 사람과 소통하고 협업할 때는 사용하는 도형과 표기법을 명확하고 일관되게 유지하는 것이 중요합니다.
어떤 표기법 체계의 DFD 규칙이나 지침을 사용하더라도, 기호는 데이터 흐름도를 구성하는 다음 네 가지 요소를 나타냅니다.
1. 외부 개체
외부 개체는 데이터를 전송하거나 수신하며, 다이어그램으로 표현되는 시스템과 상호 작용하는 시스템입니다. 즉, 시스템으로 들어오거나 시스템에서 나가는 정보의 출발점 또는 도착점입니다. 외부 조직이나 개인, 컴퓨터 시스템 또는 비즈니스 시스템이 이에 해당할 수 있습니다. 외부 개체는 터미네이터(terminator), 소스 및 싱크(source and sink), 액터(actor)라고도 합니다. 일반적으로 다이어그램의 가장자리에 배치됩니다.
2. 과정
프로세스는 데이터를 변환하여 결과를 생성합니다. 계산을 수행하거나, 논리에 따라 데이터를 분류하거나, 비즈니스 규칙에 따라 데이터 흐름을 제어할 수 있습니다. 프로세스를 설명하기 위해 짧은 레이블을 사용합니다(예: '결제 제출').
3. 데이터 저장소
데이터 저장소는 나중에 사용할 정보를 보관하는 파일 또는 저장소입니다(예: 데이터베이스 테이블 또는 회원 가입 양식). 각 데이터 저장소에는 간단한 레이블이 지정됩니다(예: '주문').
4. 데이터 흐름
데이터 흐름은 외부 개체, 프로세스 및 데이터 저장소 사이에서 데이터가 이동하는 경로를 나타냅니다. 이는 다른 구성 요소 간의 인터페이스를 표현하며, 일반적으로 짧은 데이터 이름이 표시된 화살표로 나타냅니다(예: '청구 정보).
DFD 규칙 및 팁
모든 데이터 흐름도를 작성할 때는 다음과 같은 규칙을 염두에 두어야 합니다.
-
각 프로세스에는 최소 하나의 입력과 하나의 출력이 있어야 합니다.
-
각 데이터 저장소에는 최소 하나의 입력 데이터 흐름과 하나의 출력 데이터 흐름이 있어야 합니다.
-
시스템에 저장되는 모든 데이터는 반드시 프로세스를 거쳐야 합니다.
-
DFD의 모든 프로세스는 다른 프로세스 또는 데이터 저장소와 연결되어야 합니다.
DFD 레벨과 레이어: 컨텍스트 다이어그램에서 의사코드까지
데이터 흐름도는 레벨과 레이어를 활용하여 특정 부분을 중심으로 점차 더 상세한 내용을 표현할 수 있습니다. DFD 레벨은 0, 1, 2로 구분되며, 경우에 따라 레벨 3 이상으로 확장되기도 합니다. 어느 정도까지 상세하게 표현할지는 달성하려는 목표 범위에 따라 달라집니다.
DFD 레벨 0
DFD 레벨 0은 컨텍스트 다이어그램이라고도 합니다. 이는 분석하거나 모델링하려는 전체 시스템 또는 프로세스를 개괄적으로 보여주는 기본적인 다이어그램입니다. 시스템을 하나의 상위 수준 프로세스로 표현하고 외부 개체와의 관계를 보여주도록 설계되어 있어 전체 구조를 한눈에 파악할 수 있습니다. 이해관계자, 비즈니스 분석가, 데이터 분석가, 개발자를 포함한 다양한 대상이 쉽게 이해할 수 있어야 합니다.