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

عملية تطوير البرمجيات الشخصية ( PSP ) هي عملية تطوير برمجيات منظمة مصممة لمساعدة مهندسي البرمجيات على فهم أدائهم وتحسينه بشكل أفضل من خلال تنظيم عملية تطوير البرمجيات وتتبع تطور الكود المتوقع والفعلي. توضح هذه العملية للمطورين كيفية إدارة جودة منتجاتهم، وكيفية وضع خطة سليمة، وكيفية الالتزام بالمواعيد النهائية. كما توفر لهم البيانات اللازمة لتبرير خططهم. يمكنهم تقييم عملهم واقتراح اتجاهات التحسين من خلال تحليل ومراجعة بيانات وقت التطوير والعيوب وحجم المشروع. ابتكر واتس همفري عملية تطوير البرمجيات الشخصية (PSP ) لتطبيق المبادئ الأساسية لنموذج نضج القدرات (CMM) التابع لمعهد هندسة البرمجيات (SEI) على ممارسات تطوير البرمجيات للمطور الفردي. وتزعم هذه العملية أنها تمنح مهندسي البرمجيات المهارات العملية اللازمة للعمل ضمن فريق عملية تطوير البرمجيات (TSP).
"عملية البرمجيات الشخصية" و" PSP " هما علامتان تجاريتان مسجلتان لجامعة كارنيجي ميلون . [ 1 ] [ 2 ]
أهداف
يهدف برنامج تطوير البرمجيات الشخصي (PSP) إلى تزويد مهندسي البرمجيات بأساليب منهجية لتحسين عمليات تطوير البرمجيات الشخصية. ويساعد البرنامج مهندسي البرمجيات على:
- تحسين مهاراتهم في التقدير والتخطيط.
- قدّم لهم التزامات يمكنهم الوفاء بها.
- إدارة جودة مشاريعهم.
- تقليل عدد العيوب في عملهم.
بنية PSP
يتبع تدريب PSP نهجًا تطويريًا تدريجيًا: يبدأ المهندس الذي يتعلم دمج PSP في عملياته من المستوى الأول - PSP0 - ويتدرج في نضج العملية وصولًا إلى المستوى الأخير - PSP2.1. يحتوي كل مستوى على نصوص برمجية وقوائم مراجعة ونماذج مفصلة لإرشاد المهندس خلال الخطوات المطلوبة، مما يساعده على تحسين عملية تطوير البرمجيات الشخصية الخاصة به. يشجع همفري المهندسين المتميزين على تخصيص هذه النصوص والنماذج كلما ازداد فهمهم لنقاط قوتهم وضعفهم.
- عملية
المدخلات إلى برنامج PSP هي المتطلبات؛ يتم إكمال وثيقة المتطلبات وتسليمها إلى المهندس.
- PSP0، PSP0.1 (يقدمان الانضباط في العمليات والقياس)
تتألف منهجية PSP0 من ثلاث مراحل: التخطيط، والتطوير (التصميم، والبرمجة، والتجميع، والاختبار)، والتقييم النهائي. يتم وضع خط أساس لقياس الأداء الحالي للعملية، بما في ذلك الوقت المستغرق في البرمجة، والأخطاء التي تم إدخالها/إزالتها، وحجم البرنامج. في التقييم النهائي، يتأكد المهندس من تسجيل جميع بيانات المشاريع وتحليلها بشكل صحيح. تُطوّر منهجية PSP0.1 العملية بإضافة معيار للبرمجة، وقياس لحجم البرنامج، ووضع خطة شخصية لتحسين العملية (PIP). في هذه الخطة، يُسجّل المهندس أفكارًا لتحسين أدائه.
- PSP1، PSP1.1 (يقدم التقدير والتخطيط)
استنادًا إلى البيانات الأساسية التي جُمعت في PSP0 وPSP0.1، يُقدّر المهندس حجم البرنامج الجديد ويُعدّ تقرير اختبار (PSP1). تُستخدم البيانات المُتراكمة من المشاريع السابقة لتقدير إجمالي الوقت. يُسجّل كل مشروع جديد الوقت الفعلي المُستغرق. تُستخدم هذه المعلومات لتخطيط المهام والجدول الزمني وتقدير الوقت اللازم (PSP1.1).
- PSP2، PSP2.1 (يقدم إدارة الجودة والتصميم)
يُضيف برنامج PSP2 مرحلتين جديدتين: مراجعة التصميم ومراجعة الكود. ويركز البرنامج على منع العيوب وإزالتها. ويتعلم المهندسون تقييم وتحسين عملياتهم من خلال قياس المدة الزمنية اللازمة لإنجاز المهام وعدد العيوب التي يتم إدخالها وإزالتها في كل مرحلة من مراحل التطوير. كما يقوم المهندسون بإنشاء قوائم مرجعية واستخدامها لمراجعات التصميم والكود. ويُقدم برنامج PSP2.1 تقنيات تحديد وتحليل التصميم.
(PSP3 هو مستوى قديم تم استبداله بـ TSP.)
أهمية البيانات
يُعدّ استخدام البيانات التاريخية لتحليل أداء العمليات وتحسينه أحد الجوانب الأساسية لبرنامج تحسين أداء العمليات. ويستند جمع بيانات هذا البرنامج إلى أربعة عناصر رئيسية:
- النصوص
- مقاسات
- المعايير
- النماذج
توفر نصوص برنامج إدارة الأداء (PSP) إرشادات على مستوى الخبراء لاتباع خطوات العملية، كما توفر إطارًا لتطبيق مقاييس برنامج إدارة الأداء. ويتضمن برنامج إدارة الأداء أربعة مقاييس أساسية:
- الحجم - مقياس الحجم لجزء من المنتج، مثل أسطر التعليمات البرمجية (LOC).
- الجهد – الوقت اللازم لإكمال مهمة ما، ويتم تسجيله عادةً بالدقائق.
- الجودة – عدد العيوب في المنتج.
- الجدول الزمني – مقياس لتقدم المشروع، يتم تتبعه مقابل تواريخ الإنجاز المخططة والفعلية.
يضمن تطبيق المعايير على العملية دقة البيانات واتساقها. تُسجل البيانات في نماذج، عادةً باستخدام أداة برمجية خاصة بإدارة العمليات. وقد طوّر معهد هندسة البرمجيات أداةً لإدارة العمليات، كما تتوفر خيارات مفتوحة المصدر، مثل لوحة معلومات العمليات.
تُعدّ بيانات الوقت والعيوب والحجم البيانات الرئيسية التي يتم جمعها في أداة PSP، وتشمل هذه البيانات الوقت المستغرق في كل مرحلة، ووقت ومكان إدخال العيوب واكتشافها وإصلاحها، بالإضافة إلى حجم أجزاء المنتج. يستخدم مطورو البرامج العديد من المقاييس الأخرى المشتقة من هذه المقاييس الأساسية الثلاثة لفهم أداء برامجهم وتحسينه. وتشمل هذه المقاييس المشتقة ما يلي:
- دقة التقدير (الحجم/الوقت)
- فترات التنبؤ (الحجم/الوقت)
- توزيع الزمن في الطور
- توزيع حقن العيوب
- توزيع إزالة العيوب
- إنتاجية
- نسبة إعادة الاستخدام
- مؤشر أداء التكلفة
- القيمة المخططة
- القيمة المكتسبة
- القيمة المكتسبة المتوقعة
- كثافة العيوب
- كثافة العيوب حسب الطور
- اسم إزالة العيوب حسب المرحلة
- الاستفادة من إزالة العيوب
- معدلات التقييم
- إنتاجية العملية
- إنتاجية الطور
- تكلفة فشل الجودة (COQ)
- تقييم COQ
- نسبة النجاح/الفشل في الجودة
التخطيط والمتابعة
يُعد تسجيل بيانات الوقت والعيوب والحجم جزءًا أساسيًا من تخطيط وتتبع مشاريع PSP، حيث تُستخدم البيانات التاريخية لتحسين دقة التقدير.
يستخدم برنامج إدارة المشاريع (PSP) أسلوب التقدير القائم على الوكيل (PROBE) لتحسين مهارات المطورين في التقدير، مما يُسهم في تخطيط أكثر دقة للمشاريع. أما لتتبع المشاريع، فيستخدم البرنامج أسلوب القيمة المكتسبة .
يستخدم برنامج إدارة الأداء (PSP) أيضًا تقنيات إحصائية، مثل الارتباط والانحدار الخطي والانحراف المعياري، لتحويل البيانات إلى معلومات مفيدة لتحسين التقدير والتخطيط والجودة. ويتم حساب هذه الصيغ الإحصائية بواسطة أداة برنامج إدارة الأداء.
استخدام جهاز PSP
يهدف برنامج دعم الأداء الشخصي (PSP) إلى مساعدة المطور على تحسين عملية التطوير الشخصية الخاصة به؛ لذلك من المتوقع أن يستمر مطورو برنامج دعم الأداء الشخصي في تكييف العملية لضمان تلبيتها لاحتياجاتهم الشخصية.
PSP و TSP
عمليًا، تُستخدم مهارات PSP ضمن بيئة فريق TSP. تتألف فرق TSP من مطورين مدربين على PSP يتطوعون لتولي مسؤوليات محددة في المشروع، وبالتالي يُدار المشروع من قِبل الفريق نفسه. وباستخدام البيانات الشخصية التي جُمعت بفضل مهاراتهم في PSP، يضع الفريق الخطط والتقديرات ويراقب الجودة.
يمكن أن تساعد أساليب عملية PSP فرق TSP على الوفاء بالتزاماتها الزمنية وإنتاج برمجيات عالية الجودة. على سبيل المثال، وفقًا لبحث أجرته شركة واتس همفري، يفشل ثلث مشاريع البرمجيات، [ 3 ] لكن دراسة أجرتها SEI على 20 مشروعًا من مشاريع TSP في 13 منظمة مختلفة وجدت أن فرق TSP لم تلتزم بجداولها الزمنية المستهدفة إلا بنسبة 6% في المتوسط. [ 4 ]
يمكن أن يُعزى النجاح في الوفاء بالتزامات الجدول الزمني إلى استخدام البيانات التاريخية لإجراء تقديرات أكثر دقة، وبالتالي تستند المشاريع إلى خطط واقعية - وباستخدام أساليب جودة PSP، فإنها تنتج برامج منخفضة العيوب، مما يقلل الوقت المستغرق في إزالة العيوب في المراحل اللاحقة، مثل التكامل واختبار القبول.
برنامج دعم الأداء (PSP) ومنهجيات أخرى
تُعدّ عملية تطوير البرمجيات الشخصية (PSP) عمليةً شخصيةً قابلةً للتكييف لتناسب احتياجات كل مطوّر على حدة. وهي لا تقتصر على منهجية برمجة أو تصميم محددة؛ لذا يمكن استخدامها مع منهجيات مختلفة، بما في ذلك تطوير البرمجيات الرشيقة (Agile) .
يمكن تصنيف أساليب هندسة البرمجيات إلى أساليب تنبؤية وأخرى تكيفية. يُعدّ برنامج PSP منهجية تنبؤية، بينما تُعتبر منهجية Agile منهجية تكيفية، ولكن على الرغم من اختلافاتهما، فإنّ برنامج TSP/PSP ومنهجية Agile يشتركان في العديد من المفاهيم والأساليب، لا سيما فيما يتعلق بتنظيم الفريق. فكلاهما يمكّن الفريق من:
- حدد أهدافهم ومعاييرهم.
- تقدير العمل وجدولته.
- حدد جداول زمنية واقعية وقابلة للتنفيذ.
- ضع خططاً وقم بتحسين العمليات.
يشترك كل من منهجية أجايل ومنهجية تخطيط المشاريع (TSP/PSP) في فكرة تحمل أعضاء الفريق مسؤولية أعمالهم والعمل معًا للاتفاق على خطة واقعية، مما يخلق بيئة من الثقة والمساءلة. ومع ذلك، تختلف منهجية تخطيط المشاريع (TSP/PSP) عن منهجية أجايل في تركيزها على توثيق العملية واستخدامها للبيانات للتنبؤ بجداول المشاريع وتحديدها.
جودة
يهدف برنامج دعم البرمجيات (PSP) إلى إنتاج برمجيات عالية الجودة، ويُقاس مستوى الجودة بمدى خلوها من العيوب. ويرى البرنامج أن عملية ضمان الجودة يجب أن تُنتج برمجيات قليلة العيوب تلبي احتياجات المستخدم.
يُمكّن هيكل مراحل PSP مطوري PSP من اكتشاف العيوب مبكراً. ومن خلال اكتشاف العيوب مبكراً، يُمكن لـ PSP تقليل الوقت المُستغرق في المراحل اللاحقة، مثل مرحلة الاختبار.
تقوم نظرية PSP على أن إزالة العيوب في أقرب مكان ممكن من موقعها وزمانها أكثر اقتصادية وفعالية، لذا يُشجع مهندسو البرمجيات على إجراء مراجعات شخصية لكل مرحلة من مراحل التطوير. وعليه، يتضمن هيكل مراحل PSP مرحلتين للمراجعة:
- مراجعة التصميم
- مراجعة الكود
لإجراء مراجعة فعّالة، يجب اتباع عملية مراجعة منظمة. توصي مبادرة حماية البرامج (PSP) باستخدام قوائم التحقق لمساعدة المطورين على اتباع إجراءات منظمة باستمرار.
ينطلق برنامج إدارة الأداء (PSP) من فرضية أن أخطاء الأفراد عادةً ما تكون قابلة للتنبؤ، لذا يُمكن لمطوري البرنامج تخصيص قوائم التحقق الخاصة بهم لاستهداف أخطائهم الشائعة. كما يُتوقع من مهندسي البرمجيات إعداد مقترحات لتحسين العمليات، لتحديد مواطن الضعف في أدائهم الحالي التي ينبغي عليهم التركيز عليها للتحسين. وتساعد بيانات المشاريع السابقة، التي تكشف عن مواضع استهلاك الوقت ومواطن العيوب المُستحدثة، المطورين على تحديد المجالات التي تحتاج إلى تحسين.
كما يُتوقع من مطوري ألعاب PSP إجراء مراجعات شخصية قبل أن يخضع عملهم لمراجعة من قبل الأقران أو الفريق.
شهادة
يُقدّم معهد هندسة البرمجيات (SEI) في جامعة كارنيجي ميلون شهادةً معتمدةً في بروتوكول PSP. وتتلخص خطوات الحصول على شهادة مطوّر PSP من معهد هندسة البرمجيات فيما يلي: تعلّم بروتوكول PSP، واجتياز اختبار الشهادة، والحفاظ على صلاحية الشهادة. ويستند اختبار مطوّر PSP إلى المفاهيم الواردة في دليل معارف PSP. [ 5 ] ويُوفّر معهد هندسة البرمجيات قسمًا للأسئلة الشائعة [ 1 ] حول الشهادة.
انظر أيضاً
مراجع
- ١ ٢ "مطور معتمد من معهد هندسة البرمجيات (SEI) لبرامج PSP: الأسئلة الشائعة" . www.sei.cmu.edu . بيتسبرغ، بنسلفانيا: معهد هندسة البرمجيات ، جامعة كارنيجي ميلون . مؤرشف من الأصل في ٢٩ نوفمبر ٢٠١٤. تم الاطلاع عليه في ١٧ نوفمبر ٢٠١٤ .
- ↑ "شروط الاستخدام" . الولايات المتحدة الأمريكية: معهد هندسة البرمجيات ، جامعة كارنيجي ميلون . تم الاطلاع عليه بتاريخ 14 يناير 2013 .
- ↑ همفري، واتس س. "لماذا تفشل مشاريع البرمجيات الضخمة: الأسئلة الرئيسية الـ 12." كروس توك، مارس 2005. http://www.crosstalkonline.org/storage/issue-archives/2005/200503/200503-Humphrey.pdf مؤرشف بتاريخ 5 نوفمبر 2019 في أرشيف الإنترنت (Wayback Machine).
- ↑ ديفيس، نوبور، وجوليا مولاني. عملية تطوير البرمجيات الجماعية (TSP SM) في الممارسة العملية: ملخص للنتائج الحديثة. بيتسبرغ، بنسلفانيا: معهد هندسة البرمجيات، سبتمبر 2003.
- ↑ بوميروي-هاف، مارشا؛ كانون، روبرت؛ تشيك، تيموثي أ.؛ مولاني، جوليا؛ نيكولز، ويليام (2009). مجموعة معارف عملية البرمجيات الشخصية (PSP)، الإصدار 2.0 (ملف PDF) . بيتسبرغ، بنسلفانيا: معهد هندسة البرمجيات ، جامعة كارنيجي ميلون . تاريخ الاسترجاع: 17 نوفمبر 2014 .تقرير خاص قابل للتنزيل مجاناً CMU/SEI-2009-SR-018، 2009
للمزيد من القراءة
- "استخدام عملية برمجية شخصية محددة وقابلة للقياس" بقلم واتس إس. همفري ، نُشر في مجلة IEEE Software ، مايو 1996، الصفحات 77-88.
- PSP: عملية التطوير الذاتي لمهندسي البرمجيات ، 2005.
- تقديم مشاريع ناجحة باستخدام TSP(SM) و Six Sigma: دليل عملي لتطبيق عملية تطوير البرمجيات الجماعية ، موكيش جاين، 2008.
- "تقديم مشاريع ناجحة مع تحديات الفرق الجديدة" بقلم موكيش جاين ( http://www.sei.cmu.edu/tspsymposium/2009/2006/deliver.pdf )، سبتمبر 2006.
- هندسة البرمجيات: منهج عملي، الطبعة السابعة. روجر س. بريسمان. ماكجرو هيل للتعليم العالي. ٢٠٠٩. ISBN 0-07-337597-7، ISBN 978-0-07-337597-7، الصفحات 57-58.
- مقال بعنوان "مجموعة معارف عملية البرمجيات الشخصية (PSP)" من معهد هندسة البرمجيات في جامعة كارنيجي ميلون .
- مقال بعنوان "إدارة الجودة الشخصية باستخدام عملية البرمجيات الشخصية" .
روابط خارجية
- لوحة معلومات عملية البرمجيات ، أداة مفتوحة المصدر ( GPL3 ) PSP و TSP؛ يتم تقديمها بدون أو مع نصوص SEI الخاصة، ويتطلب الأخير تسجيل SEI مجاني.
- عملية تطوير البرمجيات
- جامعة كارنيجي ميلون
