السلام عليكم و رحمة الله
الجزء 1 , الجزء2
سنعود الآن لمشروعنا لنطبق كل ما درسناه عليه , لكن قبل ذلك سنضطر في هذه المرة أيضا للعودة إلى نص مشروعنا للتعديل عليه قليلا كالعادة . التعديلات و الإضافات موضحة باللون الأخضر.
1. المحل يحتوي على منتجات للبيع Produits تشكل لنا المخزون المتوفر في المحل.
2. يقوم صاحب المحل بشراء منتجات من عند ممولين fournisseurs و ذلك في تاريخ محدد و عن طريق فاتورة تقدم من طرف الممول و يتم إدخال بيانات هذه المنتجات كوصول Arrivage .
3. قبل شراء المنتجات صاحب المحل يقوم بتحرير طلبية Commande يضع فيها جميع المنتجات التي يريد شرائها من عند الممول .
4. يتعامل صاحب المحل مع الزبائن عن طريق الفواتير التي تحوي المنتجات المشترات .
5. كل منتج لديه تعريفة أو رمز Code لديه وصف Désignation, ثمن شراءPrix Achat, ثمن بيع Prix Vente, كمية Quantité و الحد الأدنى في المخزن Stock Minimum.
.6 الفاتورة تحتوي على العديد من المنتجات, في المقابل المنتج الواحد يمكن أن يظهر في أكثر من فاتورة. الفاتورة لديها رقم Numéro ,تاريخ إجراء الفاتورة Date de facture و قيمة المبلغ المدفوع للفاتورة Montant
7. الزبون يتصف برقم, اسم, لقب, رقم الهاتف, عنوان.
.8 الطلبية تحتوي رقم و تاريخ إجراء الطلبية.
.9 الممول لديه رقم, اسم, لقب, رقم هاتف, فاكس, عنوان.
10. طبعا كل عملية تحديث أو إضافة أو حذف لمنتج أو فاتورة أو زبون أو ممول يقوم بها صاحب المحل بعدما يسجل دخوله للبرنامج بكلمة سر.
11. يمكن لصاحب المحل من تعديل إعدادات البرنامج من تغيير للغة البرنامج أو أخد نسخة احتياطية من قاعدة البيانات أو الرجوع إلى نسخة تم تخزينها من قبل.
12. يمكن لصاحب المحل الاضطلاع على المخزن و ذلك من أجل تحديد المنتجات التي على وشك النفاد منه أو من أجل تعديل بيانات محددة.
13. كل منتجا ينتمي لفئة محددة من المنتجات.
14. دفع الفاتورة يكون دفعة واحدة أو على مراحل و يتم في كل مرحلة تسجيل تاريخ الدفع و المبلغ المدفوع. نسمي هذه العملية بالـ versement . كذلك بالنسبة للمنتجات التي يجلبها صاحب المحل من عند الممولين يمكنها أن تكون دفعة واحدة أو على مراحل.
15. يمكن أن يكون هناك أكثر من مدير للمحل يتحكم في مختلف عمليات البيع و الشراء أو غيرها.
16. يمكن لصاحب المحل أن يقوم بصرف بعض التكاليفDépense, نقوم بتخزين تاريخ صرفها و قيمة هذه التكاليفLe montant.
الآن نبدأ في نمذجة مخطط الفئات اعتمادا على المراحل التي ذكرناها في الدرس :
أولا استخراج الفئات:
من الجملة 1 من نص المشروع نستخرج الفئة منتج Produit
من الجملة 2 يمكننا استخراج فئة الممول Fournisseur و فئة الـ Arrivage
من الجملة 3 نستخرج فئة الطلبية Commande
من الجملة 4 لدينا فئتين هما فئة الزبون و فئة الفاتورة
من الجملة 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 و هو أفضل من البرنامج السابق بكثير. لتحميل البرنامج اضغط هذا الرابط:
http://www.mediafire.com/?uqmyyynlb2z
أو زر هذا الرابط للاضطلاع على موضوع البرنامج:
http://www.science-collector.com/vb/t3832.html
المخططات موجودة في المرفقات لمن يريد تحميلها و هي تحتاج للبرنامج المذكور أعلاه لفتحها.
كذلك أضفت نسخة PDF لتحميل الأجزاء الثلاثة معا و قراءتها على شكر كتاب إلكتروني.

























رد مع اقتباس

مواقع النشر (المفضلة)