데이터 흐름 다이어그램(DFD)은 시스템 내의 정보 흐름을 시각적으로 표현한 전통적인 방법입니다. 깔끔하고 명확한 DFD는 시스템 요구 사항의 적절한 양을 그래픽으로 나타낼 수 있습니다. 수동, 자동 또는 둘의 조합일 수 있습니다.
데이터가 시스템에 들어오고 나가는 방법, 정보가 변경되는 내용, 데이터가 저장되는 위치를 보여줍니다.
DFD의 목적은 시스템 전체의 범위와 경계를 표시하는 것입니다. 이는 시스템 분석가와 시스템 재설계의 출발점 역할을 하는 순서에 따라 역할을 수행하는 사람 간의 통신 도구로 사용될 수 있습니다. DFD는 데이터 흐름 그래프 또는 버블 차트라고도 합니다.
건너뛰기 목록
DFD에 대해 다음과 같은 관찰이 필수적입니다.
- 모든 이름은 고유해야 합니다. 이렇게 하면 DFD의 요소를 더 쉽게 참조할 수 있습니다.
- DFD는 흐름도가 아니라는 점을 기억하세요. 화살표는 사건의 순서를 나타내는 흐름도입니다. DFD의 화살표는 흐르는 데이터를 나타냅니다. DFD에는 이벤트 순서가 포함되지 않습니다.
- 논리적 결정을 억제합니다. DFD에 다이아몬드 모양의 상자를 그리고 싶은 충동이 든다면 그 충동을 억제하십시오! 다이아몬드 모양의 상자는 순서도에서 하나만 사용되는 여러 존재 경로가 있는 의사 결정 지점을 나타내는 데 사용됩니다. 이는 이벤트 순서를 의미하며 DFD에서는 의미가 없습니다.
- 세부 사항에 얽매이지 마십시오. 분석이 끝날 때까지 오류 조건 및 오류 처리를 연기합니다.
DFD의 표준 기호는 전기 회로도 분석에서 파생되며 그림에 표시됩니다.
원: 원(거품)은 데이터 입력을 데이터 출력으로 변환하는 프로세스를 보여줍니다.
데이터 흐름: 곡선은 프로세스나 데이터 저장소로 들어오거나 나가는 데이터 흐름을 보여줍니다.
데이터 저장소: 일련의 평행선은 데이터 항목 수집을 위한 장소를 보여줍니다. 데이터 저장소는 이후 단계에서 또는 다른 프로세스에서 다른 순서로 사용할 수 있는 데이터가 저장되어 있음을 나타냅니다. 데이터 저장소에는 요소 또는 요소 그룹이 있을 수 있습니다.
이진 검색을 위한 Python 프로그램
소스 또는 싱크: 소스 또는 싱크는 외부 엔터티이며 시스템 입력 소스 또는 시스템 출력 싱크 역할을 합니다.
데이터 흐름 다이어그램(DFD)의 수준
DFD는 모든 추상화 수준에서 시스템이나 소프트웨어를 수행하는 데 사용될 수 있습니다. 실제로 DFD는 증가하는 정보 흐름과 기능적 세부 사항을 나타내는 수준으로 분할될 수 있습니다. DFD의 레벨은 0, 1, 2 이상으로 번호가 매겨져 있습니다. 여기서는 데이터 흐름 다이어그램에서 주로 0레벨 DFD, 1레벨 DFD, 2레벨 DFD의 세 가지 레벨을 볼 수 있습니다.
0레벨 DFDM
이는 기본 시스템 모델이라고도 알려져 있으며 컨텍스트 다이어그램은 들어오고 나가는 화살표로 표시되는 입력 및 출력 데이터가 있는 단일 거품으로 전체 소프트웨어 요구 사항을 나타냅니다. 그런 다음 시스템은 여러 개의 버블이 있는 DFD로 분해되어 설명됩니다. 이러한 각 버블로 표시되는 시스템 부분은 점점 더 자세한 DFD로 분해되어 문서화됩니다. 이 과정은 프로그램이 잘 이해될 때까지 필요한 만큼 여러 수준에서 반복될 수 있습니다. 레벨 간 입력 및 출력 수를 유지하는 것이 중요하며, 이 개념을 DeMacro에서는 레벨링이라고 합니다. 따라서 버블 'A'에 두 개의 입력 x가 있는 경우1그리고 x2하나의 출력 y, 'A'를 나타내는 확장된 DFD는 그림과 같이 정확히 2개의 외부 입력과 1개의 외부 출력을 가져야 합니다.
결과 관리 시스템의 컨텍스트 다이어그램이라고도 불리는 Level-0 DFD는 그림 1에 나와 있습니다. 버블이 점점 더 추상적인 버블로 분해됨에 따라 해당 데이터 흐름도 분해되어야 할 수 있습니다.
1레벨 DFD
1레벨 DFD에서는 컨텍스트 다이어그램이 여러 버블/프로세스로 분해됩니다. 이 레벨에서는 시스템의 주요 목표를 강조하고 0 레벨 DFD의 상위 레벨 프로세스를 하위 프로세스로 분류합니다.
windows.open 자바스크립트
2레벨 DFD
2레벨 DFD는 1레벨 DFD의 일부로 한 프로세스를 더 깊게 진행합니다. 시스템 기능에 대한 특정/필요한 세부 정보를 계획하거나 기록하는 데 사용할 수 있습니다.