موضوع مقاله: جفتگری (دانش رایانه) | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # جفتگری (دانش رایانه) | مقدمه: در دانش رایانه جفتگری یا وابستگی به میزان اتکای یک ماژول از برنامه به سایر ماژول‌ها گفته می‌شود. | ## بخش 1: جفتگری (دانش رایانه) | چسبندگی و جفتگری به عنوان معیارهای اندازه‌گیری کیفیت نرم‌افزار توسط لری کنستانتین، یکی از توسعه دهندگان اصلی طراحی ساختاریافته،W. جفتگری ضعیف غالباً نشانهٔ یک سیستم رایانه‌ای خوش ساخت و یک طراحی خوب است و اگر با چسبندگی بالا نیز همراه شود، باعث افزایش خوانایی و قابلیت نگهداری می‌شود. برخی از انواع جفتگری به ترتیب نزولی از بیشترین تا کمترین میزان جفتگری عبارتند از: جفتگری محتوا(Content Coupling) در این نوع جفتگری یک ماژول از برنامه به جزئیات داخلی یک ماژول دیگر وابسته است یا آن را تغییر می‌دهد. استاندارد مؤسسه مهندسان برق و الکترونیک این استاندارد توسط مؤسسه مهندسان برق و الکترونیک ارائه شده و مشتمل بر ۶ جفتگری است این استاندارد تا حد زیاد با آنچه گلنفورد مِیِرز در سال ۱۹۷۴ ارائه داده شباهت دارد ولی تفاوت‌های نیز وجود دارد. برای مثال ارسال عدد صفر به صورتی که داده‌است و اعلام می‌نماید که پیغام فرستاده شده قابل درک نیست. این استاندارد اگرچه از لحاظ لغوی به بررسی پرداخته، برخی از جنبه‌ها را فراموش نموده که مهم‌ترین آن، به دلیل قدیمی بودن و عدم روزآوری، در نظر نگرفتن برنامه‌نویسی شیءگراست. جفتگری در زبان‌های شیءگرا نورمن فنتون در کتاب «متریک‌های نرم‌افزاری: رویکردی سخت‌گیرانه و عملی» متریک نرم‌افزاری را به صورتِ: «در حقیقت متریک نرم‌افزاری عبارتی بنیادی برای توصیف دامنهٔ وسیعی از فعالیت‌های اندازه‌گیری است. | ## بخش 2: جفتگری (دانش رایانه) | این موضوع همچنین شامل جنبه‌هایی از کنترل کیفیت و ضمانت است که پوشش دهندهٔ فعالیت‌هایی از قبیل یافتن نقایص در طول توسعه و آزمایش است».فنتون و مارتین نیل: متریک‌نرم‌افزار-نقشهٔ راه. همچنین وی دربارهٔ این موضوع که نباید به سرعت به دنبال انتزاعی کردن تعریف پیش رفت نیز گفته‌است: «... برای ایجاد نگاشت (ریاضی) تعجیل کرده و سپس اعداد را دستکاری می‌نماییم…».فنتون و مارتین نیل: متریک نرمذافزاری:رویکرد سخت‌گیرانه و عملی، صفحهٔ ۳۷ با ارائه زبان‌های شیءگرا و ارائه ویژگی‌های آن از سوی «گریدی بوش» ویژگی‌های زبان‌های شیءگرا برشمرد. این چارچوب شامل چندین متریک بود که هر یک یکی از وجوه نرم‌افزار را اندازه‌گیری می‌کرد. نام متریک مخفف توصیف کاپلینگ بین اشیاء CBO شیء از کلاس استفاده کند یا مورد استفاده قرار گیرد ارسال پیام RFC تعداد متدهایی که به صورت مستقیم فراخوان شدهاست. عمق درخت ارثبری DIT تعداد کلاس‌هایی که از کلاس مورد نظر به نحوی ارثبری کرده‌اند متدهای وزن‌دار WMPC تعداد متدهای موجود در کلاس (شمارش براساس وزن‌دهی) این متریک مورد انتقادهای زیادی قرار گرفت. همچنین «تریسی هال» و «توبیاس میر» متریک‌های ارائه شده توسط چیدامبر را بدون منطق و کارایی خطاب کردند. | ## بخش 3: جفتگری (دانش رایانه) | آن‌ها میان «شیء» و «کلاس» تفاوت قایل شدند و برای هریک متریکی جداگانه را پوشش دادند. اما روش چیدامبر-کمرر به هیچ وجه اصول اعداد ترتیبی را رعایت نمی‌کرد که منجر به عدم عملیاتی شدن آن می‌گردد. تد فیسون از جهت دیگری به مسئلهٔ جفتگری نگاه نموده و آن را از دو جهت بررسی نموده: «ذات» و «گونه». در بخش ایستا، تا زمانی که تمام ماژول‌ها فراهم نباشد اصولاً برنامه قادر به کامپایل شدن نمی‌باشد. از نظر گونه به سه زیر دستهٔ «جفتگری براساس گونه»، «جفتگری منطقی» و نیز «جفتگری براساس امضا» تقسیم می‌شوند. | ## جمع‌بندی | نوع جفتگری زیر مجموعه شرح ذات مثالمنطقی الگوریتم دو ماژول براساس یک الگوریتم و به صورت غیرمستقیم با یکدیگر در ارتباط هستند، در صورت تغییر یک از آن‌ها دیگری نیز باید تغییر نمایدپویا خواندن/نوشتن، رمزنگاری/رمزگشایی لیترال دو ماژول بر روی داده‌هایی کار می‌نمایند که مستقیماً بین آن‌ها تبادل نمی‌شود اما ترتیب آن‌ها از نظر مفهومی بسیار مهم است و هر گونه تغییر در یکی منجر به ساقط اعتبار شدن فهم ماژول دیگر در فهم داده می‌شود پویا ارسال یک آرایه شامل نام و سال گونه غیرمبهم ایجاد یک شی از کلاسی دیگر در همان ماژول یا ماژول متفاوت پویا ایجاد شی با استفاده از عملگر new در سی++ مبهم کلاسی محتوی یک ارجاع به شی دیگر بدون ایجاد مستقیم آنپویا دریافت ارجاع به شی از طریق پارمتری در یکی از متدها کلاس جاریK کلاسی محتوی یک دادهٔ ثابت از کلاس دیگری باشد ایستا/پویا کامپایلر در نوع ایستا قادر به کشف و حذف آن است.سکو با فراخوانی هریک از کلاس‌های پایهٔ سکوی اجرای برنامه، برنامه/ماژول/کلاس به سکوی اجرایش جفت می‌گردد که قابل حذف و تعدیل نمی‌باشد پویا مثل cout<<"hello!" در سی++ امضا ندارد در این نوع جفت‌گری، به جای کلاس یا ماژول، دو متد از اشیا به یکدیگر جفت می‌شوند.