برمجة

برامج مكتوبة بلغة جافا سكريبت

يتكون البرمجيات (SW) من برامج حاسوبية توجه تنفيذ الحاسوب . [ 1 ] تشمل البرمجيات أيضًا وثائق التصميم والمواصفات.

يرتبط تاريخ البرمجيات ارتباطًا وثيقًا بتطور الحواسيب الرقمية في منتصف القرن العشرين. كُتبت البرامج الأولى بلغة الآلة الخاصة بالأجهزة. ومع ظهور لغات البرمجة عالية المستوى عام ١٩٥٨، أصبحت التعليمات أكثر وضوحًا للبشر، مما سهّل تطوير البرمجيات وجعلها قابلة للنقل بين مختلف بنى الحواسيب . تُشغّل البرمجيات المكتوبة بلغة برمجة معينة عبر مُترجم أو مُفسّر لتنفيذها على أجهزة البنية . ومع مرور الوقت، أصبحت البرمجيات أكثر تعقيدًا، نتيجةً للتطورات في الشبكات وأنظمة التشغيل وقواعد البيانات .

يمكن تصنيف البرامج بشكل عام إلى نوعين رئيسيين:

  1. أنظمة التشغيل ، التي تدير موارد الأجهزة وتوفر الخدمات للتطبيقات
  2. برامج التطبيقات ، التي تؤدي مهام محددة للمستخدمين

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

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

تاريخ

يُنسب أول استخدام لكلمة " برمجيات" لوصف برامج الحاسوب إلى عالم الرياضيات جون وايلدر توكي عام 1958. [ 2 ] [ 3 ] [ 4 ] ظهرت أولى الحواسيب القابلة للبرمجة في أواخر أربعينيات القرن العشرين، [ 5 ] وكانت تُبرمج بلغة الآلة . يصعب تصحيح أخطاء لغة الآلة، كما أنها غير قابلة للنقل بين الحواسيب المختلفة. [ 6 ] في البداية، كانت تكلفة موارد الأجهزة أعلى من تكلفة الموارد البشرية . [ 7 ] ومع ازدياد تعقيد البرامج، أصبحت إنتاجية المبرمجين هي العامل المحدد. أدى ظهور لغات البرمجة عالية المستوى عام 1958 إلى إخفاء تفاصيل الأجهزة والتعبير عن الخوارزميات الأساسية في الشيفرة البرمجية. [ 8 ] [ 9 ] ومن اللغات المبكرة: فورتران ، وليسب ، وكوبول . [ 9 ]

الأنواع

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

يوجد نوعان رئيسيان من البرامج:

  • أنظمة التشغيل هي " طبقة البرمجيات التي تدير موارد الحاسوب لمستخدميه وتطبيقاتهم " . [ 10 ] هناك ثلاثة أغراض رئيسية يؤديها نظام التشغيل: [ 11 ]
    • تخصيص الموارد بين التطبيقات المختلفة، وتحديد متى ستحصل على وقت وحدة المعالجة المركزية (CPU) أو مساحة في الذاكرة . [ 11 ]
    • توفير واجهة تُجرّد تفاصيل الوصول إلى معلومات الأجهزة (مثل الذاكرة الفعلية) لتسهيل الأمور على المبرمجين. [ 11 ] [ 12 ]
    • توفير خدمات مشتركة، مثل واجهة للوصول إلى أجهزة الشبكة والأقراص. وهذا يُمكّن من تشغيل التطبيق على أجهزة مختلفة دون الحاجة إلى إعادة كتابته. [ 13 ]
  • تعمل برامج التطبيقات فوق نظام التشغيل وتستخدم موارد الحاسوب لأداء مهمة محددة. [ 14 ] وتتنوع أنواع برامج التطبيقات بشكل كبير نظرًا لاتساع نطاق المهام التي يمكن إنجازها باستخدام الحواسيب الحديثة. [ 15 ] وتشكل التطبيقات غالبية البرامج [ 16 ] ، وتتطلب بيئة نظام التشغيل، وغالبًا تطبيقات أخرى، لكي تعمل. [ 17 ]
مقارنة بين الأجهزة والبرامج الموجودة في الموقع، والبنية التحتية كخدمة (IaaS)، والمنصة كخدمة (PaaS)، والبرامج كخدمة (SaaS).

يمكن تصنيف البرامج أيضًا حسب طريقة نشرها . تُشترى التطبيقات التقليدية بترخيص دائم لإصدار محدد من البرنامج، ثم تُنزّل وتُشغّل على أجهزة مملوكة للمشتري. [ 18 ] وقد أتاح ظهور الإنترنت والحوسبة السحابية نموذجًا جديدًا، هو البرمجيات كخدمة (SaaS)، [ 19 ] حيث يستضيف المزوّد البرنامج (الذي يُبنى عادةً على بنية تحتية أو منصات مستأجرة ) [ 20 ] ويُتيح استخدامه للعملاء، غالبًا مقابل رسوم اشتراك . [ 18 ] وبحلول عام 2023، أصبحت منتجات SaaS - التي تُقدّم عادةً عبر تطبيق ويب - الطريقة الأساسية التي تُقدّم بها الشركات تطبيقاتها. [ 21 ]

التطوير والصيانة

رسم تخطيطي لدورة حياة تطوير البرمجيات التقليدية من عام 1988. تمثل الأرقام التكلفة النموذجية لكل مرحلة.

تهدف شركات البرمجيات إلى تقديم منتج عالي الجودة في الوقت المحدد وضمن الميزانية المخصصة. ومن التحديات التي تواجهها هذه الشركات عدم دقة تقديرات جهد تطوير البرمجيات في كثير من الأحيان. [ 22 ] يبدأ تطوير البرمجيات بتصور المشروع، وتقييم جدواه، وتحليل متطلبات العمل، ووضع تصميم برمجي . [ 23 ] [ 24 ] تُسرّع معظم مشاريع البرمجيات عملية التطوير من خلال إعادة استخدام أو دمج برامج موجودة، سواء كانت برامج تجارية جاهزة (COTS) أو برامج مفتوحة المصدر . [ 25 ] [ 26 ] عادةً ما يكون ضمان جودة البرمجيات مزيجًا من مراجعة الكود يدويًا من قِبل مهندسين آخرين [ 27 ] واختبار البرمجيات الآلي . ونظرًا لضيق الوقت، لا يمكن للاختبار تغطية جميع جوانب الوظائف المقصودة للبرنامج، لذا غالبًا ما يركز المطورون على الوظائف الأكثر أهمية. [ 28 ] تُستخدم الأساليب الرسمية في بعض الأنظمة الحساسة للسلامة لإثبات صحة الكود، [ 29 ] بينما يساعد اختبار قبول المستخدم على ضمان تلبية المنتج لتوقعات العملاء. [ 30 ] توجد منهجيات متنوعة لتطوير البرمجيات ، تتراوح بين إتمام جميع الخطوات بالتسلسل إلى النماذج المتزامنة والتكرارية. [ 31 ] يعتمد تطوير البرمجيات على المتطلبات المستمدة من المستخدمين المحتملين، على عكس الصيانة التي تعتمد على أحداث مثل طلب التغيير. [ 32 ]

كثيرًا ما تُطرح البرامج في حالة غير مكتملة عندما ينفد الوقت أو التمويل لدى فريق التطوير. [ 33 ] ورغم الاختبارات وضمان الجودة ، فإن جميع البرامج تقريبًا تحتوي على أخطاء برمجية تجعل النظام لا يعمل كما هو مُخطط له. لذا، تُعد صيانة البرامج بعد طرحها ضرورية لإصلاح هذه الأخطاء عند اكتشافها، ولضمان استمرار عمل البرنامج مع تغير بيئة التطوير بمرور الوقت. [ 34 ] غالبًا ما تُضاف ميزات جديدة بعد الطرح. ومع مرور الوقت، يتقلص مستوى الصيانة تدريجيًا حتى يتوقف تمامًا عند سحب المنتج من السوق. [ 35 ] ومع تقادم البرامج ، تُعرف بالبرامج القديمة ، وقد تبقى قيد الاستخدام لعقود، حتى لو لم يبقَ أحدٌ يعرف كيفية إصلاحها. [ 36 ] وعلى مدار دورة حياة المنتج، تُقدر تكلفة صيانة البرامج بنسبة 75% أو أكثر من إجمالي تكلفة التطوير. [ 37 ] [ 38 ]

يتطلب إنجاز مشروع برمجي أنواعًا مختلفة من الخبرات، ليس فقط في مجال برمجة البرمجيات ، بل أيضًا في مجالات الاختبار، وكتابة الوثائق، وإدارة المشاريع ، والتصميم الجرافيكي ، وتجربة المستخدم ، ودعم المستخدم، والتسويق ، وجمع التمويل. [ 39 ] [ 40 ] [ 24 ]

الجودة والأمان

تُعرَّف جودة البرمجيات بأنها تلبية المتطلبات المحددة وتوقعات العملاء. [ 41 ] الجودة مصطلح شامل يشير إلى سلوك الكود الصحيح والفعال، وإمكانية إعادة استخدامه ونقله ، أو سهولة تعديله. [ 42 ] عادةً ما يكون بناء الجودة في المنتج منذ البداية أكثر فعالية من حيث التكلفة من محاولة إضافتها لاحقًا في عملية التطوير. [ 43 ] يقلل الكود عالي الجودة من تكلفة دورة حياة المنتج لكل من الموردين والعملاء، لأنه أكثر موثوقية وأسهل في الصيانة . [44] [ 45 ] قد تؤدي أعطال البرمجيات في الأنظمة الحساسة للسلامة إلى أضرار جسيمة، بما في ذلك الإصابة أو الوفاة. [ 44 ] تشير بعض التقديرات إلى أن تكلفة البرمجيات ذات الجودة الرديئة قد تصل إلى 20 إلى 40 بالمائة من المبيعات. [ 46 ] على الرغم من هدف المطورين المتمثل في تقديم منتج يعمل تمامًا كما هو مُخطط له، إلا أن جميع البرامج تقريبًا تحتوي على أخطاء برمجية . [ 47 ]

أدى ظهور الإنترنت إلى زيادة الحاجة إلى أمن الحاسوب بشكل كبير ، إذ مكّن الجهات الخبيثة من شنّ هجمات إلكترونية عن بُعد. [ 48 ] [ 49 ] يُطلق على أي خلل يُشكّل خطرًا أمنيًا اسم ثغرة أمنية . [ 50 ] [ 51 ] غالبًا ما تُصدر تحديثات برمجية لإصلاح الثغرات الأمنية المُكتشفة، لكن الثغرات التي لا تزال مجهولة ( ثغرات اليوم الصفر ) وتلك التي لم تُعالج بعد، تظل عرضة للاستغلال. [ 52 ] تختلف الثغرات الأمنية في مدى سهولة استغلالها من قِبل الجهات الخبيثة، [ 50 ] ويعتمد الخطر الفعلي على طبيعة الثغرة الأمنية وقيمة النظام المُحيط. [ 53 ] على الرغم من أن بعض الثغرات الأمنية لا تُستخدم إلا في هجمات حجب الخدمة التي تُعرّض توافر النظام للخطر، إلا أن ثغرات أخرى تسمح للمهاجم بحقن وتشغيل برمجيات خبيثة دون علم المستخدم. [ ٥٠ ] للتصدي للهجمات الإلكترونية، يجب تصميم جميع البرامج في النظام بحيث تتحمل الهجمات الخارجية وتتعافى منها. [ ٤٩ ] على الرغم من الجهود المبذولة لضمان الأمن، فإن نسبة كبيرة من أجهزة الكمبيوتر مصابة ببرامج ضارة. [ ٥٤ ]

التشفير والتنفيذ

لغات البرمجة

شفرة المصدر لبرنامج حاسوبي مكتوب بلغة C. الأسطر الرمادية عبارة عن تعليقات تشرح البرنامج للمستخدمين. عند تجميع البرنامج وتشغيله ، سيُخرج عبارة " Hello, world! ".

لغات البرمجة هي الصيغة التي تُكتب بها البرامج. منذ خمسينيات القرن الماضي، تم ابتكار آلاف لغات البرمجة المختلفة؛ بعضها ظل مستخدمًا لعقود، بينما اندثر استخدام البعض الآخر. [ 55 ] تصنف بعض التعريفات لغة الآلة - وهي التعليمات الدقيقة التي تُنفذها الأجهزة مباشرةً - ولغة التجميع - وهي بديل أسهل قراءةً من لغة الآلة، حيث يمكن ترجمة عباراتها حرفيًا إلى لغة الآلة - كلغات برمجة. [ 56 ] تشترك البرامج المكتوبة بلغات البرمجة عالية المستوى المستخدمة في إنشاء البرامج في بعض الخصائص الرئيسية: لا تتطلب كتابتها معرفة بلغة الآلة، ويمكن نقلها إلى أنظمة حاسوب أخرى، وهي أكثر إيجازًا وسهولة في القراءة من لغة الآلة. [ 57 ] يجب أن تكون سهلة القراءة وقابلة للترجمة إلى تعليمات واضحة لأجهزة الحاسوب. [ 58 ]

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

تزامن اختراع لغات البرمجة عالية المستوى مع ظهور المترجمات اللازمة لترجمتها تلقائيًا إلى لغة الآلة. [ 59 ] لا تحتوي معظم البرامج على جميع الموارد اللازمة لتشغيلها، وتعتمد على مكتبات خارجية . يتمثل جزء من وظيفة المترجم في ربط هذه الملفات بطريقة تُمكّن الجهاز من تنفيذ البرنامج. بعد الترجمة، يُمكن حفظ البرنامج كملف كائن، ويستطيع المُحمِّل ( جزء من نظام التشغيل) أخذ هذا الملف المحفوظ وتنفيذه كعملية على جهاز الحاسوب. [ 60 ] تستخدم بعض لغات البرمجة مُفسِّرًا بدلًا من المترجم. يُحوِّل المُفسِّر البرنامج إلى لغة الآلة أثناء التشغيل ، مما يجعلها أبطأ من لغات البرمجة المُترجمة من 10 إلى 100 مرة. [ 61 ] [ 62 ]

مسئولية قانونية

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

التراخيص

بلندر ، برنامج مجاني

منذ منتصف سبعينيات القرن الماضي، أصبحت البرمجيات وشفرتها المصدرية محمية بموجب قانون حقوق النشر الذي يمنح المالك الحق الحصري في نسخ الشفرة. أما الأفكار أو الخوارزميات الأساسية فلا تخضع لحماية قانون حقوق النشر، ولكنها تُعامل أحيانًا كأسرار تجارية وتُخفى عبر اتفاقيات عدم الإفصاح . [ 64 ] غالبًا ما تكون حقوق نشر البرمجيات مملوكة للشخص أو الشركة التي مولت أو صنعت البرنامج (بحسب عقودها مع الموظفين أو المتعاقدين الذين ساهموا في كتابته). [ 65 ] بعض البرامج متاحة للعموم ولا توجد قيود على استخدامها أو نسخها أو مشاركتها أو تعديلها؛ ومن الأمثلة البارزة على ذلك البرامج التي طورتها حكومة الولايات المتحدة . كما تسمح البرامج الحرة والمفتوحة المصدر بالاستخدام والمشاركة والتعديل مجانًا، ربما مع بعض الشروط المحددة. [ 65 ] يخضع استخدام بعض البرامج لاتفاقية ( رخصة برمجية ) يكتبها صاحب حقوق النشر وتُفرض على المستخدم. أما البرامج الاحتكارية، فتُباع عادةً بموجب ترخيص مقيد يحد من استخدامها ومشاركتها. [ 66 ] تشترط بعض تراخيص البرمجيات الحرة إصدار النسخ المعدلة بموجب الترخيص نفسه، مما يمنع بيع البرنامج أو توزيعه بموجب قيود الملكية الفكرية. [ 67 ]

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

تمنح براءات الاختراع المخترع ترخيصًا حصريًا ومحدود المدة لمنتج أو عملية جديدة. [ 68 ] لا يحمي القانون الأفكار المتعلقة بإمكانيات البرمجيات، بينما تخضع التطبيقات العملية لقانون حقوق النشر . في بعض الدول، قد يكون شرط تأثير الاختراع المطالب به على العالم المادي جزءًا من متطلبات صلاحية براءة اختراع البرمجيات. [69] لطالما كانت براءات اختراع البرمجيات مثيرة للجدل. قبل قضية بنك ستيت ستريت آند ترست ضد سيجنتشر فاينانشال جروب عام 1998، لم تكن براءات اختراع البرمجيات معترفًا بها عمومًا في الولايات المتحدة. في تلك القضية، قررت المحكمة العليا إمكانية تسجيل براءات اختراع للعمليات التجارية. [ 70 ] طلبات براءات الاختراع معقدة ومكلفة ، ويمكن أن تؤدي الدعاوى القضائية المتعلقة ببراءات الاختراع إلى ارتفاع تكلفة المنتجات. [ 71 ] على عكس حقوق النشر، لا تُطبق براءات الاختراع عمومًا إلا في نطاق الولاية القضائية التي صدرت فيها. [ 72 ]

تأثير

تُعد عمليات المحاكاة التي يتم إنشاؤها بواسطة الحاسوب أحد التطورات التي أتاحتها البرمجيات. [ 73 ]

يكتب المهندس كابرز جونز أن "الحواسيب والبرمجيات تُحدث تغييرات جذرية في جميع جوانب الحياة البشرية: التعليم، والعمل، والحرب، والترفيه، والطب، والقانون، وكل شيء آخر". [ 74 ] وقد أصبحت البرمجيات منتشرة في كل مكان في الحياة اليومية في الدول المتقدمة . [ 75 ] وفي كثير من الحالات، تُعزز البرمجيات وظائف التقنيات الموجودة، مثل الأجهزة المنزلية والمصاعد . [ 76 ] كما أدت البرمجيات إلى ظهور تقنيات جديدة كليًا، مثل الإنترنت ، وألعاب الفيديو ، والهواتف المحمولة ، ونظام تحديد المواقع العالمي (GPS) . [ 76 ] [ 77 ] وقد أتاح الإنترنت وسائل اتصال جديدة، بما في ذلك البريد الإلكتروني ، والمنتديات ، والمدونات ، والتدوين المصغر ، ومواقع ويكي ، ووسائل التواصل الاجتماعي . [ 78 ] وتتوفر الآن كميات هائلة من المعرفة، تفوق أي مكتبة ورقية، من خلال بحث سريع على الإنترنت . [ 77 ] وقد تحول معظم المحترفين المبدعين إلى استخدام أدوات برمجية، مثل التصميم بمساعدة الحاسوب ، والنمذجة ثلاثية الأبعاد ، وتحرير الصور الرقمية ، والرسوم المتحركة الحاسوبية . [ 73 ] يتم التحكم في جميع الأجهزة المعقدة تقريبًا بواسطة برامج حاسوبية. [ 77 ]

انظر أيضاً

مراجع

  1. ستير، رالف م. (2003). مبادئ نظم المعلومات، الطبعة السادسة . طومسون. ص  16. ISBN 0-619-06489-7يتكون البرنامج من برامج حاسوبية تتحكم في تشغيل الحاسوب .
  2. جونز 2014 ، ص 19، 22.
  3. تريسي 2021 ، ص. 2.
  4. "برمجيات (اسم)، المعنى 2.أ" . قاموس أكسفورد الإنجليزي . مطبعة جامعة أكسفورد. 2024. doi : 10.1093/OED/3803978366 . تاريخ الاسترجاع: 15 يوليو 2025 .
  5. ^ جابرييلي ومارتيني 2023 ، ص. 519.
  6. ^ جابرييلي ومارتيني 2023 ، ص 520-521.
  7. ^ جابرييلي ومارتيني 2023 ، ص. 522.
  8. ^ جابرييلي ومارتيني 2023 ، ص. 521.
  9. 1 2 تريسي 2021 ، ص. 1.
  10. ^ أندرسون وداهلين 2014 ، ص. 6.
  11. 1 2 3 أندرسون وداهلين 2014 ، ص. 7.
  12. تانينباوم وبوس 2023 ، ص 5.
  13. ^ أندرسون وداهلين 2014 ، ص 7، 9، 13.
  14. ^ أندرسون وداهلين 2014 ، ص 6-7.
  15. جونز 2014 ، ص 121.
  16. تريسي 2021 ، ص 66.
  17. تريسي 2021 ، ص 72.
  18. 1 2 O'Regan 2022 ، ص. 386.
  19. كامبل كيلي وغارسيا شوارتز 2015 ، ص 156-157.
  20. Rosati & Lynn 2020 ، ص 23.
  21. وات 2023 ، ص 4.
  22. أوريجان 2022 ، ص 7.
  23. أوريجان 2022 ، ص 5.
  24. 1 2 دولي 2017 ، ص. 1.
  25. ^ أوريجان 2022 ، ص 18 ، 110-111.
  26. تريسي 2021 ، ص 43، 76.
  27. ^ أوريجان 2022 ، ص 117-118.
  28. أوريجان 2022 ، ص 54.
  29. أوريجان 2022 ، ص 267.
  30. أوريجان 2022 ، ص 20.
  31. أوريجان 2022 ، ص 9.
  32. ^ تريباثي ونايك 2014 ، ص. 26.
  33. Reifer 2012 ، ص 22.
  34. ^ تريباثي ونايك 2014 ، ص 4 ، 27.
  35. ^ تريباثي ونايك 2014 ، ص. 89.
  36. تريسي 2021 ، ص 3.
  37. فارغا 2018 ، ص. 6.
  38. ^ أولزيت وآخرون. 2015 ، ص. 764.
  39. ^ تاكر وموريلي ودي سيلفا 2011 ، ص. 7.
  40. ستول 2018 ، ص 24-25.
  41. جالين 2018 ، ص 3.
  42. جالين 2018 ، ص 26.
  43. ^ أوريجان 2022 ، ص 68 ، 117.
  44. 1 2 أوريجان 2022 ، ص 3 ، 268.
  45. فارغا 2018 ، ص 12.
  46. أوريجان 2022 ، ص 119.
  47. أبلون وبوغارت 2017 ، ص. 1.
  48. كامبل كيلي وغارسيا شوارتز 2015 ، ص 164.
  49. 1 2 O'Regan 2022 ، ص. 266.
  50. 1 2 3 أبلون وبوغارت 2017 ، ص. 2.
  51. الدسواني والبياضي 2021 ، ص. 25.
  52. ^ دسواني والبياضي 2021 ، ص 26 – 27.
  53. Haber & Hibbert 2018 ، ص 5-6.
  54. كيتشن ودودج 2011 ، ص 37.
  55. تريسي 2021 ، ص 117.
  56. تريسي 2021 ، ص 118-120.
  57. تريسي 2021 ، ص 118-119.
  58. كيتشن ودودج 2011 ، ص 26.
  59. تريسي 2021 ، ص 121.
  60. تريسي 2021 ، ص 122-123.
  61. أوريجان 2022 ، ص 375.
  62. سيبستا 2012 ، ص 28.
  63. كيتشن ودودج 2011 ، ص 36-37.
  64. ^ أوريجان 2022 ، ص 394-396.
  65. 1 2 O'Regan 2022 ، ص. 403.
  66. ^ أوريجان 2022 ، ص 394 ، 404.
  67. ^ لانجر 2016 ، ص 44-45.
  68. أوريجان 2022 ، ص 395.
  69. جيراردو كون دياز، "النص في الآلة: قانون حقوق النشر الأمريكي والطبيعة المتعددة للبرمجيات، 1974-1978"، التكنولوجيا والثقافة 57 (أكتوبر 2016)، 753-79.
  70. جونز 2014 ، ص 19.
  71. أوريجان 2022 ، ص 398.
  72. أوريجان 2022 ، ص 399.
  73. 1 2 مانوفيتش 2013 ، ص. 333.
  74. جونز 2014 ، ص 32.
  75. كيتشن ودودج 2011 ، ص. 4.
  76. 1 2 Kitchin & Dodge 2011 ، ص. 5.
  77. 1 2 3 جونز 2014 ، ص. xxviii.
  78. مانوفيتش 2013 ، ص 329.

مصادر

  • أبلون، ليليان؛ بوغارت، آندي (2017). أيام الصفر، آلاف الليالي: حياة وأزمنة ثغرات اليوم الصفر واستغلالها (ملف PDF) . مؤسسة راند. ISBN 978-0-8330-9761-3.
  • أندرسون، توماس ؛ داهلين، مايكل (2014). أنظمة التشغيل: المبادئ والتطبيق (  الطبعة الثانية). دار ريكرسيف بوكس ​​للنشر. رقم ISBN 978-0-9856735-2-9.
  • كامبل-كيلي، مارتن؛ غارسيا-شوارتز، دانيال د. (2015). من الحواسيب المركزية إلى الهواتف الذكية: تاريخ صناعة الحواسيب العالمية . مطبعة جامعة هارفارد. ISBN 978-0-674-28655-9.
  • داسواني، نيل ؛ البيادي، مودي (2021). الاختراقات الكبيرة: دروس في الأمن السيبراني للجميع . دار نشر أبريس. رقم ISBN 978-1-4842-6654-0.
  • دولي، جون ف. (2017). تطوير البرمجيات، والتصميم، والبرمجة: مع الأنماط، وتصحيح الأخطاء، واختبار الوحدات، وإعادة البناء . دار نشر أبريس. رقم ISBN 978-1-4842-3153-1.
  • غابرييلي، ماوريتسيو؛ مارتيني، سيموني (2023). لغات البرمجة: المبادئ والنماذج (الطبعة الثانية  ). سبرينغر. ISBN 978-3-031-34144-1.
  • غالين، دانيال (2018). جودة البرمجيات: المفاهيم والتطبيق . جون وايلي وأولاده. ISBN 978-1-119-13449-7.
  • هابر، موري جيه؛ هيبرت، براد (2018). نواقل هجوم الأصول: بناء استراتيجيات فعالة لإدارة الثغرات الأمنية لحماية المؤسسات . أبريس. ISBN 978-1-4842-3627-7.
  • جونز، كابرز (2014). التاريخ التقني والاجتماعي لهندسة البرمجيات . بيرسون للتعليم. ISBN 978-0-321-90342-6.
  • كيتشن، روب؛ دودج، مارتن (2011). مساحة/شفرة: البرمجيات والحياة اليومية . مطبعة معهد ماساتشوستس للتكنولوجيا. ISBN 978-0-262-04248-2.
  • لانجر، آرثر م. (2016). دليل تطوير البرمجيات: تصميم وإدارة دورة الحياة . سبرينغر. ISBN 978-1-4471-6799-0.
  • مانوفيتش، ليف (2013). البرمجيات تتولى زمام الأمور . بلومزبري أكاديميك. ISBN 978-1-62356-745-3.
  • أوريغان، جيرارد (2022). دليل موجز لهندسة البرمجيات: من الأساسيات إلى أساليب التطبيق . سبرينغر نيتشر. ISBN 978-3-031-07816-3.
  • أوسترويل، ليون ج. (2013). "ما هو البرمجيات؟ دور الأساليب التجريبية في الإجابة على هذا السؤال". رؤى حول مستقبل هندسة البرمجيات: مقالات تكريمًا لديتر رومباخ . سبرينغر. ص 237-254 . ISBN  978-3-642-37395-4.
  • رحمن، حنيف أور؛ دا سيلفا، ألبرتو رودريغز؛ الزايد، أسعد؛ رضا، مشتاق (2024). "مراجعة منهجية للأدبيات حول قرارات الاستعانة بمصادر خارجية لصيانة البرمجيات". تكنولوجيا المعلومات والبرمجيات . 172 107475. doi : 10.1016/j.infsof.2024.107475 .
  • ريفير، دونالد ج. (2012). وصفات نجاح صيانة البرمجيات . مطبعة سي آر سي. رقم ISBN 978-1-4398-5167-8.
  • روزاتي، بييرانجيلو؛ لين، ثيو (2020). "قياس القيمة التجارية لهجرة البنية التحتية إلى الحوسبة السحابية". قياس القيمة التجارية للحوسبة السحابية . دار نشر سبرينغر الدولية. الصفحات 19-37 . ISBN  978-3-030-43198-3.
  • سيبستا، روبرت و. (2012). مفاهيم لغات البرمجة (  الطبعة العاشرة). أديسون-ويسلي. ISBN 978-0-13-139531-2.
  • ستول، إدوارد (2018). أساسيات تجربة المستخدم لغير المتخصصين في تجربة المستخدم: مبادئ تجربة المستخدم للمديرين والكتاب والمصممين والمطورين . دار نشر أبريس. رقم ISBN 978-1-4842-3811-0.
  • تانينباوم، أندرو س .؛ بوس، هربرت (2023). أنظمة التشغيل الحديثة، الطبعة العالمية . بيرسون للتعليم العالي. ISBN 978-1-292-72789-9.
  • تريسي، كيم و. (2021). البرمجيات: تاريخ تقني . دار مورغان وكلايبول للنشر. رقم ISBN 978-1-4503-8724-8.
  • تريباثي، بريادارشي؛ نايك، كشيراساغار (2014). تطور البرمجيات وصيانتها: نهج الممارس . جون وايلي وأولاده. رقم ISBN 978-0-470-60341-3.
  • تاكر، ألين؛ موريللي، رالف؛ دي سيلفا، تشاميندرا (2011). تطوير البرمجيات: منهج المصادر المفتوحة . مطبعة سي آر سي. رقم ISBN 978-1-4398-8460-7.
  • أولزيت، بايربويان؛ واريش، زيشان أختار؛ جينسل، سيغديم؛ بيترسن، كاي (2015). "إطار مفاهيمي للتحديات والحلول لإدارة صيانة البرمجيات العالمية". مجلة البرمجيات: التطور والعملية . 27 (10): 763-792 . doi : 10.1002/smr.1720 .
  • وات، آندي (2023). بناء تطبيقات SaaS حديثة باستخدام لغة C# و.NET: بناء ونشر وصيانة تطبيقات SaaS احترافية . Packt. ISBN 978-1-80461-087-9.
  • فارغا، إرفين (2018). فك شفرة صيانة البرمجيات وتطويرها: التفكير خارج الصندوق . سبرينغر. ISBN 978-3-319-71303-8.