نماذج UML – مخطط الكيانات والعلاقات (ERD) ومخطط التسلسل
يُعدّ نمذجة الأنظمة خطوة أساسية في دورة حياة تطوير البرمجيات Software Development Life Cycle (SDLC). فقبل بناء أي نظام فعلي، يجب على محلل الأنظمة والمصممين فهم طبيعة البيانات، وترابط مكوّنات النظام، وتسلسل العمليات بين المستخدمين والكائنات الداخلية. وفي هذا الإطار، تُعدّ النماذج الرسومية Graphical Models أداة ضرورية لصياغة هذا الفهم وتحويله إلى وثائق واضحة تسهّل عملية التطوير، وتعزز التواصل بين فريق العمل.
يُركّز هذا الجزء من الفصل على نموذجين من أهم نماذج UML:
- مخطط الكيانات والعلاقات ERD – Entity Relationship Diagram
- مخطط التتابع Sequence Diagram
وهما النموذجان الأكثر استخداماً في تحليل قواعد البيانات و تحليل منطق النظام على التوالي.
القسم الأول: مخطط الكيانات والعلاقات ERD
تعريف مخطط ERD
يمثل مخطط الكيانات والعلاقات ERD وصفاً بصرياً لهيكل قاعدة البيانات. وهو يوضّح:
- الكيانات الأساسية في النظام Entities
- الصفات Attributes الخاصة بكل كيان
- العلاقات Relationships بين الكيانات
- نوع العلاقة (1:1، 1:N، N:M)
- المفاتيح الأساسية PK والمفاتيح الأجنبية FK
يُستخدم ERD بشكل مبكر في مرحلة التحليل لتحديد بنية البيانات قبل صياغة الجداول الفعلية في قواعد البيانات.
أهمية ERD في تطوير البرمجيات
لا يقتصر دور ERD على رسم الجداول؛ بل يمثّل حجر الأساس في:
- تحديد المتطلبات المتعلقة بالبيانات
- فهم الترابط بين أجزاء النظام
- ضمان التكامل Data Integrity داخل قاعدة البيانات
- منع التكرار والازدواجية Redundancy
- تحسين جودة التصميم قبل كتابة الكود
وبالتالي، يقلل ERD من الأخطاء المكلفة التي تظهر عند بناء قاعدة البيانات بشكل غير مدروس.
عناصر ERD الأساسية
أولاً: الكيان Entity
الكيان هو أي شيء في النظام له وجود مستقل ويمكن وصفه بصفات.
أمثلة:
Student، Course، Teacher، Product، Order.
يمكن أن يمثل الكيان شخصاً، مكاناً، حدثاً، أو شيئاً مادياً.
ثانياً: الصفات Attributes
الصفات هي خصائص تميّز الكيان. لكل صفة نوع بيانات يحدد طبيعة محتواها.
مثال كيان Student:
- StudentID
- Name
- Phone
- BirthDate
بعض الصفات قد تكون إلزامية Mandatory، وبعضها اختياري Optional.
ثالثاً: المفتاح الأساسي Primary Key (PK)
هو صفة أو مجموعة صفات تضمن تميّز السجلات وعدم تكرارها، مثل:
- StudentID
- ProductID
- OrderNumber
يمثل العمود الأكثر أهمية في تنظيم البيانات.
رابعاً: المفتاح الأجنبي Foreign Key (FK)
هو صفة تربط بين كيانين، للإشارة إلى علاقة منطقية بينهما.
مثال:
CourseID في جدول Enrollments يشير إلى أن الطالب مسجَّل في مادة معينة.
خامساً: العلاقات Relationships
تصنّف العلاقات إلى ثلاثة أنواع رئيسية:
1. علاقة واحد إلى واحد (One-to-One)
تُستخدم عندما يكون لكل عنصر في الكيان الأول عنصر واحد فقط في الكيان الثاني.
مثال:
كل موظف لديه بطاقة هوية واحدة فقط.
2. علاقة واحد إلى متعدد (One-to-Many)
وهي الأكثر شيوعاً في الأنظمة.
مثال:
المعلم يدرّس عدة مواد
Customer → Orders
3. علاقة متعدد إلى متعدد (Many-to-Many)
مثال:
الطلاب يسجلون في عدة مواد
وكل مادة تضم عدداً من الطلاب
Student ↔ Course
هذا النوع يحتاج إلى كيان وسيط يسمى Associative Entity.
4. مستويات تصميم ERD
يُصمّم ERD بثلاث مستويات:
1. ERD المفاهيمي Conceptual
يُستخدم لفهم النظام بشكل عام.
يحتوي فقط على الكيانات الأساسية والعلاقات بينها.
2. ERD المنطقي Logical
يحدّد الصفات، المفاتيح الأساسية، وأنواع العلاقات بشكل مفصل.
3. ERD الفيزيائي Physical
يركّز على كيفية تحويل النموذج إلى جداول فعلية داخل قاعدة البيانات.
مثال تطبيقي: نظام متجر إلكتروني
الكيانات
Customer
Product
Order
OrderItem
العلاقات
Customer 1:N Order
Order N:M Product (عبر OrderItem)
القسم الثاني: مخطط التتابع Sequence Diagram
1. تعريف Sequence Diagram
هو نموذج يُظهر التفاعل المتسلسل بين أجزاء النظام خلال فترة زمنية، ويصف:
- كيف يبدأ الحدث
- من يرسل رسالة لمن
- ما هو ترتيب الرسائل
- كيف تتم معالجة الطلبات
يستخدم بشكل رئيسي في تحليل سيناريوهات Use Cases.
2. أهمية Sequence Diagram
يساعد المخطط في:
- فهم المنطق الداخلي للنظام
- توضيح كيفية سير العمليات المعقدة
- كشف الأخطاء المنطقية قبل البرمجة
- توثيق السيناريوهات المهمة للمطورين
هذا النموذج أساسي في تحليل الأنظمة المبنية على الخدمات Service-Based Systems.
3. مكونات مخطط Sequence Diagram
أولاً: الممثل Actor
هو الشخص أو النظام الخارجي الذي يبدأ الحدث.
مثال: User – Admin – Payment Gateway
ثانياً: خط الحياة Lifeline
خط عمودي يُظهر وجود الكائن عبر الزمن.
ثالثاً: الرسائل Messages
توجد أنواع للرسائل:
- رسالة طلب Call Message
- رسالة استجابة Return Message
- رسالة متزامنة Synchronous
- رسالة غير متزامنة Asynchronous
رابعاً: مربّع التفعيل Activation Box
يمثل المدة الزمنية التي ينفّذ فيها الكائن عملية معينة.
4. مثال تفصيلي: سيناريو تسجيل الدخول
الخطوات
- يدخل المستخدم بياناته.
- واجهة النظام ترسل البيانات إلى وحدة التحقق.
- وحدة التحقق تتواصل مع قاعدة البيانات.
- قاعدة البيانات تتحقّق من البيانات.
- تعيد النتيجة للوحدة.
- النظام يرسل للمستخدم نجاح الدخول أو فشله.
Enter credentialsUI → AuthService:
Submit credentialsAuthService → Database:
Query userDatabase → AuthService: نتيجة التحقق
AuthService → UI:
Successful login result5. مقارنة بين ERD و Sequence Diagram
| الجانب | ERD | Sequence Diagram |
|---|---|---|
| التركيز | البيانات | السلوك |
| الزمن | لا يهتم بالزمن | يعتمد على الزمن |
| الهدف | فهم قاعدة البيانات | فهم منطق التشغيل |
| الاستخدام | تصميم قواعد البيانات | تحليل الاستخدام Use Cases |
يمثل كل من ERD وSequence Diagram أدوات أساسية في تحليل وتصميم الأنظمة. الأول يركّز على البنية الهيكلية للبيانات، بينما الثاني يصف تفاعل الكائنات مع الزمن. استخدامهما معاً يوفر رؤية شاملة للنظام ويساهم في تقليل الأخطاء وزيادة جودة التصميم قبل مرحلة البرمجة.


