بحث باسم الموضوع المطلوب

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

 




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


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


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


ما خصائص البرمجيات الجيدة ؟


أزمة البرمجيات وحلها لماذا تحظى هندسة البرمجيات بشعبية؟


توضيح معني هندسة البرمجيات وخصائصها والهدف منها وأبرز التحديات التي تواجه المبرمجين في هندسة البرمجيات .


تُعرَّف هندسة البرمجيات بأنها عملية تحليل متطلبات المستخدم ثم تصميم وبناء واختبار تطبيق برمجي يفي بهذه المتطلبات. 


لنلقِ نظرة على التعريفات المختلفة لهندسة البرمجيات:


يعرّف IEEE ، في معياره 610.12-1990 ، هندسة البرمجيات على أنها تطبيق منهجي ومنضبط ، وهو نهج قابل للحساب لتطوير البرامج وتشغيلها وصيانتها.



عرّفها فريتز باور بأنها "التأسيس والمبادئ الهندسية القياسية المستخدمة يساعدك في الحصول ، اقتصاديًا ، على برنامج موثوق به ويعمل بكفاءة على الأجهزة الحقيقية.


يعرّف Boehm هندسة البرمجيات ، والتي تتضمن ، "التطبيق العملي للمعرفة العلمية على التصميم الإبداعي وبناء برامج الكمبيوتر. ويتضمن أيضًا الوثائق ذات الصلة اللازمة لتطويرها وتشغيلها وصيانتها.


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


وما هي أزمة البرمجيات؟


* كان ذلك في أواخر الستينيات عندما فشلت العديد من مشاريع البرمجيات أصبحت العديد من البرامج أكثر من الميزانية.


* كانت المخرجات عبارة عن برنامج غير موثوق به ومن المكلف صيانته 


* البرامج الأكبر كانت صعبة ومكلفة للغاية للصيانة.


* الكثير من البرامج غير قادرة على تلبية المتطلبات المتزايدة للعملاء 


* زادت تعقيدات مشاريع البرمجيات كلما زادت قدرة الأجهزة 


* زاد الطلب على البرامج الجديدة بشكل أسرع مقارنة بالقدرة على إنشاء برامج جديدة. 


تؤدي جميع المشكلات المذكورة أعلاه إلى "أزمة برمجيات".


الحل :- 


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


* شهدت أواخر السبعينيات استخدامات واسعة النطاق لمبادئ هندسة البرمجيات.


* شهد الثمانينيات أتمتة عملية هندسة البرمجيات ونمو هندسة البرمجيات بمساعدة الحاسوب (CASE).


*  شهدت التسعينيات تركيزًا متزايدًا على جوانب "الإدارة" لمعايير الجودة والعمليات الخاصة بالمشروعات تمامًا مثل ISO 9001


لماذا تحظى هندسة البرمجيات بشعبية؟ 


فيما يلي أسباب مهمة وراء شعبية هندسة البرمجيات:


* البرامج الكبيرة -  عندما يصبح حجم البرنامج كبيرًا ، تساعدك هندسة البرمجيات على إنشاء البرنامج.



*  قابلية التوسع - إذا كانت عملية تطوير البرامج تستند إلى مفاهيم علمية وهندسية ، فمن الأسهل إعادة إنشاء برنامج جديد لتوسيع نطاق برنامج موجود.


* القدرة على التكيف: متى كانت عملية البرنامج تستند إلى العلم والهندسة ، فمن السهل إعادة إنشاء برنامج جديد بمساعدة هندسة البرمجيات.


* أظهرت صناعة الأجهزة من حيث التكلفة مهاراتها وقد أدى التصنيع الضخم إلى خفض تكلفة الكمبيوتر والأجهزة الإلكترونية.


* إدارة الجودة: تقدم طريقة أفضل لتطوير البرمجيات لتوفير منتجات برمجية عالية الجودة.


علاقة هندسة البرمجيات بالتخصصات الأخرى


  كيف ترتبط هندسة البرمجيات بالتخصصات الأخرى: 


* علوم الكمبيوتر: يعطي الأساس العلمي للبرنامج حيث تعتمد الهندسة الكهربائية بشكل أساسي على الفيزياء.


* علوم الإدارة: هندسة البرمجيات هي عمل كثيف العمالة يتطلب تحكمًا فنيًا وإداريًا لذلك ، يستخدم على نطاق واسع في علوم الإدارة.


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


* هندسة النظم : معظم البرامج هي أحد مكونات نظام أكبر بكثير على سبيل المثال ، البرنامج في نظام مراقبة الصناعة أو برنامج الطيران على متن طائرة يجب تطبيق أساليب هندسة البرمجيات لدراسة هذا النوع من الأنظمة.


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


 فيما يلي بعض التحديات الحرجة التي يواجهها مهندسو البرمجيات:


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


* متطلبات السوق المتزايدة لوقت إنجاز سريع. 


* التعامل مع التعقيد المتزايد للحاجة البرمجية للتطبيقات الجديدة. 


* يجب أن يتواصل تنوع أنظمة البرامج مع بعضها البعض.


سمات منتجات البرمجيات


 تتضمن خصائص أي منتج برمجي الميزات التي يعرضها المنتج عند تثبيته وتشغيله إنها ليست الخدمات التي يوفرها المنتج بدلاً من ذلك فقد ارتبطوا بالسلوك الديناميكي للمنتجات واستخدام المنتج أمثلة على هذه السمات هي


الكفاءة - والموثوقية - والمتانة - وقابلية الصيانة


ومع ذلك ، فإن الأهمية النسبية لهذه الخصائص تختلف من نظام برمجي إلى آخر.


قابلية الصيانة :-  يجب أن يتطور البرنامج لتلبية المتطلبات المتغيرة للعملاء.


الاعتمادية :-  تتضمن الاعتمادية خصائص مختلفة يجب ألا تتسبب البرامج الموثوقة في أي ضرر مادي أو اقتصادي في وقت فشل النظام.


كفاءة- يجب أن لا يفرط تطبيق البرنامج في استخدام موارد النظام مثل الذاكرة ودورة المعالج.


السهولة - يجب أن يحتوي تطبيق البرنامج على واجهة مستخدم ووثائق محددة


يعد تحسين السمات أعلاه أمرًا صعبًا للغاية على سبيل المثال  يمكن أن يؤدي تقديم واجهة مستخدم أفضل إلى تقليل كفاءة النظام.


ملخص :-


هندسة البرمجيات هي عملية تحليل متطلبات المستخدم ثم تصميم وبناء واختبار تطبيق برمجي يفي بهذه المتطلبات الأسباب المهمة لاستخدام هندسة البرمجيات هي


1- البرامج الكبيرة 

2- قابلية التوسع 

3- القدرة على التكيف 

4- التكلفة 

 5- الطبيعة الديناميكية.


في أواخر الستينيات ، أصبح العديد من البرامج أكثر من الميزانية لذلك فهي تقدم برامج غير موثوقة وهي مكلفة للصيانة. 


شهدت أواخر السبعينيات استخدامات واسعة النطاق لمبادئ هندسة البرمجيات. 


 1- علوم الكمبيوتر

 2- علوم الإدارة

 3- هندسة النظم 

4- الاقتصاد


تعد طلبات السوق المتزايدة لوقت إنجاز سريع أكبر التحديات في مجال هندسة البرمجيات.


 1- قابلية الصيانة


 2- الاعتمادية 


 3- الكفاءة 


 4- قابلية الاستخدام هي أهم سمات منتجات البرامج.


* أهم ثلاث خصائص للبرامج الجيدة


  1- التشغيل


 2- الانتقالية


 3- الصيانة


المصدر