An Artificial Intelligence Based Software Health Check Framework

Project: General ResearchGeneral Research 2020 Cycle 1

Project Details

Abstract Arabic

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

Abstract English

The recent advances in Artificial Intelligence (AI) are dramatically impacting the way we are building and evolving software systems. More effective software development has the potential to make the infrastructure on which so many aspects of our society depend on less costly and more reliable. The increasing size and complexity of software systems make current development processes expensive, laborious and error prone. This evolution of software systems requires enormous human effort, forcing highly skilled engineers to waste significant time adapting many tedious requirements, planning, design, implementation and testing details. Thus, it is becoming more challenging to develop and maintain software without automated and semi-automated tools to support them in their tasks. A number of AI based approaches and tools proved to be successful in automating and semiautomating several activities to support developers from initial requirements, planning, documentation generation to testing, debugging and evolution. As projects evolve, developers are put under pressure to deliver new releases which leads to overlooking software restructuring/refactoring. This task is critical to hold the software quality up to the standard after the code has been updated. Without the continues quality improvements using refactoring, system performance will degrade rapidly, new features will be harder to implement, and bug fixing will take longer. The objectives of the proposed project are: (1) to advance our ability to understand and quantify refactoring rationale by explicitly linking refactoring opportunities at different levels of abstraction, analyzing code reviews and developers commit messages to identify and explain refactoring opportunities beyond the use of traditional static and dynamic analyses; (2) to distill this knowledge into usable refactoring recommendations and augment human interaction using interactive AI that will guide low-level refactoring automation with high-level abstractions; (3) to enable the automated generation of refactoring explanations and commits in natural Language using AI techniques based on NLP.
StatusFinished
Effective start/end date11/01/202/08/22

Fingerprint

Explore the research topics touched on by this project. These labels are generated based on the underlying awards/grants. Together they form a unique fingerprint.