Recent Posts
다은하게
DFD 개념과 작성법 본문
☞ DFD (Data Flow Diagram)
- 쉽게 말해 자료의 출발지와 목적지를 그림으로 표시한 것이다.
- 데이터가 소프트웨어 내의 각 프로세스를 따라 흐르면서 변환되는 모습을 나타낸 그림으로 소프트웨어 및 정보시스템의 분석과 설계에서 매우 유용하게 사용되는 다이아그램이다.
- '데이터 흐름도' 또는 '자료 흐름도' 라고도 한다.
☞ DFD의 구성요소
DFD의 구성요소 4가지는 프로세스, 데이터흐름, 데이터저장소, 외부엔티티이며, 표기법에 따라 표현하는 그림의 모양이 달라진다. Yourdon과 DeMarco에 의해 주장된 표기법을 설명한다.
1. 프로세스(Process) - 원(Bubble)
- 입력되는 데이터를 원하는 데이터로 변환하여 출력시키기 위한 과정이다.
- 도형적 표기형태는 원(Bubble)과 원안의 이름으로 표현한다.
- 원안에 기록하는 이름은 프로세스가 수행하는 일 또는 프로세스를 수행하는 행위자를 기술한다.
- 자체적으로는 데이터를 생성할 수 없고 항상 입력되는 데이터가 있어야 한다.
- 항상 새로운 가치를 부가해야 한다.
2. 데이터흐름(Data Flow) - 화살표
- DFD의 구성요소간 인터페이스를 나타낸다.
- 대부분의 데이터흐름은 프로세스 사이를 연결하지만, 데이터 저장소(Data Store)로부터의 데이터흐름을 나타내기도 한다.
- 명칭이 부여거나 부여되지 않은 화살표로 표시한다. 단, 후속작업의 참조를 위해 되도록 명칭이 부여되는 것이 바람직하다.
- 서로 다른 데이터 흐름에는 동일한 이름을 부여하지 않는다.
3. 데이터저장소(Data Store) - 두 평행선
- 추후 엑세스를 위해 데이터를 저장하는 수동적 객체를 말한다.
- 액터와는 달리 자신의 액션을 취하지 않으며 데이터 저장이나 엑세스 요구에 반응할 뿐이다.
- 데이터저장소(Data Store)는 저장되어 있는 정보 집합이다.
- 데이터저장소는 테이프, 디스크, 카드 데이타, 캐비넷의 인덱스화일 등일 수도 있으며, 때로는 휴지통일 수도 있다.
- 데이터저장소는 단순한 데이터의 저장을 나타내는 것이지 데이터의 변동을 표시하는 것은 아니다.
- 데이터흐름을 표시함으로서 데이터의 입출력을 나타낸다.
- 표기법은 단순하게 두 개의 직선 즉, 평행선으로 나타내고, 평행선 안에 데이터저장소의 명칭을 부여한다.
4. 외부엔티티(External Entity) - 사각형
- 프로세스 처리과정의 데이터발생의 시작 및 종료를 나타낸다.
- 어떤 기업의 내적인(Inside) 엔티티는 관리, 부서, 기능, 시스템등을 포함하며, 기업 외적인(Outside) 엔티티는 고객, 거래처, 공공기관, 외부시스템등을 포함한다.
- 데이터 흐름도상에서 프로세스(Process)와의 상호관련성을 표시하며, 일반적으로 DFD 범위 밖에 사각형 형태로 표시한다.
- 액터는 데이터를 생성, 소비 함으로서 데이터 흐름도를 주도하는 활성 객체이다.
- 액터는 데이터 흐름도의 입력과 출력에 붙는다. 즉, 흐름도의 경계에 놓이게 되며, 소스(source)나 싱크(sink)로서 데이터의 흐름을 중단시킨다.
- 예를 들어, 프로그램의 사용자, 써모셋(thermostat), 서보 모터 등이다.
☞ DFD의 작성방법
- 업무를 분석하여 프로세스에 대한 모든 입출력 데이터흐름을 식별한다.
- 흐름상 필요하거나 제공되어야 할 외부엔티티를 정의한다.
- 입력으로부터 출력으로, 출력으로부터 입력으로, 또는 중간 지점부터의 데이터흐름을 식별한다.
- 모든 접속관계 데이터흐름에 주의깊게 명칭(혹은 자료 내역)을 부여한다.
- 프로세스에 대해 입출력 데이터흐름의 명칭에 따라 이름을 부여한다.
- 프로세스에 관련된 데이터저장소를 정의한다.
- 검토하고 보완한다.
- 상위레벨 DFD완성 후, 하위 레벨의 DFD로 분할하여 최하위 레벨까지 그린다. (일반적으로 3번 반복)
☞ 예제) 수강관리 시스템 DFD
▶ 참고 DFD 작성법
▶ 참고 Data Flow Diagrams, DFD 요약
▶ 참고 DFD 작성법
▶ 참고 (tripod.com)DFD 작성기법
'소프트웨어공학' 카테고리의 다른 글
멀티프로세서의 유형 : SISD, SIMD, MISD, MIMD (0) | 2021.04.13 |
---|---|
'소프트웨어 프로세서 명세서'란? (0) | 2021.04.13 |
ERD (ER 다이어그램) (0) | 2021.04.13 |
Comments