الخطوات السوية لإنتاج برامج قوية - لغة UML (الجزء 1) - خالد السعداني - أكاديميَّة المبرمجين

  • samer_jabal

كل ما سيذكر هو منقول عن حساب الأستاذ خالد السعداني

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

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

ثم ضع في بالك أن هنالك فرقا بين التحليل Analysis وبين التصميم Design، فالأول (التحليل) هو ما نستهل به عملية إنشاء البرمجيات، والغرض منه هو فهم المشكلة Understanding the problem واستيعابها بشكل سليم، أما التصميم Design فهو يأتي بعد مرحلة التحليل ويعني تهيئة وصياغة الحل المناسب لمشكلة المشروع.

وتذكر جيدا أن هندسة البرمجيات ماهي إلا نشاط تمثيلي أو نمذجي Modeling Activity لأي مشكلة نريد حلها، لأنه لا سبيل إلى التعامل مع تعقيدات الأنظمة إلا عبر نمذجتها (تصور النظام على شكل نماذج وتمثيلات).

وللقيام بأي نشاط نمذجي وتمثيلي لا بد من لغات مخصصة لذلك، وأشهر اللغات المخصصة لهذا الغرض هي لغة UML، وهي اختصار ل Unified Modeling Language، ويمكننا ترجمتها إلى اللغة العربية كالتالي لغة النمذجة الموحدة.

UML هي لغة لنمذجة وتحليل وتصميم المشاريع، وسميت لغة لأنها تؤدي تقريبا نفس الدور المنوط باللغات التي نعرفها، مثلا حينما نتحدث باللغة العربية فنحن نقوم بوصف أشياء وأشخاص وأحداث عبر استخدام الكلمات والإشارات. كذلك UML فنحن نستعملها كلغة لوصف وتمثيل المشاريع والأنظمة عبر استعمال مجموعة من المخططتن Diagrams والأشكال Notations

=================

للمزيد من التفاصيل يرجى قراءة المقالة التالية:


حقًا UML هي لغة رائعة، منذ أن تعلمتها: فقبل أن أبدأ أي برنامج كبير فأنا ألجأ إليها لتنظيم تفكيري ووضع تصور للكود قبل البدء فيه وإجراء تعديلات على أي جزء في البرنامج بدون الحاجة إلى الكثير من التعديلات على البرنامج نفسه، وفور انتهائي من كتابتها والتأكد من اتصال المعلومات أبدأ بكتابة الكود وفي الأغلب لا أحتاج إلى إعادة الكود أكثر من مرة كما كنت أفعل قبل تعلمها، يعجبني فيها ال class diagram و ال sequence diagram.

لا أجد أبدًا الوقت الذي امضيه في كتابة الكود بلغة UML هو وقت ضائع ولا أستكثره مهما طال، لأنه يوفر عليّ الكثير في كتابة الكود.

إذا كنت تستخدم أحد اللغات التي تعتمد على برمجة الكائنات OOP فلغة UML ستفيدك جدًا.