الدورة المستندية للمبيعات
تعريف الدورة المستندية للمبيعات :هي عملية تسويقية تتضمن الخطوات المحددة التي يجب اتباعها لتحقيق النجاح في المبيعات. وتشمل هذه الخطوات ...
مما لا شك فيه أن هندسة البرمجيات هي أكثر التخصصات التي أحدثت تطورا مجتمعيا هائلا وفتحت الأبواب للعديد من الوظائف وسهلت العديد من المهام في المجتمع ، حيث تعتبرأساسا لعمل الحكومات والشركات والمؤسسات الدولية والمحلية المختلفة .لا يمكن لعالمنا الحديث أن يتجرد من إلإعتماد الواضح والصريح علي البرامج التي تؤدي مختلف أشكال المهام التي تؤثر بشكل فعال علي تقدم المجتمع وتسهيل الحياة البشرية ومساعدة الأفراد والمؤسسات. يتم التحكم في البنى التحتية لمختلف الهئيات والمرافق الوطنية من خلال أنظمة قائمة على الحاسوب ، كما تشمل أغلب المنتجات الكهربائية حاليا نظاما حاسوبيا وبرامج تحكم، عمليات التصنيع والتوزيع الصناعي المختلفة أصبحت محوسبة بالكامل ، وكذلك الأنظمة المالية والبنوك ، و صناعة الموسيقى والأفلام والألعاب. في هذا المقال نستعرض ماهو هذا التخصص وأهم المفاهيم الأساسية المتعلقة به ومدي أهميته.
لفهم ما المقصود بهندسة البرمجيات Software Engineering)) ، ينبغي لنا أولا فهم ماذا يعني البرنامج (Software) وما المقصود ب (Engineering):
البرنامج (Software) : هو مفهوم أوسع من مجرد كود برمجي (Program code). هذا الكود البرمجي هو مجموعة من الأسطر بلغة برمجية معينة (كود برمجي)، موجهة لجهاز الحاسب لتنفيذ مهمة حسابية معينة ويسمي بالبرنامج (Program) . أما مصطلح البرنامج (Software) فهو مصطلح يعني مجموعة تشمل الكود البرمجي القابل للتنفيذ و المكتبات (Libraries) المرتبطة به والوثائق (Documentations) [1]. بمعني أنه برنامج أكثر تعقيدا ويمكن أن يحتاج إلى تعاون اكثر من شخص لتنفيذه. عندما يصمم البرنامج من أجل متطلبات معينة فإنه يعرف بالمنتج البرمجي (Software Product).
الهندسة (Engineering) : فهي تتمحور حول تطوير المنتجات ، باستخدام مبادئ وطرق علمية محددة جيدًا.
من هنا يمكن تعريف هندسة البرمجيات (Software Engineering) بأنه بمثابة فرع هندسي يرتبط بتطوير منتج برمجي وذلك بإستخدام مبادئ وطرق وأساليب علمية محددة جيدًا. الجدير بالذكر أن نتاج هندسة البرمجيات هو منتج برمجي (Software Product) فعال ودقيق . وفقا ل IEEE , فإن هندسة البرمجيات هي تطبيق منهجي ومنضبط ، وهو نهج محسوب لتطوير البرامج وتشغيلها وصيانتها [2].
الجدير بالذكر أنه يمكننا كتابة برنامج صغير(Small Program) بدون استخدام أي من مبادئ هندسة البرمجيات، ولكن عندما نريد تطوير منتج برمجي كبير ، فإن مبادئ هندسة البرمجيات تكون ضرورية للغاية من أجل الحصول علي برنامج عالي الجودة بتكلفة فعالة.
يمكن الحكم علي مدي جودة البرنامج وذلك من خلال ما يعرضه من خصائص تجعله جيدا وفعالا في الإستعمال . البرنامج الجيد يجب أن يحقق الخصائص التالية:
1- تشغيلي (Operational): تتيح هذه الخاصية معرفة مدي جودة عمل البرنامج والذي يمكن قياسها علي : الكفاءة ، الأمان، الحماية، سهولة الإستخدام، الإستقلالية،الميزانية، أداء الوظائف والصواب.
2- الصيانة (Maintenance) : تتيح هذه الخاصية التعرف علي مدى قدرة البرنامج على صيانة نفسه في البيئة المتغيرة والذي يمكن قياسها علي قابلية البرنامج الصيانة (Maintainability) و المرونة (Flexibility) و قابلية التوسع (Scalability) والنمطية (Modularity).
3- الإنتقالية (Transitional): وهذه الخاصية مهمة للغاية عند نقل البرنامج من منصة (Platform) إلي أخري ويمكن قياسها على القدرة علي التكيف (Adaptability) وقابلية إعادة الأستخدام (Reusability) والتوافقية (Interoperability).
تطوير البرمجيات هو بمثابة عملية تطوير منتج برمجي ولكن باستخدام مبادئ وطرق هندسة البرمجيات [3].
يشمل تطوير البرمجيات التطوير الأولي للبرنامج وصيانته وتحديثه إلي الصول الي منتج برمجي يفي بالمتطلبات المتوقعة.
يبدأ هذه العملية بجمع المتطلبات اللازمة(requirement gathering) وهي بمثابة متطلبات العميل التي يرغب للبرنامج في تحقيقها ومن ثم. يقوم المطورون بإنشاء نموذج أولي (Prototype) للبرنامج المقصود ويعرضوه على العملاء للحصول على ملاحظاتهم في المرحلة المبكرة من تطوير المنتج. قد يقترح المستخدمون اجراء بعض تغييرات إلي أن يتم إنجاز البرنامج المطلوب علي النحو المرغوب فيه .
تخصص هندسة البرمجيات هو بمثابة قاعدة مهمة لتطوير منتجات برمجية دقيقة وفعالة وذات تكلفة أقل وجودة أفضل تلبي الهدف المرغوب منها . يوما عن يوما تبرز أهمية هذا التخصص نظرا لزيادة متطلبات المستخدمين من الأفراد والمؤسسات نحو الحلول البرمجية المختلفة ، فهو بمثابة منهج يسهّل عملية بناء المنتجات البرمجية الضخمة معتمدا علي مبادئ هندسية تجعل من تطوير البرمجيات أمرا أسرع أكثر موثوقية وأسهل في تطويره وتحسينه وهو ما يعتبر الهدف الأساسي لهندسة البرمجيات. يستمر هذا التخصص في النمو ويفتح الأبواب للعديد من الوظائف التقنية المختلفة .
المراجع:
[1]: https://www.vssut.ac.in/lecture_notes/lecture1428551142.pdff
[2]: https://www.guru99.com/what-is-software-engineering.html
[3]: https://www.tutorialspoint.com/software_engineering/software_engineering_tutorial.pdf