TY - BOOK AU - Nada Ayman Mostafa Shorim, AU - Mohammad El-Ramly AU - Hanaa Mobarz TI - Enhancing text-based design pattern recommender U1 - 005.6 PY - 2024/// KW - Programming KW - البرمجة KW - Design Pattern KW - Software Engineering KW - NLP KW - Machine Learning N1 - Thesis (M.Sc)-Cairo University, 2024; Bibliography: pages 54-57; Issues also as CD N2 - Design patterns enhance software engineering practices by improving software quality and accelerating development schedules. Selecting the right design pattern is critical, as an inappropriate choice can lead to code that is difficult to maintain. Conversely, a well-selected design pattern enhances software quality, simplifying maintenance, modification, and scalability. However, choosing the appropriate design pattern from textual descriptions poses a significant challenge, requiring deep knowledge of their functionalities and attributes. Existing approaches often lack accuracy or fail to handle diverse problem scenarios, limiting their practical applicability. To address this, we developed a recommendation system that applies Natural Language Processing and Machine Learning through text classification. The system was trained on data from the GOF book and evaluated using the largest dataset available including 95 problem scenarios from diverse sources. Two approaches were evaluated for design pattern selection. The first approach uses only the design patterns’ descriptions, while the second incorporates category information to narrow the search space before identifying the most suitable design pattern. Doc2Vec experiments showed 52.63% accuracy for the sequential approach, outperforming 22.1% for the single approach, demonstrating the effectiveness of sequential approach. Next, NLP and ML techniques are utilized. The approach included preprocessing steps such as stop word removal, tokenization, and stemming, applied to design pattern categories, design patterns, and problem scenarios. Feature extraction techniques such as Bag of Words, TF-IDF, Part of Speech, and Bigrams were then applied, enabling ML models to make predictions. The first approach achieved 72.63% accuracy using random forest with BoW and TF-IDF features, as well as logistic regression with POS and BoW features. The second approach improved accuracy to 74.74% by incorporating category-level classification followed by design pattern-level classification. We also evaluated generative AI models such as ChatGPT, Bard, and Gemini. ChatGPT achieved 88.42% accuracy, outperforming traditional approaches. Further testing on eight unseen cases yielded 75% accuracy for both our approach and ChatGPT, while Gemini achieved 62.5%. This work advances the field with a larger dataset, enhanced methods, and superior results, providing both academic and practical value. The second approach boosted accuracy by simplifying complexity and outperforming the first; تعزز الأنماط التصميمية ممارسات هندسة البرمجيات من خلال تحسين جودة البرمجيات وتسريع جداول التطوير. يعد اختيار النمط التصميمي المناسب أمرًا بالغ الأهمية، حيث يمكن أن يؤدي الاختيار غير المناسب إلى كود يصعب صيانته. وعلى العكس، فإن الاختيار المدروس للنمط التصميمي يحسن جودة البرمجيات، مما يسهل صيانتها وتعديلها وتوسيعها. ومع ذلك، فإن اختيار النمط التصميمي المناسب من الأوصاف النصية يمثل تحديًا كبيرًا، ويتطلب معرفة عميقة بوظائفها وخصائصها. غالبًا ما تفتقر الأساليب الحالية إلى الدقة أو تفشل في التعامل مع سيناريوهات المشكلات المتنوعة، مما يحد من قابليتها للتطبيق العملي. لمعالجة ذلك، قمنا بتطوير نظام توصية يعتمد على معالجة اللغة الطبيعية والتعلم الآلي من خلال تصنيف النصوص. تم تدريب النظام على بيانات من كتاب GOF وتقييمه باستخدام أكبر مجموعة بيانات متاحة، بما في ذلك 95 سيناريو مشكلة من مصادر متنوعة. تم تقييم نهجين لاختيار الأنماط التصميمية. يعتمد النهج الأول على أوصاف الأنماط التصميمية فقط، بينما يستخدم النهج الثاني معلومات الفئة لتضييق نطاق البحث قبل تحديد النمط التصميمي الأنسب. أظهرت تجارب Doc2Vec أن النهج التسلسلي حقق دقة بلغت 52.63%، متفوقًا على النهج الفردي الذي سجل 22.1%، مما يوضح فعالية النهج التسلسلي. بعد ذلك، تم استخدام تقنيات معالجة اللغة الطبيعية والتعلم الآلي. تضمنت الطريقة خطوات المعالجة المسبقة مثل إزالة الكلمات الشائعة، والتجزئة، والجذر الصرفي، والتي تم تطبيقها على أوصاف الفئات والأنماط التصميمية وسيناريوهات المشكلات. تم تطبيق تقنيات استخراج الميزات، مثل حقيبة الكلمات (BoW)، وتكرار المصطلح العكسي (TF-IDF)، وأجزاء الكلام (POS)، وثنائيات الكلمات (Bigrams)، مما مكّن نماذج التعلم الآلي من إجراء التنبؤات. حقق النهج الأول دقة بلغت 72.63% باستخدام غابة عشوائية مع ميزات BoW وTF-IDF، بالإضافة إلى الانحدار اللوجستي مع ميزات POS وBoW. أما النهج الثاني فقد حسّن الدقة إلى 74.74% من خلال دمج التصنيف على مستوى الفئة أولاً، ثم التصنيف على مستوى الأنماط التصميمية. تم أيضًا تقييم نماذج الذكاء الاصطناعي التوليدي، مثل ChatGPT وBard وGemini. حقق ChatGPT دقة بلغت 88.42%، متفوقًا على الأساليب التقليدية. وأظهرت الاختبارات الإضافية على ثماني حالات جديدة لم تُعرض على نماذج الذكاء الاصطناعي من قبل دقة بلغت 75% لكل من نهجنا وChatGPT، بينما سجل Gemini نسبة 62.5%.. يساهم هذا العمل في تطوير المجال من خلال الاستفادة من مجموعة بيانات أكبر، وتحسين الأساليب، وتحقيق نتائج متقدمة، مما يوفر قيمة أكاديمية وعملية. وقد أدى النهج الثاني إلى تحسين الدقة من خلال تبسيط التعقيد وتفوقه على النهج الأول ER -