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