عملية البرمجة الفردية

هذه المقالة يتيمة. ساعد بإضافة وصلة إليها في مقالة متعلقة بها
من ويكيبيديا، الموسوعة الحرة

هذه نسخة قديمة من هذه الصفحة، وقام بتعديلها أبو هشام (نقاش | مساهمات) في 17:28، 26 أغسطس 2020 (وصل بصفحة تخطيط المشروع). العنوان الحالي (URL) هو وصلة دائمة لهذه النسخة، وقد تختلف اختلافًا كبيرًا عن النسخة الحالية.

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

يمكن للمطورين تقييم عملهم واقتراح إجراء التحسينات من خلال تحليل ومراجعة وقت التطوير والعيوب وحجم البيانات. أسس المهندس واتس همفري عملية البرمجة الشخصية لتطبيق المبادئ الأساسية لنموذج نضج القدرة التابع لمعهد هندسة البرمجيات على ممارسات تطوير البرمجيات الخاصة التابعة لمطور واحد. تدعي العملية توفير المهارات العملية اللازمة للعمل لمهندسي البرمجيات في فريق عملية برمجة الفريق.[1][2]

الأهداف

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

  • تحسين مهاراتهم في التقدير والتخطيط.
  • تقديم التزامات يمكنهم تنفيذها.
  • إدارة جودة مشاريعهم.
  • تقليل عدد العيوب في عملهم.
  • هيكل عملية البرمجة الشخصية

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

العملية

تُعرف المُدخلات إلى عملية البرمجة الشخصية بالمتطلبات التي تسُتكمل وتُسلم إلى المهندس.

مستويا عملية البرمجة الشخصية 0 و0.1 (تنظيم وقياس العملية)

يحتوي المستوى 0 على 3 مراحل: التخطيط والتطوير (التصميم والترميز والتجميع والاختبار) والاستدراك. وُضع خط أساس لقياس العملية الحالية، أيّ قياس الوقت المُستخدم في البرمجة والأخطاء التي تُحقن/تُزال وحجم البرنامج. يضمن المهندس تسجيل جميع البيانات الخاصة بالمشاريع وتحليلها بشكل صحيح في حالة الاستدراك. يُطور المستوى 0.1 العملية عن طريق إضافة معيار ترميز وقياس للحجم وتطوير خطة تحسين العملية الشخصية. يسجل المهندس أفكارًا لتحسين عمليته في خطة تحسين العملية الشخصية.

مستويا عملية البرمجة الشخصية 1 و1.1 (التقدير والتخطيط)

يقدّر المهندس حجم البرنامج الجديد ويُعد تقريرًا بالنتائج بناءً على بيانات خط الأساس التي جُمعت من المستويين 0 و0.1 (المستوى 1). تُستخدم البيانات المتراكمة من المشاريع السابقة لتقدير الوقت الإجمالي. سيسجل كل مشروع جديد الوقت الفعلي الذي يقضيه، وتستخدم هذه المعلومات لتخطيط وتقدير المهام والجدول الزمني. (المستوى 1.1).

مستويا عملية البرمجة الشخصية 2 و2.1 (إدارة الجودة والتصميم)

يضيف المستوى 2 مرحلتين جديدتين: مراجعة التصميم ومراجعة الكود. يُركز هذا المستوى على الوقاية من العيوب وإزالتها إن وُجدت. يتعلم المهندسون تقييم وتحسين عمليتهم من خلال قياس المدة التي تستغرقها المهام وعدد العيوب التي يحقنوها ويزيلونها في كل مرحلة من مراحل التطوير. يبني المهندسون ويستخدمون قوائم المراجعة لمراجعات التصميم والكود. يقدم المستوى 2.1 مواصفات التصميم وتحليل التقنيات.

أهمية البيانات

تستخدم إحدى الجوانب الأساسية لعملية البرمجة الشخصية البيانات التاريخية لتحليل وتحسين أداء العملية. تدعم جميع بيانات عملية البرمجة الشخصية أربعة عناصر رئيسية:

  • البرامج النصية
  • المقاييس
  • المعايير
  • النماذج

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

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

يمكن أن يضمن تطبيق المعايير لهذه العملية دقة واتساق البيانات. تُسجّل البيانات في النماذج عادةً باستخدام أداة عملية البرمجة الشخصية. طوّر معهد هندسة البرمجيات هذه الأداة وذلك بالإضافة للخيارات مفتوحة المصدر مثل لوحة معلومات العملية.

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

  • دقة التقدير (الحجم/الوقت)
  • فترات التنبؤ (الحجم/الوقت)
  • وقت توزيع المرحلة
  • توزيع حقن العيب
  • توزيع إزالة العيب
  • الإنتاجية
  • إعادة استخدام النسبة المئوية
  • مؤشر أداء التكلفة
  • القيمة المخططة
  • القيمة المكتسبة
  • توقع القيمة المكتسبة
  • كثافة العيوب
  • كثافة العيوب حسب المرحلة
  • معدل إزالة العيوب حسب المرحلة
  • رافعة إزالة العيب
  • مراجعة الأسعار
  • نتاج العملية
  • نتاج المرحلة
  • فشل تكلفة الجودة
  • تقييم تكلفة الجودة
  • نسبة تقييم/فشل تكلفة الجودة

التخطيط والتتبع

يعد تسجيل بيانات الوقت والعيوب والحجم جزءًا أساسيًا من تخطيط وتتبع مشاريع عملية البرمجة الشخصية، إذ تُستخدم البيانات التاريخية لتحسين دقة التقدير.

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

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

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

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

عملية البرمجة الشخصية وعملية برمجيات الفريق

تُستخدم مهارات عملية البرمجة الشخصية في بيئة فريق عملية برمجيات الفريق في الممارسة العملية. تتكون فرق عملية برمجيات الفريق من مطورين مدربين من عملية البرمجة الشخصية متطوعين في مجالات تصب في مسؤولية المشروع، فلذلك يُدار المشروع من قبل الفريق نفسه. يضع الفريق الخطط والتقديرات ويتحكم في الجودة باستخدام البيانات الشخصية التي تجمعها مهارات عملية البرمجة الشخصية الخاصة بهم.

عملية البرمجة الشخصية وغيرها من المنهجيات

تعد عملية البرمجة الشخصية عملية شخصية يمكن تكييفها لتناسب احتياجات المطور. لا تقتصر على أي منهجية متعلقة بالبرمجة أو التصميم، وبالتالي يمكن استخدامها مع منهجيات مختلفة بما في ذلك تطوير برمجيات آجايل.[3]

يمكن اعتبار أساليب هندسة البرمجيات مختلفة من التنبؤية إلى التكيفية. تعد عملية البرمجة الشخصية منهجية تنبؤية،[4] وتعتبر آجايل تكيفية، ويتشارك كل من عملية برمجيات الفريق أو عملية البرمجة الشخصية مع آجايل في عدة مفاهيم ومناهج. تختلف العمليتين وآجايل بشكل كبير وخاصة فيما يتعلق بتنظيم الفريق ويمكّن كل منهما الفريق من:

  • تحديد أهدافه ومعاييره.
  • تقدير وجدولة العمل.
  • تحديد جداول واقعية وقابلة للتحقيق.
  • وضع الخطط والتحسينات العملية.

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

الجودة

تُعد البرمجيات عالية الجودة هدفًا مهمًا لعملية البرمجة الشخصية، وتُقاس الجودة من حيث العيوب. يجب أن تنتج عملية الجودة –في عملية البرمجة الشخصية– برمجيات منخفضة العيب تلبي احتياجات المستخدم.

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

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

  • مرحلة مراجعة التصميم
  • مرحلة مراجعة الكود

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

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

من المتوقع أيضًا أن يُجري مطوري العملية مراجعات شخصية قبل أن يخضع عملهم لمراجعة النظراء أو الفريق.

الشهادة

يُعطي معهد هندسة البرمجيات شهادة تضم عملية البرمجة الشخصية في جامعة كارنيجي ميلون. تتجسد خطوات حصول الأشخاص للشهادة بتعلم سياق عملية البرمجة الشخصية والتقدّم لامتحان الشهادة والحفاظ على المؤهلات. يعتمد اختبار مطور العملية على المفاهيم الموجودة في مجموعة المعلومات الخاصة بالعملية. يحافظ معهد هندسة البرمجيات على الأسئلة الشائعة والمتكررة بشأن الشهادة.[5]

المراجع

  1. ^ "SEI-Certified PSP Developer: Frequently Asked Questions". SEI Training. Pittsburgh, Pennsylvania: Software Engineering Institute, جامعة كارنيغي ميلون. مؤرشف من الأصل في 2014-11-29. اطلع عليه بتاريخ 2014-11-17. {{استشهاد ويب}}: روابط خارجية في |عمل= (مساعدة)
  2. ^ "Terms of Use". USA: Software Engineering Institute, جامعة كارنيغي ميلون. مؤرشف من الأصل في 2019-10-01. اطلع عليه بتاريخ 2013-01-14.
  3. ^ Humphrey, Watts S. "Why Big Software Projects Fail: The 12 Key Questions." CrossTalk Mar. 2005 http://www.crosstalkonline.org/storage/issue-archives/2005/200503/200503-Humphrey.pdf
  4. ^ Davis, Noopur, and Julia Mullaney. The Team Software Process SM (TSP SM) in Practice: A Summary of Recent Results. Pittsburgh, PA: Software Engineering Institute, Sept. 2003.
  5. ^ Pomeroy-Huff، Marsha؛ Cannon، Robert؛ Chick، Timothy A.؛ Mullaney، Julia؛ Nichols، William (2009). The Personal Software Process (PSP) Body of Knowledge, Version 2.0 (PDF). Pittsburgh, Pennsylvania: Software Engineering Institute, جامعة كارنيغي ميلون. مؤرشف من الأصل (PDF) في 2017-08-09. اطلع عليه بتاريخ 2014-11-17. Freely downloadable Special Report CMU/SEI-2009-SR-018, 2009