ملكية الكود
في هندسة البرمجيات ، يُستخدم مصطلح ملكية الكود لوصف سيطرة مطور برامج فردي أو فريق تطوير على تعديلات الكود المصدري لوحدة أو منتج . [ 1 ]
التعريفات
على الرغم من شيوع المصطلح، إلا أنه لا يوجد تعريف متفق عليه عالميًا. وقد وجد كوانا وزملاؤه، في مراجعتهم للأدبيات عام 2024، 28 تعريفًا مختلفًا، [ 2 ] وصنفوها على النحو التالي:
- الملكية النفسية هي شعور المطور بالملكية والفخر بعنصر معين من المشروع؛ [ 3 ]
- الملكية المادية هي مجموعة من القواعد الرسمية أو غير الرسمية التي تحدد المسؤولية عن جزء معين من البرمجيات. وتعتمد هذه القواعد على منهجية التطوير التي يتبعها الفريق، ولكن يمكن تقسيمها عمومًا وفقًا لخطوط "ما هي الملكية؟" / "من يملكها؟" / "ما هي درجة التحكم؟": [ 3 ]
- بينما يكون الجواب على سؤال "ماذا؟" عادةً جزءًا من شفرة المصدر، فقد تم تطبيق مفهوم الملكية أيضًا على عناصر أخرى من تطوير البرمجيات متنوعة مثل مشروع كامل أو خطأ برمجي واحد ؛ [ 4 ]
- قد يكون المالك ("من؟") مطورًا فرديًا أو مجموعة تضم مؤلفي الكود والمراجعين والمديرين. [ 5 ] ويتمثل النقيضان في الملكية المخصصة ، حيث يكون مطور واحد مسؤولاً عن أي جزء معين من الكود، والملكية الجماعية للكود ، حيث يمتلك كل عضو في الفريق الكود بأكمله. [ 5 ]
- يمكن أن تتفاوت درجة سيطرة المالك من مراجعة إلزامية للتعليمات البرمجية إلى مسؤولية الاختبار وصولاً إلى التنفيذ الكامل.
تأليف
يستخدم بعض الباحثين هذا المصطلح أيضًا لوصف تأليف البرمجيات (تحديد من كتب سطرًا معينًا من البرنامج). ويذكر كوانا وآخرون أن هذا معنى مختلف، وإن كان ذا صلة، إذ قد لا يكون مالك الكود هو المؤلف الأصلي للبرنامج. [ 3 ]
التأثير على الجودة
من المسلّم به عمومًا أن غياب ملكية واضحة للكود (عادةً ما يكون ذلك في صورة قيام العديد من المطورين بإجراء تغييرات طفيفة بحرية على جزء مشترك من الكود) يتسبب في ظهور الأخطاء. وفي الوقت نفسه، في غياب مالك للكود، قد تُفقد المعلومات المتعلقة بالملف. وقد أكدت ذلك دراسات واسعة النطاق، على سبيل المثال، تلك التي شملت نظامي التشغيل ويندوز 7 وويندوز فيستا . [ 6 ]
مالكو الكود في نظام التحكم في الإصدار
تتيح أنظمة التحكم الحديثة في الإصدارات تحديد مالكي الكود بشكل صريح لملفات أو مجلدات معينة (انظر ميزة CODEOWNERS في GitHub ). عادةً، يتلقى مالك الكود إشعارات بجميع التغييرات التي تطرأ على الكود الذي يملكه، أو يُطلب منه الموافقة على كل تغيير. [ 7 ]
مراجع
- ↑ ميتيو 2006 ، ص 424.
- ↑ Koana et al. 2024 ، ص. 2.
- 1 2 3 كوانا وآخرون. 2024 ، ص. 8.
- ^ كوانا وآخرون. 2024 ، ص 9-11.
- 1 2 كوانا وآخرون. 2024 ، ص. 11.
- ^ جريلر وهيرزيج وزيرونكا 2015 ، ص. 2.
- ↑ "حول مالكي الكود" . GitHub .
مصادر
- غريلر، ميكايلا؛ هيرزيغ، كيم؛ تشيرفونكا، جاك (2015). "ملكية الكود وجودة البرمجيات: دراسة تكرارية" (ملف PDF) . المؤتمر الثاني عشر لعام 2015 IEEE/ACM حول استخراج البيانات من مستودعات البرمجيات . IEEE. الصفحات 2-12 . doi : 10.1109/msr.2015.8 . ISBN 978-0-7695-5594-2.
- كوانا، أم أيمن؛ لي، كوانغ هي؛ رحمن، شاديكور؛ كارلسون، كريس؛ تشيو، فرانسيس؛ نايبي، مالكناز (27-09-2024). "دراسة نماذج الملكية في فرق تطوير البرمجيات". هندسة البرمجيات التجريبية . 29 (6). سبرينغر ساينس آند بيزنس ميديا ذ.م.م. arXiv : 2405.15665 . doi : 10.1007/s10664-024-10538-5 . ISSN 1382-3256 .
- ميتيو، أنكا (2006). "امتلاك الكود: إغلاق الحالة في المجموعات الموزعة" . علم التنظيم . 17 (4). INFORMS: 418-435 . doi : 10.1287/orsc.1060.0195 . ISSN 1047-7039 . JSTOR 25146047. تاريخ الاسترجاع: 4 نوفمبر 2024 .
- مصطلحات هندسة البرمجيات
- نماذج أولية لهندسة البرمجيات
