تشخيص البرمجيات

يشير تشخيص البرمجيات إلى المفاهيم والتقنيات والأدوات التي تسمح بالحصول على النتائج والاستنتاجات والتقييمات حول أنظمة البرامج وتنفيذها وتكوينها وسلوكها وتطورها. وهي بمثابة وسيلة لرصد وتوجيه ومراقبة وتحسين تطوير البرمجيات، وصيانة البرمجيات، وإعادة هندسة البرمجيات بمعنى نهج ذكاء الأعمال الخاص بأنظمة البرمجيات. يعتمد بشكل عام على الاستخراج والتحليل والتصور التلقائي لمصادر المعلومات المقابلة لنظام البرمجيات. كما يمكن القيام بذلك يدويًا وليس تلقائيًا.

تطبيقات 
يدعم تشخيص البرمجيات جميع فروع هندسة البرمجيات، وخاصة إدارة المشاريع، وإدارة الجودة، وإدارة المخاطر، بالإضافة إلى التنفيذ والاختبار. وتتمثل قوتها الرئيسية في دعم جميع أصحاب المصلحة في مشاريع البرامج (ولا سيما أثناء صيانة البرامج ومهام إعادة هندسة البرمجيات) وتوفير وسائل اتصال فعالة لمشاريع تطوير البرمجيات. على سبيل المثال، يسهل تشخيص البرمجيات «سد فجوة المعلومات الأساسية بين الإدارة والتطوير، وتحسين الوعي، والعمل كأداة للكشف المبكر عن المخاطر». يتضمن تشخيص البرمجيات طرق تقييم «للصيانة المثالية» التي على سبيل المثال، تطبق «تقنيات التحليل المرئي للجمع بين مؤشرات متعددة لصيانة منخفضة، بما في ذلك تعقيد الكود والتشابك مع أجزاء أخرى من النظام، والتغييرات الأخيرة المطبقة على الكود».

مميزات 
على النقيض من الأساليب والتقنيات المتعددة في هندسة البرمجيات، لا يعتمد تشخيص البرمجيات على لغات البرمجة أو تقنيات النمذجة أو عمليات تطوير البرمجيات أو التقنيات المحددة المستخدمة في المراحل المختلفة من عملية تطوير البرمجيات. بدلاً من ذلك، يهدف تشخيص البرامج إلى تحليل وتقييم نظام البرامج في حالته الحالية واستنادًا إلى المعلومات التي ينشئها النظام لتجاوز أي مصادر معلومات ذاتية أو قديمة (على سبيل المثال، نماذج البرامج الأولية). بالنسبة له، فإن تشخيص البرمجيات يجمع بين مصادر المعلومات التي لا ترتبط مباشرة بشكل مباشر. أمثلة:

 ترتبط مقاييس شيفرة المصدر بنشاط مطور البرامج للحصول على نظرة ثاقبة للتأثيرات الخاصة بالمطور على جودة رمز البرنامج.
 ترتبط بنية النظام وآثار التنفيذ في وقت التشغيل لتسهيل فهم البرنامج من خلال التحليل الديناميكي في مهام صيانة البرامج.

مبادئ 
يتمثل المبدأ الأساسي لتشخيص البرامج في استخراج المعلومات تلقائيًا من جميع مصادر المعلومات المتاحة لمشاريع برمجية معينة مثل قاعدة شيفرة المصدر، ومستودع المشروع، ومقاييس الشيفرة، وآثار التنفيذ، ونتائج الاختبار، وما إلى ذلك. للجمع بين المعلومات، واستخراج البيانات الخاصة بالبرامج يتم تطبيق تقنيات التحليل والتصور. تنجم قوتها، من بين أسباب مختلفة، عن دمج مساحات المعلومات المنفصلة في نطاق مشروع برنامج نموذجي، على سبيل المثال أنشطة التطوير والمطورين (المسجلة بواسطة المستودع) والشيفرة ومقاييس الجودة (المستمدة من تحليل شيفرة المصدر) أو مؤشرات الأداء الرئيسية.

أمثلة 
تتضمن أمثلة أدوات تشخيص البرامج خرائط البرامج ومقاييس البرامج.

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

مواضيع ذات صلة 

 إنتاجية برمجية
 تطوير تطبيقات سريع
 تصميم البرمجيات
 تطوير برمجيات
 توثيق البرمجيات
 مراحل إصدار البرمجيات
 تصميم النظام
 دورة حياة تطوير البرمجيات

مراجع

روابط خارجية 

 A tool set based on software maps by Software Diagnostics, 2014
 Demo video interactive software maps for source-code analysis, 2013

اختبار البرمجيات
تطوير البرمجيات
جودة البرمجيات
صيانة البرمجيات
عملية تطوير البرمجيات
قياس برمجيات
هندسة البرمجيات