النقاط الوظيفية الصغرى المرجحة عبارة عن خوارزمية حديثة لتحجيم البرمجيات اخترعتها شركة الحلول المنطقية [1] Logical Solutions في عام 2009 وهي أسلوب يلي المنهجيات العلمية القوية مثل طريقة كوكومو و نموذج كسيسمو ومؤشر الصيانة, و مقياس مكابي, والنقاط الوظييفة, والنقاط الوظيفية الصغرى, وتعقيد هالستيد.
ينتج عن استخدام هذه الخوارزمية نتائج أكثر دقة من استخدام الأساليب التقليدية لتحجيم البرمجيات [2], بينما تتطلب إعداد ومعرفة أقل من جانب المستخدم النهائي لأن معظم التقدير قائم علي القياسات الآلية لكود مصدري موجود بالفعل. كما تستخدم العديد من منهجيات القياس القديمة خطوط الكود المصدري لقياس حجم البرمجيات, فإن طريقة النقاط الوظيفية الصغرى المرجحة تستخدم محلل لغوي لفهم الكود المصدري وتحليله إلي وظائف صغري وتستمد منه العديد من تعقيدات الأكواد ومقاييس الحجم والتي تتآلف جميعها لتكوين نتيجة جهد نهائية. بالإضافة إلي تطابقها مع طريقة دورة حياة تطوير البرمجيات باستخدام نموذج الشلال, فإن طريقة النقاط الوظيفية الصغرى المرجحة تتطابق أيضاً مع طرق أحدث لتطوير دورة حياة البرمجيات مثل إستراتيجية 6 سيجما, وطريقة بوهيم الحلزونية, وطريقة أجيل (AUP/Lean/XP/DSDM) وذلك نظراً لقدرتها علي التحليل التمايزي التي تضمنها عناصر القياس عالية الدقة[3].
العناصر المقاسة
العناصر المقاسة بواسطة طريقة النقاط الوظيفية الصغرى المرجحة عبارة عن عدة مقاييس برمجيات مختلفة مستخرجة من الكود المصدري بواسطة التحليل الخوارزمي لطريقة النقاط الوظيفية الصغرى المرجحة. يتم تمثيلها كنسبة مئوية من وحدة الجهد الكاملة (مشروع أو ملف), ويتم ترجمتها إلي زمن.
- تعقيد التدفق (FC)ـ يقيس تعقد مسار ضبط التدفق بنفس طريقة مقياس مكابي لكن بدقة أكبر باستخدام المرجحات وحساب العلاقات.
- مفردات الهدف (OV) - تقيس كمية المعلومات الفريدة المتضمنة في كود مصدر البرنامج بنفس طريقة مفردات هالستيد التقليدية ولكن بتفاعل لغوي أكبر.
- استحضار الهدف (OC) - يقيس كمية الاستخدام من قِبل المعلومات المتضمنة في كود مصدر البرنامج.
- التعقيد الحسابي(AI) - يقيس تعقيد العمليات الحسابية في البرنامج
- نقل البيانات (DT) - يقيس استغلال هياكل البيانات داخل البرنامج
- هيكل الكود (CS) - يقيس كم الجهد المبذول في هيكل البرنامج مثل فصل الأكواد إلي فئات ودوال
- البيانات المباشرة (ID) – تقيس كم الجهد المبذول في تضمين بيانات قوية التكويد أو الترميز
- التعليقات(CM) - يقيس كم الجهد المبذول في كتابة تعليقات البرنامج
الحساب
تستخدم خوارزمية النقاط الوظيفية الصغرى المرجحة عملية من 3 مراحل: التحليل الوظيفي, وتحويل APPW وترجمة النتائج. تقوم الخوارزمية التفاعلية يتحقيق التوازن وتلخيص العناصر المقاسة وإنتاج نتيجة جهد إجمالية. المعادلة الأساسية هي:
- ∑(WiMi)∏Dq
- M = قيمة مقاييس المصدر المقاسة بواسطة مرحلة التحليل في طريقة النقاط الوظيقية الصغرى المرجحة
- W = الترجيح المعدل المخصص للقياس M بواسطة نموذج APPW
- N = عدد أنواع المقاييس
- i = مؤشر نوع المقياس الحالي (التكرار)
- D = عامل دوافع التكلفة الذي يُحدده مدخلات المستخدم
- q = مؤشر دافع التكلفة الحالي (التكرار)
- K = عدد دوافع التكلفة
تتحول النتيجة إلي زمن عن طريق تطبيق نموذج إحصائي يسمي Average Programmer Profile Weights (APPW) والتي تعتبر طريقة لاحقة لـ طريقة كوكومو و نموذج كسيسمو. ثم يتم ضرب الزمن الناتج عن ساعات عمل المبرمج في التكلفة التي حددها المستخدم للساعة الواحدة للمبرمج المتوسط حتي ينتج متوسط تكلفة المشروع مترجمة إلي عُملة المستخدم.
العيوب
العوامل الأساسية في طريقة النقاط الوظيفية الصغرى المرجحة عند مقارنتها بنماذج التحجيم التقليدية مثل طريقة كوكومو تعتبر أكثر تعقيداً لدرجة أنه لا يمكن تقييمها فعلياً بشكل يدوي حي في حالة المشروعات الصغيرة لكنها تتطلب برنامج إلكتروني لتحليل الكود المصدري. نتيجة لذلك, فإنه يمكن استخدامها فقط في حالة المشابهة القائمة علي توقعات التكلفة وليس علي التخمينات النظرية.
المراجع
- ProjectCodeMeter (2010) "ProjectCodeMeter Users Manual" pages 33-34 - تصفح: نسخة محفوظة 24 مارس 2017 على موقع واي باك مشين.
- Capers Jones (October 2009) "Software Engineering Best Practices": pages 318-320 [1] - تصفح: نسخة محفوظة 15 ديسمبر 2019 على موقع واي باك مشين.
- TickIT Quarterly publication (2009) "Quarter 1, 2009": page 13 - تصفح: نسخة محفوظة 02 أبريل 2012 على موقع واي باك مشين.