کچھ عرصہ قبل میرے اور میرے ایک اچھے دوست کے درمیان گفتگو ہوئی جس میں درج ذیل جملے سننے کو ملے۔
- پروگرامرز کی تعداد میں مسلسل اضافہ ہوتا جائے گا - کیونکہ کوڈ کی مقدار بڑھ رہی ہے، اور زیادہ سے زیادہ ڈویلپرز کو مسلسل اس کی حمایت کرنے کی ضرورت ہے۔
- لیکن کوڈ پرانا ہوتا جا رہا ہے، اس میں سے کچھ اب تعاون یافتہ نہیں ہے۔ یہ بھی ممکن ہے کہ کسی قسم کا توازن ہو۔
کچھ دنوں بعد ان کو یاد کرتے ہوئے، میں نے سوچا کہ کیا کوڈ کو برقرار رکھنے، وقت کے ساتھ ساتھ زیادہ سے زیادہ وسائل کی ضرورت ہوتی ہے، بالآخر نئی فعالیت کی ترقی کو مفلوج کر سکتا ہے، یا اس کے لیے پروگرامرز کی تعداد میں لامحدود اضافہ کی ضرورت ہوگی؟ ریاضی کے تجزیے اور تفریق مساوات نے ترقی پر معاونت کی مقدار کے انحصار کا معیاری اندازہ لگانے اور سوالات کے جوابات تلاش کرنے میں مدد کی۔
سوال ایک۔ کیا ترقی کے تمام وسائل "کھانے" کی حمایت کر سکتے ہیں؟
پروگرامرز کی ایک ٹیم پر غور کریں جس میں شرکاء کی تعداد مستقل ہے۔ ان کے کام کے وقت کا حصہ () نیا کوڈ تیار کرنے پر خرچ کیا جاتا ہے، اور وقت کا بقیہ حصہ حمایت کے لئے جاتا ہے. ماڈل کے مفروضوں کے اندر، ہم فرض کرتے ہیں کہ پہلی قسم کی سرگرمی کا مقصد کوڈ کے حجم کو بڑھانا ہے، اور دوسری کا مقصد اسے تبدیل کرنا (غلطیوں کو درست کرنا) ہے اور اس کا کوڈ کے حجم پر کوئی خاص اثر نہیں پڑتا ہے۔
آئیے اشارہ کرتے ہیں۔ اس وقت تک لکھے گئے کوڈ کی پوری رقم . فرض کریں کہ کوڈ لکھنے کی رفتار متناسب ہے۔ ، ہم حاصل:
یہ فرض کرنا فطری ہے کہ کوڈ کو برقرار رکھنے کے لیے مزدوری کے اخراجات اس کے حجم کے متناسب ہیں:
یا
مقام
ہم ایک تفریق مساوات حاصل کرتے ہیں جسے آسانی سے مربوط کیا جا سکتا ہے۔ اگر وقت کے ابتدائی لمحے میں کوڈ کی مقدار صفر ہے، تو
میں تقریب اور . اور اس کا مطلب ہے کہ وقت کے ساتھ ساتھ نئی فعالیت کی ترقی میں بتدریج کمی اور سپورٹ کے لیے تمام وسائل کی منتقلی۔
تاہم، اگر وقت کے دوران کوڈ متروک ہو جاتا ہے اور سپورٹ ہونا بند ہو جاتا ہے، پھر کوڈ کی مقدار جس کو ایک وقت میں سپورٹ کی ضرورت ہوتی ہے پہلے سے ہی برابر ہے پھر۔
а ریٹائرڈ دلیل کے ساتھ تفریق مساوات کا حل ہے [1]:
اس طرح کی مساوات کا حل منفرد طور پر قدروں کی وضاحت کے ذریعے طے کیا جاتا ہے۔ "وقت کے آغاز سے پہلے" . چونکہ کوڈ ابھی تک وقت کے ابتدائی لمحے سے پہلے نہیں لکھا گیا تھا، ہمارے معاملے میں میں .
آئیے چند مثالیں دیکھتے ہیں۔ ہم سالوں میں وقت اور کوڈ کی مقدار کو ہزاروں لائنوں میں ناپیں گے۔ پھر کے لیے دسیوں کی ترتیب کی قدریں قابل قبول ہیں، ہم 50 اور 100 لیں گے۔ یعنی ایک سال میں ترقیاتی ٹیم کوڈ کی بالترتیب پچاس اور ایک لاکھ لائنیں لکھے گی۔ کے لیے قابل قبول قدریں ہو سکتی ہیں: , , . اس کا مطلب یہ ہے کہ ایک ترقیاتی ٹیم ایک سال میں لکھے گئے کوڈ کی مقدار کو سپورٹ کر سکتی ہے، چاہے وہ چوتھائی، نصف، یا مکمل وقت ہو۔ کوڈ کی اوسط زندگی کے طور پر، ہم درج ذیل قدریں مرتب کریں گے: 1، 2 اور 4 سال۔ مساوات کو عددی طور پر حل کرتے ہوئے، ہم فنکشن کے رویے کی مثالیں حاصل کرتے ہیں۔ کچھ پیرامیٹر کے امتزاج کے لیے .
فنکشن کا رویہ کوڈ کی عمر کے ساتھ، یہ بدل گیا ہے. فنکشن اب نیرس نہیں ہے، لیکن اتار چڑھاو وقت کے ساتھ "پرسکون" ہوتا ہے، اور اس کا رجحان ہوتا ہے کچھ مستقل قیمت پر۔ گراف دکھاتے ہیں: زیادہ , и ، یعنی، کوڈ کی عمر جتنی سست ہوگی، نئے کوڈ کی ترقی اتنی ہی تیز ہوگی اور کوڈ کا معیار اتنا ہی کم ہوگا، نئی فعالیت کی نشوونما کے لیے اتنے ہی کم وسائل باقی رہ جائیں گے۔ کم از کم ایک مثال دینے کی خواہش تھی جس میں "snuggled" صفر کے قریب۔ لیکن اس کے لیے انتہائی ناقص ترقیاتی معیار کے اشارے اور کوڈ کا انتخاب درکار تھا جو طویل عرصے تک پرانا نہیں ہوتا۔ یہاں تک کہ نچلے بائیں گراف میں، نئی فعالیت کے لیے وسائل کی ایک قابل ذکر مقدار باقی ہے۔ لہذا، پہلے سوال کا صحیح جواب یہ ہے: نظریاتی طور پر - ہاں، یہ ممکن ہے؛ عملی طور پر - مشکل سے۔
وہ سوالات جن کا جواب نہیں دیا جا سکا:
- کیا یہ سچ ہے۔ میں کچھ حد تک جاتا ہے۔ سب کے لیے ? اگر سب کے لیے نہیں تو کن کے لیے؟
- اگر کوئی حد موجود ہے تو اس کی قدر کس طرح منحصر ہے؟ ?
سوال دو۔ کیا کوڈ کی دیکھ بھال پروگرامرز کی تعداد میں لامحدود اضافہ کا سبب بن سکتی ہے؟
آئیے اشارہ کرتے ہیں۔ نئے کوڈ کی تیاری میں شامل پروگرامرز کی تعداد۔ جیسا کہ اوپر ہے، - وقت میں ایک نقطہ تک لکھے گئے کوڈ کی مقدار . پھر
کوڈ سپورٹ کو مصروف رکھیں پروگرامرز عمر رسیدہ کوڈ کو مدنظر رکھتے ہوئے،
مقام
اگر پھر
اس طرح، دوسرے سوال کا جواب منفی ہے: اگر نئے کوڈ کے ڈویلپرز کی تعداد محدود ہے، تو عمر رسیدہ کوڈ کے حالات میں، سپورٹ پروگرامرز کی تعداد میں لامحدود اضافہ کا سبب نہیں بن سکتی۔
حاصل يہ ہوا
جن ماڈلز پر غور کیا جاتا ہے وہ "نرم" ریاضیاتی ماڈل ہیں [2]۔ وہ بہت سادہ ہیں۔ بہر حال، پیرامیٹر اقدار پر نقلی نتائج کا انحصار حقیقی نظاموں کے لیے توقع کے مطابق ہے، یہ ماڈلز کی مناسبیت اور اعلیٰ معیار کے تخمینے حاصل کرنے کے لیے کافی درستگی کے حق میں بات کرتا ہے۔
حوالہ جات
1. Elsgolts L.E., Norkin S.B. انحراف والی دلیل کے ساتھ تفریق مساوات کے نظریہ کا تعارف۔ ماسکو۔ پبلشنگ ہاؤس "سائنس"۔ 1971.
2. آرنلڈ V.I. "سخت" اور "نرم" ریاضی کے ماڈل۔ ماسکو۔ پبلشنگ ہاؤس MCNMO۔ 2004.
ماخذ: www.habr.com