Coupling (computer programming)
سافٹ ویئر انجینئرنگ میں، جوڑی سافٹ ویئر ماڈیولز کے درمیان باہمی انحصار کی ڈگری ہے۔ یہ ایک پیمائش ہے کہ دو معمولات یا ماڈیولز کتنے قریب سے جڑے ہوئے ہیں۔ ماڈیولز کے درمیان تعلقات کی طاقت۔ جوڑی عام طور پر ہم آہنگی سے متصادم ہوتی ہے۔ کم جوڑی اکثر اعلی ہم آہنگی سے متعلق ہوتی ہے، اور اس کے برعکس۔ کم جوڑی کو اکثر ایک اچھی طرح سے تشکیل شدہ کمپیوٹر سسٹم اور ایک اچھے ڈیزائن کی علامت سمجھا جاتا ہے، اور جب اعلی ہم آہنگی کے ساتھ مل کر، اعلی پڑھنے کی اہلیت اور برقرار رکھنے کے عمومی اہداف کی حمایت کرتا ہے۔ جوڑی اور ہم آہنگی کے سافٹ ویئر کے معیار کے میٹرکس کو لیری کانسٹینٹین نے 1960 کی دہائی کے آخر میں ایک منظم ڈیزائن کے حصے کے طور پر ایجاد کیا تھا، جو "اچھے" پروگرامنگ طریقوں کی خصوصیات پر مبنی تھا جس نے دیکھ بھال اور ترمیم کے اخراجات کو کم کیا۔ ساختہ ڈیزائن، بشمول ہم آہنگی اور جوڑی، مضمون اسٹیونز، مائرز اینڈ کانسٹینٹین (1974) اور کتاب یورڈن اینڈ کانسٹینٹین (1979) میں شائع ہوئے، اور بعد میں معیاری اصطلاحات بن گئیں۔ جوڑی کی اقسام "کم" ("ڈھیلی" اور "کمزور" بھی) یا "اونچی" ("تنگ" اور "مضبوط" بھی) ہو سکتی ہیں۔ جوڑے کی کچھ اقسام، سب سے زیادہ سے سب سے کم جوڑے کی ترتیب میں، مندرجہ ذیل ہیں: طریقہ کار پروگرامنگ یہاں ایک ماڈیول کسی بھی قسم کے ذیلی روٹین سے مراد ہے، یعنی۔ ایک یا زیادہ بیانات کا ایک مجموعہ جس میں ایک نام اور ترجیحی طور پر متغیر ناموں کا اپنا مجموعہ ہو۔ کہا جاتا ہے کہ مواد کا جوڑا (اعلی) مواد کا جوڑا اس وقت ہوتا ہے جب ایک ماڈیول دوسرے ماڈیول کا کوڈ استعمال کرتا ہے، مثال کے طور پر برانچ۔ یہ معلومات کو چھپانے کی خلاف ورزی کرتا ہے-ایک بنیادی سافٹ ویئر ڈیزائن تصور۔ عام جوڑی عام جوڑی اس وقت ہوتی ہے جب کئی ماڈیولز کو ایک ہی عالمی ڈیٹا تک رسائی حاصل ہوتی ہے۔ لیکن جب تبدیلیاں کی جاتی ہیں تو یہ بے قابو غلطی کے پھیلاؤ اور غیر متوقع ضمنی اثرات کا باعث بن سکتا ہے۔ بیرونی جوڑی بیرونی جوڑی اس وقت ہوتی ہے جب دو ماڈیول بیرونی طور پر عائد کردہ ڈیٹا فارمیٹ، مواصلاتی پروٹوکول، یا ڈیوائس انٹرفیس کا اشتراک کرتے ہیں۔ یہ بنیادی طور پر بیرونی آلات اور آلات سے مواصلات سے متعلق ہے۔ کنٹرول جوڑی ایک ماڈیول ہے جو دوسرے کے بہاؤ کو کنٹرول کرتا ہے، اسے کیا کرنا ہے اس کے بارے میں معلومات منتقل کرکے (مثال کے طور پر، کیا کرنا ہے کا جھنڈا پاس کرنا)۔ اسٹیمپ کاپلنگ (ڈیٹا اسٹرکچرڈ کاپلنگ) اسٹیمپ کاپلنگ اس وقت ہوتی ہے جب ماڈیولز ایک جامع ڈیٹا ڈھانچے کا اشتراک کرتے ہیں اور اس کے صرف کچھ حصوں کا استعمال کرتے ہیں، ممکنہ طور پر مختلف حصے (مثال کے طور پر، پورے ریکارڈ کو کسی فنکشن میں منتقل کرنا جس کے لیے اس کے صرف ایک فیلڈ کی ضرورت ہوتی ہے)۔ اس صورت حال میں، کسی فیلڈ میں ایسی ترمیم جس کی کسی ماڈیول کو ضرورت نہیں ہے، ماڈیول کے ریکارڈ کو پڑھنے کے طریقے کو تبدیل کرنے کا باعث بن سکتی ہے۔ ڈیٹا کاپلنگ ڈیٹا کاپلنگ اس وقت ہوتی ہے جب ماڈیول ڈیٹا کا اشتراک کرتے ہیں، مثال کے طور پر، پیرامیٹرز۔ ہر ڈیٹم ایک ابتدائی ٹکڑا ہے، اور یہ واحد مشترکہ ڈیٹا ہے (مثال کے طور پر، ایک عدد کو کسی فنکشن میں منتقل کرنا جو مربع جڑ کا حساب لگاتا ہے)۔ آبجیکٹ پر مبنی پروگرامنگ سب کلاس جوڑی بچے اور اس کے والدین کے درمیان تعلقات کی وضاحت کرتی ہے۔ بچہ اپنے والدین سے جڑا ہوا ہے، لیکن والدین کا بچے سے کوئی تعلق نہیں ہے۔ عارضی جوڑا تب ہوتا ہے جب دو اعمال کو ایک ماڈیول میں صرف اس وجہ سے جوڑ دیا جاتا ہے کہ وہ ایک ہی وقت میں ہوتے ہیں۔ حالیہ کام میں جوڑے کے مختلف دیگر تصورات کی تحقیقات کی گئی ہیں اور عملی طور پر استعمال ہونے والے مختلف ماڈیولرائزیشن اصولوں کے اشارے کے طور پر استعمال کیا گیا ہے۔ متحرک جوڑی اس قسم کے جوڑے کی وضاحت اور پیمائش کا مقصد سافٹ ویئر سسٹم کی رن ٹائم تشخیص فراہم کرنا ہے۔ یہ استدلال کیا گیا ہے کہ متحرک بائنڈنگ یا وراثت کے گہرے استعمال سے نمٹنے پر جامد جوڑی میٹرکس درستگی کھو دیتے ہیں۔ اس مسئلے کو حل کرنے کی کوشش میں متحرک جوڑے کے اقدامات کو مدنظر رکھا گیا ہے۔ سیمنٹک جوڑی اس قسم کی جوڑی میٹرک سافٹ ویئر اداروں کے درمیان تصوراتی مماثلتوں پر غور کرتی ہے، مثال کے طور پر، تبصرے اور شناخت کاروں کا استعمال کرتے ہوئے اور لیٹنٹ سیمنٹک انڈیکسنگ (ایل ایس آئی) جیسی تکنیکوں پر انحصار کرتی ہے۔ منطقی جوڑی منطقی جوڑی (یا ارتقائی جوڑی یا تبدیلی جوڑی) تجزیہ ماڈیولز یا کلاسوں کے درمیان تبدیلی کے نمونوں کو تلاش کرنے کے لیے سافٹ ویئر سسٹم کی ریلیز ہسٹری کا استحصال کرتا ہے: مثال کے طور پر، وہ ادارے جن کے ایک ساتھ تبدیل ہونے کا امکان ہے یا تبدیلیوں کے سلسلے (کلاس اے میں تبدیلی کے بعد ہمیشہ کلاس بی میں تبدیلی آتی ہے)۔ تنگ جوڑے کے نقصانات سخت جوڑے والے نظام مندرجہ ذیل ترقیاتی خصوصیات کی نمائش کرتے ہیں، جنہیں اکثر نقصانات کے طور پر دیکھا جاتا ہے: ایک ماڈیول میں تبدیلی عام طور پر دوسرے ماڈیولز میں ہونے والی تبدیلیوں کے لہر اثر کو مجبور کرتی ہے۔ ماڈیولز کی اسمبلی میں انٹر ماڈیول انحصار میں اضافے کی وجہ سے زیادہ کوشش اور/یا وقت کی ضرورت پڑ سکتی ہے۔ کسی خاص ماڈیول کو دوبارہ استعمال کرنا اور/یا جانچ کرنا مشکل ہو سکتا ہے کیونکہ انحصار کرنے والے ماڈیولز کو شامل کرنا ضروری ہے۔ کارکردگی کے مسائل چاہے ڈھیلے یا مضبوطی سے جڑے ہوئے ہوں، کسی نظام کی کارکردگی اکثر پیغام اور پیرامیٹر کی تخلیق، ترسیل، ترجمہ (جیسے۔ مارشلنگ) اور پیغام کی تشریح (جو کہ سٹرنگ، صف یا ڈیٹا ڈھانچے کا حوالہ ہو سکتا ہے)، جس میں ایس او اے پی پیغام جیسے پیچیدہ پیغام بنانے کے مقابلے میں کم اوور ہیڈ کی ضرورت ہوتی ہے۔ طویل پیغامات کو تیار کرنے کے لیے زیادہ سی پی یو اور میموری کی ضرورت ہوتی ہے۔ رن ٹائم کی کارکردگی کو بہتر بنانے کے لیے پیغام کی لمبائی کو کم سے کم کرنا چاہیے اور پیغام کے معنی کو زیادہ سے زیادہ کرنا چاہیے۔ چونکہ کسی پیغام کو اس کے مکمل معنی کو برقرار رکھنے کے لیے مکمل طور پر منتقل کیا جانا چاہیے، اس لیے پیغام کی ترسیل کو بہتر بنایا جانا چاہیے۔ طویل پیغامات کو منتقل کرنے اور وصول کرنے کے لیے زیادہ سی پی یو اور میموری کی ضرورت ہوتی ہے۔ نیز، جب ضروری ہو تو، وصول کنندگان کو پیغام کو مکمل طور پر وصول کرنے کے لیے اسے اس کی اصل حالت میں دوبارہ جمع کرنا چاہیے۔ لہذا، رن ٹائم کی کارکردگی کو بہتر بنانے کے لیے، پیغام کی لمبائی کو کم سے کم کیا جانا چاہیے اور پیغام کے معنی کو زیادہ سے زیادہ کیا جانا چاہیے۔ میسج ٹرانسلیشن اوور ہیڈ اور پرفارمنس میسج پروٹوکول اور پیغامات خود اکثر اضافی معلومات (یعنی پیکٹ، ساخت، تعریف اور زبان کی معلومات) پر مشتمل ہوتے ہیں۔ لہذا، وصول کنندہ کو اکثر اضافی حروف اور ساخت کی معلومات کو ہٹا کر اور/یا اقدار کو ایک قسم سے دوسری قسم میں تبدیل کرکے پیغام کو زیادہ بہتر شکل میں ترجمہ کرنے کی ضرورت ہوتی ہے۔ کسی بھی قسم کا ترجمہ سی پی یو اور/یا میموری اوور ہیڈ کو بڑھاتا ہے۔ رن ٹائم کی کارکردگی کو بہتر بنانے کے لیے، پیغام فارم اور مواد کو کم اور بہتر کیا جانا چاہیے تاکہ اس کے معنی کو زیادہ سے زیادہ کیا جا سکے اور ترجمہ کو کم کیا جا سکے۔ پیغام کی تشریح اور کارکردگی تمام پیغامات کی تشریح وصول کنندہ کو کرنی چاہیے۔ انٹیجرز جیسے سادہ پیغامات کی تشریح کے لیے اضافی پروسیسنگ کی ضرورت نہیں ہو سکتی۔ تاہم، پیچیدہ پیغامات جیسے ایس او اے پی پیغامات کو مطلوبہ معنی ظاہر کرنے کے لیے ایک پارسر اور ایک سٹرنگ ٹرانسفارمر کی ضرورت ہوتی ہے۔ رن ٹائم کی کارکردگی کو بہتر بنانے کے لیے، پیغامات کو بہتر اور کم کیا جانا چاہیے تاکہ اوور ہیڈ کی تشریح کو کم سے کم کیا جا سکے۔ حل جوڑے کو کم کرنے کا ایک طریقہ فنکشنل ڈیزائن ہے، جو فعالیت کے ساتھ ساتھ ماڈیولز کی ذمہ داریوں کو محدود کرنے کی کوشش کرتا ہے۔ A اور B کی دو کلاسوں کے درمیان جوڑا بڑھتا ہے اگر: A کی ایک خاصیت ہوتی ہے جس سے مراد (قسم کی) B ہوتی ہے۔ کسی آبجیکٹ B کی سروسز پر A کالز۔ A کا ایک طریقہ ہے جو B کا حوالہ دیتا ہے (واپسی کی قسم یا پیرامیٹر کے ذریعے)۔ اے کلاس بی (یا آلات) کی ذیلی کلاس ہے۔ کم جوڑی سے مراد ایک ایسا رشتہ ہے جس میں ایک ماڈیول ایک سادہ اور مستحکم انٹرفیس کے ذریعے دوسرے ماڈیول کے ساتھ تعامل کرتا ہے اور دوسرے ماڈیول کے اندرونی نفاذ سے متعلق ہونے کی ضرورت نہیں ہے (معلومات کو چھپانا دیکھیں)۔ کوربا یا کام جیسے نظام اشیاء کو دوسرے شے کے نفاذ کے بارے میں کچھ جانے بغیر ایک دوسرے کے ساتھ بات چیت کرنے کی اجازت دیتے ہیں۔ یہ دونوں نظام اشیاء کو دوسری زبانوں میں لکھی ہوئی اشیاء کے ساتھ بات چیت کرنے کی بھی اجازت دیتے ہیں۔ جوڑی بمقابلہ ہم آہنگی جوڑی اور ہم آہنگی ایسی اصطلاحات ہیں جو اکثر ایک ساتھ ہوتی ہیں۔ جوڑے سے مراد ماڈیولز کے درمیان باہمی انحصار ہے، جبکہ ہم آہنگی بیان کرتی ہے کہ ایک ماڈیول کے اندر افعال کتنے متعلق ہیں۔ کم ہم آہنگی کا مطلب یہ ہے کہ ایک دیا ہوا ماڈیول ایسے کام انجام دیتا ہے جو ایک دوسرے سے زیادہ متعلق نہیں ہیں اور اس وجہ سے مسائل پیدا ہو سکتے ہیں کیونکہ ماڈیول بڑا ہو جاتا ہے۔ سافٹ ویئر انجینئرنگ میں ماڈیول جوڑی جوڑی اس تصور سے وابستہ میٹرکس کے ایک ورژن کو بیان کرتی ہے۔ ڈیٹا اور کنٹرول فلو جوڑی کے لیے: ڈائی: ان پٹ ڈیٹا پیرامیٹرز کی تعداد سی آئی: ان پٹ کنٹرول پیرامیٹرز کی تعداد: آؤٹ پٹ ڈیٹا پیرامیٹرز کی تعداد کو: آؤٹ پٹ کنٹرول پیرامیٹرز کی تعداد عالمی جوڑی کے لیے: جی ڈی: ڈیٹا جی سی کے طور پر استعمال ہونے والے عالمی متغیرات کی تعداد: کنٹرول کے طور پر استعمال ہونے والے عالمی متغیرات کی تعداد ماحولیاتی جوڑی کے لیے: ڈبلیو: (فین آؤٹ) نامی ماڈیولز کی تعداد آر: زیر غور ماڈیول کو کال کرنے والے ماڈیولز کی تعداد (فین ان) جوڑی (سی) قدر کو اتنا ہی بڑا بناتی ہے جتنا ماڈیول زیادہ جوڑا ہوتا ہے۔ یہ تعداد تقریبا 0.67 (کم جوڑی) سے 1 (انتہائی جوڑی) تک ہوتی ہے۔ مثال کے طور پر، اگر کسی ماڈیول میں صرف ایک ان پٹ اور آؤٹ پٹ ڈیٹا پیرامیٹر ہوتا ہے۔ اگر کسی ماڈیول میں 5 ان پٹ اور آؤٹ پٹ ڈیٹا پیرامیٹرز، کنٹرول پیرامیٹرز کی مساوی تعداد ہوتی ہے، اور عالمی ڈیٹا کی 10 آئٹمز تک رسائی حاصل ہوتی ہے، جس میں 3 کا فین-ان اور 4 کا فین-آؤٹ ہوتا ہے، تو ہم آہنگی (کمپیوٹر سائنس) ہم آہنگی (کمپیوٹر سائنس) جوڑی (طبیعیات) ڈیڈ کوڈ کا خاتمہ ہیل افیرنٹ جوڑی کنٹرول کی فہرست آبجیکٹ پر مبنی پروگرامنگ اصطلاحات ڈھیلی جوڑی بنائیں (سافٹ ویئر) جامد کوڈ تجزیہ حوالہ جات مزید پڑھنے کے پروگرامنگ اصول آبجیکٹ پر مبنی پروگرامنگ فن تعمیر سافٹ ویئر میٹرکس