
데이터 흐름도(DFD, Data Flow Diagram)CS2024. 7. 3. 03:29
Table of Contents
데이터 흐름도란?
데이터 흐름도란, 말 그대로
시스템에서 데이터가 어떻게 흘러가고 처리되는지를 표현한 다이어그램이다.
프로세스 중심의 Flow Chart, 사용자 중심의 Use Case Diagram과 달리
데이터 흐름도는 데이터 중심적인 접근으로,
데이터의 관점에서 상황을 표현하는 것이 특징이다.
데이터의 흐름과 처리를 이해하기 위해
주로 시스템 분석(구조적 분석 기법)과 설계 단계에서 사용된다.
단, 시간의 흐름은 명확하게 표현할 수는 없다.
구성요소
- 프로세스(Process): 입력 데이터를 출력 데이터로 변환하기 위한 작업이나 기능
- 데이터 흐름(Data Flow): 프로세스 간에 전송되는 데이터의 흐름
- 데이터 저장소(Data Store): 데이터가 저장되는 장소
- 외부 엔터티(External Entity): 데이터를 보내고 받는 외부 시스템
표기법
구성 요소 | 표기법 |
프로세스 | 원 |
데이터 흐름 | 화살표 |
데이터 저장소 | 두 개의 나란한 직선 |
외부 엔터티 | 사각형 |
처음엔 위의 'Yourdan Demarco의 표기법'만 배웠었는데,
막상 웹사이트에서 자료흐름도를 그리려고 했더니
처음 보는 도형을 데이터 저장소라고 표기하고있었다.
알고봤더니, 다른 여러 표기법들이 더 있었다!
Yourdan Demarco, Yourdon-Coad, Gane-Sarson의 표기법이 자주 쓰인다고한다.
표기법에는 조금씩 차이가 있지만, 구성요소는 모두 동일하다.
데이터 흐름도 7가지 원칙
- 자료 보존의 원칙
- 출력 데이터 흐름은 반드시 입력 데이터 흐름을 이용해 생성되어야한다.
- 예를 들어, 계란🥚이 굽기🔥 를 거치면 계란후라이🍳가 되어야한다.
갑자기 햄버거🍔가 출력되면 곤란하다.
- 최소 자료 입력의 원칙
- 출력 데이터를 산출하는데 필요한 최소의 데이터만 입력한다.
- 예를 들어, 오렌지주스🍹를 출력하려면 짜기💪 프로세스에 오렌지🍊만 넣어야한다.
난데없이 사과🍎도 같이 넣으면 안된다.
- 독립성의 원칙
- 프로세스는 오직 자신의 입력과 출력 데이터 자체만 알면 되고, 어디에서 와서 어디로 가는지는 알 필요가 없다.
- 지속성의 원칙
- 프로세스는 항상 실행 중이어야하며, 일시적으로 데이터 흐름을 기다릴 때를 제외하고는 중단되지 않아야한다.
- 예를 들어, 번역기🌐는 항상 입력을 기다리면서 영어🔠를 한글🇰🇷 로 번역할 준비가 되어있어야 한다.
- 순차 처리원칙
- 입력되는 데이터 흐름의 순서는 출력되는 데이터 흐름에서도 지켜져야 한다.
- 예를 들어, 고객A😡가 주문한 후에 고객B😘가 주문했다면,
고객A😡가 시킨 음식이 먼저 나온 후에 고객B😘가 시킨 음식이 나와야한다.
고객B😘가 시킨 음식이 먼저 나온다면 고객A🤬가 컴플레인 걸지도 모른다.
- 영구성의 원칙
- 데이터 저장소의 데이터는 입력으로 사용해도 제거되지 않는다.
- 자료 변환의 원칙
- 데이터가 시스템 내에서 어떻게 변환되는지를 명확하게 표현해야한다.
- 데이터 본질의 변환: 입력 데이터를 편집, 계산하여 출력한다.
-
- 데이터 합성의 변환: 입력 데이터를 합성하거나 분리하여 출력 한다.
-
- 데이터 관점의 변환: 입력 데이터를 실제로 변경하진 않는다.
-
- 데이터 구성의 변환: 입력 데이터를 포맷팅 또는 정렬 등의 처리를 거쳐 구성을 변환한다.
작성 방법
- 프로세스, 데이터 흐름, 외부 엔티티 식별 및 정의
- 프로세스 식별 및 정의한다.
- 프로세스에 대한 입력과 출력 데이터 흐름 식별하여 주변 경계에 표시한다.
- 데이터 흐름상 필요하거나 제공되어야하는 외부 엔티티 식별 및 정의한다.
- 데이터 흐름, 프로세스 명칭 부여
- 데이터 흐름에 명칭 부여한다.
- 프로세스 명칭 부여한다.
- 데이터 저장소 정의
- 세분화
- 상위 레벨의 데이터 흐름도 완성 후 하위 레벨로 분할한다.
- 시스템을 서브시스템으로 분할한다.
- 세분화 작업 계속한다. 일반적으로 레벨 3까지면 적당하다
작성시 주의할 점
- 입력과 출력이 모두 있어야한다.
- 입력만 있으면 안 된다. (Black hole)
- 출력만 있으면 안 된다. (Miracle)
- 데이터 흐름은 (프로세스)와 (또다른 프로세스 or 데이터 저장소 or 외부 엔터티) 간에 이루어진다.
- 외부 엔터티 간의 데이터 흐름은 안 된다.
- 데이터 저장소 간의 데이터 흐름은 안 된다.
- 서로 다른 데이터 흐름에 동일한 이름을 부여하지 않는다.
- 예를 들어, 머리카락👩이 염색🎨을 거치면
또 머리카락이라고 부르지말고 노란머리카락👱♀️이라는 새로운 이름을 준다.
- 예를 들어, 머리카락👩이 염색🎨을 거치면
작성할 수 있는 웹사이트
- 로그인을 안하고싶다면?
- 로그인 해야하지만 다양한 템플릿과 기능을 원한다면?
주로 플로우차트나 ERD를 그리는데 필요한 도형들은 바로바로 뜨는데
자료흐름도에 필요한 도형들은
'더 많은 도형' 또는 '그 외 도형'에서 검색해야 뜨는 사이트가 많은 것 같다.
참조
'CS' 카테고리의 다른 글
Unix와 Unix-like 운영체제의 역사 (0) | 2024.06.13 |
---|---|
IT기술경영개론 정리본 (0) | 2024.06.13 |
운영체제 정리본 (0) | 2023.11.07 |
@blog_bbg :: bbg
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!