تحليل الأنظمة وتصميمها
قبل ما نبرمج أي نظام، أهم خطوة إننا نفهم شغلك كويس: كيف بتشتغل اليوم، وين المشاكل، وشو الهدف اللي بدك توصله. هون بييجي دور تحليل الأنظمة وتصميمها.
شو يعني تحليل نظام؟
ببساطة: نفهم شغلك خطوة خطوة. مين بشتغل؟ شو البيانات اللي تدخل؟ شو التقارير اللي بدك تطلع؟ وكيف بتمشي المعلومة من شخص للتاني.
وشو يعني تصميم نظام؟
بعد ما نفهم، بنرسم صورة واضحة للنظام المقترح: شاشات، صلاحيات، أزرار، تقارير، وطريقة حركة البيانات، عشان لما نبرمج ما يكون في مفاجآت.
ليش هذا مهم؟
لأن نظام بدون تحليل كويس غالباً يكون معقّد، ناقص، أو ما بخدم الشغل صح. التحليل الصح بوفّر وقت، وتكاليف، وتعديلات مزعجة بعدين.
كيف بنمشي معك خطوة بخطوة؟
- جلسة فهم الشغل: بنسمع منك: نوع النشاط، طريقة البيع، كيف بتسجّل الديون، وكيف بتتابع المخزون أو الخدمات.
- تحديد المشاكل: مثلاً: ضياع فواتير، ديون مش واضحة، مخزون مش مضبوط، أو تقارير مش متوفرة.
- تحديد الأهداف: زي: سرعة في الكاشير، كشف حساب واضح لكل زبون، تنبيهات للمديونية، تقرير يومي أو شهري مرتب.
- رسم شكل النظام: بنرتّب فكرة الشاشات الأساسية، مين يدخل على أي شاشة، وشو اللي مسموحله يعمل (إضافة، تعديل، طباعة…).
- نسخة أولى للتجربة: لما تنبنى النسخة الأولى، بتجرّبها على شغلك، وبناءً على ملاحظاتك بنعدّل عشان تكون قريبة من الواقع.
أمثلة على أنظمة ممكن نحلّلها ونصمّمها
- نظام مبيعات وكاشير لمحل سوبرماركت أو مواد غذائية.
- نظام إدارة معرض (سيراميك، حمامات، أثاث، أجهزة كهربائية… إلخ).
- نظام متابعة ديون وعقود لخدمات شهرية أو سنوية.
- نظام بسيط لإدارة طلبات أونلاين وربطها مع مخزن أو فرع معيّن.
حابب نساعدك تحوّل شغلك لنظام مرتب؟
احكي لنا عن طبيعة شغلك، وإحنا بنجمع الملاحظات ونقترح عليك هيكل نظام يناسبك قبل ما ندخل في مرحلة البرمجة.
تحليل نظام WaveFlow باستخدام UML
الجزء التالي مخصص لطلاب الجامعات وأصحاب المشاريع اللي بحبّوا يشوفوا جانب التحليل الأكاديمي لنظام WaveFlow: حالات الاستخدام (Use Case)، بنية النظام (Class Diagram)، وسلوك النظام (Sequence & Activity).
1) Use Case Modeling – نمذجة حالات الاستخدام
في WaveFlow عندنا أكثر من Actor أساسي، مثل:
Owner, Admin, Accountant,
Cashier, Viewer. كل واحد منهم إله مجموعة
من حالات الاستخدام (Use Cases) اللي بتمثّل
الأشياء الرئيسية اللي بعملها داخل النظام.
مثال مختصر لحالات استخدام رئيسية
| Use Case Name | Primary Actor | Goal | Brief Description |
|---|---|---|---|
| Manage Tenants | Owner | إدارة الشركات على منصة WaveFlow | استعراض، تعديل، تفعيل وإيقاف الشركات (Tenants) من واجهة المالك. |
| Register POS Sale | Cashier | تسجيل عملية بيع سريعة من شاشة POS | إضافة المنتجات، اختيار العميل (اختياري)، تحديد طريقة الدفع، وحفظ الفاتورة. |
| Create Purchase Invoice | Accountant | تسجيل شراء من مورد وتحديث المخزون | إنشاء فاتورة شراء، زيادة كمية الأصناف وتحديث حساب المورد. |
| View Daily Sales Report | Viewer/Manager | متابعة مبيعات اليوم | عرض تقرير يوضّح إجمالي مبيعات اليوم لكل فرع أو صندوق. |
مخطط Use Case العام لنظام WaveFlow
الشكل التالي يوضّح العلاقة بين الـ Actors الرئيسيين في النظام (Owner, Admin, Accountant, Cashier, Viewer, External System) وبين أهم حالات الاستخدام الخاصة بهم.
2) System Structure – بنية النظام (Class Diagram & CRC)
WaveFlow مبني بطريقة Object-Oriented، وفيه مجموعة
من Classes أساسية مثل:
Tenant, Plan, Subscription,
User, Customer, Product,
Invoice, InvoiceLine, CashSession
وغيرها.
مثال مختصر لجدول CRC
| Class | Responsibilities | Collaborators |
|---|---|---|
| Tenant |
تخزين بيانات الشركة، إعداداتها الأساسية، والربط مع
Plan و Subscription وباقي بياناتها.
|
Plan, Subscription, User, Customer, Supplier, Product, Invoice |
| Invoice | تمثيل الفواتير (بيع/شراء/POS)، حساب الإجمالي، وربط الحركة بالمخزون والحسابات المحاسبية. | Tenant, Customer, Supplier, InvoiceLine, CashSession, JournalEntry |
| CashSession | إدارة وردية الكاشير، الرصيد الافتتاحي والختامي، وربط مبيعات POS بنفس الوردية. | User, Invoice, Payment, Receipt |
مخطط الأصناف (Class Diagram)
الشكل التالي يوضّح أهم الأصناف في النظام والعلاقات بينها، بما فيها
العزل بين الشركات Tenant وربط الفواتير بالمخزون
والدفاتر المحاسبية.
3) System Behavior – سلوك النظام (سيناريو بيع من شاشة POS)
هذا المثال يوضّح كيف بتمشي العملية داخل النظام لما الكاشير يسجّل عملية بيع من شاشة POS، من لحظة فتح الوردية لحد طباعة الفاتورة.
- الكاشير يفتح شاشة POS ويتأكد من وجود
CashSessionمفتوحة. - يضيف المنتجات إلى السلة باستخدام Barcode أو البحث عن الصنف.
- يختار العميل (اختياري) وطريقة الدفع (نقدي/بطاقة/مختلط).
- النظام ينشئ فاتورة من نوع
POSويحدّث المخزون. - النظام يربط الفاتورة بالـ
CashSessionالحالية ويولّد قيود محاسبية مناسبة. - يتم طباعة الفاتورة أو حفظها كـ PDF للعميل.