مساعد برمجيات قائم على المعرفة
كان برنامج مساعد البرمجيات القائم على المعرفة (KBSA) برنامجًا بحثيًا ممولًا من قبل القوات الجوية الأمريكية . هدف البرنامج إلى تطبيق مفاهيم الذكاء الاصطناعي على مشكلة تصميم وتنفيذ برمجيات الحاسوب . يتم وصف البرمجيات بنماذج بلغات عالية المستوى (مكافئة تقريبًا لمنطق الرتبة الأولى )، ثم تقوم قواعد التحويل بتحويل المواصفات إلى شفرة برمجية فعالة. كانت القوات الجوية تأمل في أن تتمكن من توليد البرمجيات اللازمة للتحكم في أنظمة الأسلحة وأنظمة القيادة والسيطرة الأخرى باستخدام هذه الطريقة. ومع تزايد أهمية البرمجيات لأنظمة أسلحة القوات الجوية الأمريكية، أُدرك أن تحسين جودة وإنتاجية عملية تطوير البرمجيات من شأنه أن يحقق فوائد كبيرة للجيش، وكذلك لتكنولوجيا المعلومات في الصناعات الأمريكية الرئيسية الأخرى.
تاريخ
في أوائل ثمانينيات القرن الماضي، أدركت القوات الجوية الأمريكية أنها حققت فوائد جمة من تطبيق تقنيات الذكاء الاصطناعي في حلّ المشكلات المتخصصة ، مثل تشخيص أعطال الطائرات. وكلّفت القوات الجوية فريقًا من الباحثين من مجتمعات الذكاء الاصطناعي والأساليب الرسمية بإعداد تقرير حول كيفية استخدام هذه التقنيات للمساعدة في حلّ مشكلة تطوير البرمجيات بشكل عام.
وصف التقرير رؤية لنهج جديد لتطوير البرمجيات. فبدلاً من تحديد المواصفات باستخدام المخططات وتحويلها يدويًا إلى شفرة برمجية كما هو الحال في العملية الحالية، تمثلت رؤية مساعد البرمجيات القائم على المعرفة (KBSA) في تحديد المواصفات بلغات عالية المستوى للغاية، ثم استخدام قواعد التحويل لتحسين المواصفات تدريجيًا إلى شفرة برمجية فعالة على منصات غير متجانسة.
تُسجَّل كل خطوة في تصميم النظام وتحسينه ضمن مستودع بيانات متكامل. فبالإضافة إلى مخرجات تطوير البرمجيات، تُسجَّل العمليات والتعريفات والتحويلات المختلفة بطريقة تُمكّن من تحليلها وإعادة تشغيلها لاحقًا عند الحاجة. والفكرة هي أن كل خطوة تُمثّل تحويلًا يُراعي مختلف المتطلبات غير الوظيفية للنظام المُنفَّذ، مثل متطلبات استخدام لغات برمجة مُحدَّدة كلغة آدا، أو متطلبات تحسين الكود لضمان تحمُّل الأعطال الحرجة في الوقت الفعلي. [ 1 ]
قررت القوات الجوية تمويل المزيد من الأبحاث حول هذه الرؤية من خلال مختبر مركز روما لتطوير الطيران التابع لها في قاعدة غريفيس الجوية بنيويورك. أُجريت غالبية الأبحاث الأولية في معهد كيستريل بشمال كاليفورنيا (بالتعاون مع جامعة ستانفورد ) ومعهد علوم المعلومات (ISI) بجنوب كاليفورنيا (بالتعاون مع جامعة جنوب كاليفورنيا وجامعة كاليفورنيا في لوس أنجلوس ). ركز معهد كيستريل بشكل أساسي على التحويل الصحيح والموثوق للنماذج المنطقية إلى شفرة برمجية فعّالة. بينما ركز معهد علوم المعلومات بشكل أساسي على المرحلة الأولى من العملية، وهي تحديد المواصفات التي يمكن ربطها بالصيغ المنطقية الرسمية، ولكن بتنسيقات سهلة الفهم ومألوفة لمحللي النظم. بالإضافة إلى ذلك، نفذت شركة رايثيون مشروعًا لدراسة جمع المتطلبات غير الرسمية، بينما عملت شركة هانيويل وجامعة هارفارد على الأطر الأساسية والتكامل وتنسيق الأنشطة.
على الرغم من أن مشروع MIT Programmer's Apprentice لم يكن ممولاً بشكل أساسي من برنامج KBSA، إلا أنه كان له العديد من الأهداف نفسها واستخدم التقنيات نفسها التي استخدمها برنامج KBSA. [ 2 ]
في المراحل اللاحقة من برنامج هندسة البرمجيات القائمة على المعرفة (KBSA) (بدءًا من عام 1991)، طوّر الباحثون نماذج أولية استُخدمت في حلّ مشكلات تطوير البرمجيات متوسطة إلى كبيرة الحجم. كما تحوّل التركيز في هذه المراحل من منهج KBSA البحت إلى أسئلة أعمّ حول كيفية استخدام التكنولوجيا القائمة على المعرفة لتكميل أدوات هندسة البرمجيات بمساعدة الحاسوب (CASE) الحالية والمستقبلية وتعزيزها. وشهدت هذه المراحل تفاعلًا كبيرًا بين مجتمع KBSA ومجتمعات هندسة البرمجيات والبرمجة كائنية التوجه. فعلى سبيل المثال، لعبت مفاهيم KBSA وباحثوها دورًا هامًا في برامج البرمجة الضخمة وبرامج هندسة البرمجيات التي تركز على المستخدم، والتي رعتها وكالة مشاريع البحوث الدفاعية المتقدمة (DARPA). [ 3 ] وفي هذه المراحل اللاحقة، غيّر البرنامج اسمه إلى هندسة البرمجيات القائمة على المعرفة (KBSE). ويعكس هذا التغيير في الاسم اختلاف هدف البحث، فلم يعد الهدف إنشاء أداة شاملة جديدة كليًا تغطي دورة حياة البرمجيات بأكملها، بل دمج التكنولوجيا القائمة على المعرفة تدريجيًا في الأدوات الحالية. لعبت شركات مثل شركة أندرسن للاستشارات (إحدى أكبر شركات تكامل الأنظمة، وكانت في ذلك الوقت بائعة أداة CASE الخاصة بها) دورًا رئيسيًا في البرنامج في هذه المراحل اللاحقة.
المفاهيم الأساسية
قواعد التحويل
كانت قواعد التحويل التي استخدمها نظام KBSA مختلفة عن القواعد التقليدية لأنظمة الخبراء. إذ كانت قواعد التحويل تُطابق لغات المواصفات والتنفيذ بدلاً من الحقائق الموجودة في العالم. وكان من الممكن تحديد التحويلات باستخدام الأنماط، والرموز البديلة، والتكرار على جانبي القاعدة. يُحدد التعبير الأيسر الأنماط في قاعدة المعرفة الحالية للبحث عنها. بينما يُحدد التعبير الأيمن نمطًا جديدًا لتحويل الجانب الأيسر إليه. على سبيل المثال، تحويل نوع بيانات نظري للمجموعات إلى كود باستخدام مكتبة مجموعات Ada. [ 4 ]
كان الهدف الأولي لقواعد التحويل هو تحسين المواصفات المنطقية عالية المستوى وتحويلها إلى شفرة برمجية مصممة جيدًا لمنصة برمجية وأجهزة محددة. وقد استُلهم هذا من الأعمال المبكرة في مجال إثبات النظريات والبرمجة الآلية. مع ذلك، طوّر باحثون في معهد علوم المعلومات (ISI) مفهوم تحويلات التطور . [ 5 ] فبدلًا من تحويل المواصفات إلى شفرة برمجية، كان الهدف من تحويل التطور هو أتمتة التغييرات النمطية المختلفة على مستوى المواصفات، على سبيل المثال، تطوير فئة أساسية جديدة من خلال استخلاص قدرات متنوعة من فئة موجودة يمكن مشاركتها بشكل أعم. وقد طُوّرت تحويلات التطور في نفس الوقت تقريبًا الذي ظهر فيه مجتمع أنماط البرمجيات، وتبادلت المجموعتان المفاهيم والتقنيات. وكانت تحويلات التطور في جوهرها ما يُعرف بإعادة هيكلة الشفرة في مجتمع أنماط البرمجيات الموجهة للكائنات. [ 6 ]
مستودع قائم على المعرفة
كان أحد المفاهيم الأساسية لمنهجية KBSA هو تمثيل جميع عناصر المشروع - المتطلبات، والمواصفات، والتحويلات، والتصاميم، والبرمجيات، ونماذج العمليات، وغيرها - ككائنات في مستودع معرفي . يصف التقرير الأصلي لـ KBSA ما كان يُسمى "لغة الطيف الواسع". تمثلت الحاجة في إطار عمل لتمثيل المعرفة يدعم دورة حياة المشروع بأكملها : المتطلبات، والمواصفات، والبرمجيات، بالإضافة إلى عملية تطوير البرمجيات نفسها. كان الهدف من التمثيل الأساسي لقاعدة المعرفة هو استخدام نفس إطار العمل، مع إمكانية إضافة طبقات مختلفة لدعم عروض وتطبيقات محددة.
طُوِّرت هذه الأطر المعرفية المبكرة بشكل أساسي من قِبَل شركتي ISI وKestrel بالاعتماد على بيئات Lisp و Lisp machine . ثم تحولت بيئة Kestrel لاحقًا إلى منتج تجاري يُسمى Refine، والذي طُوِّر ودُعم من قِبَل شركة منبثقة عن Kestrel تُدعى Reasoning Systems Incorporated.
أثبتت لغة وبيئة Refine أيضًا جدواها في حل مشكلة الهندسة العكسية للبرمجيات: أي أخذ الشيفرة البرمجية القديمة التي تُعدّ بالغة الأهمية للعمل ولكنها تفتقر إلى التوثيق المناسب، واستخدام أدوات لتحليلها وتحويلها إلى شكل أكثر قابلية للصيانة. ومع تزايد المخاوف بشأن مشكلة عام 2000، أصبحت الهندسة العكسية شاغلًا رئيسيًا للعديد من الشركات الأمريكية الكبرى، ومجالًا محوريًا لأبحاث جمعية علوم المعرفة (KBSA) في التسعينيات. [ 7 ] [ 8 ]
كان هناك تفاعل كبير بين مجتمعات KBSA ومجتمعات لغة Frame والبرمجة كائنية التوجه . تم تنفيذ قواعد معارف KBSA المبكرة بلغات قائمة على الكائنات بدلاً من البرمجة كائنية التوجه . كانت الكائنات تُمثَّل كفئات وفئات فرعية، ولكن لم يكن من الممكن تعريف دوال على هذه الكائنات. في الإصدارات اللاحقة من KBSA، مثل عرض Andersen Consulting Concept Demo، تم توسيع لغة المواصفات لدعم تمرير الرسائل أيضًا.
المساعد الذكي
اتبعت KBSA نهجًا مختلفًا عن أنظمة الخبراء التقليدية في حل المشكلات والتفاعل مع المستخدمين. ففي نظام الخبراء التقليدي، يجيب المستخدم على سلسلة من الأسئلة التفاعلية، ثم يقدم النظام الحل. أما في KBSA، فقد بقي المستخدم متحكمًا في العملية. وبينما سعت أنظمة الخبراء إلى حد ما إلى الاستغناء عن الخبير، سعى نظام المساعد الذكي في KBSA إلى إعادة ابتكار العملية باستخدام التكنولوجيا. وقد أدى ذلك إلى عدد من الابتكارات على مستوى واجهة المستخدم.
من الأمثلة على التعاون بين مجتمع البرمجة الكائنية وKBSA، بنية واجهات المستخدم الخاصة بـ KBSA. استخدمت أنظمة KBSA واجهة مستخدم بنمط MVC (نموذج-عرض-متحكم)، وهي فكرة مستوحاة من بيئات Smalltalk. [ 9 ] كانت بنية MVC ملائمة بشكل خاص لواجهة مستخدم KBSA، حيث تميزت بيئات KBSA بتعدد وجهات النظر غير المتجانسة لقاعدة المعرفة. قد يكون من المفيد النظر إلى نموذج ناشئ من منظور الكيانات والعلاقات، وتفاعلات الكائنات، وتسلسل الفئات، وتدفق البيانات، والعديد من وجهات النظر الأخرى الممكنة. سهّلت بنية MVC ذلك. في بنية MVC، كان النموذج الأساسي دائمًا هو قاعدة المعرفة، والتي كانت عبارة عن وصف نموذجي للغات المواصفات والتنفيذ. عندما يُجري المحلل تغييرًا ما عبر مخطط معين (مثل إضافة فئة إلى تسلسل الفئات)، يتم تطبيق هذا التغيير على مستوى النموذج الأساسي، ويتم تحديث جميع وجهات نظر النموذج تلقائيًا. [ 10 ]
من مزايا استخدام التحويل إمكانية تعديل العديد من جوانب المواصفات والتنفيذ دفعة واحدة. بالنسبة للنماذج الأولية الصغيرة، كانت المخططات الناتجة بسيطة بما يكفي بحيث تكفي خوارزميات التخطيط الأساسية مع الاعتماد على المستخدمين لتنظيف المخططات. مع ذلك، عندما يُعيد التحويل رسم النماذج جذريًا، والتي تحتوي على عشرات أو حتى مئات من العقد والروابط، يصبح التحديث المستمر لمختلف العروض مهمة بحد ذاتها. قام باحثون في شركة أندرسن للاستشارات بتوظيف أعمال من جامعة إلينوي في نظرية الرسوم البيانية لتحديث العروض المختلفة المرتبطة بقاعدة المعرفة تلقائيًا، ولإنشاء رسوم بيانية ذات تقاطع روابط محدود، مع مراعاة قيود التخطيط الخاصة بالمجال والمستخدم.
من المفاهيم الأخرى المستخدمة لتقديم المساعدة الذكية توليد النصوص تلقائيًا. بحثت دراسات مبكرة في معهد علوم المعلومات (ISI) جدوى استخلاص المواصفات الرسمية من نصوص اللغة الطبيعية غير الرسمية، وخلصت إلى أن هذا النهج غير عملي. فاللغة الطبيعية بطبيعتها غامضة للغاية بحيث لا تصلح كصيغة مناسبة لوصف نظام ما. مع ذلك، تبين أن توليد اللغة الطبيعية ممكن كوسيلة لإنشاء أوصاف نصية يمكن للمديرين والموظفين غير التقنيين قراءتها. وكان هذا جذابًا بشكل خاص للقوات الجوية، إذ يُلزمها القانون بإعداد تقارير متنوعة تصف النظام من وجهات نظر مختلفة. وقد أثبت باحثون في معهد علوم المعلومات، ولاحقًا في شركتي Cogentext وAndersen Consulting، جدوى هذا النهج باستخدام تقنياتهم الخاصة لإنشاء الوثائق المطلوبة بموجب عقودهم مع القوات الجوية. [ 11 ]
مراجع
- ↑ غرين، كورديل؛ د. لوكهام؛ ر. بالزر؛ ت. تشيثام؛ س. ريتش (أغسطس 1983). "تقرير عن مساعد برمجي قائم على المعرفة" (ملف PDF) . معهد كيستريل ( FTP ). ص 78. تاريخ الاسترجاع: 4 يناير 2014 .(للاطلاع على المستندات، انظر صفحة المساعدة: FTP )
- ↑ ريتش، تشارلز؛ ريتشارد سي. ووترز (نوفمبر 1988). "مشروع المتدرب المبرمج: نظرة عامة على البحث" (ملف PDF) . مجلة الكمبيوتر . 21 (11): 10-25 . doi : 10.1109/2.86782 . hdl : 1721.1/6054 . S2CID 18925917. مؤرشف من الأصل (ملف PDF) بتاريخ 2017-07-06 . تم الاطلاع عليه بتاريخ 26 ديسمبر 2013 .
- ↑ ديبيليس، مايكل؛ كريستين هابالا (فبراير 1995). "هندسة البرمجيات المتمحورة حول المستخدم". خبير IEEE . 10 (1): 34-41 . doi : 10.1109/64.391959 .
- ↑ سميث، دوغ (1991). "KIDS - نظام تطوير برمجيات قائم على المعرفة". في مايكل لوري، روبرت مكارتني (محرران). أتمتة تصميم البرمجيات . مطبعة AAAI/MIT. الصفحات 483-514 . CiteSeerX 10.1.1.54.6955 . ISBN 978-0262620802.
- ↑ جونسون، لويس؛ إم إس فيذر (1991). "استخدام تحويلات التطور لبناء المواصفات". أتمتة تصميم البرمجيات . مطبعة AAAI: 65-92 .
- ↑ فاولر، مارتن (1999). إعادة هيكلة الكود: تحسين تصميم الكود الحالي . أديسون ويسلي. ISBN 0201485672.
- ↑ بوهم، باري؛ براسانتا بوس (15 أغسطس 1998). "تقييم دورة حياة KBSA: التقرير الفني النهائي" (ملف PDF) . رقم العقد: F30602-96-C-0274 . مركز هندسة البرمجيات بجامعة جنوب كاليفورنيا. مؤرشف من الأصل ( ملف PDF) بتاريخ 27 يوليو 2013. تم الاطلاع عليه بتاريخ 4 يناير 2014.
مع تقدم البرنامج نحو أهدافه النهائية، انبثقت عنه العديد من التطبيقات الفرعية التي تعزز الإنتاجية، مثل أدوات إعادة هندسة البرمجيات واختبارها القائمة على Refine
. - ↑ ويلتي، كريس. "ملخص مؤتمر KBSE-93: المؤتمر السنوي الثامن لهندسة البرمجيات القائمة على المعرفة" . ase-conferences.org . مؤرشف من الأصل في 17 مارس 2012. تم الاطلاع عليه في 4 يناير 2014.
يوفر برنامج REFINE/COBOL Object Modeling Workbench مجموعة من أدوات إعادة الهندسة، وRefine هي لغة العرض التوضيحي لمفهوم KBSA.
- ↑ هاريس، ديف؛ أ. تشوكري (1988). "مساعد المتطلبات القائم على المعرفة". خبير IEEE . 3 (4).
- ↑ جونسون، لويس؛ ديفيد ر. هاريس؛ كيفن م. بينر؛ مارتن س. فيذر (أكتوبر 1992). "أريس: جانب المتطلبات/المواصفات لـ KBSA". التقرير الفني النهائي لمختبر روما . RL-TR-92-248.
- ^ ديبيليس، مايكل. كانث ميريالا؛ سودين بهات؛ ويليام سي ساسو؛ أوين رامبو (أبريل 1993). "العرض التوضيحي لمفهوم KBSA: التقرير الفني النهائي" . التقرير الفني لمختبر USAF Rome . رل-TR-93-38 . تم الاسترجاع في 25 أكتوبر 2021 .
- أنظمة الخبراء
- الأساليب الرسمية
- لغات المواصفات
- القوات الجوية الأمريكية
- علوم الحاسوب النظرية
