برمجية

تحتاج هذه للتهذيب لتتوافق مع أسلوب الكتابة في ويكيبيديا.
تحتوي هذه المقالة أبحاثاً أصيلةً ينبغي إسنادها لمصادر أو إزالتها.
من ويكيبيديا، الموسوعة الحرة

هذه نسخة قديمة من هذه الصفحة، وقام بتعديلها 93.184.8.238 (نقاش) في 09:54، 20 فبراير 2018 (غيرت الكلمات المختصرة الى كلمات غير مختصرة). العنوان الحالي (URL) هو وصلة دائمة لهذه النسخة، وقد تختلف اختلافًا كبيرًا عن النسخة الحالية.

مخطط يوضح كيفيّة تفاعل المستخدم مع برمجيَّة تطبيق على حاسوب مكتبيّ اعتياديّ

برامج الحاسب أو برمجيات (بالإنجليزية: software)‏ مصطلح عام يُستخدم لوصف مجموعة من عمليات الحاسوب المتكاملة لحل مسألة رياضية معينة أو القيام بعملية إحصائية أو لتصحيح صيغة تحريرية أو انجاز عملية معينة أو غير ذلك.[1]

لمحة عامة

غالبًا ما يشمل مصطلح "البرمجيات " كل شيء في جهاز الحاسب عدا عتاد الحاسوب؛ أي المكونات المادية للحاسوب، ولكن البرامج عبارة عن مواد غير ملموسة داخل جهاز الحاسب.

ويشمل "البرمجيات " أو "برامج الحاسب" مجموعة كبيرة للغاية من المنتجات والوسائل التقنية المطورة باستخدام تقنيات مختلفة، مثل لغات البرمجة أو لغات النصوص البرمجية أو حتى الميكروكود أو FPGA.

ومن بين أنواع "البرمجيات " تأتي المواقع الإلكترونية المطورة من خلال بعض التقنيات الحديثة، مثل لغات HTML وبي إتش بي وبيرل وJavaServer وASP.NET وXML، بالإضافة إلى تطبيقات سطح المكتب، مثل برنامج "مايكروسوفت وورد" وبرنامج التطبيق المكتبي OpenOffice الذين تم إنشاؤهما باستخدام بعض التقنيات الحديثة، مثل لغة c و++c وJava و#c...إلى اخره

وعادةً ما تعمل برامج الحاسب معتمدة على بعض نظم التشغيل والتليفزيونات ومحمصة الخبز الكهربائية...إلخ.

العلاقة بين البرامج والمكونات المادية لجهاز الحاسب

سميت برامج الحاسوب بهذا الاسم لتمييزها عن مكونات جهاز الحاسوب"الهارد وير" التي تشمل ا أو ما يُعرف باسم لغة الآلة (Machine Langu* "البرمجيات" عبارة عن سلسلة مرتبة من التعليمات .

وعادةً ما تكون هذه التعليمات مكتوبة بلغة برمجة عالية المستوى يمكن للإنسان التعامل معها بسهولة وكفاءة (وهي أقرب إلى لغة البشر الطبيعية) من اللغة البرمجية التي يفهمها جهاز الحاسب لغة الآلة (Machine Language).

ويتم تحويل جميع الجمل البرمجية المكتوبة بلغات برمجة عالية المستوى وتنفيذها جملة جملة باستخدام المفسر (Interpreter)أو تنفيذها دفعة واحدة باستخدام المترجم Compiler.

والشفرة الناتجة من هذا التحويل يُطلق عليها لغة الآلة Machine Language أو شفرة الهدف Object Code. يمكن أيضًا كتابة البرامج باستخدام لغة الأسيمبلي(Assembly)- وهي - عبارة عن ترميز للغة البرمجية التي يفهمها الحاسب باستخدام الأحرف الهجائية الإنجليزية. هذا ويجب تحويل لغة Assembly إلى اللغة البرمجية التي يفهمها الحاسب باستخدام أداة Assembler.

أنواع البرامج

يشمل مصطلح البرمجيات مواقع الويب والبرامج وألعاب الفيديو وغيرها من البرامج والتطبيقات التي يتم برمجتها (أي كتابة الكود الخاص بها) باستخدام لغات البرمجة، مثل لغة C و++C...إلخ.

برامج النظم

تساعد برامج النظم في تشغيل مكونات جهاز الحاسوب ونظام التشغيل. تشمل برامج النظم:

(ليس من الضروري التعرف على هذه البرامج بالتفصيل)

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

لغات البرمجة

لا يمكن انشاء البرمجيات الا بلغات البرمجة. وتوفر لغات البرمجة في الغالب أدوات لمساعدة المبرمج في كتابة برامج الحاسوب باستخدام لغات برمجة مختلفة، ولكن بطريقة سهلة. تشتمل الأدوات على:

  • مصرف (برمجة) Compiler (يتم من خلالها تحويل جميع الجمل البرمجية وتنفيذها دفعة واحدة).
  • مصحح (أداة اكتشاف الأخطاء)
  • المفسر Interpreter (يتم من خلالها تحويل جميع الجمل البرمجية وتنفيذها جملة جملة).
  • الرابط(حاسوب) Linker (أداة للربط بين نصوص الكود البرمجي التي يتم تحويلها باستخدام المترجم Compiler ودمجها للحصول على برنامج تنفيذي واحد)
  • برنامج تحرير النصوص
  • بيئة التطوير المتكاملة IDE عبارة عن تطبيق واحد يهدف إلى المساعدة في إدارة جميع هذه الوظائف.

برامج التطبيقات

تسمح برامج التطبيقات للمستخدمين النهائيين بالقيام بمهمة واحدة أو أكثر (لا ترتبط بشكل مباشر بتطوير الحاسوب). وتتضمن التطبيقات النموذجية:

وهناك العديد من الموضوعات المتعلقة ببرامج التطبيقات.

موضوعات متعلقة بالبرامج

البنية

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

دليل التعليمات الفنية

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

وربما يكون دليل التعليمات الفنية للمطور موجودًا أيضًا إما مع الكود في شكل تعليقات و/أو في شكل ملفات منفصلة تشرح كيفية تشغيل البرنامج وكيفية إدخال بعض التعديلات عليه.

مجموعة الملفات (مكتبة الملفات)

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

استخدام معايير قياسية للبرامج

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

تنفيذ برامج الحاسوب

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

عادةً ما يكون نقل البيانات من مكان إلى آخر في الذاكرة. وفي بعض الأحيان يتضمن الأمر نقل البيانات بين الذاكرة الرئيسية (Memory) ومناطق التخزين في وحدة المعالجة المركزية (Register)؛ مما يتيح الوصول السريع إلى البيانات في وحدة المعالجة المركزية. إن نقل البيانات، وخاصةً إذا كانت بكميات كبيرة، قد يكون مكلفًا. ومن ثم، فإنه يمكن تجنب هذا الأمر في بعض الأحيان عن طريق استخدام "مؤشرات" لبيانات. وتشمل العمليات الحسابية إجراء بعض العمليات البسيطة، مثل زيادة قيمة العنصر الخاص ببيانات المتغير. وربما تطلبت العمليات الحسابية الأكثر تعقيدًا استخدام العديد من العمليات وعناصر البيانات معًا.

مستوى جودة البرامج وفاعليتها

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

ترخيص برنامج الحاسوب

إن ترخيص برنامج الحاسوب يمنح المستخدم الحق في استخدام البرنامج ضمن إطار وشروط هذا الترخيص. وتأتي بعض البرامج مزودة بترخيص استخدامها عند شرائها بنفسك أو قد تأتي مزودة بترخيص OEM من الشركة الأصلية عندما يأتي جهاز الحاسوب الذي تم شراؤه مثبتًا عليه البرنامج. في حين أن هناك برامج أخرى تأتي بترخيص استخدام مجاني ويُمنح المستخدم حق تعديل البرنامج وإعادة توزيعه. هذا بالإضافة إلى أنه توجد بعض البرامج المجانية أو التجريبية. انظر أيضًا: إدارة رخص البرمجيات.

براءة الاختراع

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

حقوق النشر والتأليف

توجد أكثر من طريقة لإنشاء برامج الحاسوب وترخيصها وتوزيعها. على سبيل المثال، إن البرامج المجانية أو البرامج مفتوحة المصدر تكون متاحة للتعديل والتطوير فيها من قبِل جميع المستخدمين. وعلى الرغم من أن بعض البرامج المطروحة بترخيص مفتوح المصدر (مثل، ترخيص الاستخدام العام للجمهور General Public License ترخيص الاستخدام العام للجمهور (GPL) General Public License) يمكن بيعها نظير مبلغ من المال،[3]

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

تصميم البرامج وتطبيقها

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

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

وعادةً ما يتم تصميم وإنشاء برامج الحاسوب (عن طريق كتابة الكود الخاص بها أو برمجتها) في بيئات تطوير متكاملة (IDE)، مثل إيماكس وأكس إيماكس (محرر نصوص) ومايكروسوفت فيجوال ستوديو وإكليبس والتي تعمل جميعًا على تبسيط عملية الكتابة وتحويل الكود باستخدام أداة Compiler.

كما سبق وذكرنا أنه عادةً ما يتم إنشاء برنامج جديد بالاعتماد على برنامج موجود بالفعل وباستخدام واجهة برمجة التطبيقات (Application Programming Interface (API الخاصة بالبرنامج الأساسي، مثل GTK+ وJavaBeans وSwing...إلخ.

ويتم تصنيف مجموعة ملفات واجهة برمجة التطبيقات وفقًا لأغراض مختلفة.على سبيل المثال، تُستخدم مجموعة ملفات JavaBeans في تصميم تطبيقات الشركات، أما ويندوز فورمز فتُستخدم في تصميم تطبيقات واجهة الاستخدام الرسومية ـ (Graphical User Interface (GUI ، مثل برنامج "مايكروسوفت وورد" وتستخدم (Windows Communication Foundation (WCF في تصميم خدمات الويب.

تتميز برامج الحاسوب بخصائص اقتصادية تجعل تصميمها وإنشائها وتوزيعها مختلف عن معظم السلع الاقتصادية الأخرى.

يُطلق على مصمم برامج الحاسوب أسماء عدة مثل مبرمج ومهندس برامج ومصمم برامج والمبرمج المحترف وكلها تحمل المعنى نفسه.

صناعة البرمجيات

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

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

توجد العديد من المؤسسات المتخصصة في برامج الحاسوب التي لا تهدف إلى الربح، مثل شركة مؤسسة البرمجيات الحرة ومشروع جنو ومؤسسة موزيلا. هذا بالإضافة إلى أن هناك العديد من المؤسسسات الخاصة بوضع معايير برامج الحاسوب Software standard organizations، مثل W3C و"IETF" وغيرها من المؤسسات التي تحاول وضع معايير للبرامج، وذلك حتى يمكن أن تعمل برامج الحاسوب مع بعضها البعض وذلك كما يحدث من خلال معايير لغة الترميز القابلة للامتداد ولغة رقم النص الفائق وبروتوكول نقل النص الفائق وبروتوكول نقل الملفات وغيرها.

ومن أشهر شركات برامج الحاسوب في العالم، شركة "مايكروسوفت" و"أبل" و"آي بي إم" و"أوراكل" و"نوفيل" و"ساب" و"إتش بي"، وغيرهم...

انظر أيضاً


مراجع

  1. ^ "Wordreference.com: WordNet 2.0". Princeton University, Princeton, NJ. اطلع عليه بتاريخ 2007-08-19.
  2. ^ The Complete Software testing Theory بقلم "رو فينايك" 2008
  3. ^ فإنه لا يمكن السيطرة على عملية توزيعها بالطريقة نفسها التي يتم بها السيطرة على برامج الكمبيوتر ذات حقوق النشر والتأليف وبراءات الاختراع (التي تستخدمها الشركات للحصول على رسوم الترخيص).