مقياس برمجي
مقياس البرمجيّات هو مقياس لبعض خصائص البرنامج أو مواصفاته. ولأن المقاييس الكميّة هامّة في كلّ العلوم، فهناك جهد متواصل من خلال ممارسي علوم الحاسب الآلي ومنظّريه ليصلوا إلى مناهج مماثلة لتطوير البرمجيات. والهدف هو التوصّل إلى مقاييس موضوعيّة ومنتجة وكميّة قد تصلح لاستخدامات هائلة كوضع جدول زمني وتخطيط ميزانيّة وتقدير ألتكاليف واختبار التأكد من الجودة وإصلاح البرنامج وتعديل أداء البرنامج والتوزيع الأمثل للمهام على الموظفين.
المقاييس الشائعة للبرمجيات
عدلتضمن المقاييس الشائعة للبرمجيّات:
- وثيقة التقييم المتوازنة
- الآفات في كل سطر من الرمز
- طريقة كوكومى
- تغطية الكود
- التماسك
- كثافة التعليق [1]
- مكونات برمجيات كوناسينت
- الازدواج
- تركيب سيكلوماتيكى(تركيب ماكابى)
- تحليل مستوى الدالة
- تركيب هولستيد
- طول مسار التعليمات
- عدد ألأنواع والواجهات
- عدد سطور الكود
- عدد سطور متطلبات العميل
- زمن تنفيذ البرنامج
- زمن تحميل البرنامج
- حجم البرنامج (مزدوج)
- مقاييس حزمة البرمجيات لـ روبرت سيسل مارتين
- مستويات الدالة الدقيقة الترجيحيّة
التحديدات
عدلنظرًا للتعقيد الذي يشوب عملية تطوير البرمجيّات بسبب التّفاوت الواسع سوءًا في الأغراض أو المنهجيّات فإنّه من الصعب أن نحدد أو نقيس جودةُ البرمجيّات وكمّها وأن نقرر مقياس حسابي متّفق وصالح لا سيّما عند القيام بمثل تلك التوقّعات قبل ألتصميم التفصيلي. ومن المصادر ألأخرى التي تثير الجدل والمشقّة هو تقرير أي المقاييس أفضل، وماذا يعنى.[2][3] لذا قُيّدت الفائدة العمليّة لمقاييس البرمجيّات لتقلّص مجالاتها التي تشمل:
- الجدول الزمني
- الحجم/التركيب
- التكلفة
- الجودة
قد يستهدف الغرض العام للمقياس أحد هذه المجالات بأعلى أو أكثر، أو يستهدف التوازن بينها كمؤشّر لدوافع فريق العمل أو أداء المشروع.
القبول والرأي العام
عدليشير بعض الممارسين لتطوير البرمجيات إلى أن المقاييس التبسيطيّة قد تضرّ أكثر من أن تنفع.[4] ويلاحظ البعض الآخر أن المقاييس أصبحت جزٌء لا يتجزأ في عمليّة تطوير البرمجيّات.[2] أثارت هذه المقاييس في نفسيّة المبرمجين المخاوف من الآثار السلبيّة على الأداء بسبب الإجهاد وتوتر الأداء ومحاولات الغش في المقاييس، بينما برى الآخرون أنها تحمل تأثير إيجابي على تقييّم المبرمجين لأعمالهم أنفسهم، وتحول دون الاستهانة بهم.[5] ويجادل البعض بأن تعريفات العديد من منهجيّات المقاييس ليست دقيقة، ومن ثمّ لا تتضح أحيانًا طريقة الأدوات في الحساب وتوصّلها لنتائجها المحددة,[6] بينما يجادل البعض الآخر بأن وجود قياس غير دقيق أفضل من لا شيء ("لا يمكنك التحكم في ما لا يمكنك قياسه.”).[7] ويُظهر الدليل أن الهيئات الحكوميّة والجيش ألأمريكي و وكالة ناسا[8] ومستشارين تكنولوجيا المعلومات والمؤسسات ألأكاديمية[9] وبرمجيات تقييم التنمية الأكاديمية والتجاريّة تستخدم جميعها مقاييس البرمجيّات على نطاق واسع.
انظر أيضا
عدل- علم الحاسوب
- جي كيو إم
- أوبن هب: quantitative analysis of hundreds of open source projects
- أزمة البرمجيات
- هندسة البرمجيات
- جودة البرمجيات
المراجع
عدل- ^ "Descriptive Information (DI) Metric Thresholds". Land Software Engineering Centre. مؤرشف من الأصل في 2011-07-06. اطلع عليه بتاريخ 2010-10-19.
- ^ ا ب Binstock، Andrew. "Integration Watch: Using metrics effectively". SD Times. BZ Media. مؤرشف من الأصل في 2012-09-13. اطلع عليه بتاريخ 2010-10-19.
- ^ Kolawa، Adam. "When, Why, and How: Code Analysis". The Code Project. مؤرشف من الأصل في 2011-11-14. اطلع عليه بتاريخ 2010-10-19.
- ^ Kaner، Dr. Cem، Software Engineer Metrics: What do they measure and how do we know?، مؤرشف من الأصل في 2020-04-26
- ^ ProjectCodeMeter (2010) "ProjectCodeMeter Users Manual" page 65 نسخة محفوظة 24 مارس 2017 على موقع واي باك مشين.
- ^ Lincke، Rüdiger؛ Lundberg، Jonas؛ Löwe، Welf (2008)، "Comparing software metrics tools" (PDF)، International Symposium on Software Testing and Analysis 2008، ص. 131–142، مؤرشف من الأصل (PDF) في 2018-04-17
- ^ DeMarco، Tom. Controlling Software Projects: Management, Measurement and Estimation.
- ^ NASA Metrics Planning and Reporting Working Group (MPARWG) نسخة محفوظة 15 أغسطس 2011 على موقع واي باك مشين.
- ^ USC Center for Systems and Software Engineering نسخة محفوظة 11 ديسمبر 2017 على موقع واي باك مشين.
وصلات خارجية
عدلCovers a minimal set of essential metrics for a successful product delivery.
- Definitions of software metrics in .NET
- International Function Point Users Group
- What is FPA at Nesma website
- Further defines the term Software Metrics with examples.
- Software Engineering Metrics: What do they measure and how do we know - An intellectually rigorous treatment of software engineering metrics