دورة تحليل و بناء مشروع متكامل على الويب [ الدرس الخامس] : الـ Merise ام الـ UML ؟

دورة تحليل و بناء مشروع متكامل على الويب [ الدرس الخامس] : الـ Merise ام الـ UML ؟

مرحبا مجددا بكل متتبعي دورة تحليل و بناء مشروع متكامل على الويب ، وصلنا و بحمد الله الى الدرس الخامس ، و قد بدأنا حقا في الدروس السابقة بتحليل المشروع بشكل أفضل و فهم سيرورة عمل مشروعنا ، و قبل ان نلج في شرح الدرس الخامس ، دعونا نتذكر قليلا ما الذي قدمناه في الدروس السابقة عبر هذا الملخص البسيط . 


ملخص الدروس السابقة : 


من خلال الدروس السابقة ، إقتبسنا مجموعة  من المفاهيم و أيضا الطرق المهمة لتحليل اي مشروع برمجي ، و لاحظ اننا لازلنا في مرحلة " التحليل " فقط ، فهمنا من خلال الدروس السابقة الهدف من هذه الدورة ، و كيف انه و بنهاية اخر درس ستكون قادرا عزيزي القارئ على تحليل اي فكرة تريد الى مشروع برمجي ، و ناقشنا ايضا في الدرس الموالي مفهوم كل من الفكرة و الوعي ، و كيف ان الفكرة هي ركيزة المشروع ، فالأفكار المبتذلة و المقلدة ستؤول الى فشل المشروع و إن قضيت نحبك في صناعته ، ثم تعرفنا على مفهوم الوعي و هو ببساطة رد فعل الفكرة بالنسبة للعامة ، ثم فهمنا ايضا التقنيات المناسبة لبناء اي مشروع ، فإن كان اندرويد فهذه هي تقنياته الملائمة ، و إن كان ويب فهذه هي تقنياته المناسبة و هكذا . 
ثم قررنا صديقي و بمساعدة متابعي الدورة في صفحتنا على الفيسبوك ، ان نختار مشروع " موقع خدمات " لنقوم بتحليله و تطبيق محتوانا و معلوماتنا و باقي دروس الدورة عليه ، و هذا تماما ما قمنا به في الدرس السابق ، فقد قمنا في اخر درس بالتجسس على التقنيات البرمجية التي تم إستخدامها في بناء مشاريع مشابهة ، و ذلك من أجل تحديد الميكانيكية الأفضل لبناء مشروع موقع خدمات . 
يمكنك دائما الرجوع و الإطلاع على الدروس السابقة إن كنت ستتابع هذه الدورة لأول مرة من هنا :
  1. دورة تحليل و بناء مشروع متكامل على الويب [ الدرس الأول ] : الأسباب ، الأهداف و النتائج
  2. دورة تحليل و بناء مشروع متكامل على الويب [ الدرس الثاني ] : الفكرة و الوعي
  3. دورة تحليل و بناء مشروع متكامل على الويب [ الدرس الثالث] : تحديد تقنيات بناء المشروع
  4. دورة تحليل و بناء مشروع متكامل على الويب [ الدرس الرابع ] : كيف تتجسس على المشاريع المشابهة برمجيا ؟ 


ملخص هذا الدرس ( للقارئين الكسالى 😒 ) 
في هذا الدرس عزيزي سنتعرف على أهم مفهومين على الإطلاق في مجال تحليل المشاريع ، يتم إستخدامهما على معايير عالمية ، و لا يوجد اي مشروع في هذا العالم لم يخضع لهما على الإطلاق ، و هما الـ Merise و الـ UML ، في هذا الموضوع سنكتفي فقط بشرح كل من الـ Mersie و أيضا UML ، و سنقارن بينهما و سنختار الأفضل ، اما إستخدامهما و شرحهما ، فسيكون في الدرس القادم ، و إن لم يكفي فسنزيد الشرح الى درس اخر أيضا ، لكن في هذا الدرس ، سنكتفي بإنتقاء الطريقة الأفضل لمشروعنا البرمجي ، يمكنك الإنتقال بين فقرات الموضوع مباشرة الى المفهوم الذي تريد معرفته او المقارنة التي تريد معرفتها ان كنت لا تود قراءة الموضوع كاملا . 


دورة تحليل و بناء مشروع متكامل على الويب [ الدرس الخامس] : الـ Merise ام الـ UML ؟


ما الذي نقصده بالـ Merise ؟ 


الـ Merise هي تقنية يتم إستخدامها في تحليل المشاريع في المجال المعلوماتي ، لا اريد صديقي ان اقدم لك شرحا معقدا لأني على دراية جيدة بأن القراء هنا لا يحبون التعقيدات و يفضلون البساطة خصوصا في مواضيع مثل هذه ، لذلك راجع معي هذا الأمر ، لنفترض أنك توصلت بطلب من أحد الأشخاص لمشروع معين ، او لنفترض انه مشروعك ، فهو بالطبع لن يقدم لك جداول قاعدة البيانات و لن يقدم لك الكلاسات التي يجب إستخدامها برمجيا و ما الى ذلك ، بل ما سيقدمه لك هو نص على شكل : " اريد موقعا يقوم بأخذ أسماء المنتجات ، فيأتي المستخدم و يتسجل في الموقع ، ثم يختار المنتج الذي يريده ، بعدها يستطيع شرائه ، ايضا اريد من المستخدم ان يضع تقييما للمنتوج و تعليقا بعد شرائه ... " . 
كل هذ المعلومات تأتي بما يسمى " دفتر التحملات " او الـ Specifications ، و من هذا المنطلق ، عليك ان تستخرج صديقي أهم العناصر البرمجية التي يجب عليك الإشتغال عليها ، مثل الجداول في قواعد البيانات و أيضا العناصر الخاصة بهذه الجداول ، ايضا الكلاسات ، و صفحات الموقع او البرنامج و ما الى ذلك ، فكيف يمكننا تحقيق هذا ؟ 

من كل هذا تظهر لنا تقنية الـ Merise ، وهي تعتبر Modeling Language ، ليست لغة برمجة ، بل لغة تصميم و بناء للمشروع ، تضم تقنية الـ Merise ثلاثة أقسام رئيسية ، و هي الـ Conceptional ، ثم الـ Logical ، و أخيرا الـ Physical ، لأن النص و طوله لا يسمحان لنا بالتعمق أكثر في الـ Merise فلربما نشرح لك تقنياته كاملة من الصفر ، لكن حاليا نريد فقط تقديم تعريف له ، في الـ Conceptional نقوم بإقتباس أسماء الوحدات او الـ Entities التي سننطلق من خلالها ، فمثلا في النص أعلاه ، يوجد لدينا المستخدم ، المستخدم يحمل الـ ID الخاص به ، ايضا الإيميل و الباسوورد و ربما إسمه و معلومات أخرى ، اي انه كيان Entity لا بد من حضوره في المشروع البرمجي ، و سيتم تجسيده على شكل Table او جدول في قاعدة البيانات على شكل : User(id int primary key , email varchar , password varchar , name varchar ) ، و هكذا دواليك الى حين إستخراج كل الـ Entities من نص الـ Specifications ثم بناء قاعدة البيانات بالإعتماد عليها ، ايضا ربط قواعد البيانات بما يسمى الروابط او العلاقات Relations ، و هي تختلف فمنها (1,1) اي One to One , و غيرها مثل (0,1) , (1,*) و غيرها ،  و هي علاقات ستحدد لك في الأخير قواعد البيانات ، الجداول ، محتاواها ، المفاتيح الرئيسية  و المفاتيح الخارجية Foreign Keys . 
حقا الـ  Merise يحتاج الى دورة لوحده لأكون صريحا معك  ، او على الأقل مقال مخصص له ، لذلك سنكتفي بتعريفنا له في الأسطر السابقة . 


- ما الذي نقصده بالـ UML ؟ 



عبارة الـ UML هي إختصار لـ Unified Modeling Language ، و هي تشتغل تقريبا بنفس مبدئ الـ Merise الا انها اكثر تحديثا و تحديدا ايضا ، ربما اليوم لا يتم إستخدام الـ Merise في تحليل المشاريع الا نادرا ، و ذلك لان الـ UML قد سيطر على الأمر ، يعتمد الـ UML على شيئ اخر غير الـ Conceptional و الـ Logical و الـ Physical ، فالـ UML يعتمد على ما يسمى بالـ Diagrams او يمكننا ترجمتها الى المخططات ، و لكل Diagram جزء مخصص من تطوير اي مشروع برمجي ، فحصولك على الحل لكل Diagram يعني حصولك على قطعة من أحجية حل مشروع برمجي متكامل ، يمتلك الـ UML تقريبا ما يقارب 13 نوع من الـ Diagrams ، الا انه لا يتم إستخدام الا 5 او 6 تقريبا بكثرة ، و هذه الـ 5 كافية من أجل تحليل اي مشروع برمجي و تجريده من مجرد فكرة الى مخطط قابل للبرمجة ، من أهم الـ Diagrams الخاصة بالـ UML نجد Class Diagram ، و هو مخطط بواسطته نستطيع إستخراج الكلاسات Classes التي يمكننا إستخدامها في المشروع البرمجي ، ايضا الـ Functions و الـ Component لأي كلاس برمجي ، يوجد ايضا الـ Use Case Diagram و هو مخطط يسمح لنا بتقصي الأفعال التي يقوم بها أحد الكلاسات ، فمثلا و بإستنباطنا للنص أعلاه الخاص بالـ Specifications ، فنجد ان الuser او المستخدم سيتوجب عليه شراء منتوج ، وضع تعليقات ، وضع تقييم للمنتوج ، تسجيل الدخول ، تسجيل الخروج و ما الى ذلك ، هذه كلها حركات يجب ان نوفرها للمستخدم ، و لنقوم بتجميعها كلها ، فنسحتاج الى الـ Use Case Diagram من أجل فعل ذلك ، يوجد أيضا الـ Activity Diagram و الـ Timline Diagram و غيرها . 

اما الهدف من الـ UML فلا يختلف الا قليلا عن هدف الـ Merise ، وهو اخد النص او دفتر التحملات او متطلبات العميل او متطلباتك انت الشخصية ، و تحليلها و تحويلها من مجرد نص ، الى قواعد بيانات و كلاسات و Functions و صفحات و كل شيئ ، و هي عملية ضرورية ضرورية في أي مشروع برمجي . 


ما الأفضل لتحليل مشروع برمجي ؟ الـ Merise ام الـ UML ؟ و أيهما سنتبع في دورتنا هذه ؟ 




إن كنت صديقي مبتدئا في عالم التحليل هذا ، و لم تقم بالمرة بتحليل أي مشروع برمجي إنطلاقا من الفكرة ، فأنصحك بالـ Merise ، فهو سهل و ممتاز لإكتساب مهارة تحليل المشاريع البرمجية و تحويل الأفكار الى جداول و قواعد بيانات و Objects و ما الى ذلك ، لكن ، إن كنا سنشتغل على مشروع حي حقيقي ، فإن الـ Merise للأسف لن يفيدنا كثيرا كونه لن يقدم لنا العديد من المعلومات و الادوات و التحليلات التي نحتاجها من أجل إنجاز مشروعنا ، و في هذه الحالة سيتوجب علينا إستخدام الـ UML ، و إستخدام ما إستدعى الأمر من Diagrams فيه ، فالـ UML اليوم مستخدم عالميا في تحليل المشاريع ، و إن كنا نريد من مشروعنا ان يكون مُتقن التحليل ، فسيتوجب علينا إستخدام الـ UML بدل الـ Merise . 
من هذه الفكرة ننطلق صديقي لنخبرك أن مشروعنا الذي نشتغل عليه في هذه الدورة ، و هو بناء موقع للخدمات ، سنقوم بتحليله بتقنية الـ UML و ليس الـ Merise ، و سيكون الدرس القادم درسا نقوم فيه بتجريد أفكار مشروعنا الى مجموعة  من الـ Diagrams . 


فيديو إضافي : 



إن إشتغلت من قبل بتقنية  الـ UML ، فالفيديو التالي يشرح لك أداة جميلة يمكنك إستخدامها من أجل صناعة الـ Diagrams ، و هي نفسها الاداة التي سنستخدمها في الدرس القادم ، فيمكنك الإطلاع عليها قليلا من هذا الفيديو : 






تابع الدرس القادم : 


ككلمة اخيرة صديقي ، نحب ان نذكرك انه يمكنك دائما متابعة الدورة و التوصل بجديدها عبر بريدك الإلكتروني بالتسجيل في الفورم التالي : 





او يمكنك تفعيل خاصية See First في صفحتنا على الفيسبوك من أجل التوصل بكل جديدنا اول بأول : 






شاركه على :