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

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

## تطبيقات

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

## مميزات

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

## مبادئ

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

## أمثلة

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

## ناقدون

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

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

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

## مراجع

* ↑ Beck، M.؛ Trümper، J.؛ Döllner، J. (2011). "A visual analysis and design tool for planning software reengineerings". 2011 6th International Workshop on Visualizing Software for Understanding and Analysis (VISSOFT). IEEE Computer Society. ص. 1–8. DOI:10.1109/VISSOF.2011.6069458. ISBN:978-1-4577-0822-0.
* ↑ Bohnet، J.؛ Döllner، J. (2011). "Monitoring Code Quality and Development Activity by Software Maps". Proceedings of the IEEE ACM ICSE Workshop on Managing Technical Debt. Association for Computing Machinery. ص. 9–16. DOI:10.1145/1985362.1985365. ISBN:9781450305860.
* ↑ Trümper، J.؛ Beck، M.؛ Döllner، J. (2012). "A Visual Analysis Approach to Support Perfective Software Maintenance". 2012 16th International Conference on Information Visualisation. IEEE Computer Society. ص. 308–315. DOI:10.1109/IV.2012.59. ISBN:978-1-4673-2260-7.
* ↑ Limberger، D.؛ Wasty، B.؛ Trümper، J.؛ Döllner، J. (2013). "Interactive software maps for web-based source code analysis". Proceedings of the 18th International Conference on 3D Web Technology. ص. 91–98. DOI:10.1145/2466533.2466550. ISBN:9781450321334.
* ↑ Trümper، Jonas؛ Telea، Alexandru؛ Döllner، Jürgen (2012). "ViewFusion: Correlating Structure and Activity Views for Execution Traces". Theory and Practice of Computer Graphics. The Eurographics Association. ص. 45–52. DOI:10.2312/LocalChapterEvents/TPCG/TPCG12/045-052. ISBN:978-3-905673-93-7.
* ↑ Bohnet، J. (2010). Visualization of Execution Traces and its Application to Software Maintenance (PhD). Hasso-Plattner-Institut, University of Potsdam. مؤرشف من الأصل في 2020-07-15.