البرمجة الموجهة نحو الموضوع

في مجال الحوسبة ، تُعدّ البرمجة الموجهة نحو الموضوعات نموذجًا برمجيًا كائني التوجه، حيث لا تُعتبر حالة (حقول) وسلوك (أساليب) الكائنات جزءًا لا يتجزأ منها، بل تُستمد من تصورات ذاتية متنوعة ("موضوعات") لهذه الكائنات. نُشر المصطلح والمفاهيم لأول مرة في سبتمبر 1993 في ورقة بحثية [ 1 ] ، والتي اعتُبرت لاحقًا واحدة من أكثر ثلاث أوراق بحثية تأثيرًا في المؤتمر الذي عُرض بين عامي 1986 و1996. [2] وكما هو موضح في تلك الورقة، يُجرى تشبيهٌ بالتباين بين وجهات النظر الفلسفية لأفلاطون وكانط فيما يتعلق بخصائص الكائنات " الحقيقية "، ولكن مع تطبيقها على الكائنات البرمجية. على سبيل المثال، بينما قد ندرك جميعًا أن للشجرة طولًا ووزنًا وكتلة أوراق قابلة للقياس، وما إلى ذلك، فمن وجهة نظر الطائر، قد يكون للشجرة أيضًا مقاييس قيمة نسبية لأغراض الغذاء أو التعشيش، أو من وجهة نظر مُقَيِّم الضرائب، قد يكون لها قيمة ضريبية معينة في سنة محددة. لا يُشترط اعتبار المعلومات الإضافية التي يُقدمها الطائر أو مُقَيِّم الضرائب عن حالة الشجرة جزءًا لا يتجزأ منها، بل تُضاف من خلال تصورات كليهما، ومن تحليل كانط، قد ينطبق الأمر نفسه حتى على الخصائص التي نعتبرها جوهرية.

يدعو البرمجة الموجهة نحو الموضوعات إلى تنظيم الفئات التي تصف الكائنات في "موضوعات"، والتي يمكن دمجها لتشكيل موضوعات أكبر. عند نقاط الوصول إلى الحقول أو الأساليب ، يمكن دمج مساهمات عدة موضوعات. وقد وُصفت هذه النقاط بأنها نقاط الالتقاء [ 3 ] بين الموضوعات. على سبيل المثال، إذا قُطعت شجرة، فقد تحتاج الأساليب المعنية إلى دمج سلوك موضوعي الطائر ومُقيّم الضرائب مع سلوك الشجرة نفسها. ولذلك، فهي في جوهرها نظرة إلى الطبيعة التركيبية لتطوير البرمجيات، على عكس الطبيعة الخوارزمية (الإجرائية) أو إخفاء التمثيل (الكائنية).

العلاقات

العلاقة بالبرمجة الموجهة نحو الجوانب

أثار إدخال البرمجة الموجهة نحو الجوانب في عام 1997 [ 4 ] تساؤلات حول علاقتها بالبرمجة الموجهة نحو الموضوعات، وحول الفرق بين الموضوعات والجوانب. ظلت هذه التساؤلات دون إجابة لبعض الوقت، ولكن تمت معالجتها في براءة الاختراع الخاصة بالبرمجة الموجهة نحو الجوانب والمقدمة في عام 1999 [ 5 والتي برزت فيها نقطتان كاختلافات مميزة عن التقنيات السابقة:

  • يتضمن برنامج الجانب كلاً من أ) القطع المتقاطع الذي يتضمن نقطة في التنفيذ حيث يتم تضمين السلوك المتقاطع؛ و ب) إجراء القطع المتقاطع الذي يتضمن جزءًا من التنفيذ المرتبط بالقطع المتقاطع، ويتضمن جزء التنفيذ رمز برنامج قابل للقراءة بواسطة الكمبيوتر يقوم بتنفيذ السلوك المتقاطع.
  • يفرض هذا الجانب بشكل شفاف السلوك المتقاطع على فئات الكائنات وكيانات البرامج الأخرى

في المنظور الموجه نحو الموضوع، يمكن وضع القطع المتقاطع بشكل منفصل عن الجانب (الموضوع)، ولا يُفرض السلوك من قِبل الجانب، بل يخضع لقواعد التركيب. كما يُتيح لنا الاستبصار [ 6 ] تمييز البرمجة الموجهة نحو الجوانب من خلال تقديم مفهوم القطع النقطي الشبيه بالاستعلام واستغلاله لفرض نقاط الربط المستخدمة من قِبل الجوانب بشكل عام.

في عرض البرمجة الموجهة نحو الموضوع، اقتصرت نقاط الربط عمدًا على الوصول إلى الحقول واستدعاء الأساليب، انطلاقًا من كون هذه النقاط هي التي صُممت عندها الأطر البرمجية الجيدة للسماح بالتوسع الوظيفي. يُعد استخدام نقاط الربط المفروضة خارجيًا ميزة لغوية مهمة، ولكنه يبقى أحد أكثر سمات البرمجة الموجهة نحو الجوانب إثارةً للجدل. [ 7 ]

العلاقة بتطوير البرمجيات الموجهة نحو الجوانب

مع مطلع الألفية الجديدة، بات من الواضح أن العديد من المجموعات البحثية كانت تسعى لتطوير تقنيات مختلفة تستخدم تركيب أو ربط الحالة والوظيفة المعبأتين بشكل منفصل لتشكيل كائنات. [ 8 ] ولتمييز مجال الاهتمام المشترك عن البرمجة الموجهة نحو الجوانب (Aspect-Oriented Programming) بتعريفاتها الخاصة في براءات الاختراع، وللتأكيد على أن تقنية التركيب لا تقتصر على مرحلة كتابة الكود في تطوير البرمجيات، فقد جُمعت هذه التقنيات تحت مسمى "تطوير البرمجيات الموجهة نحو الجوانب" ( Aspect-Oriented Software Development) . [ 9 ] وبدأ تنظيم سلسلة من المؤتمرات الدولية حول هذا الموضوع. ومثل البرمجة الموجهة نحو الجوانب، تُعتبر البرمجة الموجهة نحو الموضوعات (Studio-Topending Programming)، ومرشحات التركيب، والبرمجة الموجهة نحو الميزات (Feature-Topending Programming)، والأساليب التكيفية، من مناهج تطوير البرمجيات الموجهة نحو الجوانب.

أبعاد

الفصل متعدد الأبعاد للمخاوف، وHyper/J، وبيئة معالجة المخاوف

صُممت الصيغة الأصلية للبرمجة الموجهة نحو الموضوعات لتكون تقنية تغليف، تسمح بتوسيع نطاق الدوال وأنواع البيانات في أي بُعد. وكانت أولى التطبيقات للغة C++ [ 10 ] ولغة Smalltalk [ 11 ] . واستغلت هذه التطبيقات مفاهيم تسميات البرمجيات وقواعد التركيب لوصف عملية دمج الموضوعات.

لمعالجة المخاوف المتعلقة بضرورة توفير أساس أفضل لتحليل وتكوين البرمجيات، ليس فقط من حيث تغليفها، بل من حيث مختلف الجوانب التي تعالجها هذه الحزم، تم تطوير تنظيم واضح للمادة في شكل "مصفوفة" متعددة الأبعاد، حيث ترتبط الجوانب بوحدات البرمجيات التي تُنفذها. يُطلق على هذا التنظيم اسم " الفصل متعدد الأبعاد للجوانب " ، وقد حظيت الورقة البحثية التي تصفه [ 12 ] بالتقدير كأكثر الأوراق البحثية تأثيرًا في مؤتمر ICSE لعام 1999. [ 13 ]

تم تطبيق هذا المفهوم الجديد لتأليف برامج جافا ، باستخدام اسم Hyper/J للأداة. [ 14 ]

يمكن تطبيق مفهومي التركيب والموضوع على مكونات البرمجيات التي لا تمتلك دلالات تنفيذية، مثل مواصفات المتطلبات أو الوثائق. وقد وُصفت بيئة بحثية لـ Eclipse ، تُسمى بيئة معالجة الاهتمامات (CME)، [ 15 ] حيث تُطبَّق أدوات الاستعلام والتحليل والنمذجة [ 16 ] والتركيب على المكونات بأي لغة أو تمثيل، وذلك باستخدام محولات إضافية مناسبة لمعالجة التمثيل.

تم تطوير محرك تركيب موسيقي خلف لمحرك Hyper/J [ 17 ] كجزء من CME الذي يستخدم نهجًا عامًا للعديد من عناصر محرك التركيب الموسيقي:

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

يتوفر كل من Hyper/J و CME من alphaWorks [ 18 ] أو sourceforge [ 19 ] على التوالي، ولكن لا يتم دعم أي منهما بشكل فعال.

البرمجة الموجهة نحو الموضوع كـ "بعد ثالث"

يمكن اعتبار عملية إرسال الدوال في البرمجة كائنية التوجه "ثنائية الأبعاد"، بمعنى أن الكود المُنفَّذ يعتمد على كلٍّ من اسم الدالة والكائن المعني. ويُمكن مقارنة ذلك [ 20 ] بالبرمجة الإجرائية، حيث يُشير اسم الإجراء مباشرةً، أو بشكل أحادي البُعد، إلى روتين فرعي، وكذلك بالبرمجة الموجهة نحو الموضوع، حيث يكون المُرسِل أو الموضوع ذا صلة أيضًا بعملية الإرسال، مُشكِّلاً بُعدًا ثالثًا.

انظر أيضاً

مراجع

  1. ويليام هاريسون وهارولد أوشر، البرمجة الموجهة نحو الموضوع - نقد للكائنات البحتة، وقائع مؤتمر عام 1993 حول أنظمة ولغات وتطبيقات البرمجة الموجهة نحو الكائنات، سبتمبر 1993
  2. "جائزة أكثر ورقة بحثية مؤثرة من OOPSLA" . www.sigplan.org .
  3. هارولد أوشر، بيري تار. تأليف على مستوى العملية: حالة في (نقطة) الربط، في قارئ ورشة عمل ECOOP '98، 406-409
  4. كيتزاليس، ج .؛ لامبينغ، ج.؛ مينديكار، أ.؛ مايدا، س.؛ لوبيز، س.؛ لونغتير، ج.م.؛ إيروين، ج. (1997). البرمجة الموجهة نحو الجوانب (ملف PDF) . ECOOP'97. وقائع المؤتمر الأوروبي الحادي عشر حول البرمجة الموجهة نحو الكائنات . LNCS . المجلد 1241. الصفحات 220-242 . CiteSeerX 10.1.1.115.8660 . doi : 10.1007/BFb0053381 . ISBN    3-540-63089-9.
  5. ^ كيكزاليس. جريجور ج. لامبينج جون أو. لوبيز. كريستينا ف. هوجونين. جيمس ج. هيلسديل. إريك أ. بوياباتي؛ شاندراسيخار، البرمجة الموجهة نحو الجوانب، براءة الاختراع الأمريكية رقم 6,467,086، 15 أكتوبر 2002
  6. ويليام هاريسون. تفكيك وإعادة بناء توجيه الجوانب، ورشة العمل السنوية السابعة حول أسس لغات الجوانب، بروكسل، بلجيكا، 1 أبريل 2008، حرره غاري تي. ليفنز، مكتبة ACM الرقمية، 2008، الصفحات 43-50
  7. فريدريش شتايمان. النجاح المتناقض للبرمجة الموجهة نحو الجوانب، وقائع المؤتمر السنوي الحادي والعشرين لجمعية ACM SIGPLAN حول أنظمة ولغات وتطبيقات البرمجة الموجهة نحو الكائنات، بورتلاند، أوريغون، الولايات المتحدة الأمريكية، 2006، الصفحات 481-497
  8. مجلة اتصالات رابطة مكائن ​​الحوسبة، المجلد 44، العدد 10، أكتوبر 1994، الصفحات 28-95
  9. "الصفحة الرئيسية" . AOSD.net .
  10. هارولد أوشر، ماثيو كابلان، ويليام هاريسون، ألكسندر كاتز وفينسنت كروسكال، قواعد التركيب الموجهة نحو الموضوع، وقائع مؤتمر عام 1995 حول أنظمة ولغات وتطبيقات البرمجة الموجهة نحو الكائنات، أكتوبر 1995
  11. حافظ ميلي، ويليام هاريسون، هارولد أوشر، دعم البرمجة الموجهة نحو الموضوع في سمول توك، وقائع مؤتمر TOOLS USA 96، أغسطس 1996
  12. هارولد أوشر، بيري تار، ويليام هاريسون، ستانلي ساتون، درجات الفصل المتعددة: الفصل متعدد الأبعاد للاهتمامات، وقائع المؤتمر الدولي لهندسة البرمجيات لعام 1999، مايو 1999
  13. "SIGSOFT - مجموعة الاهتمام الخاصة التابعة لـ ACM في هندسة البرمجيات" .
  14. هارولد أوشر، بيري تار. هايبر/جيه: فصل متعدد الأبعاد للاهتمامات في جافا، وقائع المؤتمر الدولي الثالث والعشرين لهندسة البرمجيات، تورنتو، أونتاريو، كندا، 2001، الصفحات: 821 - 822
  15. ويليام تشونغ، ويليام هاريسون، فينسنت كروسكال، هارولد أوشر، ستانلي إم. ساتون الابن، بيري تار، ماثيو تشابمان، أندرو كليمنت، هيلين هوكينز، سيان جانواري. بيئة معالجة الاهتمامات، وقائع المؤتمر الدولي السابع والعشرين لهندسة البرمجيات، جدول المحتويات، سانت لويس، ميزوري، الولايات المتحدة الأمريكية، 2005
  16. ويليام هاريسون، هارولد أوشر، ستانلي ساتون، بيري تار. نمذجة الاهتمامات في بيئة معالجة الاهتمامات، وقائع ورشة عمل 2005 حول نمذجة وتحليل الاهتمامات في البرمجيات، سانت لويس، ميزوري، 2005
  17. ويليام هاريسون، هارولد أوشر، بيري تار. التركيب العام لعناصر البرمجيات، وقائع ورشة عمل تركيب البرمجيات 2006، مارس 2006، سبرينغر-فيرلاغ، LNCS 4089، الصفحات 194-210
  18. "مجتمعات الأنظمة القديمة - مجتمع IBM" . 23 أبريل 2009.
  19. "بيئة التلاعب بالقلق (CME)" . 24 أبريل 2015.
  20. "مجلة تكنولوجيا الكائنات: البرمجة الموجهة نحو السياق" .