بالنسبة لهندسة البرمجيات، فالاعتقاد الشائع أن هندسة البرمجيات أو الSoftware Engineering عبارة عن كتابة برامج الكمبيوتر أو البرمجة. بينما البرمجة هي إحدى مكونات هندسة البرمجيات.
و هذه المكونات هي:
- Project Managment: إدارة مشاريع.
- User Documentation: إعداد ملفات المستخدمين.
- Software Design: تصميم البرنامج.
- Software Specification: تحديد متطلبات البرنامج.
- User Interface Design: تصميم واجهة المستخدم.
- Hardware Consideration: تحديد المستلزمات من المكونات الصلبة التي تتناسب مع عمل البرنامج.
- Programing: كتابة البرنامج و هو عبارة عن كود يتكون من عدد من الأوامر.
- Testing: مرحلة اختبار البرنامج و التأكد من صحة تشغيله و خلوه من الأخطاء.
إن هندسة البرمجيات تقارب إلى حد كبير هندسة إدارة النظم، حيث تتم العمليات في هندسة البرمجيات على عدد من الخطوات و المراحل:
1- المرحلة الأولى تبدأ بمكالمة هاتفية:
حيث يتصل العميل و يبدأ بعرض مشكلته، فمثلا يحتاج نظام حماية لشركته، أو نظام صرف آلي لبنك، أو ممكن أن يكون صاحب مكتبة أو متجر و يريد تغير نظام البيع و الشراء أو العرض ليتم بشكل آلي.
2-Requirments Analysis:
في هذه المرحلة يتقابل العميل مع المهندس لمعرفة تفاصيل أكثر عن البرنامج الذي يريده و الشروط التي يجب توافرها، في هذه الحالة يمكن لمهندس البرمجيات معرفة كل تلك التفاصيل من خلال طرح مجموعة من الأسئلة المتخصصة لمعرفة كافة احتياجات المشروع.
3-Specifications:
في هذه المرحلة يعقد اجتماع مع فريق العمل، حيث يتم شرح المشكلة من جميع جوانبها لفهمها فهما تاما، و فتح مجال النقاش و تحديد الطريقة المثلى لإعداده بحيث تتناسب مع الميزانية المحددة و فترة الإعداد. كذلك يتم في هذه المرحلة كتابة العقد بين شركة البرمجيات و العميل.
4-Design:
بعد توزيع المهام على المختصين من فريق العمل، يقوم المصممون في هذه المرحلة بتحديد و رسم مخطط التصميم الذي يتناسب مع المتطلبات المتفق عليها سابقا. فهناك العديد من القوالب و النماذج يتم التصميم على أساسها، فتصنف بعضها على حسب تحليل البيانات و عرضها، و البعض على حسب التسلسل الزمني أو الفترة الزمنية المحددة، وأخرى على حسب بيئة التصميم و غيرها.
5-Implementation (أو التطبيق):
حيث يتم ترجمة التصميم في المرحلة السابقة إلى عمل فعال و منتج باستخدام إحدى لغات البرمجة المناسبة لبرمجة النظام على أيدي مبرمجين، و اختباره قبل التسليم.