لغة قيود الكائنات
لغة قيود الكائنات ( OCL ) هي لغة وصفية تُحدد القواعد المطبقة على نماذج لغة النمذجة الموحدة (UML) التي طُوّرت في شركة IBM ، وهي الآن جزء من معيار UML. في البداية، كانت OCL مجرد امتداد رسمي للغة مواصفات UML. [ 1 ] يُمكن الآن استخدام OCL مع أي نموذج فوقي من نماذج مجموعة إدارة الكائنات (OMG) التابعة لمرفق الكائنات الفوقية (MOF) ، بما في ذلك UML. [ 2 ] لغة قيود الكائنات هي لغة نصية دقيقة تُوفر تعبيرات القيود والاستعلام عن الكائنات على أي نموذج MOF أو نموذج فوقي لا يُمكن التعبير عنه باستخدام الترميز التخطيطي. تُعد OCL عنصرًا أساسيًا في توصية معيار OMG الجديدة لتحويل النماذج، وهي مواصفات الاستعلامات/العروض/التحويلات ( QVT ).
وصف
لغة OCL هي امتداد للغة Syntropy ، وهي من الجيل الثاني من أساليب تحليل وتصميم الكائنات. حدد تعريف OCL 1.4 لغة قيود. وفي OCL 2.0، تم توسيع التعريف ليشمل تعريفات لغة استعلام الكائنات العامة. [ 3 ]
تتكون عبارات OCL من أربعة أجزاء:
- سياق يحدد الحالة المحدودة التي يكون فيها البيان صحيحًا
- خاصية تمثل بعض خصائص السياق (على سبيل المثال، إذا كان السياق عبارة عن فئة، فقد تكون الخاصية سمة).
- عملية (مثل العمليات الحسابية، أو العمليات الموجهة نحو المجموعات) تُجري تعديلات على خاصية ما أو تُحدد خصائصها، و
- الكلمات المفتاحية (مثل if، then، else، و، or، not، uses) التي تستخدم لتحديد التعبيرات الشرطية.
العلاقة
لغة OCL ولغة UML
تُكمّل لغة OCL لغة UML بتوفير تعابير تخلو من غموض اللغة الطبيعية وصعوبة استخدام الرياضيات المعقدة. [ 3 ] كما تُعدّ OCL لغةً للتنقل بين النماذج القائمة على الرسوم البيانية.
OCL و MOF
يجعل OCL نموذج Meta-Object Facility أكثر دقة من خلال ربط التأكيدات بعناصره الوصفية.
OCL و QVT
يُعدّ مفهوم تحويل النماذج ذا أهمية خاصة في هندسة البرمجيات الموجهة بالنماذج (MDE) أو بنية البرمجيات الموجهة بالنماذج . وقد حددت مجموعة إدارة الكائنات (OMG) معيارًا خاصًا لتحويل النماذج يُسمى MOF/QVT أو اختصارًا QVT . وتتوفر حاليًا العديد من لغات تحويل النماذج مثل GReAT و VIATRA و Tefkat ، بمستويات مختلفة من التوافق مع معيار QVT. ويعتمد العديد من هذه اللغات على لغة OCL، التي تُشكّل الجزء الرئيسي من التوافق مع معيار QVT .
البدائل
باعتبارها لغة تحقق قائمة على القواعد، يمكن اعتبار Schematron بديلاً للغة OCL. مع ذلك، تعمل Schematron مع أشجار لغة الترميز القابلة للتوسيع (XML)، بينما تُمكّن OCL من التنقل بين النماذج والنماذج الفوقية القائمة على MOF (أي أشجار تبادل بيانات XML الفوقية ( XMI )). بعبارة أخرى، ترتبط OCL بـ UML أو MOF بشكل مشابه لارتباط Schematron بـ XML . (تجدر الإشارة إلى أن Schematron تستخدم XPath للتنقل داخل أشجار XML). وباعتبارها لغة لمواصفات النماذج تسمح للمصممين بتزيين النموذج أو النموذج الفوقي بتعليقات توضيحية خالية من الآثار الجانبية، يمكن استبدال OCL بلغات مثل Alloy . من حيث المبدأ، يُمكن توليد OCL تلقائيًا من اللغة الطبيعية. [ 4 ]
أمثلة
| قيد | ما يعادل OCL |
|---|---|
| عمر الشخص ليس قيمة سلبية. | context Person inv: self.age >=0 |
| الشخص أصغر من والديه. | context Person inv: self.parents->forAll(p|p.age>self.age) |
| بعد عيد ميلاده، يصبح الشخص أكبر بسنة واحدة. | context Person::hasBirthday() post: self.age=self.age@pre+1 |
| للشخص والدان كحد أقصى. | context Person inv: self.parents->size()<=2 |
| بعد أن ينجب شخص ما طفلاً، فإن دائرة أطفاله لا تكون فارغة، بل تصبح أكبر من ذي قبل. | context Person::getsChild() post: self.childs->notEmpty() and self.childs->size() > self.childs@pre->size() |
| لا يجوز أن يكون مالك السيارة إلا شخص بالغ. | context Person inv: self.age<18 implies self.cars->isEmpty() |
| لا يمكن تسجيل السيارة لأول مرة قبل تصنيعها. | context Auto inv: self.registration>=self.constructionYear |
| كل شخص يمتلك سيارة يمتلك على الأقل سيارة واحدة أحدث منه. | context Person inv: self.cars->notEmpty() implies self.cars->exists( c | Calendar.YEAR - c.constructionYear < self.age) |
| لا يمكن لأحد أن يكون والداً لنفسه. | context Person inv: self.parents->excludes(self) |
| يوجد شخص واحد على الأقل يمتلك سيارة. | context Person inv: Person.allInstances()->exists(p | p.cars->size() > 0) |
الإضافات
تُوسّع لغة OCL في Eclipse [ 5 ] لغة OCL القياسية بإضافة عوامل تشغيل إضافية ونوع خاص بالخرائط. كما تُوسّع لغة AgileUML لغة OCL القياسية بإضافة نوعي الخرائط والدوال. [ 6 ] تتوافق هذه الإضافات مع نوعي الخرائط والدوال الموجودين في لغات البرمجة الحديثة مثل بايثون وسويفت.
انظر أيضاً
- نموذج حاسوبي
- رسم خرائط البيانات
- لغة خاصة بالمجال (DSL)
- النمذجة الخاصة بالمجال (DSM)
- مشروع إكليبس جي إم تي
- لغة التعبير جيلو
- مسرد مصطلحات لغة النمذجة الموحدة
- قائمة أدوات UML
- النمذجة الفوقية
- تقنية النمذجة الفوقية
- مرفق الكائنات الفوقية (MOF)
- البيانات الوصفية
- الاختبار القائم على النموذج (MBT)
- هندسة البرمجيات الموجهة بالنماذج (MDA)
- الهندسة القائمة على النماذج (MDE)
- لغة تحويل النماذج (MTL)
- لغة النمذجة
- منظورات النمذجة
- MOFM2T
- التحليل والتصميم الموجه للكائنات (OOAD)
- استعلامات/عروض/تحويلات MOF (QVT)
- الترجمة الدلالية
- لغة التحويل (TL)
- أداة UML
- التحويل القائم على المفردات
- XMI
- لغة تحويل XML (XTL)
مراجع
- ↑ مجموعة إدارة الكائنات (OMG)؛ مواصفات لغة قيود الكائنات ، الفصل 7 من مواصفات لغة النمذجة الموحدة OMG ، الإصدار 1.3، مارس 2000 (الطبعة الأولى)
- ↑ مجموعة إدارة الكائنات (OMG)؛ لغة قيود الكائنات، مواصفات OMG المتاحة، الإصدار 2.0 ، مايو 2006
- 1 2 تستند هذه المقالة إلى مواد مأخوذة من Object+Constraint+Language في قاموس الحوسبة المجاني على الإنترنت قبل 1 نوفمبر 2008 وتم دمجها بموجب شروط "إعادة الترخيص" الخاصة بـ GFDL ، الإصدار 1.3 أو أحدث.
- ↑ عمران ساروار باجوا (أكتوبر 2010). "توليد قيود OCL من مواصفات اللغة الطبيعية، 2010". IEEE . doi : 10.1109/EDOC.2010.33 . S2CID 7495256 .
{{cite journal}}يتطلب الاستشهاد بالمجلة ( مساعدة )|journal= - ↑ "Eclipse OCL™ (لغة قيود الكائنات)" . 31 يناير 2013.
- ↑ لانو، كيفن؛ كولهدوز رحيمي، شكوفه (2021). "توسيع لغة OCL باستخدام أنواع الخرائط والدوال" . أساسيات هندسة البرمجيات . سلسلة محاضرات في علوم الحاسوب. المجلد 12818. الصفحات 108-123 . doi : 10.1007/978-3-030-89247-0_8 . ISBN 978-3-030-89246-3. S2CID 239029860 .
روابط خارجية
- مواصفات OMG OCL
- بوابة OCL - مركز المعلومات المتعلقة بـ OCL
- صفحة OCL الخاصة بقسم علوم الحاسوب في جامعة ولاية كاليفورنيا، سان برناردينو (ملخص لصيغة OCL 2.0)
- أوكتوبوس: أداة OCL لمواصفات UML الدقيقة (مدقق OCL)
- مجموعة أدوات دريسدن OCL (مجموعة أدوات OCL، منشورات متنوعة متعلقة بـ OCL)
- HOL-OCL (بيئة تفاعلية لإثبات النظريات في لغة OCL، منشورات متنوعة متعلقة بلغة OCL)
- OCL لتعليم جافا على ParlezUML
- مقال حول استخدام لغة OCL الخاصة بـ EMF في كود جافا
- صفحة روابط UML على موقع cetus-links.org
- استخدم (بيئة المواصفات القائمة على لغة النمذجة الموحدة UML) (أداة OCL للتحقق من صحة النموذج، منشورات متنوعة متعلقة بلغة OCL)
- برنامج تعليمي حول لغة OCL
- NL2OCL (أداة OCL لتوليد الثوابت من NL)
- لغة النمذجة الموحدة
- لغات المواصفات الرسمية
- معايير ISO
