نمذجة البرمجيات ولغة النمذجة الموحدة (UML)
تمثل نمذجة البرمجيات نظامًا من خلال تجريدات تلتقط بنيته وسلوكه، وتُعد لغة النمذجة الموحدة (UML) هي التدوين الرسومي القياسي للتعبير عن هذه النماذج.
Definition
نمذجة البرمجيات هي بناء تمثيلات مجردة لنظام برمجي لتحليله وتصميمه والتواصل بشأنه، وتُعد UML لغة نمذجة موحدة للأغراض العامة توفر مجموعة موحدة من أنواع المخططات لهذه التمثيلات.
Scope
يغطي هذا الموضوع النماذج الهيكلية مثل مخططات الفئات والمكونات والنشر؛ والنماذج السلوكية مثل مخططات حالات الاستخدام والتسلسل والنشاط وآلة الحالة؛ ودور النماذج في التحليل والتصميم والتواصل؛ والهندسة الموجهة بالنماذج وتوليد الكود؛ والمستوى المناسب من دقة النمذجة لمشروع معين.
Core questions
- ما هي جوانب النظام التي تلتقطها النماذج الهيكلية مقابل النماذج السلوكية؟
- كيف تمثل أنواع مخططات UML الرئيسية التصميم؟
- ما هو مستوى دقة النمذجة المناسب لمشروع معين؟
- متى يكون توليد الكود التلقائي من النماذج مجديًا؟
Key theories
- وجهات نظر متعددة للنظام
- يُنمذج النظام من وجهات نظر متكاملة — البنية الثابتة، التفاعلات، سلوك الحالة، والنشر — كل منها يتم التقاطه بواسطة أنواع المخططات المناسبة، لأنه لا توجد وجهة نظر واحدة تنقل جميع معلومات التصميم ذات الصلة.
- الهندسة الموجهة بالنماذج
- يمكن أن تكون النماذج بمثابة عناصر تطوير أساسية يتم من خلالها توليد التطبيقات جزئيًا أو كليًا عبر التحويلات، مما يرفع مستوى التجريد ويربط التصميم مباشرة بالكود.
Clinical relevance
توضح النماذج نية التصميم، وتدعم التحليل قبل وجود الكود، وتوفر لغة مشتركة عبر الفريق؛ وتعتمد قيمتها على استخدام القدر المناسب من النمذجة، حيث أن النماذج المفرطة أو القديمة تفرض تكلفة دون فائدة.
Evidence & guidelines
يحدد مواصفات OMG UML التدوين والدلالات القياسية، وتوسع معايير OMG ذات الصلة مثل SysML و MOF النمذجة لتشمل هندسة الأنظمة والنمذجة الفوقية (metamodeling).
History
ظهرت UML في منتصف التسعينيات من توحيد طرق Booch و OMT و Objectory، واعتمدت كمعيار OMG في عام 1997، وتطورت عبر UML 2؛ وتتعايش المناهج الموجهة بالنماذج والرسم الخفيف مع النقاشات حول مدى جدوى النمذجة الرسمية.
Debates
- التطوير الموجه بالنماذج الثقيل مقابل الرسم الخفيف
- يُتنازع حول ما إذا كانت النماذج يجب أن تكون عناصر موثوقة تدفع توليد الكود أو رسومات تخطيطية غير رسمية للتواصل؛ وتعد رؤية النموذج كبرنامج بالاتساق، بينما يقدر الاستخدام الموجه بالرسم التخطيطي التكلفة المنخفضة والقدرة على التكيف.
Key figures
- Grady Booch
- James Rumbaugh
- Ivar Jacobson
- Martin Fowler
Related topics
Seminal works
- booch2005
- omg2017uml
- fowler2003
Frequently asked questions
- هل لا تزال UML ذات صلة في التطوير السريع (Agile)؟
- نعم، على الرغم من أنها غالبًا ما تُستخدم بشكل أخف. تميل فرق Agile إلى استخدام مخططات UML كرسومات تخطيطية غير رسمية للتواصل والتفكير في التصميم بدلاً من كونها مواصفات شاملة، وتطبق قدرًا كافيًا من النمذجة لتوضيح المشكلة المطروحة.
- هل تتطلب النمذجة استخدام UML؟
- لا. UML هي التدوين الأكثر توحيدًا على نطاق واسع، ولكن يمكن للنمذجة استخدام تدوينات أخرى أو لغات خاصة بالمجال؛ الفكرة الأساسية هي تجريد البنية والسلوك، والتي تُعد UML خيارًا مدعومًا جيدًا لها.