정보 처리/데이터베이스

자료 흐름도(data flow diagram)

본클라쓰 2011. 12. 21. 20:15

 

 

 

자료흐름도(data flow diagram)은 데이터가 소프트웨어 내의 각 프로세스를 따라 흐르면서 변환되는 모습을 나타낸 그림으로 소프트웨어 및 정보 시스템의 분석과 설계에서 매우 유용하게 사용되는 다이어그램이다.

 

자료 흐름도는 시스템을 분할하고 분할한 요소 사이의 인터페이스(데이터 흐름)을 명확히 하는 것이 최대의 목전인 분석/설계 방법이다. 1970년대 제창되어 이용되기 시작했고, 지금도 가장 일반적으로 사용되는 방법 중 하나이다.

 

자료 흐름도는 종단점(외부 엔티티, 터미널), 처리과정(프로세스), 데이터 흐름, 데이터 자장소 네 가지 도형으로 구성되어 있다.

 

 

처리과정(process)는 입력된 데이터를 원하는 데이터 변환하는 과정으로 자료 흐름도에서 프로세스는 원과 원 안의 이름으로 표현한다.

 

 

원 안에 기록되는 이름은 옆의 그림과 같이 프로세스가 수행하는 일 또는 프로세스를 수행하는 행위자를 기술한다. 프로세스는 자체적으로 데이터를 생성할 수 없고 항상 입력되는 데이터가 있어야 한다. 또한 항상 새로운 가치를 부가해야 한다.

 

데이터 흐름(data flow)는 구성 요소 간의 인터페이스(연결)를 나타낸다.

 

 

대부분의 데이터 흐름은 프로세스들을 연결하지만 데이터 저장소로부터 데이터 흐름을 나타내기도 한다. 데이터 흐름은 명칭이 있거나 없는 화살표로 표시하며 후속 작업들의 참조를 위해 되도록 명칭을 부여하는 것이 바람직하다. 또한 동일한 이름의 명칭을 부여하지 않는 것이 바람직하다.

 

데이터 저장소(data store)는 데이터가 저장되는 장소이다.

 

 

데이터 저장소로는 테이프, 디스크, 카드 데이터 등 여러 가지가 될 수 있으며 데이터 저장소는 단순히 데이터 저장을 나타내는 것이지 데이터의 변동을 표시하는 것은 아니다. 데이터 흐름도에서 데이터 자장소를 나타내는 표기법은 단순하게 두 개의 직선 즉, 평생성으로 나타내고 평행선 안에 데이터 저장소 이름을 적는다.

 

종단점(terminator, 외부 엔티티(external entity))는 프로세스 처리과저으이 데이터 발생의 시작 및 종료를 나타낸다.

 

 

시스템 외부에 존재함으로써 분석 대상에서 제외되는 부분이며, 이는 데이터를 제공하는 입력부(source)와 데이터를 이용하여 출력하는 출력부로 구성된다. 외부 엔티티는 데이터 흐름도 상에서 프로세스와 상호 관련성을 표시하며, 그림에서처럼 직사각형으로 표시된 것 들이다.

 

 

플로차트(flow chatr)와 자료 흐름도는 유사한 것 같지만 다르다.

 

일반적으로 소프트웨어 설계도라면 플로 차트를 떠올리지만 플로 차트는 단일 프로그램의 동작만 표현할 수 있다. 때문에 소프트웨어 전체가 어떤 기능을 가지고 있고, 어떤 데이터를 다루고 있는가르르 시각적으로 파악하기 어렵다. 이럴 때 자료 흐름도를 사용하면 전체 데이터의 흐름에 주목하면서 시스템을 분할 할 수 있다. 다시 말해 어떤 단위로 프로그램을 만들면 좋을지가 명확해지는 것이다.

 

자료 흐름도를 사용하지 않은 채 단순히 필요한 기능을 열거한 것 만으로는 그 기능들 사이의 연관성이나 인터페이스(데이터 흐름)를 파악할 수 없다. '시스템에는 어떤 기능이 있고, 그것들이 어떻게 연관되어 있는가'를 누가 보아도 이해할 수 있다는 점이 자료 흐름도의 최대 장점이다.

 

 

자료 흐름도를 작성하는 방법은 다음과 같다.

 

업무를 분석하여 프로세스에 대한 모든 입출력 데이터 흐름을 식별한다. 그리고 업무 주변 경계에 그들을 표시한다. 데이터 흐름상 필요하거나 제공되어야 할 외부 엔티티르르 정의한다. 입력으로부터 출력으로, 출력으로부터 입력으로 또는 중간 지점부터 데이터 흐름을 식별한다.

 

모든 접속 관계 데이터 흐름에 주의 깊에 명칭을 부여한다. 프로세스에 대해 입력 데이터 흐름과 출력 데이터 흐름의 명칭에 따라 이름을 부여한다. 프로세스에 관련된 데이터 저장소를 정의한다.

 

검토하고 보완한다. 상위 레벨 자료 흐름도과 완성되면 다음 하위 레벨의 자료 흐름도를 분할하여 최하위 레벨까지 그린다. 데이터 흐름도의 규모가 너무 커서 한장의 종이에 그릴 수 없을 때는 시스템을 서브 시스템들로 분할한다. 분할될 서브 시스템들의 규모가 클 때는 다시 분할한다.

 

이렇게 세분화를 계속하여 마지막에는 데이터 흐름도를 단순한 기능들로만 그릴 수 있는 단계까지 분할한다.

 

 

이 때 지켜야 할 원칙들이 있는데 다음과 같다.

 

출력 데이터 흐름은 반드시 입력 데이터 흐름을 이용하여 생성된 것이어야 한다.(데이터 보존 법칙),

출력 데이터 흐름을 산출하는데 반드시 필요한 최소의 데이터 흐름만 입력한다.(최소 데이터 입력 법칙),

프로세스는 입력 데이터 흐름이 들어오기만 한다면 항상 수행할 준비를 갖추고 있어야 한다.(지속성의 원칙),

데이터 흐름의 데이터는 처리 후 없어지나 데이터 저장소의 데이터는 아무리 읽어도 없어지지 않는다.(영구성의 원칙),

데이터 흐름을 통해 입력되는 데이터는 도착하는 순서대로 처리한다.(순차처리의 원칙)

데이터 본직의 변화(소득액-소득증가율), 데이터 관점의 변화(주문서-적합한 주문서), 데이터 합성의 변화(수표, 입금-입금처리), 데이터 구성의 변화(판매자료-판매보고서)처럼 데이터는 변환된다. (데이터 변환의 원칙)