معیار نرم‌افزار ای‌بی‌سی کیست؟ توضیح بده.
معیار نرم‌افزار ای‌بی‌سی توسط جری فیتزپاتریک در سال ۱۹۹۷ برای غلبه بر کاستی‌های LOC معرفی شد. این معیار نمرهٔ ای‌بی‌سی را به عنوان یک متغیر سه‌گانه تعریف می‌کند که اندازهٔ مجموعه ای از دستورهای کد منبع (source code) را نشان می‌دهد. نمرهٔ ای‌بی‌سی با شمارش تعداد انتساب‌ها (حرف اِی (A))، تعداد تکالیف (حرف بی (B)) و تعداد شرطی‌ها (حرف سی (C)) در یک برنامه محاسبه می‌شود. نمرهٔ ای‌بی‌سی را می‌توان برای روش‌ها، توابع، کلاس‌ها، ماژول‌ها یا پرونده‌های جداگانه در یک برنامه اعمال کرد.نمرهٔ ای‌بی‌سی با بردار سه بعدی &lt;تکالیف (A)، شاخه‌ها (B)، شرطی‌ها (C)&gt; نشان داده می‌شود. همچنین می‌تواند به عنوان یک متغیر اسکالر (scalar) معرفی شود، که اندازه ای برداری است، و به صورت زیر محاسبه می‌شود:طبق قرارداد، مقدار ای‌بی‌سی به نزدیکترین دهم گرد می‌شود.تاریخچه.مفهوم اندازه‌گیری حجم یک نرم‌افزار برای اولین بار توسط موریس هالستید از دانشگاه پردو در سال ۱۹۷۵ مطرح شد. او پیشنهاد کرد که هر برنامهٔ کامپیوتری عمدتاً از نشانه‌ها یا تشکیل شده‌است: عملگرها () و عملوندها. او به این نتیجه رسید که تعداد عملگر و عملوندهای منحصر به فرد می‌تواند ابزاری برای اندازه‌گیری حجم برنامه باشد. با این حال، این رویکرد برای اندازه‌گیری حجم برنامه مورد استفاده قرار نگرفت.تعداد خطوط کد () یا LOC یکی دیگر از معیارهای محبوب حجم برنامه بود ولی به عنوان اندازه‌گیری دقیق اندازه برنامه در نظر گرفته نشده بود، زیرا وابسته به نوع و سبک نگارش کدزنی بود.معیار دیگری به نام معیار عملکرد یا نیز برای محاسبه تعداد مبادلات ورودی و خروجی کاربر معرفی شد. اما محاسبات این روش نه در مورد عملکرد برنامه و نه در مورد روال‌هایی که در برنامه دخیل بودند اطلاعاتی ارائه نمی‌داد.معیار ای‌بی‌سی برای غلبه بر کاستی‌های روش‌هایی که در بالا اشاره شده تدوین شد. با این حال، از نمره معیار عملکرد می‌توان برای تکمیل نمره ای‌بی‌سی نیز استفاده کرد.گرچه مؤلف ادعا می‌کند که این معیار حجم را اندازه‌گیری می‌کند، برخی معتقدند که معیاری برای سنجش پیچیدگی است. البته توانایی معیار ای‌بی‌سی برای سنجش پیچیدگی وابسته به تعریف ما از پیچیدگی دارد.تعریف.سه بخش زیر نمرهٔ معیار ای‌بی‌سی را تعریف می‌کنند:از آنجا که زبانهای پایه مانند java ,C++ ،C و غیره فقط عملیاتی مانند انتساب متغیرها، فراخوانی توابع و شرایط آزمایش دارند، نمرهٔ ای‌بی‌سی با این مولفه تعیین می‌شود.اگر برای یک زیرروال بردار ای‌بی‌سی به عنوان &lt;۵٬۱۱٬۹&gt; نشان داده شود، به این معنی است که زیرروال دارای ۵ انتساب، ۱۱ شاخه و ۹ شرط است. برای استانداردسازی، شمارش‌ها باید در براکت‌های زاویه ای یا &lt;&gt; محصور شده و با همان ترتیب در نمادهای نوشته شوند.معمولاً مقایسه اندازه کد منبع با استفاده از مقدار اسکالر راحت تر است. تعداد هر معیار ای‌بی‌سی مشخص است، بنابراین طبق سخن جری فیتزپاتریک ما این سه بخش را متعامد می‌دانیم که اجازه می‌دهد اندازه ای‌بی‌سی مقیاسی همان‌طور که در بالا نشان داده شده محاسبه شود.نمرات مقیاس ای‌بی‌سی برخی از مزایای بردار را از دست می‌دهد. به جای محاسبهٔ اندازهٔ بردار، مجموع وزن بردارها می‌تواند مقایسه دقیق تری از حجم برنامه ارائه دهد. با این حال نمرات مقیاس ای‌بی‌سی نباید بدون بردارهای همراه ای‌بی‌سی ارائه شود، زیرا مقادیر اسکالر نمایانگر اندازه نیستند.نظریه.قواعد خاص برای شمارش مقادیر بردار ای‌بی‌سی به دلیل تفاوت معنایی بین آنها، باید برای زبانهای مختلف متفاوت تفسیر شود.بنابراین، قوانین محاسبهٔ بردار ای‌بی‌سی بر اساس زبان کمی متفاوت است. ما در زیر قواعد محاسبهٔ متریک ای‌بی‌سی را برای C++ ,C و java تعریف می‌کنیم. بر اساس این قواعد می‌توان قوانین سایر زبانهای ضروری را تفسیر کرد.قواعد ای‌بی‌سی برای C.قواعد زیر تعداد انتساب‌ها، شاخه‌ها و شرایط را در معیار ای‌بی‌سی برای زبان نشان می‌دهد:قواعد ای‌بی‌سی برای ++C.قواعد زیر تعداد انتساب‌ها، شاخه‌ها، شرایط را در معیار ای‌بی‌سی برای زبان نشان می‌دهد:قواعد ای‌بی‌سی برای Java.قواعد زیر تعداد انتساب‌ها، شاخه‌ها و شرط‌ها را در معیار ای‌بی‌سی برای زبان جاوا نشان می‌دهد:برنامه‌های کاربردی.استقلال از سبک کدزنی.از آنجا که معیار نمره ای‌بی‌سی بر اساس این ایده ساخته شده‌است که وظایفی مانند ذخیره داده، انشعاب و آزمایش شرطی در آن موجود باشند، این معیار مستقل از سبک برنامه‌نویسی کاربر است.تخمین زمان پروژه.محاسبهٔ نمرهٔ ای‌بی‌سی در تخمین زمان مورد نیاز برای تکمیل پروژه کمک می‌کند. این می‌تواند با تخمین تقریبی نمره ای‌بی‌سی برای پروژه و با محاسبهٔ نمرهٔ ای‌بی‌سی برنامه در یک روز خاص انجام شود. با تقسیم نمرهٔ ای‌بی‌سی پروژه بر نمرهٔ ای‌بی‌سی حاصل در یک روز، می‌توان مدت زمان لازم برای اتمام پروژه را بدست آورد.محاسبهٔ نرخ اشکال.نرخ اشکال در ابتدا به صورت "تعداد مشکل تفسیم بر خطوط کد محاسبه می‌شد". با این حال، LOC معیار قابل اعتمادی برای اندازه برنامه نیست زیرا به سبک کدگذاری بستگی دارد. یک روش دقیق تر برای اندازه‌گیری میزان اشکال و شمارش "تعداد اشکال تقسیم بر نمرهٔ ای‌بی‌سی است".مقایسهٔ برنامه.برنامه‌های نوشته شده به زبان‌های مختلف را می‌توان با کمک نمرات ای‌بی‌سی مقایسه کرد زیرا بیشتر زبان‌ها از انتساب‌ها، شاخه‌ها و عبارات شرطی استفاده می‌کنند.اطلاعات مربوط به شمارش پارامترهای منفرد (تعداد تخصیص‌ها، شاخه‌ها و شرایط) می‌تواند به طبقه‌بندی برنامه به عنوان «داده قوی» یا «عملکرد قوی» یا «منطق قوی» کمک کند. فرم برداری از نمره ای‌بی‌سی می‌تواند بینشی در مورد اصول رانندگی در پشت برنامه ایجاد کند، در حالی که جزئیات در فرم اسکالر نمره گم می‌شوند.معیار خطی.نمرات ای‌بی‌سی خطی هستند، بنابراین می‌توان هر پرونده، ماژول، کلاس و عملکرد یا روش را نمره گذاری کرد. به عنوان مثال، نمرهٔ ای‌بی‌سی (حالت برداری) برای یک ماژول مجموع نمرات زیر ماژول‌های آن است. با این حال، نمرات مقیاس ای‌بی‌سی غیر خطی هستند.