🖥️ تحليل المشروع – الخطوة الثانية (مشاريع البرمجيات)
التركيز: تحديد مستخدمي النظام (الفاعلين)، صياغة المتطلبات الوظيفية وغير الوظيفية، وبناء حالات الاستخدام (جدول/مخطط).
١) تحديد مستخدمي النظام (الفاعلون)
بعد إنهاء مرحلة جمع المعلومات، نُحدّد من سيتفاعل مع النظام. في هندسة البرمجيات نُسميهم الفاعلين (Actors) — قد يكونون أشخاصًا أو أنظمة خارجية.
- فاعلون أساسيون: يتعاملون مباشرةً مع النظام لتحقيق هدف (مثل: عميل، مدير نظام).
- فاعلون ثانويون: يدعمون تشغيل النظام أو يتكاملون معه (مثل: بوابة دفع، خدمة بريد).
مثال – متجر إلكتروني: عميل (أساسي)، مدير (أساسي)، بوابة الدفع (ثانوي)، نظام المخزون (ثانوي).
٢) المتطلبات الوظيفية (ماذا يفعل النظام)
- يُمكّن النظام المستخدم من التسجيل وتسجيل الدخول وإدارة ملفه الشخصي.
- يستطيع المستخدم البحث والتصفية وعرض تفاصيل المنتجات.
- يستطيع المدير إضافة المنتجات وتعديلها وحذفها وإدارة التصنيفات.
- يدعم النظام عملية الدفع وإتمام الطلبات.
٣) المتطلبات غير الوظيفية (كيف يعمل النظام)
- الأداء: تحميل الصفحة الرئيسية خلال ≤ 3 ثوانٍ في الظروف الطبيعية.
- سهولة الاستخدام: يعمل على الحاسوب والهاتف، ويدعم التنقّل عبر لوحة المفاتيح.
- الأمن: صلاحيات حسب الأدوار، اتصال مُشفّر، والامتثال لخصوصية البيانات.
- الاعتمادية: هدف توافر 99.5% مع معالجة أخطاء رشيقة.
- القابلية للتوسع: يدعم نمو عدد المستخدمين والمنتجات وحركة المرور.
٤) جدول حالة استخدام (نموذج)
معرّف الحالة | UC‑01 |
---|---|
اسم الحالة | إتمام طلب شراء |
الفاعل | العميل |
الوصف | يختار العميل العناصر، يُدخل بيانات الشحن، يؤكد الدفع. |
الاشتراطات المسبقة | المستخدم مسجّل الدخول؛ سلة المشتريات تحتوي عنصرًا واحدًا على الأقل. |
المُنبِّه | ينقر المستخدم "الدفع" (Checkout). |
التدفق الرئيسي | 1) يعرض النظام صفحة الدفع → 2) إدخال عنوان الشحن → 3) اختيار وسيلة الدفع → 4) معالجة الدفع → 5) تأكيد الطلب. |
النتائج اللاحقة | حفظ الطلب؛ إرسال بريد تأكيد. |
الاستثناءات | فشل الدفع؛ نفاد المخزون. |
ملاحظة: كرّر الجدول لكل حالة رئيسية (بحث، إدارة المنتجات، استرجاع المبلغ، إلخ).
٥) مخطط حالة الاستخدام (Use Case Diagram)
- الفاعلون: عميل، مدير، بوابة الدفع.
- الحالات: تسجيل الدخول، البحث عن منتج، إضافة للسلة، إتمام الشراء، معالجة الدفع، إدارة المنتجات.
- العلاقات: صِل كل فاعل بالحالات التي يُباشرها أو يشارك فيها.
موضع توضيحي: أدرج صورة مخطط UML بعد تصميمه (من draw.io أو Lucidchart أو StarUML).
٦) لماذا هذه الخطوة مهمة؟
- تُحدّد نطاق النظام وتمنع فقدان الميزات الضرورية.
- تُحاذي فهم الفريق مع احتياجات المستخدم الفعلية.
- توفّر مرجعًا واضحًا للتصميم والتطوير والاختبار.