000 08250namaa22004331i 4500
003 OSt
005 20251015120907.0
008 251007s2024 ua a|||frm||| 000 0 eng d
040 _aEG-GICUC
_beng
_cEG-GICUC
_dEG-GICUC
_erda
041 0 _aeng
_beng
_bara
049 _aDeposit
082 0 4 _a005.6
092 _a005.6
_221
097 _aM.Sc
099 _aCai01.20.05.M.Sc.2024.Na.E
100 0 _aNada Ayman Mostafa Shorim,
_epreparation.
245 1 0 _aEnhancing text-based design pattern recommender /
_cby Nada Ayman Mostafa Shorim ; Supervision Prof. Mohammad El-Ramly, Dr. Hanaa Mobarz.
246 1 5 _aتحسين توصية نمط التصميم القائم على النص
264 0 _c2024.
300 _a57 Leaves :
_billustrations ;
_c30 cm. +
_eCD.
336 _atext
_2rda content
337 _aUnmediated
_2rdamedia
338 _avolume
_2rdacarrier
502 _aThesis (M.Sc)-Cairo University, 2024.
504 _aBibliography: pages 54-57.
520 3 _aDesign 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.
520 3 _aتعزز الأنماط التصميمية ممارسات هندسة البرمجيات من خلال تحسين جودة البرمجيات وتسريع جداول التطوير. يعد اختيار النمط التصميمي المناسب أمرًا بالغ الأهمية، حيث يمكن أن يؤدي الاختيار غير المناسب إلى كود يصعب صيانته. وعلى العكس، فإن الاختيار المدروس للنمط التصميمي يحسن جودة البرمجيات، مما يسهل صيانتها وتعديلها وتوسيعها. ومع ذلك، فإن اختيار النمط التصميمي المناسب من الأوصاف النصية يمثل تحديًا كبيرًا، ويتطلب معرفة عميقة بوظائفها وخصائصها. غالبًا ما تفتقر الأساليب الحالية إلى الدقة أو تفشل في التعامل مع سيناريوهات المشكلات المتنوعة، مما يحد من قابليتها للتطبيق العملي. لمعالجة ذلك، قمنا بتطوير نظام توصية يعتمد على معالجة اللغة الطبيعية والتعلم الآلي من خلال تصنيف النصوص. تم تدريب النظام على بيانات من كتاب 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%.. يساهم هذا العمل في تطوير المجال من خلال الاستفادة من مجموعة بيانات أكبر، وتحسين الأساليب، وتحقيق نتائج متقدمة، مما يوفر قيمة أكاديمية وعملية. وقد أدى النهج الثاني إلى تحسين الدقة من خلال تبسيط التعقيد وتفوقه على النهج الأول.
530 _aIssues also as CD.
546 _aText in English and abstract in Arabic & English.
650 0 _aProgramming
650 0 _aالبرمجة
653 1 _aDesign Pattern
_aSoftware Engineering,
_aNLP
_aMachine Learning
700 0 _aMohammad El-Ramly
_ethesis advisor.
700 0 _aHanaa Mobarz
_ethesis advisor.
900 _b01-01-2024
_cMohammad El-Ramly
_cHanaa Mobarz
_UCairo University
_FFaculty of Computers and Artificial Intelligence
_DDepartment of Computer Sciences
905 _aShimaa
_eEman Ghareb
942 _2ddc
_cTH
_e21
_n0
999 _c174619