علم آثار البرمجيات

علم آثار البرمجيات، أو علم آثار شفرة المصدر، هو دراسة تطبيقات البرمجيات القديمة سيئة التوثيق أو غير الموثقة ، كجزء من صيانة البرمجيات . [ 1 ] [ 2 ] يشمل علم آثار البرمجيات، الذي سُمّي قياسًا على علم الآثار ، [ 3 ] الهندسة العكسية لوحدات البرمجيات، وتطبيق مجموعة متنوعة من الأدوات والعمليات لاستخراج وفهم بنية البرنامج واستعادة معلومات التصميم. [ 1 ] [ 4 ] قد يكشف علم آثار البرمجيات عن عمليات فريق مختلة وظيفيًا أنتجت وحدات برمجية سيئة التصميم أو حتى غير مستخدمة، وفي بعض الحالات قد يتم العثور على شفرة مُبهمة عمدًا. [ 5 ] يُستخدم هذا المصطلح منذ عقود. [ 6 ]

لا يزال علم آثار البرمجيات موضوعًا للنقاش في مؤتمرات هندسة البرمجيات الحديثة. [ 7 ]

التقنيات

حددت ورشة عمل حول علم آثار البرمجيات في مؤتمر OOPSLA (البرمجة الموجهة للكائنات والأنظمة واللغات والتطبيقات) لعام 2001 تقنيات علم آثار البرمجيات التالية، وبعضها خاص بالبرمجة الموجهة للكائنات : [ 8 ]

وبشكل عام، يشير آندي هانت وديف توماس إلى أهمية التحكم في الإصدارات ، وإدارة التبعيات ، وأدوات فهرسة النصوص مثل GLIMPSE و SWISH-E ، و"رسم خريطة أثناء بدء الاستكشاف". [ 8 ]

على غرار علم الآثار الحقيقي، ينطوي علم آثار البرمجيات على عمل استقصائي لفهم عمليات التفكير لدى من سبقونا. [ 8 ] في ورشة عمل OOPSLA، اقترح وارد كانينغهام تقنية تحليل التوقيع الموجز التي تعطي انطباعًا عامًا عن البرنامج من خلال عرض علامات الترقيم فقط، مثل الفواصل المنقوطة والأقواس المعقوفة . [ 9 ] وبالمثل، اقترح كانينغهام عرض البرامج بخط بحجم نقطتين لفهم بنيتها العامة. [ 10 ] ومن التقنيات الأخرى التي تم تحديدها في ورشة العمل استخدام أدوات البرمجة الموجهة نحو الجوانب، مثل AspectJ، لإدخال رمز التتبع بشكل منهجي دون تعديل البرنامج القديم مباشرةً. [ 8 ]

يمكن لتقنيات تحليل الشبكات والتحليل الزمني أن تكشف أنماط النشاط التعاوني لمطوري البرامج القديمة، مما قد يسلط الضوء بدوره على نقاط القوة والضعف في منتجات البرامج المنتجة. [ 11 ]

وصف مايكل روزلوغ من شركة إمباركاديرو تكنولوجيز علم آثار البرمجيات بأنه عملية من ست خطوات تمكّن المبرمجين من الإجابة على أسئلة مثل: "ما الذي ورثته للتو؟" و"أين تكمن الأجزاء الخطيرة من الكود؟" [ 12 ] تشمل هذه الخطوات، المشابهة لتلك التي حددتها ورشة عمل OOPSLA، استخدام التصور للحصول على تمثيل مرئي لتصميم البرنامج، واستخدام مقاييس البرمجيات للبحث عن انتهاكات التصميم والأسلوب، واستخدام اختبارات الوحدات وتحليل الأداء للبحث عن الأخطاء ومواطن الاختناق في الأداء، وتجميع معلومات التصميم التي تم استخلاصها من خلال هذه العملية. [ 12 ] كما يمكن أن يكون علم آثار البرمجيات خدمة يقدمها مستشارون خارجيون للمبرمجين. [ 13 ]

تبرز مهنة " المبرمج-عالم الآثار " بشكل بارز في رواية الخيال العلمي " عمق في السماء" للكاتب فيرنور فينج عام 1999. [ 14 ]

انظر أيضاً

مراجع

  1. 1 2 روبليس، غريغوريو؛ غونزاليس-باراهونا، خيسوس م.؛ هيرايز، إسرائيل (2005). "نهج تجريبي لعلم آثار البرمجيات" (ملف PDF) . وقائع ملصق المؤتمر الدولي لصيانة البرمجيات .
  2. أمبلر، سكوت و. "تحليل وتكامل الأنظمة القديمة الرشيقة" . agilemodeling.com . تاريخ الاسترجاع: 20 أغسطس 2010. بدون توثيق دقيق، أو إمكانية الوصول إلى أشخاص ذوي خبرة، قد يكون ملاذك الأخير هو تحليل شفرة المصدر للنظام القديم... يُشار إلى هذا الجهد غالبًا باسم علم آثار البرمجيات.
  3. موير، برايون (4 مارس 2009). "علم آثار البرمجيات: تحديث الأنظمة القديمة" (ملف PDF) . مجلة التكنولوجيا المدمجة .
  4. هوبكنز، ريتشارد؛ جينكينز، كيفن (2008). "5. الرجل الخارق الأسطوري" . أكل فيل تكنولوجيا المعلومات: الانتقال من تطوير الأراضي البكر إلى الأراضي الملوثة . أديسون-ويسلي. ص 93. ISBN  978-0-13-713012-2.
  5. سبينليس، ديوميديس ؛ غوسيوس، جورجيوس (2009). "2. حكاية نظامين § غياب التماسك" . العمارة الجميلة . أورايلي. ص 29. ISBN  978-0-596-51798-4.
  6. من المناقشات المبكرة: غراس، جوديث إي. (شتاء 1992). "علم آثار التصميم الموجه للكائنات باستخدام CIA++" (ملف PDF) . أنظمة الحوسبة . 5 (1).
  7. على سبيل المثال، "المؤتمر الدولي الثاني والثلاثون لجمعية ACM/IEEE حول هندسة البرمجيات" . مايو 2010..
  8. 1 2 3 4 هانت، آندي ؛ توماس، ديف (مارس-أبريل 2002). "علم آثار البرمجيات" (ملف PDF) . مجلة IEEE للبرمجيات . 19 (2): 20-22 . رمز Bibcode : 2002ISoft..19b..20. . doi : 10.1109/52.991327 .
  9. كونينغهام، وارد (2001). "مسح التوقيعات: طريقة لتصفح التعليمات البرمجية غير المألوفة" . بيان موقف ورشة العمل، علم آثار البرمجيات: فهم الأنظمة الكبيرة، OOPSLA 2001 .
  10. كوك، جون د. (10 نوفمبر 2009). "علم آثار البرمجيات" . ذا إنديفور .
  11. دي سوزا، كليدسون؛ فروهليش، جون؛ دوريش، بول (2005). "البحث عن المصدر: شفرة المصدر البرمجية كمنتج اجتماعي وتقني" (ملف PDF) . وقائع مؤتمر ACM SIGGROUP الدولي لعام 2005 حول دعم العمل الجماعي . الصفحات 197-206 . doi : 10.1145/1099203.1099239 . ISBN  1595932232.
  12. 1 2 روزلوغ، مايكل (28 يناير 2008). "علم آثار البرمجيات: ما هو ولماذا يجب أن يهتم به مطورو جافا؟" . java.sys-con.com.
  13. شاروود، سيمون (3 نوفمبر 2004). "غزاة الشفرة المفقودة" . زد نت .
  14. ريس، غاريث (2013-06-12). "علم آثار البرمجيات والديون التقنية" .