WIPIVERSE

데이터 흐름도

데이터 흐름도(Data Flow Diagram, DFD)는 정보 시스템이나 비즈니스 프로세스 내에서 데이터가 생성, 변환, 저장, 이동되는 과정을 그래픽 기호를 사용하여 시각적으로 표현한 다이어그램이다. 시스템 분석 및 설계 분야에서 구조적 분석 기법의 핵심 도구로 사용되며, 자료 흐름 그래프 또는 버블 차트(bubble chart)라고도 불린다.

개념 및 목적

데이터 흐름도는 시스템을 데이터의 관점에서 모델링한다는 점에서 특징이 있다. 프로세스 중심의 순서도(Flowchart)나 사용자 중심의 유스케이스 다이어그램(Use Case Diagram)과 달리, 데이터 흐름도는 데이터가 시스템에 유입되어 처리되고 저장되며 외부로 출력되기까지의 경로에 초점을 맞춘다. 이를 통해 복잡한 시스템을 이해하기 쉬운 구성 요소로 분해하고, 시스템의 병목 현상, 중복, 불일치 등의 문제를 식별하는 데 도움을 준다.

역사

데이터 흐름도의 개념은 1970년대 소프트웨어 엔지니어인 래리 콘스탄틴(Larry Constantine)과 에드 유어든(Ed Yourdon)이 저서 《Structured Design》에서 처음 소개한 것으로 알려져 있다. 이후 컴퓨터 과학자인 톰 드마르코(Tom DeMarco), 크리스 게인(Chris Gane), 트리시 사슨(Trish Sarson)이 표준화된 기호와 표기법을 개발하여 데이터 흐름도를 대중화하는 데 기여하였다. 1990년대 통합 모델링 언어(UML)가 도입된 이후에는 소프트웨어 엔지니어링에서 데이터 흐름도의 의존도가 줄어들었으나, 오늘날에도 UML 다이어그램과 순서도를 보완하는 도구로 널리 사용된다.

구성 요소

데이터 흐름도는 일반적으로 다음 네 가지 주요 구성 요소로 이루어진다.

  • 외부 엔티티(External Entity): 데이터 흐름의 시작점과 종료점으로, 시스템 외부에서 데이터를 제공하거나 받는 사람, 조직, 또는 다른 시스템을 나타낸다. 터미네이터(terminator), 행위자(actor), 소스(source), 싱크(sink)라고도 불린다.
  • 프로세스(Process): 입력된 데이터를 변환하거나 처리하는 활동을 나타낸다. 계산, 정렬, 유효성 검사, 리디렉션 등의 변환 작업이 포함된다.
  • 데이터 저장소(Data Store): 데이터가 저장되는 위치를 나타내며, 데이터베이스, 파일, 문서 등 데이터 보관을 위한 저장소를 의미한다.
  • 데이터 흐름(Data Flow): 외부 엔티티, 프로세스, 데이터 저장소 사이에서 데이터가 이동하는 경로를 나타낸다.

표기법

데이터 흐름도에는 주로 두 가지 표준 표기법이 사용된다. Yourdon 및 Coad 표기법과 Gane 및 Sarson 표기법이 그것이다. 두 표기법은 프로세스와 데이터 저장소를 나타내는 기호의 모양에서 차이가 있다.

  • 외부 엔티티: 두 표기법 모두 직사각형으로 표현한다.
  • 프로세스: Yourdon 및 Coad 표기법에서는 원으로, Gane 및 Sarson 표기법에서는 둥근 모서리의 직사각형으로 표현한다.
  • 데이터 저장소: Yourdon 및 Coad 표기법에서는 평행선으로, Gane 및 Sarson 표기법에서는 끝이 열린 사각형으로 표현한다.
  • 데이터 흐름: 두 표기법 모두 화살표가 있는 선으로 표현한다.

유형

데이터 흐름도는 표현하는 관점에 따라 논리적 데이터 흐름도와 물리적 데이터 흐름도로 구분된다.

  • 논리적 데이터 흐름도(Logical DFD): 기술적 구현 세부 사항을 배제하고, 비즈니스 목표를 달성하기 위해 필요한 데이터의 흐름과 처리 과정에 초점을 맞춘다.
  • 물리적 데이터 흐름도(Physical DFD): 시스템의 실제 구현 방식을 반영하여, 필요한 소프트웨어, 하드웨어, 파일, 절차 등을 포함하여 표현한다.

레벨(수준)

데이터 흐름도는 시스템의 세부 수준에 따라 여러 단계로 나뉘어 작성된다.

  • 레벨 0(컨텍스트 다이어그램): 전체 시스템을 단일 프로세스로 표현하는 최상위 수준의 다이어그램으로, 시스템과 외부 엔티티 간의 데이터 흐름을 강조한다.
  • 레벨 1: 컨텍스트 다이어그램의 단일 프로세스를 여러 하위 프로세스로 세분화하여 표현한다.
  • 레벨 2 이상: 하위 프로세스를 더욱 세분화하여 데이터 흐름과 데이터 저장소 간의 상호 작용을 상세히 나타낸다. 일반적으로 레벨 2를 넘어서는 세분화는 드물며, 매우 복잡한 시스템에서만 레벨 3 이상이 사용된다.

작성 규칙

데이터 흐름도 작성에는 일반적으로 다음과 같은 기본 규칙이 적용된다.

  • 각 데이터 흐름에는 이동 중인 데이터의 유형을 식별하는 간결한 설명적 레이블이 부여된다.
  • 각 프로세스에는 수행되는 데이터 변환을 설명하는 동사 구문이 레이블로 부여된다.
  • 각 데이터 저장소에는 데이터의 성격을 설명하는 명사 또는 명사 구문이 레이블로 부여된다.
  • 모든 프로세스와 데이터 저장소는 최소한 하나의 입력과 하나의 출력을 가져야 한다.
  • 데이터 저장소는 외부 엔티티에 직접 연결될 수 없다.
  • 외부 엔티티는 프로세스로 데이터를 전송할 수 있으나 데이터 저장소로 직접 전송할 수는 없다.
  • 데이터 흐름은 서로 교차하지 않도록 작성한다.

활용 분야

데이터 흐름도는 소프트웨어 엔지니어링, 시스템 분석, 비즈니스 프로세스 개선, 비즈니스 관리, 애자일 소프트웨어 개발 등 다양한 분야에서 활용된다. 시스템의 명확성 확보, 시스템 분석, 문제 식별, 프로세스 개선, 이해관계자 간 협업 촉진, 문서화, 데이터 보안 위험 식별 등의 목적으로 사용된다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기