نمذجة العمليات: المخططات الانسيابية ومخططات تدفق البيانات

التفكيك: مخطط تدفق البيانات المستوى الأول

18 دقيقة الدرس 6 من 10

التفكيك: مخطط تدفق البيانات المستوى الأول

أعطانا مخطط السياق (المستوى 0) الرؤية الشاملة من علٍ: فقاعة عملية واحدة تمثل النظام بأكمله، مع الكيانات الخارجية وتدفقات البيانات الرابطة بينها. تلك الفقاعة الوحيدة هي "صندوق أسود" — تخبر أصحاب المصلحة بـما يتبادله النظام مع العالم الخارجي، لكنها لا تقول شيئًا عن كيفية معالجة هذه التبادلات داخليًا. يفتح مخطط تدفق البيانات المستوى الأول هذا الصندوق الأسود بتعويض الفقاعة الوحيدة بمجموعة من العمليات الرئيسية — عادةً أربع إلى تسع — تمثل كل منها جزءًا متماسكًا من مسؤوليات النظام. وهو أكثر مخططات DFD فائدةً من الناحية العملية، إذ يقع عند المستوى الصحيح من التفاصيل لالتحقق من المتطلبات وتحديد نطاق قاعدة البيانات.

ما الذي يتغير من المستوى 0 إلى المستوى 1؟

تتغير أربعة أشياء عند تفكيك مخطط السياق إلى المستوى الأول:

  1. تُستبدل فقاعة العملية الوحيدة بعمليات فرعية مرقّمة (1.0، 2.0، 3.0 …).
  2. تظهر مخازن البيانات لأول مرة. المستوى 0 يخفيها؛ المستوى 1 يُسمّي كل مخزن دائم يقرأ منه النظام أو يكتب إليه.
  3. تُرسم التدفقات الداخلية بين العمليات الجديدة والمخازن، موضّحةً كيفية تنقل البيانات داخل النظام.
  4. تُحفَظ الكيانات الخارجية وتدفقات الحدود بالضبط — هذه هي قاعدة التوازن، وانتهاكها هو أكثر أخطاء المستوى الأول شيوعًا.
قاعدة التوازن. كل تدفق بيانات يعبر حدود النظام في مخطط المستوى 0 يجب أن يظهر — بالاسم ذاته والاتجاه ذاته — في مخطط المستوى 1. إذا أظهر مخطط السياق تدفقًا باسم Appointment Confirmation يغادر النظام نحو المريض، فيجب أن يغادر هذا التدفق بالضبط حدودَ النظام في المستوى 1 أيضًا، حتى لو كان مصدره العملية 3.0 وليس صندوقًا أسود واحدًا.

اتفاقيات التسمية والترقيم

الاتفاقيات المتسقة تُبقي المخططات مقروءةً عبر الفريق:

  • أرقام العمليات — استخدم أعدادًا صحيحة في المستوى 1 (1.0، 2.0، 3.0). لواحق الأعشار محجوزة للعمليات الفرعية في المستوى 2 (1.1، 1.2، 2.1 …).
  • أسماء العمليات — دائمًا زوج فعل-مفعول: Validate Login، Process Order، Generate Report. التسمية الاسمية فقط (مثل "Order Management") تُشير إلى أن الفقاعة هي في الحقيقة نظام فرعي لا عملية.
  • أسماء مخازن البيانات — أسماء جمع بدون أفعال: D1 Appointments، D2 Patients، D3 Books. ابدأ بـD1، D2 … للتمييز عن العمليات.
  • تسميات التدفقات — عبارات اسمية تطابق البيانات لا الفعل: Booking Request لا "Submit Booking".

بناء مخطط المستوى الأول: نظام حجز العيادة

لنشرع في بناء مخطط DFD المستوى الأول لـنظام حجز مواعيد العيادة الطبية. أرسى مخطط السياق ثلاثة كيانات خارجية — Patient، وDoctor، وHealth Authority — والتدفقات الحدودية التالية: Booking Request (داخل)، Appointment Confirmation (خارج)، Cancellation Notice (داخل)، Schedule Availability (داخل من الطبيب)، Schedule Summary (خارج إلى الطبيب)، وCompliance Report (خارج إلى الجهة الصحية).

بتحليل هذه التدفقات ومسؤوليات النظام، نُحدد خمس عمليات رئيسية:

  • 1.0 Manage Patient Registration — إنشاء وتحديث سجلات المرضى.
  • 2.0 Handle Booking Request — التحقق من التوافر وإنشاء المواعيد.
  • 3.0 Manage Cancellations — حذف المواعيد أو إعادة جدولتها.
  • 4.0 Manage Doctor Schedule — تحديث توافر الطبيب والاستعلام عنه.
  • 5.0 Generate Reports — تجميع البيانات للجهة الصحية ومدير العيادة.

تدعم هذه العمليات ثلاثة مخازن بيانات: D1 Patients، وD2 Appointments، وD3 Doctor Schedules.

Level 1 DFD — Clinic Appointment Booking System Patient (External) Doctor (External) Health Authority (External) D1 Patients D2 Appointments D3 Doctor Schedules 1.0 Manage Patient Registration 2.0 Handle Booking Request 3.0 Manage Cancellations 4.0 Manage Doctor Schedule 5.0 Generate Reports Patient Details Booking Request Appt. Confirm. Cancellation Notice Schedule Availability Schedule Summary Compliance Report Patient Record Patient Data New Appt. Cancel Appt. Avail. Slot Check Slot Appt. Data
مخطط DFD المستوى الأول لنظام حجز العيادة — خمس عمليات مرقّمة، ثلاثة مخازن بيانات، وجميع التدفقات الحدودية متوازنة مع مخطط السياق.
ارسم التدفقات الحدودية أولًا. قبل رسم أي تدفقات داخلية، انسخ كل كيان خارجي وكل تدفق بيانات حدودي من مخطط المستوى 0 على ورقة فارغة. ثم اسأل: "أي عملية تتعامل مع هذا التدفق الداخل؟" و"أي عملية تُنتج هذا التدفق الخارج؟" هذا السؤال وحده يحدد معظم مواقع الفقاعات.

قراءة المخطط: ما يعنيه كل عنصر

تجوّل في المخطط بشكل منهجي، عنصرًا عنصرًا، عند مراجعته مع أصحاب المصلحة:

  • العملية 1.0 تستقبل Patient Details من المريض (تدفق حدودي) وتكتب Patient Record في مخزن D1 Patients. هذه الفقاعة هي بوابة التسجيل — لا عملية أخرى تخزن سجلات المرضى.
  • العملية 2.0 تستقبل Booking Request، تقرأ بيانات المريض من D1 للتحقق منه، تتحقق من الأوقات المتاحة في D3 Doctor Schedules، تكتب موعدًا جديدًا في D2 Appointments، وترسل Appointment Confirmation إلى المريض. لاحظ كيف تُنسّق هذه الفقاعة الوحيدة ثلاثة مخازن بيانات — إشارة إلى أنها قد تحتاج مزيدًا من التفكيك في المستوى 2.
  • العملية 3.0 تستقبل Cancellation Notice وتحذف أو تُعلّم السجل في D2.
  • العملية 4.0 تستقبل Schedule Availability من الطبيب، تُحدّث D3، وترجع Schedule Summary إلى الطبيب.
  • العملية 5.0 تقرأ من D2 Appointments وتُجمّع Compliance Report المُرسَل إلى الجهة الصحية.

مثال ثانٍ: معالجة طلبات المتجر الإلكتروني

لتعزيز الأسلوب، تأمل مخطط DFD المستوى الأول لـمتجر إلكتروني مبسّط. التدفقات الحدودية في مخطط السياق هي: Order (داخل من العميل)، Order Confirmation (خارج إلى العميل)، Shipment Notice (خارج إلى العميل)، Stock Request (خارج إلى المورّد)، Stock Delivery (داخل من المورّد)، وSales Report (خارج إلى المدير).

هذا يقترح أربع عمليات رئيسية في المستوى الأول:

  1. 1.0 Process Order — يُتحقق من الطلب، يتحقق من المخزون في D1 Inventory، يحجز المخزون، يكتب في D2 Orders، يرسل Order Confirmation.
  2. 2.0 Manage Inventory — يستقبل Stock Delivery من المورّد، يُحدّث D1 Inventory؛ ويُطلق أيضًا Stock Request إلى المورّد عند انخفاض المخزون.
  3. 3.0 Fulfil Shipment — يقرأ من D2 Orders، يُحدّث حالة الطلب، يرسل Shipment Notice إلى العميل.
  4. 4.0 Generate Sales Report — يقرأ من D2 Orders، يُجمّع ويُرسل Sales Report إلى المدير.
Level 1 DFD — Online Store Order Processing Customer (External) Supplier (External) Manager (External) D1 Inventory D2 Orders 1.0 Process Order 2.0 Manage Inventory 3.0 Fulfil Shipment 4.0 Generate Sales Report Order Order Confirm. Shipment Notice Stock Request Stock Delivery Sales Report Stock Check New Order Stock Update Order Data Order Data
مخطط DFD المستوى الأول للمتجر الإلكتروني — أربع عمليات، مخزنا بيانات، وتدفقات حدودية متوازنة مع العميل والمورّد والمدير.

كم عددًا من العمليات يُعدّ كثيرًا؟

التوجيه التقليدي هو أربع إلى تسع عمليات في المستوى الأول. أقل من أربع يعني في الغالب أن الفقاعات خشنة للغاية لتكون ذات معنى؛ وأكثر من تسع يُثقل المخطط معرفيًا، وهو في العادة إشارة إلى أن المحلل هبط إلى تفاصيل المستوى الثاني قبل الأوان. إذا وجدت نفسك ترسم اثنتي عشرة فقاعة، ابحث عن أزواج يمكن دمجها في عملية واحدة أعلى مستوى تُفكَّك لاحقًا.

تجنّب "فقاعة الإله". العملية التي تقرأ من كل مخزن بيانات وتتحدث مع كل كيان خارجي تقوم بأكثر مما ينبغي. إذا بدت فقاعة واحدة متصلة بكل شيء، اقسمها. العملية 2.0 في مثال العيادة تتصل بثلاثة مخازن بيانات — وهذا مقبول في المستوى الأول، لكنه إشارة إلى أن 2.0 ستحتاج إلى تفكيك في المستوى الثاني.

قائمة تحقق قبل الانتهاء من مخطط DFD المستوى الأول

  1. كل تدفق حدودي من مخطط السياق يظهر في المستوى 1 بالاسم ذاته والاتجاه ذاته — متوازن.
  2. كل عملية تمتلك تدفقًا داخلًا واحدًا على الأقل وتدفقًا خارجًا واحدًا — لا ثقوب سوداء ولا معجزات.
  3. جميع تسميات العمليات هي أزواج فعل-مفعول.
  4. جميع مخازن البيانات مُسمّاة ومرقّمة (D1، D2 …).
  5. لا تدفقات مباشرة من كيان إلى كيان تتخطى النظام (تلك تنتمي خارج حدود النظام).
  6. لا تدفقات تحكم (قرارات، شروط) — مخططات DFD تُظهر حركة البيانات لا المنطق؛ استخدم مخططات التدفق أو مخططات النشاط للمنطق.

مخطط DFD المستوى الأول المُنجَز جيدًا هو وثيقة تواصل قوية. المطورون يرون مخازن البيانات ويبدؤون بالتفكير في مخطط قاعدة البيانات. المُختبِرون يرون التدفقات الحدودية ويبدؤون في صياغة حالات الاختبار. المستخدمون التجاريون يرون أسماء العمليات المألوفة ويؤكدون صحة النطاق. في الدرس التالي سننزل بإحدى هذه العمليات إلى المستوى الثاني، متعلمين كيف نحافظ على الاتساق — ومتى نتوقف عن التفكيك بالضبط.