

من الجملة 13 يمكننا استخراج الفئة "فئة" Catégorie

كذلك فئة مدير المحل Administrateur و فئة التكاليف Dépense من الجملة 16.
ثانيا استخراج الروابط بين الفئات :
أولا الفئة Produit هي الفئة المركزية في شروعنا لأن أغلب الروابط تكون بينها و بين الفئات الأخرى و بالرجوع إلى الجملة 4 من نص المشروع نستخرج رابطة بين الفئة Produit و الفئة Facture فكل فاتورة تحتوي منتج واحد علىالأقل أو أكثر, و كل منتج يمكن أن يظهر في أي فاتورة. هذا ما يمكننا ترجمته في المخطط التالي :

من الجملة 2 نستخلص رابطة بين المنتج و الممول حيث أن لكل منتج في مخزننا ممول أحضرنا من عنده هذا المنتج , حيث لكل منتج ممول واحد و لكل ممول العديد من المنتجات التي قام ببيعها لصاحب المحل .

الرابطة التي بين الممول و المنتج هي رابطة وصول Arrivage, هذه الرابطة تحتوي على خصائص كما ذكرنا في نهاية الجملة الثانية لذلك علينا تحويلها إلى فئة_رابطة ليصبح المخطط هكذا:

من الجملة 3 يمكننا استخراج رابطة احتواء بين الطلبية و المنتج , الطلبية و الممول , حيث يقوم صاحب المحل بتحرير طلبية يضع فيها جميع المنتجات التي يعتزم شرائها من عند ممول يحدده مسبقا .
من الجملة 5 يمكننا تحديد رابطة بين الزبون و الفاتورة , حيث لكل زبون فاتورة أو أكثر و الفاتورة متعلق بزبون واحد و وحيد.
فيكون مخططنا كما يلي :

من الجملة 13 كل منتج ينتمي لفئة معينة Catégorie , أي توجد رابطة انتساب Appartenace بين فئة Produit و فئة Catégirie :

الجملة 14 : قبل وصولي إلى هذا الحل أي إنشاء فئة Versement بها كل هذه الخصائص. كانت هذه الفئة عبارة عن صفة من صفات فئة الFacture و فئة Arrivage , و كانت مهيئة للاحتواء قيمة الفاتورة فقط , لكن بعض التواصل مع صاحب المحل اتضح أن الـ Versement يمكن أن يكون على مراحل و يمكن أن تحمل كل مرحلة من الدفع قيمة معينة . لذا ستكون هذه الفئة مرتبطة مع الفئة Facture و الفئة Arrivage على حدا سواء:

الجملة 16 : ستكون علاقة الـ administrateur جد واضحة مع المصاريف Dépenses,حيث يمكن أن يقوم أي Administrateurبصرف تكاليف معينة.

ثالثا استخراج خصائص الفئات :
اعتمادا على النص أعلاه و بالرجوع إلى صاحب المحل , الجدول التالي يحتوي كل الفئات و خصائصها :
هناك توضيح فيما يخص الفئة Arrivage , هذه الفئة تحتوي على صفتين ربما يتضح أنها ليستا تابعتين لها بل خاصتين بالفئة Produit .
لنفهم سبب وضعهما هنا علينا أولا الاتفاق على أمر مهم ذكرناه في نص المشروع , لقد قلنا أن المنتجات تمثل لنا المخزون المتوفر في المحل , أي أن الفئة Produit تمثل بشكل من الأشكال المخزن في حد ذاته . حيث تحدد الصفة Quantité كمية هذا المنتج المتوفرة في المحل بينما الصفة Quantité الموجودة في الفئة Arrivage فهي خاصة بهذه الفئة و تخص منتجا معينا من منتجات المخزن , كذلك الأمر بالنسبة للصفة PrixAchat, هذه الصفة تمثل سعر الشراء العام , أي الذي حسبناه اعتمادا على مجموعة من الإيصالات Arrivages , هذا في الفئة Produit أما في الفئة Arrivage فهذه الخاصية تمثل سعر شراء المنتج من عند الممول .
أيضا قد أضفت فئتين جديدتين هما Fact_Prod , Comm_Prod لسبب مماثل لما سبق و هما فئتين تربطان المنتج و الفاتورة , الطلبية و المنتج على التوالي. حيث من المعلوم أنه إذا جاء مشتري لشراء منتج ما فسعر بيع هذا المنتج لهذا الزبون ليس بالضرورة يكون مطابقا للسعر الأولي الموضوع لهذا المنتج في المخزن , كذلك الأمر بالنسبة للخاصيتين Quantité الموجودتين في الفئتين Facture و Commande فهذه الكمية خاصة بالفاتورة أو خاصة بالطلبية و هي مختلفة من فاتورة إلى فاتورة كما أنها مغايرة للكمية الموجودة في المخزن . و يمكنك استنتاج نفس الشيء بالنسبة للخاصية PrixVente.
للتوضيح هذا جزء من المخطط بعد إضافة الفئتين الجديدتين:

بعد إضافة كل هذه الخصائص للفئات وضع أنواع هه الخصائص(String , int ...) و إضافة الفئتين و أطراف الروابط الملونة بالأخضر نحصل على المخطط التالي :

المرحلة الأخيرة : تبسيط و تنظيم المخطط :
يمكننا تحسين المخطط عن طريق استخراج الفئات التي يمكننا أن نربط بينها بعلاقة الوراثة. لو تأملت معي قليلا لوجدت أن هذه العلاقة يمكن عملها بين فئات يمكنها أن تحمل خصائص مشتركة فيما بينها. هذه الفئات هي فئة Client و Fournisseur حيث سنجمع الخصائص المشتركة بين هذه الفئات في فئة جديدة اسمها Personne و ستُورث هذه الفئة من الفئتين السابقتين . المخطط التالي يوضح علاقة الوراثة بين هذه الفئات الثلاثة :

ليكون مخططنا في النهاية كما يلي:

طبعا لا يمكننا ضبط جميع هذه الخصائص من أول نمذجة كما قلت سابقا فربما ينقصنا صفات أو عمليات أخرى أو هناك صفات أو عملية لا حاجة لنا بها , لذا سنضطر للتعديل على هذا الجدول كلما احتجنا لذلك .
كذلك الأمر بالنسبة للفئات سنقوم بتحديثها كلما دعت الضرورة لذلك.
إلى هنا أقوم قد أنهيت هذا الجزء من تصميم المشروع و أرجو أن لا أكون قد أطلت عليكم.
أي اقتراحات أو استفسارات أو مداخلات نحن هنا لمناقشتها جميعا.
النسبة لهذا المخطط فقد استعملت برنامج StarUML و هو أفضل من البرنامج السابق بكثير. لتحميل البرنامج اضغط هذا الرابط:
أو زر هذا الرابط للاضطلاع على موضوع البرنامج:
[عزيزي الزائر يتوجب عليك التسجيل لمشاهدة الرابط للتسجيل اضغط هنا]
المخططات موجودة في المرفقات لمن يريد تحميلها و هي تحتاج للبرنامج المذكور أعلاه لفتحها.
كذلك أضفت نسخة PDF لتحميل الأجزاء الثلاثة معا و قراءتها على شكر كتاب إلكتروني.