هي نوع من الهندسة يهتم بتطوير و بناء البرامج و تحسينها بطرق هندسية على عدة مراحل محددة هي:
- تحليل متطلبات و مواصفات البرنامج
- تصميم البرنامج
- برمجة البرنامج
- اختبار البرنامج
- صيانة البرنامج
تُطبق أساساً هندسة البرمجيات بهذه المراحل في بناء البرامج كبيرة الحجم بالذات، كبرامج الشركات و البرامج التقنية أو أنظمة الإدارة أو التشغيل, ذلك لأنها تحتاج إلى تحليل وتفصيل أكثر في مواصفاتها، و إلى تصميم بنيتها بطريقة مناسبة و منظمة ليسهّل ذلك عملية الإضافة عليها لاحقاً و في اختبارها و صيانتها. الهدف الأساسي من ذلك هو بناء برامج ذات مواصفات و جودة عالية High Quality Softwares.
بصورة مختصرة، تعريف لكل مرحلة من التطوير و ما ينتج عنها:
- تحليل متطلبات و مواصفات البرنامج
وفيها يتم جمع مواصفات البرنامج من الزبون، ثم دراستها و تحليلها و بيان الغامض و المتعارض منها، الناتج من هذه المرحلة: سرد المواصفات بتحليلاتها في مستند خاص يسمى (SRS (Software Requirements Specification – مستند مواصفات متطلبات البرنامج.- تصميم البرنامج
ولا يقصد فيها تصميم الشكل المظهري للبرنامج فقط، بل تصميم البرنامج كبنية و كلاسات و كائنات و تحليله من هذه النواحي. وتعتبر هذه المرحلة من أهم المراحل حيث تحدد فيها جودة البرنامج و تركيبه، و تستخدم اللغة الرسومية UML لهذا الغرض. توفر الـ UML العديد من التصاميم و الرسوم البيانية، كتصميم حالة الاستخدام Use Case Diagram و تصميم تسلسل الأحداث Sequence Diagram.
الناتج من هذه المرحلة عرض التصاميم و تحليلاتها مع مواصفات البرنامج في مستند باسم (SDD (Software Design De******ion – مستند وصف تصميم البرنامج.- برمجة البرنامج
وفيها يتم كتابة كود البرنامج. يعتمد المبرمج على مستند الـ SDD “فقط”، لذا، يجب كتابة مستند الـ SDD بتفصيل و عرض التصاميم بوضوح لمساعدة المبرمج على البرمجة.
النتيجة: الكود المصدري أو Source Code للبرنامج.- اختبار البرنامج
أولاً تُحدد الأساليب المناسب لاختبار البرنامج و تدرس بعناية، ثم تحدد مجموعة من حالات الاختبار أو Test Cases لتطبيقها على البرنامج و دراسة القيم الناتجة منها. في حالة وجود أخطاء و عيوب، يُعاد البرنامج إلى المختصصين في المراحل السابقة لفهم المشكلة و إصلاحها.
النتيجة: إصلاح عيوب البرنامج.- صيانة البرنامج
وهذه المرحلة تطبق بعد تسليم البرنامج إلى الزبون، حيث تهتم بصاينة المشاكل التي لم تكتشف في مرحلة الاختبار و تحديث البرنامج باستمرار لمواكبة التغييرات التقنية. و يوجد العديد من المراحل الأخرى كمرحلة توثيق معلومات التطوير في مستندات ، تسويق البرنامج ، التدريب، و غيرها.