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

عودة للموسوعة

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

هندسة البرمجيات بالإنجليزية: Software engineering هي فرع من فروع المعلوماتية تهدف إلى تطوير مجموعة أسس وقواعد تؤدي إلى تحسين طرق تصميم وتطوير البرمجيات على جميع المستويات؛ وذلك بكيفية تلبي احتياجات المستخدمين. هندسة البرمجيات لا تهتم بكتابة البرنامج نفسه أي بكتابة شفرته، بل تحاول تحسين عملية تطوير، وصنع البرنامج ابتدائا من المواصفات التي يضعها المحترف، وانتهاء عند معضلة صيانة البرنامج أوتوسيعه. وهي تقوم على دراسة احتياجات المستخدم وتصميم البرنامج المناسب لها قبل كتابة شيفرته، والأخذ بعين الاعتبار الكثير من الجوانب كالقدرة على تطوير البرنامج بسهولة لاحقا، أوالسرعة، أوإمكانية إضافة ملحقات له بشكل ديناميكي.

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

استخدمت هندسة البرمجيات كمفهوم نظري من حين لآخر في أواخر الخمسينات وبداية الستينات من القرن الماضي. أما الاستخدام الرسمي الأول لهذا المصطلح فكان في مؤتمر عقد من قبل اللجنة الفهمية في منظمة حلف شمال الأطلسي 1968 حول البرمجيات، وقد أخذ هذا المصطلح بالانتشار منذ ذلك الحين ولاقى اهتماماً متزايداً في نواح مختلفة. عقد المؤتمر لمعالجة مايعهد "أزمة البرمجيات" والتي ظهرت بسبب عدم استخدام منهجية في التفكير (Software Development Process)عند بناء البرمجيات، مما أدى إلى ظهور أخطاء كثيرة خلال عملية بناء وصيانة البرمجيات، وبالتالي أصبحت البرمجيات بحاجة إلى وقت كبير لتطويرها ولصيانتها، وكلفة مالية عالية أكثر مما هومخمن لها، وبعد تحمل التأخر في الوقت وتجاوز الميزانية كانت البرمجيات ذات كفاءة ضعيفة في إنجاز الوظائف المطلوبة، وقلة في الفعالية كذلك بعدم تلبية كافة المتطلبات بالشكل الكامل أو\والسليم.


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

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

مراحل بناء النظام البرمجي

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

وفيما يلي عرض لإحدى أشهر دورات حياة النظام البرمجي الكلاسيكية وهي دورة الشلال (Waterfall Model):

كتابة وثيقة الشروط الخارجية والداخلية

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

التحليلٍ

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

التصميم

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


الترميز

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

الاختبار والتكاملية

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

التوثيق

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

الصيانة والتطوير

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

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

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

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

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


الهيئات والمنظمات ودور النشر

المؤتمرات

  • أكبروأقدم مؤتمر لهندسة البرمجيات يعقد جميع عام ICSE) International Conference on Software Engineering)
  • أول مؤتمر كان عام 1977 COMPSAC

The Annual International Computer Software and Applications Conference

  • ESEC The European Software Engineering Conference
  • FSE The Foundations of Software Engineering مؤتمر يعقد جميع عام في أوروبا وشمال أمريكا
  • CUSEC Canadian University Software Engineering Conference
  • SEPG The annual Software Engineering Process Group
  • INFORMATICS-INFORMATIQUE
  • ICALEPS International Conference on Accelerator and Large Experimental Physics Control Systems
  • APSEC Asia Pacific Software Engineering Conference
  • UYMS National Software Engineering Symposium (in Turkish: Ulusal Yazilim Muhendisligi Sempozyumu)

المنظمات

  • Association for Computing Machinery (ACM)
  • Australian Computer Society (ACS)
  • British Computer Society (BCS)
  • Canadian Information Processing Society (CIPS) - Information Systems Professional certification.

IEEE Computer Society

  • Lero, the Irish Software Engineering Research Centre
  • Russian Software Developers Association (RUSSOFT)
  • Software Engineering Institute (SEI)
  • Software Industry Professionals
  • The Safety and Reliability Society
  • Software Engineering Competence Center
  • Software Process Reengineering and Improvement Campus - SPRIC
  • International Journal for Software Engineers

دور النشر

  • edit] Publications

Important publications in software engineering

  • CrossTalk: The Journal of Defense Software Engineering

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

  • أنظمة أمان البرمجياتSoftware System Safety
  • تحليل النظم Systems analyst
  • أزمة البرمجيات The Software Crises

وصلات خارجية

  • مقدمة في هندسة البرمجيات
  • مسقط هندسة البرمجيات العربي
تاريخ النشر: 2020-06-04 06:49:58
التصنيفات: حوسبة, هندسة تطبيقية, هندسة البرمجيات

مقالات أخرى من الموسوعة

سحابة الكلمات المفتاحية، مما يبحث عنه الزوار في كشاف:

آخر الأخبار حول العالم

القابضة للصناعات المعدنية توضح معايير تصفية الشركات

المصدر: الرئيس نيوز - مصر التصنيف: سياسة
تاريخ الخبر: 2022-06-09 21:25:48
مستوى الصحة: 52% الأهمية: 67%

القبض على صاحب فيديو الجلوس أعلى سطح قطار الصعيد

المصدر: الرئيس نيوز - مصر التصنيف: سياسة
تاريخ الخبر: 2022-06-09 21:25:50
مستوى الصحة: 55% الأهمية: 57%

شرطة بلجرشي تقبض على مقيم لمساعدته مخالفًا 

المصدر: اليوم - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-06-09 21:24:42
مستوى الصحة: 57% الأهمية: 52%

موجز العاشرة 9 يونيو 2022

المصدر: اليوم - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-06-09 21:24:46
مستوى الصحة: 56% الأهمية: 60%

«الطاقة الذرية» تندد بإغلاق إيران لـ 27 كاميرا لمراقبة أنشطتها

المصدر: اليوم - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-06-09 21:24:39
مستوى الصحة: 60% الأهمية: 53%

الأخضر يخسر أمام فنزويلا وديا

المصدر: اليوم - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-06-09 21:24:46
مستوى الصحة: 49% الأهمية: 59%

التنظيم والإدارة يوافق على تنفيذ قرارات تكليف 147 صيدلي بالمنوفية

المصدر: الرئيس نيوز - مصر التصنيف: سياسة
تاريخ الخبر: 2022-06-09 21:25:51
مستوى الصحة: 50% الأهمية: 53%

العقود الآجلة للنفط الأمريكي تنخفض 0.49 %

المصدر: اليوم - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-06-09 21:24:40
مستوى الصحة: 55% الأهمية: 60%

الأرصاد: درجات حرارة قصوى تؤثر على أجزاء كبيرة من العالم

المصدر: الرئيس نيوز - مصر التصنيف: سياسة
تاريخ الخبر: 2022-06-09 21:25:49
مستوى الصحة: 60% الأهمية: 51%

بعد توقف 9 سنوات.. مطار الأقصر يستقبل أولى الرحلات القادمة من قطر

المصدر: الرئيس نيوز - مصر التصنيف: سياسة
تاريخ الخبر: 2022-06-09 21:25:50
مستوى الصحة: 46% الأهمية: 60%

ضبط مواطن بحوزته 80 ألف قرصٍ من الإمفيتامين المخدِّر بعسير

المصدر: اليوم - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-06-09 21:24:44
مستوى الصحة: 51% الأهمية: 70%

مصر تسقط بثنائية امام أثيوبيا

المصدر: اليوم - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-06-09 21:24:48
مستوى الصحة: 59% الأهمية: 54%

منظمة الصحة: الصين تمنع الوصول لحقيقة منشأ كورونا

المصدر: اليوم - السعودية التصنيف: سياسة
تاريخ الخبر: 2022-06-09 21:24:52
مستوى الصحة: 56% الأهمية: 70%

تحميل تطبيق المنصة العربية