ある病院で実装されている患者情報システムのDFDの例があります。以下の図は、概要図を表しています(レベル0の図、最初のレベルがコンテキスト図であると考えると、2番目のレベルはレベル0の図など)。
このシステムでは、患者は検索して予約を取ることができます。 patient name
というラベルが付けられ、プロセスMake appointment
からデータベースPatients
に送られるデータフローを理解しようとしています(図の黄色のハイライトを参照)。
システムにこのフローがある理由がわかりません。どのシナリオでプロセスがMake appointment
をデータベースに送信するのですかpatients
患者名?プロセスによって患者名がすでに送信されている必要はありませんか?
プロセスMaintain patient info
の名前は、患者の記録がそこに作成されていることを示唆しているため、誤解を招くようです。
仮定を忘れて、Patients
data storeを含むフローを見ると、次のことがわかります。
Patient Info
はMake Appointement
およびPrepare Reports
に流出しますPatient Info
はMaintain Patient Info
から流入します。ただし、フローはUpdate to ...
というラベルが付いています。これは、患者データの単なる流入よりも制限的です。データがすでに存在していることを前提としています。Patient name
はMake appointment
から流入します。DFD semantics を使用し、DFDがルールに従って描かれていると仮定すると、次のことが理解できます。
patient name
はpatient info
の一部です(明示的に抽出されることはないため)備考:
Perform billing
がpatient info
を必要としないことも奇妙です。