자료흐름도
DFDData-flow diagram ( =데이터흐름도 )
구조적 분석 및 설계에서, 시스템을 구성하는 프로세스 간의 데이터 흐름을 중심으로 처리과정을 분석하는 모형화 도구이다.
🎈 자료흐름도의 특징
- 소단위 명세서를 한 페이지에 작성할 수 있는 수준까지 시스템을 분할
- 하향식 분할전체 설명 => 구성 요소 설명
- 제어의 흐름Control Flow보단 자료의 흐름Data Flow이 중요
자료흐름도의 구성요소
🧀 Example |
---|
자료흐름도의 작성 원칙
작성원칙
자료 보존의 원칙
출력 자료 흐름은 반드시 입력 자료 흐름을 이용해 생성
최소 자료 입력의 원칙
출력 자료를 산출하는 데 필요한 최소의 자료 흐름만 입력
독립성의 원칙프로세스는 오직 자신의 입력 자료와 출력 자료에 대해서만 알면 된다
지속성의 원칙프로세스는 항상 수행하고 있어야 한다
순차 처리의 원칙입력 자료흐름의 순서는 출력되는 자료흐름에도 지켜야 한다
영구성의 원칙자료저장소의 자료는 입력으로 사용해도 제거되지 않는다
자료 변환의 원칙
🎈 주의사항
변환된 자료흐름의 명칭
자료흐름은 처리를 거쳐 변환될 때마다 새로운 이름을 부여해야 한다.
자료흐름의 균형
상위 단계와 하위 단계의 입·출력 자료흐름의 개수가 동일해야 한다(입력끼리, 출력끼리)
자료흐름은 통합 또는 분할이 가능하다.
입력만 되는 자료저장소Black hole 및 출력만 되는 자료저장소Miracle; White hole는 없어야 한다.
한 장에 7 ± 2 개의 처리가 적당하다.
객체 간, 자료저장소 간의 직접적인 자료흐름은 안 된다.
📒 처리와 자료저장소 간의 자료흐름
처리 => 자료저장소 (자료수정, 삽입, 삭제)
처리 <= 자료저장소 (자료검색)
자료흐름도의 분할
업무배경도에서 시작해 하향식으로 분할한다.
자료흐름도의 단계화
ㄴ | ㄴ | ㄴ |
---|---|---|
배경도 시스템과 외부의 경계를 식별한다. |
배경도Level 0 | 분할도Level 1 | 분할도Level 2 |
---|---|---|
개발하려는 시스템과 외부의 경계를 식별 | 중간 단계의 자료흐름도 | 최하위 단계의 자료흐름도 모든 처리들이 소단위명세서로 설명됨 |
자료흐름 중심 분할
자료흐름data flow 관점에서 분할도를 작성한다.
방법
-
외곽경계에서 시작하여 내부 시스템과 외부와의 모든 입출력 자료흐름을 파악
-
자료가 변환되거나 결합되는 곳에 명칭을 부여하지 않은 처리를 설정
-
모든 자료흐름에 대하여 명칭 부여 => 모든 처리에 대하여 명칭 부여
-
자료가 저장되는 곳에 자료저장소 설정
특징
- 처리 순서에 따라 요구되는 자료들을 식별하게 한다.
- 자료흐름의 균형을 고려하게 한다.
- 애매모호한 처리들을 구별할 수 있다.
- 소규모 시스템에 적용하기에 적합
처리 중심 분할
처리기process 관점에서 분할도를 작성한다.
방법
-
상위단계에서 처리 내에서 수행되어야 할 처리요소를 식별
-
식별된 처리요소를 하위단계의 새로운 처리로 표시
-
각각의 처리가 필요로 하는 입출력 자료흐름과 자료저장소를 추가
-
자료흐름이나 자료저장소를 공유하는 처리들을 서로 연결
특징
- 대규모 시스템에 적용하기에 적합처리의 범위가 명확하게 정의되므로
- 활동의 처리순서를 기준으로 순차적으로 분할한다.
- 적절한 이름이 사용되지 않은 경우 구성이 어려우며, 처리기가 많아지면 복잡해질 수 있다.
연습문제
❓ 야채 볶음밥을 만드는 과정을 설명한 다음 사례를 읽고 자료흐름도(DFD)를 작성해 보라.
- 감자, 양파, 당근 등의 야채를 깨끗이 씻어 껍질을 벗긴 후, 잘게 썰어 준비한다.
- 적당한 크기의 팬에 식용유를 두른 후 열을 가한다.
- 준비한 야채를 넣어 야채가 익을 동안 볶는다. 이때 감자나 당근을 먼저 익힌 후 양파는 나중에 넣어 볶는다. 약간의 소금을 넣어 간을 맞춘다.
- 적당량의 밥을 함께 넣어 야채가 골고루 섞일 때 까지 함께 볶는다.
- 별도의 팬에 기름을 두른 후 계란을 얇게 펴서 부친다.
- 완성된 볶음밥을 접시에 담아낸 후 준비한 계란 부침을 얻고 적당량의 케챱, 참깨 등을 뿌린다.