نقطة وظيفية

تُعدّ نقطة الوظيفة " وحدة قياس" للتعبير عن مقدار وظائف الأعمال التي يوفرها نظام المعلومات (كمنتج) للمستخدم. تُستخدم نقاط الوظيفة لحساب مقياس الحجم الوظيفي (FSM) للبرمجيات. تُحسب تكلفة الوحدة الواحدة (بالدولار أو الساعات) بناءً على المشاريع السابقة. [ 1 ]

المعايير

توجد العديد من المعايير المعترف بها و/أو المواصفات العامة لتحديد حجم البرامج بناءً على نقاط الوظائف.

1. معايير المنظمة الدولية للمقاييس (ISO)

  • FiSMA: ISO/IEC 29881:2010 تكنولوجيا المعلومات – هندسة النظم والبرمجيات – FiSMA 1.1 طريقة قياس الحجم الوظيفي.
  • IFPUG : ISO/IEC 20926:2009 هندسة البرمجيات والأنظمة – قياس البرمجيات – طريقة قياس الحجم الوظيفي لـ IFPUG.
  • مارك-II: ISO/IEC 20968:2002 هندسة البرمجيات - تحليل نقاط الوظائف - دليل ممارسات العد
  • نسما: ISO/IEC 24570:2018 هندسة البرمجيات - طريقة نسما لقياس الحجم الوظيفي، الإصدار 2.3 - تعريفات وإرشادات عد لتطبيق تحليل نقاط الوظائف
  • COSMIC : ISO/IEC 19761:2011 هندسة البرمجيات. طريقة قياس الحجم الوظيفي.
  • OMG : ISO/IEC 19515:2019 تكنولوجيا المعلومات - مجموعة إدارة الكائنات، نقاط الوظائف الآلية (AFP)، 1.0

تُعدّ المعايير الخمسة الأولى تطبيقات للمعيار الشامل لقياس الحجم الوظيفي ISO/IEC 14143. [ 2 ] وتُقدّم مواصفات OMG لنقاط الوظائف الآلية (AFP)، بقيادة اتحاد جودة برمجيات تكنولوجيا المعلومات ، معيارًا لأتمتة عدّ نقاط الوظائف وفقًا لإرشادات المجموعة الدولية لمستخدمي نقاط الوظائف ( IFPUG ). مع ذلك، تُعاني التطبيقات الحالية لهذا المعيار من قصور في قدرتها على التمييز بين المخرجات الخارجية (EO) والاستعلامات الخارجية (EQ) بشكل تلقائي، دون الحاجة إلى بعض الإعدادات المسبقة. [ 3 ]

مقدمة

تم تعريف نقاط الوظائف في عام 1979 في كتاب "قياس إنتاجية تطوير التطبيقات" لألان ج. ألبريشت في شركة IBM . [ 4 ] يتم تحديد متطلبات المستخدم الوظيفية للبرنامج، ويُصنف كل منها إلى أحد الأنواع الخمسة التالية: المخرجات، والاستعلامات، والمدخلات، والملفات الداخلية، والواجهات الخارجية. بمجرد تحديد الوظيفة وتصنيفها، يتم تقييم مدى تعقيدها وتخصيص عدد من نقاط الوظائف لها. يرتبط كل متطلب من متطلبات المستخدم الوظيفية بوظيفة أعمال للمستخدم النهائي، مثل إدخال البيانات في حالة "المدخلات" أو استعلام المستخدم في حالة "الاستعلام". هذا التمييز مهم لأنه يُسهّل ربط الوظائف المقاسة بنقاط الوظائف بمتطلبات المستخدم، ولكنه قد يُخفي أيضًا الوظائف الداخلية (مثل الخوارزميات)، التي تتطلب موارد لتنفيذها.

لا توجد حاليًا طريقة معتمدة من المنظمة الدولية للمعايير (ISO) لحساب حجم الآلات المحدودة (FSM) تتضمن التعقيد الخوارزمي في نتيجة تحديد الحجم. وقد طُرحت مؤخرًا عدة مناهج لمعالجة هذا القصور الملحوظ، وتم تطبيقها في العديد من البرامج التجارية . وتشمل التعديلات على طريقة IFPUG القائمة على خوارزمية ألبريشت، والمصممة لمعالجة هذا القصور (وغيره من أوجه القصور)، ما يلي:

  • نقاط وظيفية مبكرة وسهلة - تتكيف مع تعقيد المشكلة والبيانات من خلال سؤالين ينتج عنهما قياس تعقيد ذاتي إلى حد ما؛ وتبسط القياس عن طريق إلغاء الحاجة إلى عد عناصر البيانات.
  • نقاط الوظائف الهندسية – يتم احتساب العناصر (أسماء المتغيرات) والمعاملات (مثل العمليات الحسابية، والمساواة/عدم المساواة، والمعاملات المنطقية). يُبرز هذا التنوع الوظائف الحسابية. [ 5 ] والهدف مشابه لهدف مقاييس تعقيد هالستيد القائمة على المعاملات/المُعاملات .
  • مقياس بانغ – يُعرّف مقياسًا وظيفيًا يعتمد على اثني عشر عدّادًا أوليًا (بسيطًا) تؤثر على أو تُظهر بانغ، المُعرّف بأنه "مقياس الوظيفة الحقيقية التي يُفترض تقديمها كما يراها المستخدم". قد يكون مقياس بانغ مفيدًا في تقييم قيمة وحدة برمجية من حيث مقدار الوظيفة المفيدة التي تُقدّمها، على الرغم من قلة الأدلة في الأدبيات على هذا التطبيق. يُمكن استخدام مقياس بانغ عند النظر في إعادة هندسة البرمجيات (سواءً كانت كاملة أو جزئية)، كما هو مُناقش في صيانة الأنظمة التشغيلية - نظرة عامة.
  • نقاط الميزة – يضيف هذا التحديث تغييرات لتحسين قابلية التطبيق على الأنظمة ذات المعالجة الداخلية الكبيرة (مثل أنظمة التشغيل وأنظمة الاتصالات). وهذا يسمح بمراعاة الوظائف التي لا يدركها المستخدم بسهولة، ولكنها ضرورية للتشغيل السليم.
  • نقاط الوظائف الدقيقة الموزونة - أحد النماذج الأحدث (2009) التي تقوم بضبط نقاط الوظائف باستخدام الأوزان المستمدة من تعقيد تدفق البرنامج، ومفردات المعاملات والمشغلات، واستخدام الكائنات، والخوارزمية.
  • نقاط الدالة الضبابية - تقترح انتقالًا ضبابيًا وتدريجيًا بين التعقيدات المنخفضة والمتوسطة والمتوسطة والعالية [ 6 ]

مقابلة

يهدف استخدام نقاط الوظائف بدلاً من أسطر التعليمات البرمجية إلى معالجة العديد من المشكلات الإضافية:

  • يكمن خطر "التضخم" في عدد أسطر التعليمات البرمجية المُنشأة، وبالتالي تقليل قيمة نظام القياس، في حال تحفيز المطورين على زيادة إنتاجيتهم. ويشير أنصار البرمجة الوظيفية إلى هذا الأمر بقياس حجم الحل بدلاً من حجم المشكلة.
  • تُكافئ مقاييس عدد أسطر الكود ( LOC ) لغات البرمجة منخفضة المستوى، لأنها تتطلب عددًا أكبر من أسطر الكود لتقديم وظائف مماثلة لتلك التي تقدمها لغات البرمجة عالية المستوى. [ 7 ] يقدم سي. جونز طريقة لتصحيح هذا في بحثه. [ 8 ]
  • لا تُعدّ مقاييس عدد أسطر الكود (LOC) مفيدةً خلال المراحل الأولى من المشروع، حيث يصعب تقدير عدد أسطر الكود التي سيتم تسليمها. مع ذلك، يمكن استخلاص نقاط الوظائف من المتطلبات، وبالتالي فهي مفيدة في أساليب مثل التقدير بالوكالة.

نقد

لاحظ ألبريشت في بحثه وجود ارتباط وثيق بين نقاط الوظائف وعدد أسطر التعليمات البرمجية، [ 9 ] مما أثار التساؤل حول جدوى هذا المقياس في حال توفر مقياس أكثر موضوعية، ألا وهو عدّ أسطر التعليمات البرمجية. إضافةً إلى ذلك، بُذلت محاولات عديدة لمعالجة أوجه القصور الملحوظة في هذا المقياس من خلال تحسين آلية العدّ. [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] وقدّم آخرون حلولاً لتجاوز هذه التحديات عبر تطوير أساليب بديلة تُوفّر مؤشراً تقريبياً لكمية الوظائف المُقدّمة. [ 16 ]

انظر أيضاً

مراجع

  1. توماس كاتينغ، دروس التقدير المستفادة في إدارة المشاريع - التقليدية ، تم الاطلاع عليه في 28 مايو 2010
  2. اللجنة الفنية المشتركة 1/اللجنة الفرعية 7 التابعة للمنظمة الدولية للمعايير/اللجنة الكهروتقنية الدولية (1 فبراير 2007). "ISO/IEC 14143" . المنظمة الدولية للمعايير . تاريخ الاطلاع: 26 فبراير 2019 .{{cite web}}: صيانة CS1: الأسماء الرقمية: قائمة المؤلفين ( رابط )
  3. مواصفات OMG/CISQ "نقاط الوظائف الآلية"، فبراير 2013، رقم وثيقة OMG ptc/2013-02-01 http://www.omg.org/spec/AFP/1.0
  4. AJ Albrecht، "قياس إنتاجية تطوير التطبيقات"، وقائع ندوة SHARE وGUIDE وIBM المشتركة لتطوير التطبيقات، مونتيري، كاليفورنيا، 14-17 أكتوبر، شركة IBM (1979)، ص 83-92.
  5. نقاط وظائف الهندسة ونظام التتبع، مركز دعم تكنولوجيا البرمجيات، مؤرشف في 11 نوفمبر 2010 على موقع Wayback Machine ، تم استرجاعه في 14 مايو 2008
  6. ^ ليما، أوسياس دي سوزا؛ فارياس، بيدرو بورفيريو مونيز؛ بلشيور، أرنالدو دياس (2003-06-01). “النمذجة الغامضة لتحليل النقاط الوظيفية”. مجلة جودة البرمجيات . 11 (2): 149-166 . دوى : 10.1023 / أ:1023716628585 . ردمك 1573-1367 . S2CID 19655881 .  
  7. جونز، سي. وبونسينيور أو. اقتصاديات جودة البرمجيات، أديسون-ويسلي، 2012. ص 105-109.
  8. جونز، سي. قياس البرمجيات التطبيقية: ضمان الإنتاجية والجودة. ماكجرو هيل. يونيو 1996.
  9. ألبريشت، أ. وظيفة البرمجيات، أسطر المصدر من التعليمات البرمجية، وتقدير جهد التطوير - التحقق من صحة علم البرمجيات. 1983.
  10. سيمونز، سي آر "تحليل نقاط الوظائف: الصعوبات والتحسينات." معاملات IEEE في هندسة البرمجيات. يناير 1988. ص 2-111.
  11. هيمسترا، ف. وكوسترز ر. "تحليل نقاط الوظائف: تقييم نموذج تقدير تكلفة البرمجيات." المجلة الأوروبية لنظم المعلومات. 1991. المجلد 1، العدد 4. الصفحات 229-237.
  12. جيفري، ر. وستاتيس، ج. "تحديد حجم البرمجيات بناءً على المواصفات: دراسة تجريبية لمقاييس الوظائف." وقائع ورشة العمل السنوية الثامنة عشرة لهندسة البرمجيات. 1993. ص 97-115.
  13. سايمونز، سي. تحديد حجم البرمجيات وتقدير تكلفتها: تحليل نقاط الوظائف (FPA) الإصدار الثاني. جون وايلي وأولاده، نيويورك، 1991
  14. ديماركو، ت. "خوارزمية لتحديد حجم منتجات البرمجيات." مراجعة تقييم أداء ACM Sigmetrics. 1984. المجلد 12، العدد 2. الصفحات 13-22.
  15. جيفري، دي آر، لو، جي سي، وبارنز، إم. "مقارنة بين تقنيات عد نقاط الوظائف." معاملات IEEE في هندسة البرمجيات. 1993. المجلد 19، العدد 5. الصفحات 529-532.
  16. شوارتز، آدم. "استخدام حالات الاختبار لتحديد حجم الأنظمة: دراسة حالة". المؤتمر الدولي التاسع لتكنولوجيا المعلومات - الأجيال الجديدة 2012. أبريل 2012. الصفحات 242-246.