కొంతకాలం క్రితం, నాకు మరియు నా మంచి స్నేహితుడికి మధ్య ఒక సంభాషణ జరిగింది, అందులో ఈ క్రింది పదబంధాలు వినిపించాయి:
— ప్రోగ్రామర్ల సంఖ్య నిరంతరం పెరుగుతూనే ఉంటుంది - ఎందుకంటే కోడ్ మొత్తం పెరుగుతోంది మరియు ఎక్కువ మంది డెవలపర్లు దీనికి నిరంతరం మద్దతు ఇవ్వాల్సి ఉంటుంది.
— కానీ కోడ్ పాతదైపోతోంది, అందులో కొన్నింటికి మద్దతు లేదు. ఒక రకమైన సమతౌల్యం ఉండే అవకాశం కూడా ఉంది.
కొన్ని రోజుల తర్వాత వాటిని గుర్తుచేసుకుంటూ, కోడ్ను నిర్వహించడం, కాలక్రమేణా మరిన్ని వనరులు అవసరమవుతుందా, చివరికి కొత్త కార్యాచరణ అభివృద్ధిని స్తంభింపజేస్తుందా లేదా ప్రోగ్రామర్ల సంఖ్యలో అపరిమిత పెరుగుదల అవసరమా? గణిత విశ్లేషణ మరియు అవకలన సమీకరణాలు అభివృద్ధిపై మద్దతు మొత్తంపై ఆధారపడటాన్ని గుణాత్మకంగా అంచనా వేయడానికి మరియు ప్రశ్నలకు సమాధానాలను కనుగొనడంలో సహాయపడ్డాయి.
ప్రశ్న ఒకటి. అన్ని అభివృద్ధి వనరులను "తినడానికి" మద్దతు ఇవ్వగలరా?
పాల్గొనేవారి సంఖ్య స్థిరంగా ఉండే ప్రోగ్రామర్ల బృందాన్ని పరిగణించండి. వారి పని సమయాన్ని పంచుకోండి () కొత్త కోడ్ని అభివృద్ధి చేయడం మరియు మిగిలిన సమయం వాటా కోసం వెచ్చిస్తారు మద్దతుగా వెళుతుంది. మోడల్ యొక్క ఊహలలో, మొదటి రకమైన కార్యాచరణ కోడ్ వాల్యూమ్ను పెంచడానికి ఉద్దేశించబడిందని మరియు రెండవది దానిని మార్చడం (లోపాలను సరిదిద్దడం) లక్ష్యంగా పెట్టుకుంది మరియు కోడ్ వాల్యూమ్పై గణనీయమైన ప్రభావాన్ని చూపదు.
సూచిస్తాం అప్పటి వరకు వ్రాసిన కోడ్ మొత్తం . కోడ్ రాసే వేగం అనుపాతంగా ఉంటుందని ఊహిస్తే , మాకు దొరికింది:
కోడ్ను నిర్వహించడానికి కార్మిక ఖర్చులు దాని వాల్యూమ్కు అనులోమానుపాతంలో ఉన్నాయని భావించడం సహజం:
లేదా
ఎక్కడ
మేము సులభంగా ఏకీకృతం చేయగల అవకలన సమీకరణాన్ని పొందుతాము. ప్రారంభ క్షణంలో కోడ్ మొత్తం సున్నా అయితే, అప్పుడు
వద్ద ఫంక్షన్ మరియు . మరియు దీని అర్థం కొత్త కార్యాచరణను సున్నాకి అభివృద్ధి చేయడంలో కాలక్రమేణా క్రమంగా తగ్గింపు మరియు అన్ని వనరులను మద్దతుగా బదిలీ చేయడం.
అయితే, సమయంలో అయితే కోడ్ వాడుకలో లేదు మరియు మద్దతు ఇవ్వడం ఆగిపోతుంది, ఆపై ఒక సమయంలో మద్దతు అవసరమయ్యే కోడ్ మొత్తం ఇప్పటికే సమానంగా ఉంది అప్పుడు
а రిటార్డెడ్ ఆర్గ్యుమెంట్ [1]తో అవకలన సమీకరణానికి పరిష్కారం:
అటువంటి సమీకరణానికి పరిష్కారం విలువలను పేర్కొనడం ద్వారా ప్రత్యేకంగా నిర్ణయించబడుతుంది "సమయం ప్రారంభానికి ముందు" . మా విషయంలో, ప్రారంభ క్షణానికి ముందు కోడ్ ఇంకా వ్రాయబడలేదు కాబట్టి వద్ద .
కొన్ని ఉదాహరణలు చూద్దాం. మేము సంవత్సరాలలో సమయాన్ని కొలుస్తాము మరియు వేలకోట్ల లైన్లలో కోడ్ మొత్తాన్ని కొలుస్తాము. అప్పుడు కోసం పదుల క్రమం యొక్క విలువలు ఆమోదయోగ్యమైనవి, మేము 50 మరియు 100 తీసుకుంటాము. అంటే, ఒక సంవత్సరంలో డెవలప్మెంట్ బృందం వరుసగా యాభై మరియు లక్ష పంక్తుల కోడ్లను వ్రాస్తాయి. కోసం ఆమోదయోగ్యమైన విలువలు కావచ్చు: , , . దీనర్థం డెవలప్మెంట్ టీమ్ ఒక సంవత్సరంలో అది వ్రాసే కోడ్ మొత్తానికి, అది పావు వంతు, సగం లేదా పూర్తి సమయం అయినా సపోర్ట్ చేయగలదు. కోడ్ యొక్క సగటు జీవితకాలంగా, మేము ఈ క్రింది విలువలను సెట్ చేస్తాము: 1, 2 మరియు 4 సంవత్సరాలు. సమీకరణాన్ని సంఖ్యాపరంగా పరిష్కరించడం, మేము ఫంక్షన్ యొక్క ప్రవర్తన యొక్క ఉదాహరణలను పొందుతాము కొన్ని పరామితి కలయికల కోసం .
ఫంక్షన్ యొక్క ప్రవర్తన కోడ్ వయస్సులో, అది మార్చబడింది. ఫంక్షన్ ఇకపై మార్పులేనిది కాదు, కానీ కాలక్రమేణా హెచ్చుతగ్గులు "శాంతపడతాయి" మరియు ఒక ధోరణి ఉంది కొంత స్థిరమైన విలువకు. గ్రాఫ్లు చూపుతాయి: మరింత , и , అంటే, కోడ్ వయస్సు నెమ్మదిగా ఉంటుంది, కొత్త కోడ్ అభివృద్ధి వేగంగా మరియు కోడ్ నాణ్యత తక్కువగా ఉంటుంది, కొత్త కార్యాచరణ అభివృద్ధి కోసం తక్కువ వనరులు మిగిలిపోతాయి. కనీసం ఒక ఉదాహరణ ఇవ్వాలనే కోరిక ఉంది సున్నాకి దగ్గరగా "snuggled". కానీ దీనికి చాలా తక్కువ అభివృద్ధి నాణ్యత సూచికలు మరియు ఎక్కువ కాలం వయస్సు లేని కోడ్ ఎంపిక అవసరం. దిగువ ఎడమ గ్రాఫ్లో కూడా, కొత్త కార్యాచరణ కోసం గణనీయమైన వనరులు మిగిలి ఉన్నాయి. అందువల్ల, మొదటి ప్రశ్నకు సరైన సమాధానం ఇది: సిద్ధాంతపరంగా - అవును, ఇది సాధ్యమే; ఆచరణాత్మకంగా - అరుదుగా.
సమాధానం దొరకని ప్రశ్నలు:
- అది నిజమేనా వద్ద కొంత పరిమితి ఉంటుంది అందరి కోసం ? అందరికీ కాకపోతే, ఎవరి కోసం?
- పరిమితి ఉంటే, దాని విలువ ఎలా ఆధారపడి ఉంటుంది ?
ప్రశ్న రెండు. కోడ్ నిర్వహణ ప్రోగ్రామర్ల సంఖ్యలో అపరిమిత వృద్ధిని కలిగిస్తుందా?
సూచిస్తాం కొత్త కోడ్ను అభివృద్ధి చేయడంలో పాల్గొన్న ప్రోగ్రామర్ల సంఖ్య. పై విధముగా, - ఒక పాయింట్ వరకు వ్రాసిన కోడ్ మొత్తం ... అప్పుడు
కోడ్ మద్దతును బిజీగా ఉంచండి ప్రోగ్రామర్లు. వృద్ధాప్య కోడ్ను పరిగణనలోకి తీసుకుంటే,
ఎక్కడ
ఉంటే , అప్పుడు
అందువలన, రెండవ ప్రశ్నకు సమాధానం ప్రతికూలంగా ఉంటుంది: కొత్త కోడ్ యొక్క డెవలపర్ల సంఖ్య పరిమితం అయితే, వృద్ధాప్య కోడ్ యొక్క పరిస్థితులలో, ప్రోగ్రామర్ల సంఖ్యలో మద్దతు అపరిమిత పెరుగుదలకు కారణం కాదు.
తీర్మానం
పరిగణించబడిన నమూనాలు "సాఫ్ట్" గణిత నమూనాలు [2]. వారు చాలా సరళంగా ఉంటారు. అయినప్పటికీ, పరామితి విలువలపై అనుకరణ ఫలితాల ఆధారపడటం నిజమైన సిస్టమ్ల కోసం ఆశించిన దానికి అనుగుణంగా ఉంటుంది, ఇది మోడల్ల సమర్ధత మరియు అధిక-నాణ్యత అంచనాలను పొందేందుకు తగిన ఖచ్చితత్వానికి అనుకూలంగా మాట్లాడుతుంది.
సూచనలు
1. ఎల్స్గోల్ట్స్ L.E., నార్కిన్ S.B. భిన్నమైన వాదనతో అవకలన సమీకరణాల సిద్ధాంతానికి పరిచయం. మాస్కో. పబ్లిషింగ్ హౌస్ "సైన్స్". 1971.
2. ఆర్నాల్డ్ V.I. "హార్డ్" మరియు "సాఫ్ట్" గణిత నమూనాలు. మాస్కో. పబ్లిషింగ్ హౌస్ MCNMO. 2004.
మూలం: www.habr.com