هذه المرحلة هي الحد الفاصل بين مطور يطلب من الذكاء الاصطناعي إنشاء صفحات وملفات منفصلة، ومهندس يقود عملية بناء نظام متماسك الأركان. هنا تتعلم التفكير في المشكلة وحالاتها الاستثنائية قبل فتح محرر الأكواد.
المفاهيم المطلوب إتقانها:
- تحليل المتطلبات: التمييز بين المتطلبات الوظيفية، غير الوظيفية، قواعد العمل (Business Rules)، والقيود التقنية.
- نمذجة النظام: تحديد المستخدمين، الأدوار والصلاحيات، حالات الاستخدام (Use Cases)، وتدفق البيانات بين الواجهات والخادم.
- تقسيم النظام إلى وحدات: عزل الوحدات الوظيفية (العملاء، الفواتير، المخزون، المصروفات، والتقارير المالية).
- فصل المسؤوليات: فصل طبقة عرض البيانات عن طبقة التحقق وتنفيذ العمليات وطبقة استعلامات قاعدة البيانات.
- مبادئ التصميم: تقليل الترابط (Coupling)، رفع التماسك الداخلي (Cohesion)، ومنع التكرار بتحديد مصدر الحقيقة الموحد (Single Source of Truth).
- التوثيق المعماري: رسم مخطط بنية النظام، إعداد قاموس البيانات (Data Dictionary)، وتوثيق قرارات التصميم المعماري (ADRs).
اختر نظاماً إدارياً تعرف مجال عمله جيداً، واكتب وثيقة مواصفات كاملة وقاموس بيانات قبل كتابة أي كود. أجب كتابياً عن: ماذا يحدث عند إلغاء فاتورة معتمدة؟ هل يُحذف القيد المالي أم يُعكس بقيد إشعار دائن؟ من يملك صلاحية الاعتماد؟ وماذا يحدث إذا فشل حفظ جزء من المعاملة؟