صيانة البرمجيات وتطورها
تتعلق صيانة البرمجيات وتطورها بتعديل البرمجيات بعد تسليمها والديناميكيات طويلة الأمد التي يجب أن تتغير بها الأنظمة باستمرار لتبقى مفيدة.
Definition
صيانة البرمجيات هي تعديل منتج برمجي بعد تسليمه لتصحيح الأخطاء، أو تحسين الأداء، أو تكييفه مع بيئة متغيرة، وتطور البرمجيات هو العملية الأوسع والمستمرة التي تتغير بها البرمجيات على مدار عمرها استجابةً للمتطلبات والبيئات المتغيرة.
Scope
يغطي هذا المجال فئات الصيانة (التصحيحية، التكيفية، التحسينية، الوقائية)؛ القوانين التجريبية لتطور البرمجيات؛ فهم البرامج وتحليل التأثير؛ إعادة الهندسة، الهندسة العكسية، وترحيل الأنظمة القديمة؛ تراكم وإدارة الديون التقنية؛ والعمليات والمعايير التي تحكم الصيانة مثل ISO/IEC 14764.
Sub-topics
Core questions
- ما هي فئات التغيير التي تشكل الصيانة، وكيف تختلف؟
- ما هي القوانين التجريبية التي تحكم كيفية تطور البرمجيات بمرور الوقت؟
- كيف يتم فهم البرمجيات القديمة وإعادة هيكلتها وترحيلها؟
- كيف يتراكم الدين التقني وكيف تتم إدارته؟
Key theories
- فئات صيانة البرمجيات
- تصنف الصيانة إلى تصحيحية (إصلاح الأخطاء)، وتكيفية (الاستجابة لتغير البيئة)، وتحسينية (تحسين الوظيفة أو الأداء)، ووقائية (تحسين قابلية الصيانة)، مع هيمنة العمل التكيفي والتحسيني في الممارسة العملية.
- قوانين ليمان لتطور البرمجيات
- لاحظ ليمان أن الأنظمة المستخدمة بنشاط يجب أن تتغير باستمرار وإلا ستصبح أقل إرضاءً تدريجياً، وأنه مع تطورها يزداد تعقيدها ما لم يتم بذل جهد لتقليله.
Clinical relevance
تستهلك الصيانة عادةً غالبية التكلفة الإجمالية للنظام على مدار عمره، لذا فإن فهم ديناميكيات التطور، والتحكم في نمو التعقيد، وإدارة الديون التقنية أمر حاسم للاقتصاد والجدوى طويلة الأمد للبرمجيات.
Evidence & guidelines
يحدد المعيار ISO/IEC 14764 عملية صيانة البرمجيات، ويوفر مجال المعرفة الخاص بصيانة البرمجيات في SWEBOK إرشادات متفق عليها بشأن فئات الصيانة وأنشطتها وتقنياتها.
History
تزايد الاعتراف بأن الصيانة تهيمن على تكلفة البرمجيات في السبعينيات؛ صاغ ليمان وبلادي قوانين تطور البرمجيات من دراسة تجريبية للأنظمة الكبيرة، وتطورت تقنيات إعادة الهندسة وتحديث الأنظمة القديمة مع تقدم عمر الأنظمة طويلة الأمد وأصبح الدين التقني مصدر قلق معترف به.
Debates
- صيانة الأنظمة القديمة أو إعادة هندستها أو استبدالها
- يعد اتخاذ قرار بشأن الاستمرار في صيانة نظام قديم، أو إعادة هيكلته، أو استبداله بالكامل، نقاشًا استراتيجيًا متكررًا، يوازن بين مخاطر وتكلفة الاستبدال مقابل التكلفة المتزايدة وهشاشة الصيانة المستمرة.
Key figures
- Meir M. Lehman
- Les Belady
- Ian Sommerville
Related topics
Seminal works
- lehman1980
- iso14764
- sommerville2015
Frequently asked questions
- هل الصيانة مجرد إصلاح للأخطاء؟
- لا. إصلاح الأخطاء (الصيانة التصحيحية) هو فئة واحدة فقط؛ معظم جهود الصيانة تكون تكيفية وتحسينية — تعديل البرمجيات لتناسب بيئات جديدة وإضافة أو تحسين القدرات — والتي تتجاوز مجتمعة العمل التصحيحي في الأنظمة النموذجية.
- لماذا يميل تعقيد البرمجيات إلى النمو بمرور الوقت؟
- كما لاحظ ليمان، فإن التغييرات المستمرة لتلبية الاحتياجات المتطورة تضيف بنية وحالات خاصة؛ وما لم يتم بذل جهد متعمد في إعادة الهيكلة وتقليل التعقيد، يصبح النظام أكثر صعوبة في التغيير تدريجياً.