عزيزي alkaser أن أعرف جيدا معنى هندسة البرمجيات فأنا مهندس برمجيات
واليك ما يلي:
هندسة البرمجيات: هي فرع من فروع الهندسة يقوم على مجموعة أسس و قواعد تهدف إلى تصميم و تطوير البرامج بوفرة و نوعية عالية تلبي احتياجات المستخدمين, هذا الفرع من الهندسة يتميز بأنه لايحتاج الى رأس مال كبير و بالتالي الخسارة فيه قليلة على عكس بقية الهندسات, كما لا يكفي لإيجاد البرمجية المتكاملة و الجيدة عمل شخص واحد وإنما يتطلب ذلك فريقاً من المهندسين الجيدين.
-هي دراسة نظامية لعملية تحليل و تصميم لبرامج الحاسوب و التي تشمل وسائل و أدوات بناء برامج الحاسوب. كما تدرس هندسة البرامج دورة حياة البرامج، وتعطي أشكالاً متعددة لعملية بناء البرامج. و يتضمن هذا العلم هندسة البرامج المدعومة من الحاسوب.
لهندسة البرمجيات أهمية كبيرة، إذ أنها تساعد في زيادة المردود لشركات البرمجة، ومستخدمي البرامج، من خلال التوزيع السليم للموارد المتوفرة، والتصميم الجيد لهذه البرامج. مما يقلل من تكاليف إنتاج البرامج، مع زيادة وتحسين مستوى الجودة في هذه البرامج.
أدى توسع مجالات استخدام الحاسوب إلى زيادة تعقيد المسائل التي تتطلب إلى حل بينما ظل تصميم وتطوير البرامج يعتمد على تقنيات غير منظمة ( AD HOC Techniques ). كانت مرحلة تطوير البرمجيات تفتقر إلى المعايير و بذلك كان يتم في كل برنامج ابتكار ما قد تم ابتكاره سابقا في برنامج آخر. نتج عن ذلك فشل العديد من المشاريع البرمجية ، أو زيادة الوقت اللازم لإنجازها. وحتى تلك النظم البرمجية التي تم تصميمها و إنجازها كانت غالبا ما تعاني من نقص في الوثوقية و ظهور العديد من الأخطاء التي لم يكن بالإمكان توقعها إضافة لدعم وثائقي ضعيف و عدم تلبيتها للشروط و المتطلبات التي وضعت لأجلها بشكل كامل. لحل هذه المشاكل و الصعوبات كان من اللازم إعادة النظر و تقيم جميع الجوانب المتعلق بتصميم و تطوير البرمجيات. مما أدى إلى ظهور هندسة البرمجيات كنتيجة للنقاشات حول ما عرف بأزمة البرمجيات حيث تم لأول مرة الإشارة إلى طرق تصميم وتطوير البرامج.
وأحد أحدث أساليب هندسة البرامج هي ما يُعرف بـ UML و هي طريقة تُستخدم لتمثيل مكونات النظام و المتفاعلين معه. وهذه الطريقة أصبحت تناسب البرامح الحديثة التي يتم تطويرها و برمجتها بلغات كائنية التوجه Object Oriented Languages.
و قد أصبحت مهنة البرمجة مهنة دارجة جداً حتى أصبح كل من هب ودب يسمي نفسه مبرمجاً لذلك كان من الضروري إيجاد هندسة البرمجيات لوضع الأسس و القواعد التي تصون هذه المهنة من المتطفلين بحيث يتميز البرنامج الجيد من غير الجيد.
مراحل بناء النظام البرمجي:
في هندسة البرمجيات إن بناء النظام البرمجي هي عملية إنتاجية لها عدة مراحل أساسية وضرورية للحصول على المنتج وهو البرنامج بأقل كلفة ممكنة وأفضل أداء, يطلق على هذه المراحل اسم دورة حياة النظام البرمجي Software Lifecycle قد يبدو بعضها ليس له علاقة بالبرمجة:
1-التحليل
و في هذه العملية يتم تحديد المتطلبات و المهام التي سيقوم بها البرنامج, و وصف هذه المهام بدقة تامّة, كما يتم دراسة الجدوى من البرنامج, فالمستخدم مثلاً يضع تصوراً للبرنامج ليقوم بعمليات معينة ومهمة مهندس البرمجيات في هذه المرحلة هي استخلاص هذه الأفكار وتحديدها لذلك فهي تتطلب مهارة عالية في التعامل مع الزبائن وقدرة على التحليل الصحيح. ينتج في نهاية هذه المرحلة وثيقة تدعى جدول الشروط والمواصفات.
2-التصميم
يتم تقسيم البرمجية الى كتل وتعريف العلاقات بين هذه الكتل ثم التفصيل في هذه الكتل و وضع الخوارزميات الملائمة لكل كتلة, في نهاية هذه العملية تكون البرمجية جاهزة لعملية الترميز, كما يتم اختيار لغة أو لغات البرمجة الملائمة لهذا البرنامج.
3-الترميز
هو كتابة الكود وهو اهم مرحلة في بناء النظام البرمجي وهي تحويل الخوارزميات السابقة الى إحدى اللغات البرمجية و التأكد من صحتها لكل كتلة من الكتل.
4-الاختبار و المكاملة
يتم جمع الكتل مع بعضها و اختبار النظام للتأكد من موافقته لجدول الشروط و المواصفات و خاصة اذا كانت الكتل قد كتبت من قبل عدة أعضاء في الفريق.
5-التوثيق
و هي مرحلة هامة من مراحل بناء النظام البرمجي حيث يتم توثيق البناء الداخلي للبرنامج وذلك بغرض الصيانة والتطوير.
6-الصيانة و التطوير
ن هذه المرحلة هي المرحلة الأطول في حياة النظام البرمجي لبقاء النظام قادراً على مواكبة التطورات و المعدات الحديثة, جزء من هذه المرحلة يكون في تصحيح الأخطاء والجزء الآخر يكون في التطوير و إضافة تقنيات جديدة. إن هذه الخطوات كما نلاحظ مشابهة لخطوات الإنتاج في الهندسات الأخرى.
ولكن اخي الكريم البرمجة هي الاصل وهي اقدم من هندسة البرمجيات بكثير
هندسة البرمجيات استخدمت كمفهوم نظري من حين لآخر في أواخر الخمسينات و بداية الستينات من القرن الماضي . أما الاستخدام الرسمي الأول لهذا المصطلح فكان في مؤتمر عقد من قبل اللجنة العلمية في منظمة حلف شمال الأطلسي 1968 حول البرمجيات, وقد أخذ هذا المصطلح بالانتشار منذ ذلك الحين و لاقى اهتماماً متزايداً في نواحٍ مختلفة
وظهر هذا العلم بسبب ازمة البرامج التي حدثت في السبعينات والثمانيات وتم الاتفاق على هذا العلم
للتوحيد بين طرق المبرمجين في البرمجة ولتفادي الوقوع في الاخطاء وليكون هذا العلم مرجع لهم في عمل البرامج
أي ان المبرمج المحترف يستطيع الاطلاع على هذه الاسس والقواعد وانتاج برنامج ذو جودة عالية