🎯 الدليل الشامل لرموز UML

أتقن كل رمز وسهم وعلامة في هندسة البرمجيات

📌 الفروقات الحاسمة بين الأسهم - اتقن هذه!

رأس سهم ممتلئ (مثلث مصمت ▶)

  • ✓ رسائل متزامنة (تنتظر الرد)
  • ✓ تدفق التحكم (مخططات النشاط)
  • ✓ التحولات بين الحالات

رأس سهم مفتوح (شكل V >)

  • ✓ رسائل غير متزامنة (لا تنتظر)
  • ✓ رسائل العودة (خط متقطع)
  • ✓ تضمين/تمديد (خط متقطع)

مثلث مجوف (التوريث △)

  • ✓ التعميم/التوريث فقط
  • ✓ يشير دائماً إلى الأصل/الفئة الأم
  • ✓ يستخدم في مخططات حالة الاستخدام والكلاس

بدون رأس سهم (الارتباط —)

  • ✓ الارتباط (الممثل إلى حالة الاستخدام)
  • ✓ علاقة ثنائية الاتجاه
  • ✓ لا يوجد اتجاه محدد

1️⃣ مخططات حالة الاستخدام

Use Case
بيضاوي / شكل بيضاوي
يمثل حالة استخدام - وظيفة محددة أو إجراء يقدمه النظام للممثلين.
📝 مثال: "تسجيل الدخول"، "معالجة الدفع"، "إنشاء تقرير"
شخصية العصا
يمثل ممثل - كيان خارجي (شخص، نظام، أو منظمة) يتفاعل مع النظام.
📝 مثال: "عميل"، "مدير النظام"، "بوابة الدفع"
System Name Use Cases
مستطيل / صندوق
يمثل حدود النظام - يحدد نطاق النظام وما هو داخل النظام مقابل خارجه.
📝 يحتوي على جميع حالات الاستخدام للنظام
Use Case
خط متصل (ارتباط)
يُظهر التواصل/المشاركة بين الممثل وحالة الاستخدام.
⚠️ خط متصل - بدون رأس سهم
📝 المعنى: الممثل يمكنه بدء أو المشاركة في حالة الاستخدام هذه
Base Use Case «include» Included UC
علاقة «include»
حالة الاستخدام الأساسية تضم دائمًا حالة الاستخدام المضمنة. تضمين إلزامي.
⚠️ خط متقطع + رأس سهم مفتوح
📝 مثال: "تسجيل الدخول" يتضمن "التحقق من بيانات الاعتماد"
Base Use Case «extend» Extension UC
علاقة «extend»
امتداد اختياري - حالة الاستخدام الممتدة قد تضيف سلوكًا لحالة الاستخدام الأساسية تحت ظروف معينة.
⚠️ خط متقطع + رأس سهم مفتوح (يشير إلى الأساسية)
📝 مثال: "معالجة الطلب" يمتد إلى "تطبيق كود الخصم"
User Admin Guest
التعميم (التوريث)
علاقة توريث بين الممثلين أو حالات الاستخدام. الابن يرث خصائص الأب.
⚠️ خط متصل + مثلث مجوف (يشير إلى الأصل)
📝 مثال: "المدير" و"الضيف" هما أنواع متخصصة من "المستخدم"
Part Whole
التجميع (معين مجوف)
علاقة "يملك" ضعيفة - الكل يحتوي على أجزاء، ولكن الأجزاء يمكن أن توجد بشكل مستقل عند تدمير الكل.
⚠️ خط متصل + معين مجوف (يشير إلى الكل)
📝 مثال: الجامعة لديها طلاب (الطلاب يمكن أن يوجدوا بدون الجامعة)
Part Whole
التكوين (معين ممتلئ)
علاقة "يملك" قوية - الكل يحتوي على أجزاء، الأجزاء لا يمكن أن توجد بشكل مستقل عند تدمير الكل.
⚠️ خط متصل + معين ممتلئ (يشير إلى الكل)
📝 مثال: المنزل يحتوي على غرف (الغرف لا يمكن أن توجد بدون المنزل)

2️⃣ مخططات النشاط

دائرة ممتلئة (●)
تمثل الحالة الأولية / عقدة البداية - حيث يبدأ النشاط.
📝 واحدة فقط لكل مخطط نشاط
هدف (◎)
تمثل الحالة النهائية / عقدة النهاية - حيث ينتهي النشاط.
📝 يمكن أن يكون هناك عدة عقد نهاية
Activity Name
مستطيل ذو زوايا دائرية
يمثل نشاط / حالة إجراء - مهمة أو عملية يتم تنفيذها.
📝 مثال: "معالجة الدفع"، "التحقق من المدخلات"، "إرسال بريد إلكتروني"
? [yes] [no]
معين ممتلئ (◆) - قرار
عقدة قرار / تفرع - تدفق شرطي مع مسارات متعددة خارجة بناءً على الشروط.
⚠️ معين ممتلئ (لون مصمت من الداخل)
📝 تُظهر الحرس بين قوسين: [شرط]، [آخر]
معين فارغ (◇) - دمج
عقدة دمج - حيث تلتقي مسارات متعددة مرة أخرى في تدفق واحد.
⚠️ معين فارغ (مجوف، بدون تعبئة)
📝 يستخدم بعد القرار/التفرع لإعادة ضم المسارات
Task A Task B Task C
شريط سميك - تفرع
عقدة تفرع - تقسم التدفق إلى أنشطة متوازية/متزامنة تنفذ في نفس الوقت.
⚠️ مدخل واحد، مخارج متعددة
📝 تبدأ جميع الأنشطة المتوازية في نفس الوقت
Task A Task B Task C
شريط سميك - ربط
عقدة ربط / تزامن - تنتظر انتهاء جميع الأنشطة المتوازية قبل المتابعة.
⚠️ مدخلات متعددة، مخرج واحد
📝 يجب الانتظار حتى تنتهي جميع المهام (نقطة تزامن)
Activity 1 Activity 2
سهم (تدفق التحكم)
تدفق التحكم / تحول - يُظهر تسلسل واتجاه الأنشطة.
⚠️ خط متصل + رأس سهم ممتلئ
📝 يشير إلى ترتيب التنفيذ
Customer System Administrator
حارة السباحة / قسم
قسم رأسي أو أفقي - ينظم الأنشطة حسب من ينفذها (الأدوار/الإدارات).
📝 يُظهر المسؤولية: حارة العميل، حارة النظام، حارة المدير

3️⃣ مخططات التسلسل

:ObjectName
مستطيل بالاسم
يمثل كائن/مشارك في التفاعل. صيغة الاسم: :اسم_الفئة أو اسم_الكائن:اسم_الفئة
📝 مثال: :معالج_الدفع، مستخدم:مستخدم
شخصية العصا (ممثل)
يمثل ممثل خارجي - عادةً مستخدم بشري يتفاعل مع النظام.
📝 مثال: عميل، مدير النظام
Object Lifeline
خط عمودي متقطع
خط الحياة - يمثل وجود الكائن عبر الزمن في التسلسل.
⚠️ خط عمودي متقطع
📝 يمتد من صندوق الكائن للأسفل عبر التفاعل
Object Active
صندوق التنشيط
مستطيل عمودي رفيع على خط الحياة - يُظهر متى يكون الكائن نشطًا في التنفيذ أو المعالجة.
📝 مدة تنفيذ الأسلوب أو الحالة النشطة
A B method()
سهم متصل (متزامن)
رسالة متزامنة - المرسل ينتظر حتى يكمل المستقبل قبل المتابعة.
⚠️ خط متصل + رأس سهم ممتلئ
📝 مكالمة حاجزة - تنتظر الرد
A B signal()
سهم مفتوح (غير متزامن)
رسالة غير متزامنة - المرسل يواصل فورًا بدون انتظار المستقبل.
⚠️ خط متصل + رأس سهم مفتوح
📝 مكالمة غير حاجزة - أطلق وانسى
A B return value
سهم متقطع (عودة)
رسالة عودة - رد أو نتيجة تُرسل مرة أخرى إلى المتصل.
⚠️ خط متقطع + رأس سهم مفتوح
📝 اختياري - غالبًا ما يكون ضمنيًا في المكالمات المتزامنة
alt [condition 1] [else] Interaction 1 Interaction 2
إطار التفاعل (alt)
تدفقات بديلة - مثل عبارة if-else. فرع واحد فقط ينفذ.
📝 مشغلات شائعة: alt (بديل)، opt (اختياري)، loop (تكرار)، ref (مرجع)
ref Another Sequence Diagram
إطار مرجعي (ref)
إشارة إلى مخطط آخر - يشير إلى استمرار التفاعل في مخطط تسلسل منفصل.
📝 يستخدم لتبسيط التفاعلات المعقدة بتقسيمها إلى مخططات أصغر
loop [1..n] Repeated interaction
إطار حلقة (loop)
تكرار - يتكرر التفاعل بناءً على شرط أو عد.
📝 مثال: [لكل عنصر]، [بينما الشرط]، [1..10]

4️⃣ مخططات حالة الآلة

دائرة ممتلئة (●)
تمثل الحالة الأولية - حيث يبدأ الكائن دورة حياته.
📝 واحدة فقط لكل آلة حالة
هدف (◎)
تمثل الحالة النهائية - حيث تنتهي دورة حياة الكائن.
📝 يمكن أن يكون هناك عدة حالات نهائية
State Name
مستطيل ذو زوايا دائرية (حالة)
تمثل حالة - شرط أو موقف في دورة حياة الكائن.
📝 مثال: "خامل"، "قيد المعالجة"، "مكتمل"، "خطأ"
State A State B event
سهم (تحول)
تحول - تغيير من حالة إلى أخرى يتم تحفيزه بحدث.
⚠️ خط متصل + رأس سهم ممتلئ
📝 يُوسَم بـ: حدث [شرط] / إجراء
Idle Active buttonPressed [isValid] / startProcess()
صيغة تسمية التحول
حدث [شرط] / إجراء - مواصفات التحول الكاملة.
📝 حدث = محفز، [شرط] = شرط، إجراء = ما يحدث
Active State entry / initialize() do / processData() exit / cleanup()
حالة مركبة
حالة مع أنشطة داخلية - تُظهر الإجراءات التي تتم خلال الحالة.
📝 دخول/ = عند الدخول، فعل/ = أثناء التواجد في الحالة، خروج/ = عند المغادرة
Processing entry / startTimer()
إجراء الدخول (entry /)
إجراء يتم تنفيذه عند دخول الحالة - يُنفذ مرة واحدة عند الدخول.
📝 مثال: تهيئة المتغيرات، تشغيل المؤقتات، تسجيل الدخول
Active do / monitor()
نشاط الفعل (do /)
نشاط مستمر أثناء التواجد في الحالة - يستمر حتى خروج الحالة.
📝 مثال: مراقبة مستمرة، رسوم متحركة، استطلاع
Connected exit / disconnect()
إجراء الخروج (exit /)
إجراء يتم تنفيذه عند مغادرة الحالة - يُنفذ مرة واحدة عند الخروج.
📝 مثال: تنظيف الموارد، حفظ الحالة، تسجيل الخروج

💡 نصائح سريعة للحفظ

  • الدوائر: نقاط البداية (●) والنهاية (◎) في مخططات النشاط والحالة
  • المستطيلات: الأشياء التي تقوم بعمل أو تحتفظ بحالة (أنشطة، حالات، كائنات)
  • معين ممتلئ (◆): نقاط القرار (التفرع) في مخططات النشاط
  • معين فارغ (◇): نقاط الدمج أو التجميع (علاقة "يملك" ضعيفة)
  • الشرائط السميكة: المعالجة المتوازية (تفرع للتقسيم، ربط للتزامن)
  • سهم ممتلئ (▶): علاقة قوية (مكالمة متزامنة، تحول، تدفق تحكم)
  • سهم مفتوح (>): علاقة ضعيفة/اعتمادية (غير متزامن، تضمين، تمديد، عودة)
  • مثلث مجوف (△): يعني دائمًا التوريث/التعميم (يشير إلى الأصل)
  • شخصيات العصا: دائمًا ممثلين خارجيين (أشخاص أو أنظمة)
  • تذكر: ممتلئ = قوي/قرار، فارغ = ضعيف/دمج، متقطع = اعتمادية

🎯 مرجع الأسهم الكامل - جميع الأنواع

شكل مرئي نوع السهم نمط الخط نوع الرأس يُستخدم في المعنى
تدفق التحكم متصل مثلث ممتلئ ▶ النشاط، الحالة التسلسل/التحول
مكالمة متزامنة متصل مثلث ممتلئ ▶ التسلسل ينتظر الرد
مكالمة غير متزامنة متصل مفتوح (شكل V) التسلسل لا ينتظر، يواصل
رسالة عودة متقطع مفتوح (شكل V) التسلسل رد/نتيجة
«include» متقطع مفتوح (شكل V) حالة الاستخدام يتضمن دائمًا
«extend» متقطع مفتوح (شكل V) حالة الاستخدام امتداد اختياري
تعميم متصل مثلث مجوف △ حالة الاستخدام، الحالة التوريث
ارتباط متصل لا يوجد حالة الاستخدام تواصل
خط الحياة متقطع (عمودي) لا يوجد التسلسل وجود الكائن
تجميع متصل معين مجوف ◇ فئة علاقة "يملك" ضعيفة
تكوين متصل معين ممتلئ ◆ فئة علاقة "يملك" قوية