مفهوم البرمجيات
مفهوم البرمجيات
تُعرّف البرمجيات أو البرامج على أنّها مجموعة الأوامر والتعليمات التي تُرشد جهاز الكمبيوتر إلى كيفية القيام بعمله، كما يُمكن تعريف البرمجيات على أنّها سلسلة من التعليمات المكتوبة بطريقة مُعينة بهدف إيجاد حل لمُشكلة ما باستخدام جهاز الكمبيوتر، وتُعتبر البرمجيات مسؤولةً عن تشغيل جهاز الكمبيوتر، والتحكُم به، وتوسيع إمكانيات عمليات المُعالجة التي يقوم بها، وتُعد البرمجيات جزءاً أساسياً من مكونات جهاز الكمبيوتر ؛ أيّ لا يكتمل عمله دونها، فعلى سبيل المثال لا يُمكن تصفُح شبكة الإنترنت عبر الكمبيوتر إلا من خلال برنامج مُتصفح الويب.
يختلف مصطلح البرمجيات (Software) عن مصطلح المعدات (Hardware) الذي يُشير إلى الأجهزة الموجودة في جهاز الكمبيوتر؛ والتي تُعرف بالمكونات المادية ، وتُعتبر البرمجيات الجزء المتغير في الكمبيوتر، بينما تُعتبر الأجهزة أو المكونات المادية الجزء الثابت فيه، وتجدر الإشارة إلى أنّه يُشار إلى البرمجيات بالاختصار (SW).
أنواع البرمجيات
تُصنف البرمجيات المُختلفة إلى أنواع مُتعددة، أهمّها كالآتي:
- برمجيات النظام: وهي تلك البرامج التي تُصمّم لتشغيل جهاز الكمبيوتر والتحُكم به، فهذا النوع من البرمجيات يختص بإدارة جهاز الكمبيوتر، ومن الأمثلة على برمجيات النظام برنامج نظام التشغيل الذي يعمل به جهاز الكمبيوتر وبرنامج نظام تشغيل القرص (DOS)، فبرمجية نظام التشغيل تقوم بمهمة إدارة الموارد عبر الكمبيوتر بالإضافة إلى إدارة البيانات والتطبيقات الموجودة عليه.
- برمجيات التطبيقات: وهي ما يُطلق عليها اسم التطبيقات، وتُمثّل مجموعة من البرمجيات المُصممة لمُساعدة المُستخدِم على إنجاز المهام على جهاز الكمبيوتر؛ كإنشاء المستندات، وتطوير قواعد البيانات، وإجراء البحوث عبر الإنترنت، وتصميم الرسومات، أو حتى مُمارسة الألعاب، وغيرها الكثير من الأمور التي يُنجزها المُستخدِم، وتختصّ كلّ برمجية تطبيقات بإنجاز مهمة صُمّمت من أجلها، ويُعتبر برنامج مُعالج النصوص مايكروسوفت وورد أحد أشهر الأمثلة على هذا النوع من البرمجيات.
- برمجيات البرمجة: وهي مجموعة الأدوات البرمجية التي صُمّمت لمُساعدة مُطوري البرمجيات في كتابة البرامج المُختلفة، ومن الأمثلة على هذا النوع من البرمجيات ما يُعرف بالمُترجمات (Compilers)، والمُصححات (Debuggers)، ومُحررات النصوص (Text editors).
- البرمجيات الضارة: وهي البرمجيات التي تُطوّر لإلحاق الضرر بأجهزة الكمبيوتر والبرامج الأخرى؛ كبرامج الفايروسات وبرامج التجسس.
تاريخ البرمجيات
ظهرت البرمجيات في التاريخ قبل ظهور جهاز الكمبيوتر نفسه بأكثر من قرن؛ حيث استُخدمت البرمجة في مجالات صناعية مُختلفة، ومن الأمثلة على ذلك استخدام بعض البرمجيات للتحكُم في آلة صنع النسيج جاكارد التي كانوا يتحكمون بها عن طريق صنع بطاقات مثقبة بطريقة مُعينة لكي تُنتج أنواعاً مُعينة من أشكال النسيج، وشّهِد العام 1948م إنشاء أول برنامج حقيقي؛ وذلك عندما استطاع توم كيلبورن وأحد زملاءه تصميم ما يُعرف بآلة مانشستر التي استُخدمت لإجراء عمليات حسابية مُعينة، ويُذكر أنّها استغرقت ساعة لإنهاء عملية حسابية واحدة؛ وهو ما اعتُبر سريعاً في ذلك الوقت.
شَهِدت فترة الخمسينيات والستينيات من القرن العشرين ظهور لغات البرمجة المُهيكَلة لأول مرة؛ كلغة ليسب (Lisp) ولغة فورتران (Fortran)، وأصبحت هذه اللغات وغيرها أساس إنشاء البرمجيات والحوسبة التقنية خلال تلك الفترة، واستمر علم البرمجيات بالتطوُّر؛ حيث ظهر خلال فترة السبعينيات مفهوم البرمجة الكائنية (Object Oriented Programming) التي اعتمدت على استخدام هياكل البيانات بهدف تطوير البرمجيات المُختلفة، كما شهدت تلك الحقبة الزمنية إنشاء لغة البرمجة سي (C) التي أصبحت خلال العقد الأول من القرن الواحد والعشرين لغة البرمجة الأكثر استخداماً في العالم.
شَهِدت فترة التسعينيات من القرن العشرين اهتماماً مُتزايداً بالبرمجيات مفتوحة المصدر (Open Source Software)؛ والتي تُتيح للمُستخدِم العادي إمكانية التعديل عليها، وفي وقت لاحق لم تَعُد البرمجيات مُقتصرة على العمل والتحكُم في أجهزة الكمبيوتر العادية حيث ظهرت أنواع أخرى من أجهزة الكمبيوتر؛ كأجهزة الهواتف الذكية وأجهزة الكمبيوتر المحمولة، وتُعتبر البرمجيات تحتل جزءاً كبيراً من العالم؛ ابتداءً بأبسط الأشياء إلى أكثرها تعقيداً.
دورة حياة البرمجيات
يمر تطوير وتصميم البرمجيات بمراحل عديدة تُعرف مُجتمعة باسم دورة حياة تطوير البرمجيات (Software Development Life Cycle)؛ والتي يُشار لها بالاختصار (SDLC)، وتتضمن هذه الدورة المراحل الآتية:
- مرحلة التخطيط: وهي المرحلة التي تُحدد خلالها أهداف البرمجية المُراد إنشاؤها، وتُحدّد هذه الأهداف وفقاً لرغبة العميل الذي يود شراء البرمجية.
- مرحلة تحليل الجدوى: وهي المرحلة التي يُنشأ خلالها ما يُعرف بمُستند مُتطلبات البرنامج الذي يُضمّن بكلّ ما يلزم من متطلبات لتنفيذ البرمجية.
- مرحلة التصميم: وهي مرحلة تُصمّم فيها جميع وحدات النظام المُختلفة، وتُحدد وظيفة كلّ منها، بالإضافة إلى تحديد كيفية تفاعل تلك الوحدات مع الأجهزة.
- مرحلة كتابة التعليمات: وهي المرحلة التي يُكتب خلالها الكود البرمجي للبرمجية.
- مرحلة الاختبار: وهي مرحلة تُفحص خلالها البرمجية للتحقُق والبحث عن الأخطاء والعيوب الموجودة فيها.
- مرحلة النشر: وهي المرحلة التي تُنشر خلالها البرمجية وتُقدّم بشكلها النهائي.
- مرحلة الصيانة: وهي المرحلة التي تختصّ بصيانة البرمجية وإجراء التحسينات عليها وفقاً للمتغيرات الجديدة.
جودة البرمجيات
تُقيّم البرمجيات وفقاً لمعايير مُتعددة تُشكل معاً ما يُعرف بجودة البرمجيات (Software Quality)، ومن هذه المعايير الآتي:
- الكفاءة: وهي قدرة البرمجية على العمل دون استهلاك كبير للطاقة، والمساحة، والمال، والجهد.
- الموثوقية: وهي قدرة البرمجية على تنفيذ مهامها بشكل صحيح خلال فترة زمنية مُحددة في ظل ظروف معينة.
- الأمان: وهو قدرة البرمجية على التصدي لأية أخطار تقنية كانتهاك الخصوصية والاحتيال وغيرها.
- الأداء: وهو قدرة البرمجية على العمل بسهولة في ظل وجود ضغط من الاستخدام عليها.
- الوظيفية: وهي قدرة البرمجية على تنفيذ المهام المرجوة من إنشائها.
- التوافق: وهو قدرة البرمجية على العمل عبر مجموعة مُتنوعة من أنظمة التشغيل وأنواع مُختلفة من أجهزة الكمبيوتر.
- إمكانية الوصول: وهي أن يكون البرنامج مُتاحاً لفئات مُختلفة من الأشخاص.
- قابلية الترجمة: وهي القدرة على استخدام البرمجية بلغات مُختلفة.
- قابلية التثبيت: وهي القدرة على تثبيت البرمجية في بيئات عمل مُختلفة.
- قابلية الصيانة: وهي قدرة البرمجية على الاستجابة السريعة والسهلة للتغييرات التي تطرأ عليها؛ كإجراء التحسينات، أو التحديث، أو غيرها من المتغيرات.
- قابلية الاختبار: وهي قدرة استجابة البرمجية للفحص والاختبار بشكل سريع.
- قابلية النقل: وهي القدرة على نقل البرمجية من جهاز لآخر بشكل سهل.