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

هندسة البرمجيات

يتكوّن الحاسوب من مكوّنين رئيسين، هما المكوّن الماديّ، ويُطلق عليه الهاردوير Hardware، والمكوّن الافتراضي ويُطلق عليه السوفتوير Software ، فالمكوّن الماديّ لا يستطيع العمل، بل لا يستطيع دخول دائرة الحياة العمليّة ابتداءً، إلا من خلال السوفتوير، وهو عبارة عن خريطة لمجموعة من المهام المحدّدة تمّ وضعها مسبقًا، ويجب على الحاسوب أدائها وفقًا لتلك الخريطة وما تشمله من تعليمات و أوامر، فوضع الخريطة وترميزها أو تشفيرها بلغة الآلة يُطلق عليه البرمجة، ودراسة المهمّة المطلوبة ذاتها وتحليلها، ووضع خريطة التدفّق، والخوارزميات اللازمة لأدائها، وترميزها بلغة الآلة، هو ما يطلق عليه هندسة البرمجيّات، وهي موضوع مقالنا، فتابعونا.

 

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

هندسة البرمجيّات هي إحدى الفروع المعلوماتيّة، والتي تهدف إلى وضع، وتطوير، وصيانة البرمجيات، بالطريقة التي تفي باحتياجات المستخدم الحالية والمستقبليّة، وهي لا تهتم بعمليّة التشفير أو الترميز البرمجيّ، بقدر اهتمامها بوضع البرنامج بطريقة احترافيّة قابلة للتطوير والصيانة، أو إضافة أيّ ملحقات برمجيّة إليه مستقبلًا، تلبّي احتياجات السوق، وتفي بالغرض المطلوب.

وللأهمية الخاصّة واتّساع مجال الهندسة البرمجيّة، تمّ إنشاء تخصّصات مستقلة في هندسة البرمجيّات بكليّات الهندسة، والمعاهد المتخصّصة في الدراسات الحاسوبيّة.

 

المراحل البرمجيّة

تعدّ البرمجة كما لو كانت مشروعَ عملٍ يبدأ بتحديد المهمّة، وينتهي بانهائها؛ ولذا تمرّ عمليّة البرمجة لأداء مهمّة معيّنة بعدّة مراحل، نوجزها في الآتي:

 

أولًا: المرحلة الشكليّة

وفي هذه المرحلة تتمّ دراسة المهمّة، كما لو طلب عميلٌ وضع برنامج محاسبيّ، يبدأ بحساب التكاليف لمنتج معيّن، ثمّ مراقبة البيع، واحتساب الأرباح أو الخسائر كل مدّة معيّنة، فيتمّ تحليل طلب العميل بشكل أوليّ؛ لإزالة أيّ تعارض في سلسلة المهمّة.

 

ثانيًا: المرحلة العمليّة

وهذه المرحلة هي المرحلة التطبيقيّة للهندسة البرمجيّة وتتمّ في الخطوات الآتية:

عمليّة التحليل التنفيذيّة: وفيها يتمّ تحديد المهام التي سينفّذها البرنامج، وتتمّ بدّقة متناهية؛ حيث يتمّ تقسيم المهمّة في تسلسل منطقيّ، على أن تحقّق هذه المعطيات النتيجة المرتقبة.

تصميم البرنامج: وفيها يتمّ وضع نقاط تسلسل المهمّة في الخطوة السابقة على هيئة خريطة تدفّق، وفقًا لكلّ الاحتمالات الممكنة، ووضع الخوارزميّات اللازمة لتلك الخريطة، وبذلك تصبح جاهزة للخطوة التالية.

عمليّة الترميز: وفيها يتمّ تحويل الخوارزميّات السابق وضعها إلى لغة البرمجة، ثمّ يتمّ ترميزها بلغة الآلة التي يفهمها الحاسوب.

عمليّة الاختبار: وفي تلك العمليّة يتمّ وضع البرنامج موضع التطبيق الاختباريّ، وتصحيح أي أخطاء تظهر، وحلّها برمجيًّا.

مرحلة التوثيق: وتتمّ من خلال وضع تعليقات ضمن الشفرة البرمجيّة، أو من خلال وضع مستندات لشرح البرنامج، والتعامل مع أيّ ظرف طارئ يعوق أداء المهمّة.

مرحلة الصيانة وتطوير البرنامج: وتعدّ هذه المرحلة من أطول مراحل البرنامج عمرًا، وفيها يتمّ وضع البرامج الثانوية لصيانة البرنامج إما تكون محمّلة على البرنامج ذاته، يتمّ استدعائها من قِبل المستخدم نفسه، وإما تكون بواسطة برامج فرعيّة مستقلة، تكون ملحقة مع البرنامج الأصليّ.

 

أو يتمّ إصدارها لاحقًا وفقًا لما يطرأ على البرنامج من مشاكل، تظهر عند التطبيق العمليّ من قِبل المستخدم، وكانت بعيدة عن التنبؤ بها عند إعداد البرنامج

.

الفرق بين عمليّة البرمجة والهندسة البرمجيّة

يوجد فرقٌ جوهريٌّ بين كل من البرمجة والهندسة البرمجيّة؛ حيث أن عمليّة البرمجة تعتبر هي الترميز الكوديّ لخريطة تدفّق المهمّة فقط، بينما الهندسة البرمجيّة تقوم ببناء نظام للبرنامج كمشروع كليّ مترابط، والبرمجة هي أحد مكوّناته.

بالإضافة إلى تقديم المساعدة الفنيّة، والصيانة البرمجيّة، والتسويق لما يتمّ وضعه من برامج متخصّصة، وتطويرها، والتدريب على استخدامها، كما أن الهندسة البرمجيّة يتمّ تنفيذها من قِبل فريق عمل متنوّع التخصّصات، في حين أن عمليّة البرمجة يمكن أن تتمّ من خلال متخصّص برمجيّ واحد.

تعتبر الهندسة البرمجيّة حديثة العهد نسبيًا، ولكنّها تتقدّم بقفزات هائلة، ويعوّل عليها المستقبل كل آماله، في حلّ وإنجاز جميع العمليّات التطبيقيّة في شتى المجالات، كالطبيّة والمحاسبيّة، والهندسيّة، والصناعيّة، وغيرها من المجالات المختلفة.

 

تخصصات هندسة البرمجيات

نظرًا لما تتمتّع به هندسة البرمجيّات من وزن نسبيّ، له قيمته وسط العلوم التطبيقيّة، والمعرفيّة الأخرى، استحدثت كثيرٌ من الجامعات هذا التخصص، ضمن تخصّصات كليّات الهندسة بها، كما أنشأت المؤسّسات البحثيّة معاهد متخصّصة في هذا المجال؛ لتمدّ الدارسين بالمعرفة النظريّة والتطبيقيّة؛ لإكسابهم مهارات بناء النظم المعلوماتيّة، وبناء المشروعات المتخصّصة في صناعة البرمجيّات، وسوف نتناول تخصّصات هندسة البرمجيّات على النحو الآتي:

 

الذكاء الاصطناعيّ Artificial Intelligence

وهو التخصّص الذي يعني بدراسة الأنظمة، والمكوّنات الإلكترونيّة، التي تقوم بمحاكاة الذكاء البشريّ في آداء المهامّ وحلّ المشكلات، والتي تقوم بالتغذية المرتدّة في تحسين آدائها، بالاستعانة بالمعلومات التي يتمّ تغذيتها بها، و تطويرها.

 

علم البيانات Data Science

وهو التخصّص الذي يدرس المعالجة الإلكترونيّة للبيانات، وكيفيّة وضع الخوارزميّات، وفقًا لخرائط الحلّ لكلّ مهمّة.

 

أمن النظم المعلوماتيّة

وهو يتخصّص في كيفيّة تأمين المعلومات بالنظم الإلكترونيّة، وخاصةً عند التعامل معها عبر الشبكة العنكبوتيّة، وكيفيّة تبادلها بشكل آمن.

 

نظم المعلومات الحاسوبيّة

وهو يختصّ بتنمية الكوادر البشريّة، ودراسة كيفيّة تنسيق البيانات، وتحليلها آليًّا، وصولًا إلى المعلومات داخل أيّ منظومة.

 

علم الروبوتات

ويختصّ بدراسة الرقائق والدوائر الإلكترونيّة المرتبطة ببناء الروبوتات، وتكنولوجيا تشغيلها، وبرمجتها.

 

المواد الدراسيّة لدارسي هندسة البرمجيّات

أثناء دراسة أيٍّ من تخصّصات هندسة البرمجيّات، يتمّ دراسة المواد التي تؤهّل لهذا التخصّص، ومنها:

  • مادة التفاضل والتكامل.
  • تصميم وتحليل الأنظمة.
  • فحص البرمجيّات.
  • إدارة المشروعات (تكنولوجيا المعلومات).
  • تراكيب البيانات.
  • قواعد البيانات.
  • التحليل الخوارزميّ.
  • نظم التشغيل.
  • البرمجة المرئيّة.
  • التجارة الإلكترونيّة.
  • برمجة الإنترنت.
  • الذكاء الاصطناعيّ.
  • برمجة الوسائط.
  • أمن المعلومات.

وهذه المواد أو غيرها لا يتمّ دراستها جملةً واحدة، لكن يتمّ دراستها وفقًا للتخصّص، وعلى جميع السنوات الأربع مدّة الدراسة، بعضها يتمّ دراسته نظريّا، والبعض الآخر عمليًّا، والباقي نظريًّا وعمليًّا معًا.

 

مجالات العمل

بعد الحصول على شهادة التخرّج، يتمّ العمل في أيًّ من التخصّصات الآتية:

  • باحث مهندس نظم.
  • مدرس حاسوب ومحلّل نظم.
  • مدرّس حاسوب ومطوّر نظم.
  • مشرف مختبرات ومصمّم نظم.
  • عمل حرّ (مطوّر برامج).
  • مهندس صيانة وفاحص برمجيّات.
  • سمات دارسي هندسة البرمجيّات

 

على من يرغب في الالتحاق بدراسة أيّ تخصّص في هندسة البرمجيّات، يجب أن يتمتّع ببعض السمات الشخصيّة والمهاريّة؛ حتى يكون متخصّصًا ناجحًا في هذا المجال بالشكل اللائق، ويمكن ذكر بعض من هذه السمات فيما يلي:

  • القدرة على التعامل مع الحاسوب، وكافّة الأجهزة الإلكترونيّة.
  • أن يكون مهتمًّا بدراسة اللغة الإنجليزيّة؛ هذا لأن كثيرًا من الدراسة بها تحتوي على العديد من المصطلحات الإنجليزيّة.
  • أن يكون ماهرًا في الرياضيّات والإحصاء؛ حيث يتمّ استخدام الرياضيّات والمنطق الرياضيّ في البرمجة الحاسوبيّة.
  • أن يكون لديه القدرة على التحليل الرياضيّ والاستنباط.
  • لديه روح العمل في فريق، والتعاون البنّاء.
  • القدرة على جمع البيانات من المصادر المتعدّدة ، والربط بينها.
  • وغيرها الكثير من السمات الشخصيّة التي يدركها الإنسان من نفسه، والتي تتوافق وهذا المجال.

اقرا أيضا

تعتبر تخصّصات هندسة البرمجيّات من التخصّصات النادرة نسبيًّا، والتي يتعطّش إليها سوق العمل في الداخل والخارج، ويعتمد عليها في شتى المجالات؛ حيث أنه من التخصّصات التي تخدّم عليها جميعًا، فعندما نرى كثيرًا من البطالة، فلنعلم أنه سوء اختيار من الدارس للمجال الذي ليس له مكان في سوق العمل، فعليه ألّا يضيّع وقته في مجالاتٍ عفى عليها الزمن، وليُقبل على دراسة الحاسوب، وأيٍّ من تخصّصات هندسة البرمجيّات؛ فهي المستقبل المشرق.

التعليقات

أترك تعليق..

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني.