DFD 작성기법

kdkdhoho·2022년 9월 29일

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

DFD 예시

1. 구조적 방법론과 DFD

DFD는 구조적 방법론을 대표하는 다이아그램이다.
구조적 분석/설계에서의 데이터는 기능 사이에서 주고받는 형태로만 나타나며 기능의 계속된 분해와 이의 분석을 통해서만 데이터가 나타나게 된다.

2. DFD 작성의 이익

  1. 현업사용자의 업무 및 요구사항을 쉽게 문서화할 수 있다.
  2. 현업사용자와 분석가(또는 개발자) 사이의 의사소통을 위한 공용어의 역할을 한다.
  3. 일관성있고 정확한 사용자의 요구사항을 파악할 수 있는 요구분석용 도구의 역할을 한다.

3. DFD의 구성요소

일반적으로 사용되는 표기법은 Yourdon과 Coad, Yourdon과 DeMarco, Gane과 Sarson 이 있다.

각 표기법마다 표현하는 그림의 모양이 달라진다.

하지만 어느 표기법이든, 아래 4가지 구성요소는 항상 나타나야 한다.

  1. 프로세스
  2. 데이터 흐름
  3. 데이터 저장소
  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

profile
newBlog == https://kdkdhoho.github.io

0개의 댓글