ذكاء البرمجيات

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

التاريخ 
اسُخدم ذكاء البرمجيات من قبل كيرك بول لافلر، وهو مهندس أمريكي ورائد أعمال ومستشار ومؤسس شركة Software Intelligence Corporation في عام 1979. في ذلك الوقت كان متعلقًا بشكل أساسي بأنشطة SAS، التي كان خبيرًا فيها منذ عام 1979. في أوائل الثمانينيات شارك فيكتورباسيلي أوراقً مختلفة توضح بالتفصيل منهجية لجمع بيانات هندسة البرمجيات الصحيحة وتقييم تطوير البرمجيات والاختلافات. في عام 2004 بدأ بائعو البرمجيات المختصين بتحليل البرمجيات باستخدام المصطلحات كجزء من استراتيجيتهم لتسمية المنتجات وتسويقها. ثم في عام 2010، عرّف أحمد حسن وتاو شي ذكاء البرمجيات بأنها «ممارسة تقدم لممارسي البرمجيات معلومات محدثة وذات صلة لدعم عمليات صنع القرار اليومية ويجب أن تدعم ذكاء البرمجيات عمليات صنع القرار طوال عمر نظام البرمجيات». يستمر بائعو البرمجيات بتعريف ذكاء البرمجيات على أنه «تأثير قوي على ممارسة البرمجيات الحديثة» للعقود القادمة.

القدرات 
بسبب التعقيد والنطاق الواسع من المكونات والموضوعات الضمنية في البرمجيات، يجري اشتقاق ذكاء البرمجيات من جوانب مختلفة من البرمجيات:

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

المكونات 
تشمل منصات ذكاء البرمجيات عددًا متزايدًا من المكونات:

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

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

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

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

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

التطبيقات 
لذكاء البرمجيات العديد من التطبيقات في جميع الأعمال المتعلقة ببيئة البرمجيات، سواء كانت برمجيات للمحترفين أو الأفراد أو البرامج الضمنية. اعتمادًا على الارتباط واستخدام المكونات، تتعلق التطبيقات بما يلي:

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

السوق 
الذكاء البرمجي هو نظام رفيع المستوى وقد نما تدريجياً ليغطي التطبيقات المذكورة أعلاه. هناك العديد من الأسواق التي تدفع الحاجة إليها:

 تحليل محفظة التطبيقات (APA) بهدف تحسين أداء المؤسسة.
 تقييم البرمجيات لإنتاج برمجيات KPI  وتحسين الجودة والإنتاجية.
 تدابير أمن البرمجيات ومرونتها والتحقق من صحتها.
 تطور البرامج الحاسوبية أو التحديث الموروث، ولا يلزم وضع مخطط لنظم البرمجيات ولا أدوات لتحسين وتيسير التعديلات

مراجع

مراجع 

ذكاء اصطناعي