يرجى إضافة وصلات داخلية للمقالات المتعلّقة بموضوع المقالة.

لغة النمذجة الموحدة

من ويكيبيديا، الموسوعة الحرة
(بالتحويل من لغة موحدة للنمذجة)
اذهب إلى: تصفح، ‏ ابحث
Arwikify.svg
هذه المقالة تحتاج للمزيد من الوصلات للمقالات الأخرى للمساعدة في ترابط مقالات الموسوعة. فضلًا ساعد في تحسين هذه المقالة بإضافة وصلات إلى المقالات المتعلقة بها الموجودة في النص الحالي. (أغسطس 2015)

لغة النمذجة الموحّدة (Unified Modelling Language)، أو (UML) ، هي لغة نمذجة رسومية تقدم لنا صيغة لوصف العناصر الرئيسية للنظم البرمجية. (هذه العناصر تسمّى artifacts مشغولات في UML). تتّجه UML بطبيعتها نحو بناء البرمجيات كائنية المنحى object oriented.[1]

تستخدم هذه اللغة لعمل رسوم تخطيطية لوصف برامج الكمبيوتر من حيث العناصر المكونة لها أو خط سير العمليات الذي يقوم به البرنامج؛ تحديداً، نوعية البرامج البرمجة كائنية التوجه. لا يقتصر UML على هندسة البرمجيات، بل يستعمل أيضاً في هندسة النظم، وتمثيل الهياكل التنظيمية. يمكن بواسطة لغة النمذجة الموحدة إنشاء النماذج (UML) وإنشاء تصميم متكامل لمشروعك البرمجي. كما يمكن أيضاً عمل ذلك بواسطة الرسوم (diagrams) عن طريق أخراج كود مبدئي للبرنامج.

تاريخ[عدل]

لمدة، كان مهندسو البرمجيات يفتقرون لمثل هذه الرموز. بين عامي 1989 و 1994، و هي الفترة التي يشار إليها بـ "حروب المناهج"، كان يوجد ما يزيد عن 50 لغة نمذجة برمجية قيد الاستعمال - كل منها تملك رموزها الخاصة! كل لغة تحتوي على قواعد تميزها، بينما في نفس الوقت، كل لغة لديها عناصر تتشابه مع تلك التي في اللغات الأخرى.

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

  • بوك Booch كانت ممتازة فيما يخص التصميم و التنفيذ. لقد عمل "قرادي بوك" Grady Booch بكثافة على لغة آدا Ada، و كان له دور رئيسي في تطوير تقنيات المنحى الكائني (object oriented) للغة. وبالرغم من قوة منهجية بوك إلا أن الرموز فيها لم تأخذ القبول الحسن (الكثير من الأشكال السحابية تغزو نماذجه).
  • OMT (تقنية النمذجة الكائنية Object Modelling Technique) كانت الأفضل في التحليل و في أنظمة المعلومات ذات البيانات الكثيفة.
  • OOSE (هندسة البرمجيات كائنية المنحى Object Oriented Software Engineering)و تتميز بنموذج يسمى وقائع الاستخدام (Use Cases). تعد وقائع الاستخدام أسلوب قوي من أجل فهم سلوك كامل النظام (و هو المجال الذي كان فيه المنحى الكائني ضعيفا).

في عام 1994، قام جيم رامبخ Jim Rumbaugh، مؤسس OMT، بمفاجأة عالم البرمجيات حين ترك العمل بشركة جنرال الكتريك General Electric و انضمّ الى قرادي بوك للعمل في شركة راشيونال (Rational Corp). الغرض من المشاركة كانت من أجل دمج أفكارهما و صبّها في منهجية موحدة (و كان بالطبع عنوان العمل لهذه المنهجية هي "المنهجية الموحدة" Unified Method).مع عام 1995، انضم أيضا مبدع OOSE ايفار جاكوبسون Ivar Jacobson، إلى راشيونال، و تم ضم أفكاره (خاصة مفهوم "وقائع الاستخدام" Use Cases) في المنهجية الموحدة - الآن تدعى لغة النمذجة الموحدة (Unified Modelling Language).* وعُرف الفريق الذي يتكون من رامبخ و بوك و جاكوبسون بـ "الأصدقاء الثلاثة" (Three Amigos).

بغض النظر عن بعض الحروب و المشاحنات البسيطة، بدأت المنهجية الجديدة تجد استحبابا لدى أوساط صناعة البرمجيات، فتم تكوين لجنة مشتركة consortium خاصة بـ UML، شاركت فيها عدد من المؤسسات ثقيلة الوزن مثل هيولت-باكارد (Hewlett-Packard) و ميكروسوفت (Microsoft) و أوراكل (Oracle).

كما تم تبنّي UML من قبل منظمة (OMG) في 1979، و من حينها امتلكت (OMG) اللغة و دأبت على صيانتها. لذلك عمليا أصبحت لغة UML عامة وليست ملكية خاصة.

تصميم[عدل]

أوّل ما يتم ملاحظته عن UML هو أنه يوجد العديد من المخطّطات المختلفة (نماذج). السبب في هذا التنوّع يعود إلى أن تطوير البرمجيات يشترك فيه عدد من الأفراد، و كل واحد له دور ، مثلا:

  • المحلّلون
  • المصمّمون
  • المبرمجون
  • القائمون بالاختبار
  • مراقبو الجودة
  • المستفيدون
  • الكتّاب التقنيون

لغة (UML) توفر وسيلة لتصور النظام في رسم تخطيطي، بما في ذلك بعض العناصر مثل:

  • أنشطة (وظائف)
  • المكونات الفردية للنظام
  • التفاعل مع مكونات البرامج الأخرى.
  • تشغيل النظام
  • تفاعل الكيانات مع الآخرين (مكونات واجهات)
  • واجهة المستخدم الخارجية

من المهم أن نميز بين نموذج UML ومجموعة من الرسوم البيانية للنظام. مخططات UML تمثل وجهات النظر المختلفة للنظام وتنقسم الى قسمين:

  • (Static/structure) : تركز على البنية الثابتة للنظام باستخدام ( relationships ، operations ، attributes ، objects )
  • (Dynamic/behavior) : يركز على السلوك الديناميكي للنظام أي تغيراته مع الزمن ويشمل sequence diagrams ، activity diagrams ، state diagram

المخططات[عدل]

تحتوي UML على العديد من المخططات ويمكن تصنيفها هرميا بالشكل التالي :

Hierarchy of UML 2.2 Diagrams, shown as a class diagram

مراجع[عدل]

  1. ^ كتاب تطبيق UML ترجمة خالد عياد الشقروني الرابط: www.nidam.net\sd\umlapl\index.html