معلومات عن هندسة البرمجيات Yazılım Mühendisliği

هندسة البرمجيات

الحمد لله و الصلاة و السلام على رسول الله في هذا المنشور و المنشور الذي يليه ان شاء الله رح احاول اجمع اغلب تساؤلات الطلبة حول فرع هندسة البرمجيات : ما هو ؟  ما هي الخوارزمية ؟  الفرق بينه و بين هندسة الحاسوب ؟ اهميته ...

في اخر المنشور ان شاء الله رح احط المزيد من المصادر لمن يريد الاستزادة .

المنشور الاول : تعريف عام بالفرع و أهم مصطلحاته :

1) ما هي الخوارزمية ؟

هي سلسلة الخطوات المتتالية و المنتهية و المعرفة جيدا لحل مشكلة ما .

الخوارزمية هي الخلفية المنطقية لأي برمجية كانت و هي اهم جزئية فيها لأنها من تحدد آلية عمل البرمجية و العمليات التي يجب تنفيذها تِباعاً لإيجاد حل المشكلة ، يمكن تشبيه الخوارزمية بالمحرك الذي يعد الأساس في أي سيارة (برمجية) .

بعض المشاكل البرمجية لا يمكن حلها عبر تسلسل العمليات فقط و لذلك قد نحتاج إلى اختبار بعض الشروط (الجمل الشرطية) أو لتكرار مجموعة معينة من العمليات (الجمل التكراراية) لحلها ، إن اي خوارزمية (برمجية) كانت لا تحتاج اكثر من هذه البنى الثلاثة لحل أي مشكلة (التسلسل – الشرط - التكرار) .

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

2)ما هي البرمجية ؟

هي عبارة عن برنامج أو مجموعة من برامج الحاسوب المتكاملة و المصممة لأداء وظيفة معينة ( كل ما هو غير ملموس داخل جهاز الحاسوب ) .

تتكون البرمجية من خمسة مكونات رئيسية : البرنامج + العامل الانساني (المستخدم او المطور) + البيانات + التوثيق + منطق البرمجية (الخوارزمية) .

و بذلك و بالعودة الى مثال السيارة تمثل مكونات البرمجية أجزاء السيارة التي بجمعها معا تتشكل سيارة قادرة على أداء وظيفتها .

3) ما هي هندسة البرمجيات ؟

هي الهندسة التي تُعنى بتصميم البرمجيات وفق نماذج و معايير مرتبة و قابلة للقياس و ذلك لإنتاج برمجيات عالية الجودة (نقل الانتظام الموجود في الأفرع الهندسية الى جميع مراحل تطوير البرمجيات ) .

4) ما هو سبب تواجد هذا الفرع و ما الفرق بينه و بين هندسة الحاسوب ؟

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

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

و لذلك يُلاحظ وجود الكثير من المواد النظرية في فرع هندسة البرمجيات التي تحكم آلية تطوير البرمجيات في كل مرحلة من المراحل .

5) ما هي مراحل تطوير (دورة حياة) البرمجيات ؟

دورة حياة البرمجيات تتكون بشكل عام من : جمع المتطلبات – التخطيط – التحليل – تصميم البرمجية – البرمجة - الفحص (الاختبار) – صيانة البرمجية (الرعاية) .

قد تختلف طرق تنفيذ هذه العمليات حسب النموذج المستخدم إلا أنه و بالنهاية يجب تنفيذ أغلبها على الأقل للحصول على برمجية فعالة.

6) ما هو الفرق بين البرمجة و هندسة البرمجيات ؟

البرمجة هي عبارة عن كتابة الكود الخاص بالبرمجية فقط و بالتالي تقابل مرحلة (تصميم البرمجية) اما هندسة البرمجيات هي بناء النظام البرمجي بشكل متكامل (القيام بجميع مراحل دورة حياة البرمجية من تخطيط و تحليل و تصميم و .... )

7) ما هي مجالات العمل في هندسة البرمجيات ؟

اصبحت البرمجيات جزءا كبيرا من كل القطاعات لذلك فمجال عمل مهندس البرمجيات واسع جدا سواء في تطوير الانظمة او المواقع او الالعاب وصولا الى انظمة الدفاع و مركبات الفضاء و يختلف مجال العمل باختلاف الاختصاص الذي يختاره مهندس البرمجيات لنفسه بعد الانتهاء من دراسة الفرع.

في المنشور القادم ان شاء الله رح اتناول معلومات عن فرع هندسة البرمجيات في الجامعات التركية كيفية التحضير قبل الدخول مع اهم الملاحظات اللازم التركيز عليها قبل بدء العام الدراسي للطالب الجديد .

ما اخطأت في ذكره في هذا المنشور فمني و ما أصبت به فمن الله .

المصادر :

- فهم الخوارزميات بشكل مبسط (محاضرات قصيرة باللغة التركية) :

https://www.youtube.com/watch?v=Q2DoA4HID5A&list=PLR_3k5Bkz0SBA9PoV6DrxpghD7pqPScGJ

- فهم الخوارزميات بشكل مبسط (كتاب باللغة العربية) :

https://docs.google.com/viewerng/viewer?url=http://books-library.online/files/download-pdf-ebooks.org-ku-18640.pdf&hl=ar

- شرح فرع هندسة البرمجيات بشكل متعمق (عروض تقديمية باللغة التركية)  :

http://muhammetbaykara.com/wp-content/uploads/2017/02/1.pdf

- شرح فرع هندسة البرمجيات بشكل متعمق (محاضرات باللغة التركية)  :

https://www.youtube.com/watch?v=-2tzE5NWDPI&list=PLR_3k5Bkz0SBGQHDvzoYk0FU3UUbTQSWz


إرسال تعليق

أضف تعليقك على المقال

أحدث أقدم