50 أسئلة وأجوبة لمقابلة هندسة البرمجيات
أسئلة وأجوبة مقابلة مطور البرامج للطلاب الجدد
1) ما هي فئات البرامج المهمة؟
- برنامج النظام
- تطبيق البرمجيات
- البرامج المضمنة
- تطبيقات ويب
- برامج الذكاء الاصطناعي
- البرمجيات العلمية.
👉 تنزيل PDF مجاني: أسئلة وأجوبة مقابلة هندسة البرمجيات
2) ما هو الفرق الرئيسي بين برنامج الكمبيوتر وبرامج الكمبيوتر؟
برنامج الكمبيوتر هو جزء من كود البرمجة. ينفذ مهمة محددة جيدا. ومن ناحية أخرى، يتضمن البرنامج كود البرمجة والوثائق ودليل المستخدم.
3) ما هي إعادة هندسة البرمجيات؟
إنها عملية تطوير برمجيات يتم إجراؤها لتحسين قابلية صيانة نظام برمجي.
4) صف عملية تطوير البرمجيات باختصار:
إن تطوير البرمجيات عبارة عن دورة حياة تتكون من المراحل التالية:
- تحليل المتطلبات
- المواصفات الخاصه
- هيكلة البرمجيات
- تطبيق
- الاختبار
- توثيق
- التدريب والدعم
- الصيانة
5) ما هي نماذج SDLC المتاحة؟
يعد نموذج الشلال، والنموذج الحلزوني، ونموذج الحقيبة الكبيرة، والنموذج التكراري، والنموذج V من بعض النماذج الشهيرة نماذج SDLC.
6) ما هو التحقق والتحقق؟
التحقق:
التحقق هو مصطلح يشير إلى مجموعة الأنشطة التي تضمن قيام البرنامج بتنفيذ وظيفة محددة.
التحقق من الصحة:
يشير إلى مجموعة الأنشطة التي تضمن بناء البرامج وفقًا لاحتياجات العملاء.
7) في عملية تطوير البرمجيات ما هو معنى تصحيح الأخطاء؟
تصحيح الأخطاء هو العملية التي تؤدي إلى إزالة الخطأ. إنه جزء مهم جدًا من الاختبار الناجح.
8) كيف يمكنك التأكد من أن الكود الخاص بك آمن وسريع؟
في البرمجيات، يأتي أمان التطوير دائمًا في المقام الأول. لذا، إذا كان تنفيذ البرنامج بطيئًا، فسأحاول تحديد أسباب تعقيده الزمني.
9) اذكر الأداتين اللتين تستخدمان لتتبع متطلبات البرامج؟
هناك العديد من الطرق لتتبع المتطلبات.
اثنان شائع الاستخدام هما:
- قم بإعداد وثيقة مواصفات المتطلبات لسرد جميع المتطلبات.
- قم بإنشاء ورقة Excel تتضمن القائمة أسفل المتطلبات، والنوع، والتبعية، والأولوية، وما إلى ذلك.
10) ما هو الفرق الرئيسي بين بذرة، وهمية؟
كعب الروتين هو الحد الأدنى من تنفيذ الواجهة التي تُرجع بشكل عام البيانات المشفرة بينما عادةً ما يتحقق الوهمي من المخرجات مقابل التوقعات. يتم تحديد هذه التوقعات في الاختبار.
11) ما هي اللغة التي تفضلها لكتابة خوارزميات البرمجة؟
كل مطور لديه وجهات نظره الخاصة عندما يتعلق الأمر بخيارات لغة البرمجة. ومع ذلك، ينبغي للمرء أن يفضل اللغات عالية المستوى لأنها ديناميكية. مثل ج و C++ كلغات متعددة.
12) ما هي برامج الكمبيوتر؟
برامج الكمبيوتر عبارة عن حزمة تتضمن برنامجًا ووثائقه ودليل المستخدم حول كيفية استخدام البرنامج.
13) ما هو أفضل نموذج من نماذج SDLC في نظرك؟
لا يوجد مثل هذا التصنيف، حيث يتم اعتماد نماذج SDLC وفقًا لحاجة عملية التطوير. قد يختلف من برنامج إلى آخر.
14) من هو مدير المشروع البرمجي؟ ما هو دوره؟
مدير مشروع البرمجيات هو الشخص المسؤول عن إدارة مشروع تطوير البرمجيات.
يقوم مدير المشروع بتخطيط المشروع ومراقبة التقدم والتواصل. ويقوم أيضًا بإدارة المخاطر والموارد لتسليم المشروع ضمن قيود الوقت والتكلفة والجودة.
15) ما المقصود بنطاق البرمجيات؟
نطاق البرنامج هو حدود محددة جيدا. ويشمل جميع أنواع الأنشطة التي يتم إجراؤها لتطوير منتج البرنامج وتقديمه.
يحدد نطاق البرنامج كافة الوظائف والعناصر التي سيتم تسليمها كجزء من البرنامج. يحدد النطاق أيضًا ما الذي سيفعله المنتج؟ ما هو ليس جزء من المشروع؟ ما هو تقدير المشروع؟
هذه العملية مفيدة لتقدير الجوانب المختلفة لمنتج البرنامج. يمكن تحديد هذا التقدير إما باستشارة الخبراء أو باستخدام صيغ محددة مسبقًا.
16) كيف تجد حجم منتج البرنامج؟
يمكن حساب حجم المنتج البرمجي باستخدام الطريقتين التاليتين
- عد سطور التعليمات البرمجية التي تم تسليمها
- عد النقاط الوظيفية المسلمة
17) ما هي النقاط الوظيفية؟
النقاط الوظيفية هي الميزات التي يوفرها منتج البرنامج. ويعتبر من أهم القياسات لحجم البرنامج.
18) ما هي تقنيات تقدير المشاريع البرمجية المتاحة؟
تقنيات التقدير الأكثر استخدامًا هي:
- تقنية التحلل
- تقنية تجريبية
19) ما هي إدارة تكوين البرمجيات؟
إدارة تكوين البرامج هي عملية تتبع والتحكم في التغييرات التي تحدث في البرنامج.
التحكم في التغيير هو وظيفة تضمن أن تكون جميع التغييرات التي يتم إجراؤها في نظام البرنامج متسقة ويتم إنشاؤها باستخدام القواعد واللوائح التنظيمية.
20) كيف يمكنك قياس تنفيذ المشروع؟
يمكننا قياس تنفيذ المشروع باستخدام مراقبة النشاط وتقارير الحالة وقوائم مراجعة المعالم.
21) أخبرني عن بعض أدوات إدارة المشاريع.
هناك أنواع عديدة من أدوات الإدارة المستخدمة حسب الحاجة لمشروع برمجي. بعضها عبارة عن مخطط بيرت، ومخطط جانت، والرسم البياني للموارد، وتقارير الحالة، وما إلى ذلك.
22) ما هي متطلبات البرامج؟
متطلبات البرمجيات هي وصف وظيفي لنظام البرمجيات المقترح. ومن المفترض أن يكون وصفًا للنظام المستهدف ووظائفه وميزاته.
23) ما هي دراسة الجدوى؟
إنه إجراء لمعرفة مدى فائدة تطوير مشروع البرمجيات للمنظمة ومدى فعاليته. يقوم محلل البرمجيات بإجراء دراسة لمعرفة الجدوى الاقتصادية والفنية والتشغيلية للمشروع.
- الاقتصادية: ويشمل تكلفة التدريب وتكلفة الأدوات الإضافية والتقدير العام لتكاليف وفوائد المشروع.
- التقنية: ويقوم بتقييم الجانب الفني. هل من الممكن تطوير هذا النظام؟ تقييم مدى ملاءمة الجهاز (الآلات) ونظام التشغيل الذي سيتم تنفيذ البرنامج عليه، ومعرفة تطوير البرامج والأدوات المتاحة لهذا المشروع.
- Operaمسألة: هنا يحتاج المحلل إلى تقييم أن المنظمة سوف تكون قادرة على التكيف بسلاسة مع التغييرات التي تم إجراؤها حسب الطلب على المشروع. هل المشكلة تستحق الحل بالتكلفة المقدرة؟
وبعد دراسة كل هذا يتم إنشاء تقرير الجدوى النهائي.
24) ما هي المتطلبات الوظيفية وغير الوظيفية؟
المتطلبات الوظيفية هي ميزات وظيفية يتوقعها المستخدمون من منتج البرنامج المقترح.
ترتبط المتطلبات غير الوظيفية بالأمان والأداء والشكل والمظهر لواجهة المستخدم.
25) ما هو مقياس البرمجيات؟
تقدم مقاييس البرمجيات مقاييس لمختلف جوانب عملية البرمجيات والتي تنقسم إلى:
- مقاييس المتطلبات: متطلبات الطول، والاكتمال
- مقاييس المنتج: عدد خطوط الترميز والمقاييس الشيئية ومقاييس التصميم والاختبار.
26) ما هو النمطية؟
Modularization هي تقنية تستخدم لتقسيم نظام برمجي إلى وحدات منفصلة مختلفة. ومن المتوقع أن يقوم بالمهام بشكل مستقل.
27) ما هو التماسك؟
التماسك هو مقياس يحدد الاعتمادية الداخلية بين عناصر الوحدة.
28) يذكر بعض أدوات تحليل وتصميم البرمجيات؟
ومن أهم أدوات تحليل وتصميم البرمجيات ما يلي:
- مخططات تدفق البيانات
- الرسوم البيانية المنظمة
- اللغة الإنجليزية المنظمة
- قاموس البيانات
- مخططات مخرجات عملية الإدخال الهرمية
- مخططات علاقة الكيان وجداول القرار
29) ما المقصود بمخطط تدفق البيانات من المستوى 0؟
أعلى مستوى من التجريد يسمى المستوى 0 من DFD. ويسمى أيضًا DFD على مستوى السياق. إنه يصور نظام المعلومات بأكمله كرسم تخطيطي واحد.
30) ما هو الفرق الرئيسي بين اللغة الإنجليزية المنظمة والرمز الزائف؟
اللغة الإنجليزية المنظمة هي اللغة الإنجليزية الأصلية. يتم استخدامه لكتابة هيكل وحدة البرنامج. ويستخدم الكلمات الرئيسية لغة البرمجة. من ناحية أخرى، فإن Pseudo Code تشبه لغة البرمجة دون بناء جملة أي لغة معينة.
هندسة البرمجيات فيفا أسئلة وأجوبة للخبرة
31) ما هو التصميم المنظم؟
التصميم المنظم هو تصور للمشكلة. ويسمى أيضًا تصميم الحلول والذي يعتمد على استراتيجية "فرق تسد".
32) ما هي البرمجة الوظيفية؟
إنها طريقة برمجة تستخدم مفاهيم الدالة الرياضية. وهي توفر وسائل الحساب كدالات رياضية، والتي تنتج أيضًا نتائج بغض النظر عن حالة البرنامج.
33) ما هو ضمان الجودة مقابل مراقبة الجودة؟
يتحقق ضمان الجودة من اتباع العملية الصحيحة أثناء تطوير البرنامج بينما تتعامل مراقبة الجودة مع الحفاظ على جودة منتج البرنامج.
34) ما هي أدوات القضية؟
CASE يعني بمساعدة الكمبيوتر هندسة البرمجيات. وهي عبارة عن مجموعة من برامج التطبيقات الآلية، والتي تستخدم لدعم وتعزيز وتقوية أنشطة SDLC.
35) ما هو نموذج العملية الذي يزيل العيوب قبل أن يتعرض البرنامج للمشاكل؟
تعمل طريقة هندسة برمجيات الغرفة النظيفة على إزالة العيوب قبل أن يتعرض البرنامج للمشاكل.
36) حل هذه المشكلة
يوجد عشرون جوربًا مختلفًا من نوعين في درج في غرفة واحدة مظلمة. ما هو الحد الأدنى لعدد الجوارب التي يجب عليك أخذها للتأكد من أن لديك زوجًا مطابقًا؟
إذا التقطت ثلاثة جوارب، فقد تكون من نفس النوع حتى لو كانت الاحتمالات 50%. الصعاب أبدا حقيقة متساوية. ولذلك، فإن الطريقة الوحيدة "لضمان حصولك على زوج مطابق" هي التقاط ما لا يقل عن 11 عددًا من الصدمات.
37) كيف يمكنك التأكد من أن الكود المكتوب الخاص بك يمكنه التعامل مع أنواع مختلفة من حالات الخطأ؟
يمكنني كتابة اختبارات تحدد حالات الخطأ المتوقعة.
38) اشرح الاختلافات بين الخيط والعملية؟
العملية هي مثيل لبرنامج الكمبيوتر. في برنامج واحد، من الممكن أن يكون هناك موضوع واحد أو أكثر.
39) أخبرني ما الفرق بين EXE وDLL؟
يعد exe برنامجًا قابلاً للتنفيذ بينما DLL هو ملف يمكن تحميله وتنفيذه بواسطة البرامج ديناميكيًا. إنه مستودع كود خارجي للبرامج. نظرًا لأن كلاهما برنامجان مختلفان، أعد استخدام نفس ملف DLL بدلاً من وجود هذا الرمز في الملف الخاص بهما. كما أنه يقلل من مساحة التخزين المطلوبة.
40) ما هو التصنيف القوي والتصنيف الضعيف؟ أيهما أفضل؟ ولماذا؟
يتحقق النوع القوي من أنواع المتغيرات في وقت التجميع. من ناحية أخرى، يتحقق النوع الضعيف من أنواع النظام في وقت التشغيل. ومن بين هذه الأنواع، يفضل دائمًا النوع القوي لأنه يقلل من الأخطاء.
41) وصف الفرق بين البرمجة الموجهة للواجهة والبرمجة الشيئية والموجهة نحو الجانب.
- برمجة الواجهة تعتمد على العقد.
- كائنية التوجه هي طريقة لكتابة كائنات حبيبية لها غرض واحد.
- تهدف البرمجة الموجهة نحو الجانب إلى فصل التعليمات البرمجية بطريقة تجعل الكائنات المختلفة تحمل المهام الرئيسية، ويتم تنفيذ المهام الفرعية بواسطة كائنات مستقلة.
42) لماذا يعتبر استخدام الالتقاط (الاستثناء) دائمًا فكرة سيئة؟
إنها فكرة سيئة للأسباب التالية:
- نظرًا لعدم وجود متغير محدد، فليس من الممكن قراءة الاستثناء
- من الجيد استخدام استثناء عندما تكون لديك أنواع استثناءات معروفة.
43) ما نوع البيانات التي يتم تمريرها عبر رؤوس HTTP؟
يتم تمرير البرنامج النصي والبيانات التعريفية عبر رؤوس HTTP.
44) كيف تحدد أولويات المتطلبات؟
أولاً، تحتاج إلى تصميم نظام من خلال تقييم بنية البيانات. ثم يجب عليك الانتقال إلى بنية التعليمات البرمجية اللازمة لدعمه.
45) أعطني الاختلافات بين التصميم الموجه للكائنات والتصميم القائم على المكونات؟
يمكن بسهولة تغليف التصميم الموجه للكائنات إلى حد ما في التصميم القائم على المكونات.
46) متى تستخدم تعدد الأشكال؟
يتم استخدام تعدد الأشكال عندما تكون هناك حاجة لوظيفة التجاوز عند وراثة الفئة. يتعلق الأمر بالفصول المشتركة والعقود المشتركة.
47) ما الفرق بين المكدس وقائمة الانتظار؟
- قائمة الانتظار تكون دائمًا أول من يدخل أولاً يخرج أولاً
- المكدس دائمًا ما يدخل أولاً يخرج أولاً
48) ما هو الضروري لاختبار جودة الكود؟
بالنسبة لي، يعد إطار اختبار الوحدة ضروريًا لاختبار جودة الكود.
49) هل تعتقد أن صيانة البرمجيات مكلفة؟
بالنسبة لي، لن تكون صيانة البرامج باهظة الثمن أبدًا إذا استخدمنا عملية التطوير المناسبة.
50) أعطني الفروق بين العلامات والفروع؟
العلامات مخصصة لإصدارات الإصدارات التي تعد أماكن احتجاز مؤقتة للقيام بمثل هذا الشيء. ومع ذلك، يتم حذف الفروع عندما يتم دمج هذه التغييرات في صندوق السيارة.
51) أين يتوفر متغير مستوى الفصل المحمي؟
تتوفر متغيرات مستوى الفئة المحمية لأي فئة فرعية مشتقة من الفئة الأساسية.
52) هل من الممكن تنفيذ كتل التقاط متعددة لبيان محاولة واحد؟
نعم. يمكن تنفيذ كتل التقاط متعددة لبيان محاولة واحد.
53) متى تحتاج إلى إعلان الفصل كمجرد؟
ينبغي علينا أن نعلن عن فئة باعتبارها مجردة في المواقف التالية:
- عندما يتم وراثة الفصل من فئة مجردة، ولكن لم يتم تجاوز جميع الأساليب المجردة.
- في حالة الإعلان عن إحدى الطرق في الفصل على الأقل كملخص.
54) قم بتطوير خوارزمية تقوم بإخراج موقعك الحالي وقائمة بمواقع أجهزة الصراف الآلي في تلك المنطقة. احصل على أقرب أجهزة الصراف الآلي K لموقعك.
قم بإنشاء طريقة getDistance(a, b) التي تحسب المسافة بين a وb.
رمز:
import java.util.HashMap; import java.util.Map; import java.util.PriorityQueue; public class PrioRQueueExample { public static void main(String[] args){ PriorityQueue<Double> pq = new PriorityQueue<Double>((x,y)-> {Double z = y-x;return z.intValue(); }); PrioRQueueExample pqe = new PrioRQueueExample(); //Number of ATMs to return i.e. K int num_ATMs = 3; double curr_loc = 0.00; Map<String,Double> nallATMLocs = new HashMap<String,Double>(); //Map of ATM names and their distance co-ordinates nallATMLocs.put("atm1",45.0); nallATMLocs.put("atm2",78.0); nallATMLocs.put("atm3",54.0); nallATMLocs.put("atm4",64.0); nallATMLocs.put("atm5",35.0); nallATMLocs.put("atm6",42.0); nallATMLocs.put("atm7",57.0); nallATMLocs.put("atm7",1.00); nallATMLocs.forEach((atm,dist) ->{if(pq.size() < num_ATMs){ pq.add(pqe.getLocation(curr_loc,dist));} else{ if( pq.peek() > pqe.getLocation(curr_loc,dist)){ pq.poll(); pq.add(pqe.getLocation(curr_loc,dist)); } } }); pq.forEach(atmLoc -> System.out.println(atmLoc)); } private double getLocation(double curr,double atm){ return atm - curr; } }
ستساعد أسئلة المقابلة هذه أيضًا في حياتك (شفهي)