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

موضيع عن التكنولوجيا الحديثة وأيضاً في مجال الكمبيوتر
أضف رد جديد
انس محمدالمشرقي
مشترك في مجالس آل محمد
مشاركات: 13
اشترك في: الجمعة ديسمبر 16, 2005 3:50 pm
مكان: اليمن

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

مشاركة بواسطة انس محمدالمشرقي »

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

Nader
مشرفين مجالس آل محمد (ع)
مشاركات: 1060
اشترك في: السبت إبريل 09, 2005 6:22 pm

مشاركة بواسطة Nader »

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

تحياتي
صورة

أضف رد جديد

العودة إلى ”مجلس الكمبيوتر و التكنولوجيا“