جديد تطوير البرمجيات

'); }

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

يُشير مصطلح تطوير البرمجيات (بالإنجليزية: Software development) إلى مجموعة العمليات التي يتم خلالها إنتاج وإنشاء البرمجيات الإلكترونية،[١] كما يُعرف أيضاً بأنه عملية تطوير وإنشاء برنامج مُعين باستخدام إحدى لغات البرمجة، ويتضمن ذلك كتابة مجموعة متسلسلة من الأوامر البرمجية المُترابطة فيما بينها، وتتميز عملية تطوير البرمجيات بأنها عملية منطقية تكرارية تهدف إلى إنشاء برنامج حاسوبي مُصمم ومُبرمج لإنجاز مهمة مُعينة أو عملية مُحددة.[٢]

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

'); }

تاريخ تطوير البرمجيات

يعود تاريخ تطوير البرمجيات إلى ما قبل أكثر من 125 عاماً من ظهور جهاز الحاسوب، حيث استُخدمت البرمجة في بعض المجالات الصناعية، فقد تم إنتاج نوع من البرمجيات للتحكُّم في آلة النسج جاكوارد (بالإنجليزية: Jacquard Loom) عن طريق تصميم بطاقات مثقوبة بشكلٍ معين لإنتاج أنواع مُختلفة من المنسوجات،[٤] وفي العام 1948 م ظهر أول برنامج حقيقيّ عبر التاريخ، وذلك عندما صمم توم كيلبورن وزميله آلة مانشستر التجريبية صغيرة النطاق التي استُخدمت لإجراء عمليات حسابية استغرقت حوالي الساعة، والجدير بالذكر أنّ الوقت الذي استغرقته اعتُبر سريعاً في ذلك الوقت.[٥]

ظهرت لغات البرمجة المُهيكلة الحديثة لأول مرة في خمسينيات وستينيات القرن العشرين، كلغة فورتان (Fortran)، ولغة ليسب (Lisp)، وغيرها من اللغات التي أصبحت أساس الحوسبة التقنية والبرمجة خلال منتصف ذلك القرن، ثم ظهرت البرمجة الشيئية خلال السبعينيات، وشهد العقد التالي من القرن الماضي تطوراً كبيراً في تطوير البرمجيات وإنتاجها، حيث ظهرت البرمجيات في الحواسيب الشخصية، كبرامج AutoCAD، وMicrosoft Word.[٤]

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

مراحل تطوير البرمجيات

تمرّ البرمجيات خلال تطويرها بما يُعرف بدورة حياة تطوير الأنظمة (بالإنجليزية: Software Development Life Cycle)، ويُشير هذا المُصطلح إلى جميع المراحل التي تمر بها عملية تطوير البرمجية بدءاً من التخطيط لإنتاجها ووصولاً إلى صيانتها، وهذه المراحل كالآتي:[٦]

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

أنواع البرمجيات التي يتم تطويرها

هناك أربعة أنواع مُختلفة للبرمجيات، وهي كالآتي:[٣]

  • برمجيات النظام: (بالإنجليزية: System Software)، وهي البرمجيات التي تُعنى بأنظمة التشغيل، وإدارة أقراص الذاكرة، والأجهزة، وغيرها من الضروريات التشغيلية.
  • برمجيات البرمجة: (بالإنجليزية: Programming Software)، وهي ذلك النوع من البرمجيات الذي يتناول تطوير البرامج، كمحرر النصوص، والأدوات الخاصة بكتابة الكود البرمجيّ وتصحيحه، وغير ذلك.
  • برمجيات التطبيقات: (بالإنجليزية: Application Software)، يتُعنى بتطوير التطبيقات المصممة لمُساعدة المُستخدمين على إنجاز مهام مُعينة، كبرامج إدارة البيانات، وتطبيقات الهواتف الذكية، وتطبيقات الويب، ومواقع التواصل الاجتماعي المُختلفة.
  • البرمجيات المُضمنة: (بالإنجليزية: Embedded Software)، وهي البرمجيات التي يتم تطويرها للتحكُم في الآلات والأجهزة الإلكترونية التي لا تُعتبر أجهزة حاسوب، كالروبوتات الصناعية، وغيرها من أنواع الآلات الآخرى.

نماذج تطوير البرمجيات

تنشأ البرمجيات بجميع مراحلها ضمن ما يُعرف بدورة حياة تطوير الأنظمة أو التطبيقات(SDLC) من خلال العديد من النماذج،[٧] حيث يختار فريق المُبرمجين الذين يعملون على إنشاء البرمجية النموذج الذي يرغبون باعتماده لتطوير جميع مراحل تلك البرمجية،[٦] وفيما يلي أهم النماذج والأشكال التي يلجأ إليها مُطورو البرمجيّات لبناء برمجية معيّنة:[٧]

  • نموذج الشلال: (بالإنجليزية: Waterfall Model)؛ سُميّ هذا النموذج نسبةً إلى طريقة تنفيذه التي تُشبه تدفُق الشلال، ويتم بناء البرمجية تبعاً لهذا النموذج بطريقة خطية؛ بحيث يتم إكمال كل مرحلة من مراحل دورة تطوير البرامج بالتتابع قبل بداية المرحلة التالية، وتكون مُخرجات كل مرحلة مُدخلات المرحلة اللاحقة لها.
  • النموذج الحلزوني: (بالإنجليزية: Spiral Model)؛ يقوم هذا النموذج على مبدأ استخدام أنواع مُختلفة من نماذج تطوير البرمجيات ودمجها معاً، حيث يتم من خلاله تقديم النماذج الأولية للبرمجيات، بالإضافة إلى وجود تزامُن في عمل فرق المُبرمجين بما فيهم المُصممين والمُطورين.
  • نمذجة الأجايل: (بالإنجليزية: Agile Model)؛ يتبنى هذا النموذج تقسيم المُبرمجين إلى مجموعات، ويُوكل لكل منها إنجاز مرحلة مُعينة من مراحل تطوير البرمجية، وتعمل هذه الفرق جميعها في نفس الوقت بحيث يتم إنجاز المشروع كاملاً بوقت قصير، وجدير بالذكر أن هذا النموذج أصبح خلال السنوات الأخيرة الأكثر استخداماً لتطوير البرمجيات في الشركات البرمجية الصغيرة والكبيرة.[٨]
  • النموذج السريع: (بالإنجليزية: Rapid Model)؛ يُركّز هذا النموذج على تقديم النُسخ الأوليّة من البرنامج، وذلك لتحقيق أكبر سرعة ممكنة في تطوير البرمجية مع الالتزام بجدول زمني صارم وسريع، وتأجيل تحسينات التصميم إلى إصدارات المنتجات اللاحقة.[٩]

المراجع

  1. Margaret Rouse (1-10-2016), “Software development”، whatis.techtarget.com, Retrieved 30-11-2020. Edited.
  2. “Software Development”, www.techopedia.com,12-12-2017، Retrieved 30-11-2020. Edited.
  3. ^ أ ب “What is software development?”, www.ibm.com, Retrieved 30-11-2020. Edited.
  4. ^ أ ب ت Vic Chouchanian, “Programming Languages”, www.csun.edu, Retrieved 30-11-2020. Edited.
  5. Micah Yost (25-1-2018), “A Brief History of Software Development”، medium.com, Retrieved 30-11-2020. Edited.
  6. ^ أ ب “Software Development Life Cycle (SDLC)”, www.techopedia.com,12-11-2020، Retrieved 30-11-2020. Edited.
  7. ^ أ ب “SDLC Models”, www.javatpoint.com, Retrieved 30-11-2020. Edited.
  8. Linda Newman Lior, David Farbey, “Development Model”، www.sciencedirect.com, Retrieved 30-11-2020. Edited.
  9. “5 Types of Software Development Models”, online.husson.edu, Retrieved 30-11-2020. Edited.
Exit mobile version