సాఫ్ట్‌వేర్ దోషం

వికీపీడియా నుండి
ఇక్కడికి గెంతు: మార్గసూచీ, వెతుకు

సాఫ్ట్‌వేర్ దోషం అనేది ఒక కంప్యూటర్ ప్రోగ్రామ్ లేదా వ్యవస్థలో చోటుచేసుకున్న ఒక దోషం, తప్పు, పొరపాటు, వైఫల్యం లేదా తప్పిదంను తెలపడానికి ఉపయోగించే ఒక సాధారణ పదం. ఇది ఒక తప్పైన లేదా అనూహ్య ఫలితాన్ని ఇవ్వడం లేదా వ్యవస్థను ఉద్దేశించని మార్గాల్లో ప్రవర్తించే విధంగా చేస్తుంది. అనేక దోషాలు ఒక ప్రోగ్రామ్ యొక్క సోర్స్ కోడ్ (ఉచితంగా లభించే కంప్యూటర్ సాఫ్ట్‌వేర్) లేదా దాని రూపకల్పన విషయంలో ప్రోగ్రామర్లు చేసే పొరపాట్లు లేదా తప్పిదాల వల్ల మరియు మరికొన్ని సంగ్రాహకుడు విడుదల చేసే తప్పుడు కోడు ద్వారా తలెత్తుతాయి. భారీ సంఖ్యలో దోషాలను కలిగిన ఒక ప్రోగ్రామ్ మరియు/లేదా దాని ప్రయోజకత్వానికి తీవ్రమైన ఇబ్బంది కలిగించేలా జోక్యం కల్పించుకునే దోషాలను దోషాలమయం (బగ్గీ) అని అంటారు. ఒక ప్రోగ్రామ్‌లోని దోషాలను వివరించే నివేదికలు సాధారణంగా దోష నివేదికలు, తప్పిద నివేదికలు, సమస్య నివేదికలు, ఇబ్బంది నివేదికలు, మార్పు అభ్యర్థనలు తదితరాలుగా తెలుసు.

ప్రభావాలు[మార్చు]

దోషాలు టైప్ I మరియు టైప్ II తప్పిదాలను రేకెత్తిస్తాయి. ప్రతిగా అవి విభిన్న రకాల ప్రభావాలు తలెత్తుతాయి. తద్వారా ప్రోగ్రామ్ వాడుకరికి అనేక రకాలుగా అసౌకర్య పరిస్థితులు ఎదురవుతాయి. కొన్ని దోషాలు ప్రోగ్రామ్ ప్రయోజకత్వంపై ఒక నిగూఢమైన ప్రభావం మాత్రమే చూపిస్తాయి. తద్వారా అవి సుదీర్ఘకాలం పాటు గుర్తించబడలేవు. అత్యంత తీవ్రమైన దోషాలు ప్రోగ్రామ్‌ నాశనమయ్యే విధంగానో లేదా స్తంభించిపోయే విధంగానో చే్స్తాయి. అది చివరకు సేవా నిరాకరణకు దారితీస్తుంది. ఉదాహరణకు భద్రతా దోషాలుగా అర్హత సాధించిన ఇతర దోషాలు ఒక ప్రమాదకర యూజర్ అనధికారిక హక్కులు పొందేలా ప్రవేశ నియంత్రణలను దూరం చేసే విధంగా అవకాశం కల్పిస్తాయి.

దోషాల ఫలితాలు అత్యంత తీవ్రమైనవిగా ఉండొచ్చు. Therac-25 వికిరణ చికిత్స యంత్రాన్ని నియంత్రించే కోడులోని దోషాలు 1980ల్లో కొందరు రోగుల మరణానికి ప్రత్యక్ష కారణమయ్యాయి. 1996లో యూరోపియన్ రోదసి సంస్థకు చెందిన US$1 బిలియన్ల మూలరూప అరైన్ 5 రాకెట్ ప్రయోగించబడిన ఒక్క నిమిషం లోపే నాశనమైంది. అందుకు కారణం లోపల ఉండే సలహాలకు సంబంధించిన కంప్యూటర్ ప్రోగ్రామ్‌లో తలెత్తిన ఒక దోషమే. జూన్, 1994లో మల్ ఆఫ్ కిన్‌టైర్‌లో ఒక రాయల్ ఎయిర్ ఫోర్స్ చినూక్ కుప్పకూలడంతో 29 మంది మరణించారు. ఇది తొలుత పైలట్ తప్పిదంగా తోసిపుచ్చబడింది. అయితే కంప్యూటర్ వీక్లీ చేపట్టిన ఒక పరిశోధన సదరు దుర్ఘటన విమానంలోని ఇంజిన్ కంట్రోల్ కంప్యూటర్‌లో తలెత్తిన ఒక సాఫ్ట్‌వేర్ సంబంధిత దోషం వల్లనే జరిగిందని హౌస్ ఆఫ్ లార్డ్స్ (బ్రిటన్ పార్లమెంట్ ఎగువ సభ) దర్యాప్తును ఒప్పించే విధంగా తగిన ఆధారాన్ని చూపించింది.[1]

2002లో US వాణిజ్య మంత్రిత్వ శాఖకు చెందిన నేషనల్ ఇన్‌స్టిట్యూట్ ఆఫ్ స్టాండర్డ్స్ అండ్ టెక్నాలజీ నిర్వహించిన ఒక అధ్యయనం సాఫ్ట్‌వేర్ దోషాలు లేదా తప్పిదాలు చాలా ప్రబలంగానూ మరియు హానికరంగానూ ఉన్నాయి. అవి US ఆర్థికవ్యవస్థ యేటా సుమారు $59 బిలియన్లు లేదా స్థూల జాతీయోత్పత్తిలో 0.6 శాతం మేర నష్టపోయినట్లు అంచనా .[2]

పద చరిత్ర[మార్చు]

సాఫ్ట్‌వేర్ అనేది తప్పిదాలను కలిగి ఉండొచ్చనే అభిప్రాయం 1843 సంవత్సరంలో విశ్లేషణాత్మక యంత్రం (ఎనలిటికల్ ఇంజిన్)పై అదా బైరాన్ చేసిన సూచనలకు సంబంధించింది. చార్లెస్ బాబేజ్ యొక్క విశ్లేషణాత్మక యంత్రానికి ప్రోగ్రామ్ 'కార్డుల'ను సిద్ధం చేయడం కష్టమని అందులో ఆమె ప్రస్తావించింది.

...an analyzing process must equally have been performed in order to furnish the Analytical Engine with the necessary operative data; and that herein may also lie a possible source of error. Granted that the actual mechanism is unerring in its processes, the cards may give it wrong orders.

వర్ణణాతీత లోపాల గురించి చెప్పడానికి "బగ్" అనే పద వినియోగం సాంకేతిక వృత్తిపదజాలంలో పలు దశాబ్దాల పాటు మరియు కంప్యూటర్లు, కంప్యూటర్ సాఫ్ట్‌వేర్ రావడానికి ముందు ఒక భాగమైంది. దీనిని వాస్తవానికి యాంత్రిక పరమైన లోపాలను తెలిపే దిశగా హార్డ్‌వేర్ ఇంజినీరింగ్‌లో ఉపయోగించి ఉండొచ్చు. ఉదాహరణకు, థామస్ ఎడిసన్ 1878లో ఆయన సహచరుడికి రాసిన లేఖలో దిగువ తెలిపిన పదాలను రాశారు:

It has been just so in all of my inventions. The first step is an intuition, and comes with a burst, then difficulties arise—this thing gives out and [it is] then that 'Bugs' — as such little faults and difficulties are called—show themselves and months of intense watching, study and labor are requisite before commercial success or failure is certainly reached.

[3]

రెండో ప్రపంచ యుద్ధంలో రాడార్ ఎలక్ట్రానిక్స్ సంబంధిత సమస్యలను దోషాలు (లేదా అవాంతరాలు)గా గుర్తించారు. అంతేకాక ఈ పద వినియోగం అంతకుముందు కాలం నుంచే ఉందని చెప్పడానికి అదనపు ఆధారం కూడా ఉంది. మొట్టమొదటి పిన్‌బాల్ ఆటగా చెప్పబడే బేఫిల్ బాల్‌ను 1931లో "దోష రహితమైనది"గా ప్రచారం చేశారు.[4]

ఒక కంప్యూటర్‌లో గుర్తించిన మొట్టమొదటి సంభవనీయ వాస్తవిక దోషం యొక్క ఫోటో

"బగ్" పదావిష్కరణ గ్రేస్ హోప్పర్‌కు తరచూ పొరపాటుగా ఆపాదించబడింది. ఒక ప్రారంభ విద్యుత్‌యాంత్రిక కంప్యూటర్‌లో లోపానికి సంబంధించిన కారణం గురించి ఆమె ప్రచారం చేశారు.[5] ఈ ఉల్లేఖన ద్వారా వృత్తాంతం యొక్క ఒక విలక్షణ వివరణ ఇవ్వబడింది.[6]

In 1946, when Hopper was released from active duty, she joined the Harvard Faculty at the Computation Laboratory where she continued her work on the Mark II and Mark III. Operators traced an error in the Mark II to a moth trapped in a relay, coining the term bug. This bug was carefully removed and taped to the log book. Stemming from the first bug, today we call errors or glitch's మూస:Sic in a program a bug.

హోప్పర్ సులువుగా గుర్తించిన నేపథ్యంలో వాస్తవంగా దోషానికి సంబంధించిన క్రిమిని గుర్తించిన మొదటి వ్యక్తి ఆమె కాదు. రికార్డు పుస్తకంలో నమోదైన తేదీ కొన్నిసార్లు పొరపాటుగా 1945 అని పేర్కొనబడినప్పటికీ, అసలు తేదీ 9 సెప్టెంబరు 1947,[7][8].[9] దీనిని గుర్తించిన ఆపరేటర్లు విలియం "బిల్" బర్కీ, ఆ తర్వాత నావల్ వెపన్స్ లేబొరేటరీ, దాల్‌గ్రెన్, వర్జీనియా,[10] ఈ ఇంజినీరింగ్ పదంతో సుపరిచితులు. అంతేకాక సదరు క్రిమిని "దోషం యొక్క మొట్టమొదటి వాస్తవిక కారణం గుర్తించబడింది" అనే సంజ్ఞామానంతో కొనసాగించడం ద్వారా అందర్నీ ఆకట్టుకున్నారు. ఈ కథను సమగ్రంగా వివరించడానికి హోప్పర్ ఇష్టపడేవారు.[11] ఈ రికార్డు పుస్తకాన్ని స్మిత్‌సోనియన్ నేషనల్ మ్యూజియం ఆఫ్ అమెరికన్ హిస్టరీలో ప్రదర్శనకు ఉంచారు. ఒక చిమ్మటను అంటించడం ద్వారా ఈ ప్రదర్శన పరిపూర్ణమైంది.[8]

హార్వర్డ్ మార్క్ II ఆపరేటర్లు "బగ్" పదాన్ని రూపకల్పన చేయకపోవడంతో దానికి సంబంధించిన "డీబగ్" (దోషనివారణ) పదాన్ని కూడా వారు రూపొందించలేదని సూచించబడింది. ఆక్స్‌ఫర్డ్ ఆంగ్ల నిఘంటువులో పొందుపరిచిన "డీబగ్" పదం 1945లో వైమానిక యంత్రాలకు సంబంధించిన భాషాపరమైన సందర్భంలో "డీబగింగ్" (దోషాల తొలగింపు) ప్రయోజనాన్ని కలిగి ఉంది కాబట్టి ఈ విషయం నమ్మదగినది కాకపోవచ్చు. డీబగింగ్‌ (దోషాల తొలగింపు)ను చూడండి:

నివారణ[మార్చు]

ప్రోగ్రామ్ రాసేటప్పుడు మానవ అంశాల స్వభావం యొక్క పరిణామంగా దోషాలను చెబుతారు. పనుల నిర్దేశం, రూపకల్పన, కోడ్ రాయడం (కోడింగ్), సమాచారాన్ని ఎక్కించడం (డాటా ఎంట్రీ) మరియు ప్రమాణ పత్రరచన సమయంలో ఒక సాఫ్ట్‌వేర్ బృందం చేసే పరిశీలనలు లేదా పరస్పర అవగాహనాలోపాల వల్ల దోషాలు తలెత్తుతాయి. ఉదాహరణకు పదాల జాబితాను ఒక వర్ణక్రమంలో అమర్చే దిశగా సాపేక్షకంగా ఒక సాధారణ ప్రోగ్రామ్‌ను రూపొందించడంలో ఏదైనా ఒక పదం హైఫన్ (అక్షరముల మధ్య అవసరాన్ని బట్టి వేసే అడ్డుగీత)ను కలిగి ఉంటే ఏమి జరుగుతుందనే విషయాన్ని ఆలోచించడంలో ఒకరి డిజైన్ వైఫల్యం చెందవచ్చు. సంభవనీయంగా, సంగ్రహ రూపకల్పనను ఎంపిక చేసిన ప్రోగ్రామింగ్ భాషలోకి మార్చేటప్పుడు ఒకరు తెలియకుండా ఒక ఆఫ్-బై-వన్ ఎర్రర్‌ను సృష్టించడం మరియు చివరి పదాన్ని జాబితాలో అమర్చడంలో వైఫల్యం చెందవచ్చు. చివరగా కంప్యూటర్‌లో ఫలిత ప్రోగ్రామ్‌ను టైపు చేసేటప్పుడు ఒకరు '<' అని టైపు చేయొచ్చు. నిజానికి అక్కడ '>' అని టైపు చేయాల్సి ఉంటుంది. సంభవనీయంగా, ఫలిత పదాలు విలోమ వర్ణక్రమంలో అమర్చబడవచ్చు. అత్యంత క్లిష్టమైన దోషాలు కంప్యూటర్ ప్రోగ్రామ్ యొక్క వివిధ భాగాల మధ్య ఉద్దేశరహిత సంభాషణల ద్వారా తలెత్తవచ్చు. ఇది తరచూ సంభవించవచ్చు. అందుకు కారణం కొన్ని సందర్భాల్లో కంప్యూటర్ ప్రోగ్రామ్‌లు మిలియన్ల కొద్దీ పంక్తులతో క్లిష్టంగా ఉండొచ్చు. తరచూ అనేక మంది కలిసి ప్రోగ్రామ్‌లను సుదీర్ఘ కాలం పాటు కూడా సిద్ధం చేయొచ్చు. అందువల్ల భాగాలు సంబంధం కలిగి ఉండే ప్రతి సాధ్యమైన మార్గాన్ని ప్రోగ్రామర్లు మానసికంగా గుర్తించలేకపోతారు. దోషానికి సంబంధించిన మరొక తరగతిని రేస్ కండిషన్ (ఒక తప్పిదం) అంటారు. ఇది ఏదైనా ఒక ప్రక్రియ ఒక సందేశాల వరుస కంటే ఎక్కువ వాటిలో నిర్వహించబడుతున్నప్పుడు లేదా రెండు లేదా అంతకంటే ఎక్కువ ప్రక్రియలు ఏకకాలంలో జరుగుతున్నప్పుడు తలెత్తుతుంది. ఫలితంగా కోడు యొక్క కీలక క్రమాల కచ్చితమైన అమలు క్రమం అనేది ఏకకాలంలో సరిగా జరగదు.

ప్రోగ్రామర్లు సాఫ్ట్‌వేర్ ప్రోగ్రామ్‌లు రాసేటప్పుడు వారికి తెలియకుండానే వారు దోషాలను అనుమతించకుండా నివారించడానికి సాప్ట్‌వేర్ పరిశ్రమ గట్టిగా ప్రయత్నాలు చేస్తోంది.[12][13] అవి:

ప్రోగ్రామింగ్ శైలి
ప్రోగ్రామ్ కోడులోని టైపింగ్ దోషాలు తరచూ సంగ్రహకుడి ద్వారా గుర్తించబడుతుంటాయి. సాధారణంగా ఇది ఎవరైనా ఒక ప్రోగ్రామర్ లాజిక్ తప్పిదం చేసినప్పుడు కన్పిస్తుంది. ప్రోగ్రామింగ్ శైలి మరియు రక్షణాత్మక ప్రోగ్రామింగ్‌లలో పలు ఆవిష్కరణలు ఇలాంటి దోషాలు తక్కువగా సంభవించేలా లేదా సులువుగా గుర్తించేలా రూపకల్పన చేయబడుతున్నాయి. కొన్ని ప్రోగ్రామింగ్ భాషల్లో, ఊహాజనిత టైపింగ్ దోషాలు, ప్రత్యేకించి చిహ్నాలు లేదా తర్కసంబంధ/గణితశాస్త్ర సంబంధ ఆపరేటర్లు, వాస్తవానికి లాజిక్ దోషాలను తెలుపుతాయి. ఇందుకు కారణం తప్పుగా టైపు చేసిన నిర్మాణాలను సంగ్రహకుడు అసలు ప్రోగ్రామర్ ఉద్దేశమేమిటో కంటే ఒక అర్థంతో ఆమోదిస్తుండటం.
ప్రోగ్రామింగ్ మెలకువలు
దోషాలు తరచూ నిర్వహించబడుతున్న (రన్ అవుతున్న) ప్రోగ్రామ్ యొక్కఅంతర్గత డాటాలో వైరుధ్యాలను సృష్టిస్తాయి. ప్రోగ్రామ్‌లు రన్ అవుతున్నప్పుడు వాటి సొంత అంతర్గత డాటా యొక్క క్రమబద్ధతను పరిశీలన చేసే విధంగా రాయబడుతాయి. ఏదైనా ఒక అసంగతి తలెత్తినప్పుడు, ప్రోగ్రామ్ సత్వరం ఆగిపోవచ్చు. తద్వారా దోషం గుర్తించబడటం, పరిష్కరించబడటం జరుగుతుంది. ప్రత్యామ్నాయంగా, తలెత్తిన అసంగతిని సరిదిద్దమని మరియు ప్రోగ్రామ్‌ను కొనసాగించమని యూజర్‌కు ప్రోగ్రామ్ మామూలుగా తెలియజేస్తుంది.
అభివృద్ధి పరిశోధనా పద్ధతులు
ప్రోగ్రామర్ కార్యశీలత నిర్వహణకు వివిధ ప్రణాళికలు ఉన్నాయి. అందువల్ల కొన్ని దోషాలు ఉత్పన్నమవుతాయి. వీటిలో చాలావరకు సాఫ్ట్‌వేర్ ఇంజినీరింగ్ (ఇది సాఫ్ట్‌వేర్ రూపకల్పన అంశాలను సైతం తెలుపుతుంది) విభాగం కిందకు వస్తాయి. ఉదాహరణకు, క్రమబద్ధ ప్రోగ్రామ్ వివరణలు ప్రోగ్రామ్‌ల యొక్క కచ్చితమైన ప్రవర్తనను తెలపడానికి ఉపయోగిస్తారు. అందువల్ల రూపకల్పన దోషాలు తొలగించబడుతాయి. దురదృష్టవశాత్తుగా, సమ్మిళిత విస్ఫోటనం మరియు అనిర్దిష్టత సమస్యల వల్ల

క్రమబద్ధ వివరణలు దేనికైనా సరే అవాస్తవమైనవిగానూ లేదా అసాధ్యమైనవిగానూ ఉంటాయి. అయితే అతి చిన్న ప్రోగ్రామ్‌ల పరిస్థితి వేరుగా ఉంటుంది.

ప్రోగ్రామింగ్ భాషా మద్దతు
ప్రోగ్రామింగ్ భాషలు అప్పుడప్పుడు ప్రోగ్రామర్లు దోషాలను నివారించే విధంగా సాయపడే విశిష్టతలను కలిగి ఉంటాయి. అంటే స్థిర టైపు వ్యవస్థలు, నిరోధిత నేమ్ స్పేస్‌లు మరియు మాడ్యులర్ ప్రోగ్రామింగ్ వంటివి. ఉదాహరణకు, ఒక ప్రోగ్రామర్ (సిడోకోడ్) LET REAL_VALUE PI = "THREE AND A BIT"ను రాయడం. వాక్యనిర్మాణపరంగా ఇది సరియైనదేయైనా, ఈ కోడు ఒక టైపు పరిశీలనను వైఫల్యం చెందిస్తుంది. భాష మరియు అమలు ఆధారంగా ఇది సంగ్రహకుడు (కూర్పరి) చేత లేదా రన్‌టైమ్ (ప్రోగ్రామ్ అమలయ్యేటప్పుడు) సమయంలో గుర్తించబడుతుంది. అదనంగా, పలు ఇటీవలి ఆవిష్కృత భాషలు దోషాలకు దారితీయగలిగే విశిష్టతలను కోడు అవసరమైన దాని కంటే తక్కువ శ్రమతో ఉద్దేశపూర్వకంగా తొలగించాయి. దాని వెనుక సాధారణ సూత్రంగా మూర్ చట్టంను చెప్పుకోవాలి. దీని ద్వారా కంప్యూటర్లు శరవేగంగా మారడం మరియు సాఫ్ట్‌వేర్ ఇంజినీర్లు నెమ్మదిగా మారుతారు. ఇది ప్రత్యేకించి, నిర్వహణ వ్యయం అధికమని భావించినప్పుడు, దాదాపు ఎల్లప్పుడూ సరళంగా రాయడానికి, "తెలివైన" అతిగూఢమైన కోడు కంటే నెమ్మదైన కోడుకు ఉత్తమమైనది. ఉదాహరణకు, జావా ప్రోగ్రామింగ్ లాంగ్వేజ్ అనేది సంకేత అంక గణితానికి మద్దతు తెలుపదు. పాస్కల్ వంటి కొన్ని భాషలను అమలు చేయడాలు మరియు స్క్రిప్టింగ్ భాషలు తరచూ అమరికల యొక్క రన్‌టైమ్ సరిహద్దుల పరిశీలనను కనీసం దోషాల తొలగింపు నిర్మాణంలో కలిగి ఉంటాయి.
కోడు విశ్లేషణ
కోడు విశ్లేషణ పరికరాలు డెవలపర్లు సంభావ్య సమస్యలను గుర్తించే దిశగా సంగ్రాహకుడి సామర్థ్యాలకు ఆవల ఉన్న ప్రోగామ్‌ సారాంశాన్ని పరిశీలించేందుకు దోహదపడుతాయి. సాధారణంగా అన్ని ప్రోగ్రామింగ్ దోషాలను గుర్తించాలన్న సమస్య ఇచ్చిన వివరణ పరిష్కరించలేనిది (ఆగే సమస్యను చూడండి) అయినప్పటికీ, ఈ పరికరాలు మానవ ప్రోగ్రామర్లు సాఫ్ట్‌వేర్ ప్రోగ్రామ్ రాసేటప్పుడు అదే విధమైన పొరపాట్లకు పాల్పడుతారనే వాస్తవాన్ని విశదీకరిస్తాయి.
ఇన్‌స్ట్రుమెంటేషన్
అమలవుతున్న సాఫ్ట్‌వేర్ యొక్క పనితీరును పర్యవేక్షించే పరికరాలను ప్రత్యేకించి, అడ్డంకులు వంటి సమస్యలను గుర్తించడానికి లేదా సక్రమమైన కార్యకలాపానికి భరోసా ఇవ్వడానికి ఉపయోగిస్తారు. వీటిని కోడులో స్పష్టంగా చొప్పించడం (బహుశా PRINT "I AM HERE" ప్రకటన తెలిపినంత సులువుగా) లేదా పరికరాలుగా అందివ్వడం జరుగుతుంది. ఒక చిన్న కోడు ఎక్కడ ఎక్కువ సమయం తీసుకుంటుందనే విషయాన్ని గుర్తించడం తరచూ ఆశ్చర్యాన్ని కలిగిస్తుంది. ఈ ఊహాగానాల తొలగింపు అనేది కోడును తిరిగి రాయడానికి దారితీయొచ్చు.

దోషాల తొలగింపు[మార్చు]

సాధారణ దోష చరిత్ర (GNU క్లాస్‌పాత్ ప్రాజెక్టు డాటా). యూజర్ సమర్పించిన కొత్త దోషం నిర్థారించబడలేదుఒక డెవలపర్ ద్వారా ఒక్కసారి పునరుత్పత్తి చేయబడగానే, అది నిర్థారిత దోషం అవుతుంది.నిర్థారిత దోషాలు తర్వాత పరిష్కరించబడతాయి.ఇతర తరగతులకు చెందిన దోషాలు (పునరుత్పత్తి చేయలేనివి, పరిష్కరించలేనివి తదితరాలు) అనేవి సాధారణంగా తక్కువగా ఉంటాయి

దోషాల గుర్తింపు మరియు తొలగింపు లేదా "డీబగ్గింగ్" (దోషాల తొలగింపు) అనేది కంప్యూటర్ ప్రోగ్రామింగ్‌లో ఎల్లప్పుడూ కీలక భాగం. ప్రారంభ కంప్యూటర్ సంబంధ మేధావి, మౌరీస్ విల్కీస్ ఆయన అవగాహనను 1940ల ఆఖర్లో వివరించారు. జీవిత చరమాంకంలో ఎక్కువ భాగాన్ని ఆయన సొంత ప్రోగ్రామ్‌ల యొక్క పొరపాట్లను గుర్తించడంపైనే గడిపినట్లు తెలిపారు.[14] కంప్యూటర్ ప్రోగ్రామ్‌లు మరింత క్లిష్టంగా మారడంతో దోషాలు సర్వసాధారణం కావడం మరియు వాటి పరిష్కారం క్లిష్టమైంది. కొత్త కోడు రాయడం కంటే దోషాల గుర్తింపు మరియు వారి పరిష్కారానికి ప్రోగ్రామర్లు తరచూ అధిక సమయాన్ని కేటాయించేవారు. సాఫ్ట్‌వేర్ పరిశోధకులు వృత్తిపరమైన నిపుణులు. వారి ప్రాథమిక కార్యం దోషాలను గుర్తించడం లేదా పరిశోధనకు మద్దతు తెలిపే కోడును రాయడం. కొన్ని ప్రాజెక్టులకు సంబంధించి, ప్రోగ్రామ్ అభివృద్ధి కంటే కూడా పరిశోధనపై వనరులను అధికంగా వినియోగించాల్సి ఉంటుంది.

సాధారణంగా, దోషాల తొలగింపులో అత్యంత క్లిష్టమైన పని సోర్సు కోడులోని దోషాన్ని గుర్తించడం. ఒక్కసారి దోషం గుర్తించబడగానే, సాధారణంగా దానిని సరిచేయడం సాపేక్షకంగా సులువు. డీబగ్గర్లు (కంప్యూటర్ ప్రోగ్రామ్)గా తెలిసిన ప్రోగ్రామ్‌లు ప్రోగ్రామర్లు కోడును ఒక లైను తర్వాత మరొక లైనును అమలు చేయడం ద్వారా దోషాలను గుర్తించేందుకు సాయపడతాయి. అంతేకాక అస్థిర విలువలను గమనించడం మరియు ప్రోగ్రామ్ తీరును పరిశీలించడానికి ఇతర విశిష్టతలు ఉంటాయి. ఒక డీబగ్గర్ లేకుండా, కోడును చేర్చగలం. అందువల్ల ప్రోగ్రామ్ అమలును గుర్తించడం లేదా విలువలను చూపించడానికి సందేశాలు లేదా విలువలను ఒక సముదాయానికి (ఉదాహరణకు C ప్రోగ్రామింగ్ లాంగ్వేజ్‌లో printf తో) లేదా ఒక విండోకి లేదా లాగ్ దస్త్రంకు రాయగలం.

ఏదేమైనప్పటికీ, ఒక డీబగ్గర్ సాయంతో, దోషాల గుర్తింపు అనేది ఒకింత కళగానే చెప్పబడుతుంది. ఒక ప్రోగ్రామ్ యొక్క ఒక భాగంలోని దోషం పూర్తి భిన్నమైన విభాగంలో వైఫల్యాలకు కారణమవడం అనేది సహజమే. అందువల్ల దానిని గుర్తించడం చాలా కష్టం (ఉదాహరణకు ఒక గ్రాఫిక్స్ చిత్రణకు సంబంధించిన కంప్యూటర్ ప్రోగ్రామ్ ఒక దస్త్రం యొక్క I/O కంప్యూటర్ ప్రోగ్రామ్ వైఫల్యం చెందే విధంగా చేయడం)గానూ మరియు చూడటానికి వ్యవస్థ యొక్క అసంబంధిత భాగంగా అనిపిస్తుంది.

కొన్నిసార్లు, దోషం అనేది ఒక వివిక్త తప్పిదంగా ఉండదు. అయితే ప్రోగ్రామర్ వైపు ఆలోచించడంలో లేదా వ్యూహరచనలో తలెత్తే ఒక పొరపాటును తెలుపుతుంది. అలాంటి తర్క తప్పులు వల్ల ప్రోగ్రామ్ యొక్క ఒక భాగాన్ని రిపేరు చేయడం లేదా పునర్‌లిఖించాల్సి ఉంటుంది. కోడు సమీక్షలో భాగంగా ఒకరి మెదడులో లేదా పేపరుపై అమలు ప్రక్రియ యొక్క కోడు నమూనా ద్వారా ముందుకు నడిపించడం అనేది తరచూ ఈ పొరపాట్లను గుర్తించగలదు. దీనికి అలాంటి దోషాన్ని తిరిగి ఉత్పత్తి చేయాల్సిన అవసరం కూడా ఉండదు. ఇలా జరగాలంటే దాని అమలులో కొంత తప్పైన తర్కం ఉందని అది చూపిస్తే సరిపోతుంది.

అయితే సర్వసాధారణంగా, ఒక దోషాన్ని గుర్తించడంలో తొలి అడుగుగా దానిని విశ్వసనీయంగా తిరిగి ఉత్పత్తి చేయడం. దోషం తిరిగి ఉత్పత్తవగానే, తప్పుడు ప్రాంతంలో ప్రోగ్రామ్ యొక్క అమలును పర్యవేక్షించడానికి ప్రోగ్రామర్ ఒక డీబగ్గర్ లేదా ఏదైనా ఇతర పరికరాన్ని ఉపయోగించుకోగలడు. అంతేకాక ప్రోగ్రామ్ ఎక్కడ తప్పుదోవ పట్టిందో ఆ ప్రాంతాన్ని గుర్తించవచ్చు.

దోషాల పునరుత్పత్తి అనేది ఎల్లప్పుడూ సులువు కాదు. కొందరు ప్రోగ్రామ్‌కు ఇన్‌పుట్‌లు అందివ్వడం ద్వారా క్రియాశీలకం చేస్తారు. ఈ ప్రోగ్రామ్‌ను తిరిగి సృష్టించడం అనేది ప్రోగ్రామర్‌కు కష్టం కావొచ్చు. Therac-25 వికిరణ యంత్ర మరణాలకు సంబంధించిన ఒక కారణంగా దోషాన్ని (ప్రత్యేకించి, ఒక పరుగు ప్రమాదం) చెబుతారు. యంత్రాన్ని నడిపే వ్యక్తి చికిత్స ప్రణాళికను శరవేగంగా అమలు చేయడానికి ప్రయత్నించినప్పుడు ఇలాంటి పరిస్థితి తలెత్తుతుంది. అందువల్ల దీనిని సక్రమంగా చేయడానికి కొన్ని రోజుల ముందస్తు సాధన అవసరం. ఇలా చేస్తే, దోషం అనేది పరీక్ష చేసేటప్పుడు లేదా తయారీదారు దాని నకలును తయారు చేయడానికి ఉపక్రమించినప్పుడు వ్యక్తం కాదు. ఇతర దోషాలు ఏదైనా ప్రోగ్రామ్ ఒక డీబగ్గర్ సాయంతో అమలు చేయబడినప్పుడు అదృశ్యం కావొచ్చు. ఇవి హీసెన్‌బగ్‌లు (హీసెన్‌బర్గ్ అనిశ్చితి నియమం ఆధారంగా దీనికి హాస్యం కలిగించే విధంగా ఈ పేరు పెట్టారు).

దోషాల తొలగింపు ఇప్పటికీ విసుగు పుట్టించే పనిగా ఉంది. దీనికి విపరీతమైన శ్రమ అవసరం. 1990ల నుంచి, ప్రత్యేకించి, అరైన్ 5 ఫ్లయిట్ 501 ప్రమాదం నేపథ్యంలో, దోషాల తొలగింపుకు సమర్థవంతమైన స్వీయ సాయాల అభివృద్ధి విషయంలో సరికొత్త ఆసక్తిని కనబరచడం జరిగింది. ఉదాహరణకు, సంక్షిప్త అర్థవివరణ ద్వారా స్థిర కోడు విశ్లేషణ పద్ధతులు ఇప్పటికే విశేష ఘనతలు సాధించాయి. అలాగే మరింత కృషి ఇప్పటికీ జరుగుతోంది.

ఏదైనా సృజనాత్మక చర్య, కొన్నిసార్లు ఒక ఉరిమే ఉత్సాహం ద్వారా ఒక పరిష్కారం ఆవిష్కృతమవుతుంది. అయితే ఇది చాలా అరుదుగా జరుగుతుంది. నిర్వచనం పరంగా, ఆధారపడదు.

అంతేకాక దోషాల తరగతులు కూడా ఉన్నాయి. అయితే అవి కోడుతో ఎలాంటి సంబంధం కలిగి ఉండవు. ఉదాహరణకు ఎవరైనా ఒకరు తప్పుడు ప్రమాణ పత్రరచన లేదా హార్డ్‌వేర్‌పై ఆధారపడినప్పుడు. సదరు ప్రమాణ పత్రరచన ఏమి చెబుతుందనే విషయాన్ని తెలిపే విధంగా కోడు చక్కగా కచ్చితంగా రాయబడవచ్చు. అయితే దోషం అనేది నిజానికి కోడులో కాకుండా ప్రమాణ పత్రరచన (డాక్యుమెంటేషన్) లేదా హార్డ్‌వేర్‌లో ఉంటుంది. ఏదేమైనప్పటికీ, వ్యవస్థ యొక్క ఇతర భాగాలకు బదులుగా కోడును మార్చడం రివాజు. అందుకు కారణం దానిని మార్చడానికయ్యే ఖర్చు మరియు పట్టే సమయం సాధారణంగా తక్కువగా ఉండటం. ఒక ROM యొక్క కొత్త వెర్షన్‌ను రూపొందించడానికయ్యే ఖర్చు హార్డ్‌వేర్‌‍ను ప్రత్యేకించి, అవి వాణిజ్య వస్తువులుగా ఉంటే, వాటిని తిరిగి తయారు చేయడం కంటే తక్కువగా ఉండటంతో ఎంబెడ్డెడ్ సిస్టమ్‌లు తరచూ హార్డ్‌వేర్ దోషాలకు తాత్కాలిక పరిష్కారాలను కలిగి ఉంటాయి.

దోష నిర్వహణ[మార్చు]

తెలిసిన దోషాలతో సాఫ్ట్‌వేర్ విడుదలవడం అనేది మామూలు అలవాటు. సదరు దోషాలను సంకట-యేతరమైనవిగా అంటే ఉత్పత్తి పరంగా పలువురు యూజర్ల యొక్క ప్రధాన అనుభూతిపై ప్రభావం చూపనివిగా పరిగణించేవారు. నిర్వచనం పరంగా, సాఫ్ట్‌వేర్ ఉత్పత్తులు కొద్ది సంఖ్యలో తెలియని దోషాలను కలిగి ఉండొచ్చు. బహుశా మిగిలిన దోషాలను పరిశోధన (పరీక్ష) సమయంలో ప్రమాణాల సాయంతో అంచనా వేయొచ్చు. ఒక ఉత్పత్తిని ఎక్కువ కాలం పరీక్షించడం మరియు అభివృద్ధి పరచడం ("గతవారం మనం 200 దోషాలను గుర్తిస్తే, ఈ వారం 100 దోషాలుంటాయి) ద్వారా ఇది మరింత విశ్వసనీయంగా మారుతుంది. అత్యంత భారీ సాఫ్ట్‌వేర్ ప్రాజెక్టులు రెండు రకాల "తెలిసిన దోషాల" జాబితాలను నిర్వహిస్తాయి. అవి సాఫ్ట్‌వేర్ బృందానికి తెలిసినవి మరియు యూజర్లకు చెప్పడానికి ఉద్దేశించినవి. ఇదేమీ భావగోపనం (వాస్తవాన్ని కప్పి ఉంచడం) కాదు. అయితే యూజర్లు ఉత్పత్తి యొక్క అంతర్గత పనితీరుల గురించి ఆందోళన చెందరు. రెండో జాబితా యూజర్లకు ప్రస్తుత విడుదలలో పరిష్కరించబడని లేదా ఎప్పటికీ పరిష్కరించని దోషాల గురించి తెలపడం మరియు ఒక తాత్కాలిక పరిష్కారాన్ని సిఫారసు చేయొచ్చు.

దోషాలను పరిష్కరించకపోవడానికి అనేక కారణాలున్నాయి.

  • డెవలపర్లకు తరచూ తీరిక లేకపోవడం లేదా తీవ్రంకాని అన్ని దోషాలను సరిచేయడం చౌకకాకపోవడం.
  • దోషాన్ని ఇప్పటికి విడుదల కాని ఒక కొత్త వెర్షన్ లేదా ప్యాచ్ (కమాండ్ల సమూహం)లో సరిచేయొచ్చు.
  • దోష పరిష్కారానికి అవసరమైన కోడు మార్పులు ఎక్కువగానూ, ఖరీదైనవిగానూ లేదా ప్రాజెక్టును పూర్తి చేయడంలో ఆలస్యం చేసేవిగానూ ఉంటాయి.
  • అసలు మామూలు పరిష్కారాలుగా కన్పించేవి వ్యవస్థలో కొత్తగా అనిపించే తెలియని దోషాలను ఆవిష్కరించే అవకాశాన్ని తీసుకోవచ్చు. ఒక పరీక్ష/పరిష్కార క్రమం ముగింపులో కొంతమంది మేనేజర్లు అత్యంత కీలకమైన దోషాలను సరిచేయడానికి మాత్రమే అనుమతిస్తారు.
  • ప్రత్యేకించి స్క్రిప్టులు లేదా మ్యాక్రోస్ (కంప్యూటర్ సూచనలు) ఒక ప్రవర్తన (శైలి)పై ఆధారపడినప్పుడు, యూజర్లు ప్రమాణ పత్రరచన చేయని, బగ్గీ ప్రవర్తనపై ఆధారపడవచ్చు. అలాంటప్పుడు అది ఒక విధ్వంసక మార్పుకు ఆస్కారం కల్పించవచ్చు.
  • ఇది "ఒక దోషం కాదు". ఊహాత్మక మరియు అందివ్వబడిన ప్రవర్తనల మధ్య ఒక అవగాహనాలోపం తలెత్తింది.

పైన తెలిపిన దానిని స్పష్టం చేసే విధంగా, ఏదైనా వాస్తవిక సంక్లిష్టత యొక్క దోషరహిత సాఫ్ట్‌వేర్‌ను సంపూర్ణంగా రాయడమనేది తరచూ అసాధ్యమైనదిగా పరిగణించబడుతుంది. కాబట్టి దోషాలు తీవ్రతను బట్టి వర్గీకరించబడుతాయి. అనేక మంది యూజర్లకు సంబంధించి సిస్టమ్ యొక్క కచ్చితమైన పనితీరుపై ప్రభావం చూపనందున తక్కువ తీవ్రతతో కూడిన సంకటయేతర దోషాలు అనుమతించబడే విధంగా ఉంటాయి. NASAకు చెందిన SATC మొత్తం దోషాలను ప్రతి 1000 కోడు లైన్లకు (SLOC)[citation needed] గాను 0.1 శాతం కంటే తగ్గించే విధంగా చేయగలిగింది. అయితే ఏదైనా వాస్తవిక ప్రపంచ ప్రాజెక్టులకు ఇది సాధ్యమైనదిగా భావించబడలేదు.

ఒక దోషం యొక్క తీవ్రత పరిష్కారానికి దాని ప్రాముఖ్యమంత ఉండదు. అందువల్ల ఈ రెండింటినీ వేరుగా అంచనా వేయడం మరియు నిర్వహించడం చేయాలి. ఏదైనా ఒక Microsoft Windows సిస్టమ్‌పై ఒక బ్లూ స్క్రీన్ ఆఫ్ డెత్ (ఒక నిలుపుదల తప్పిదం) అనేది తీవ్రమైనది కావొచ్చు. అయితే అది తీవ్రమైన పరిస్థితుల్లో మాత్రమే సంభవించవచ్చు. ప్రత్యేకించి, దోషాలు చక్కగా నిర్థారించబడటం మరియు తొలగించినప్పుడు, ఒక చిహ్నం దాని క్రియను చక్కగా తెలపకుండా ఉండటం కంటే దాని పరిష్కారం తక్కువ ప్రాముఖ్యతను కలిగి ఉంటుంది. పూర్తిగా కళాత్మకమైనది ప్రతి ఒక్క రోజూ వేలాది మంది యూజర్లను అయోమయానికి గురిచేయొచ్చు. అయితే ఈ తుల్యత అనేది పలు అంశాలపై ఆధారపడి ఉంటుంది. నైపుణ్యం కలిగిన యూజర్లు ఆరంభకుల నుంచి భిన్నమైన అంచనాలను కలిగి ఉంటారు. అంటే, ఒక స్థావర మార్కెట్ అనేది ఒక సాధారణ వినియోగదారు మార్కెట్‌కు భిన్నంగా ఉండటం మొదలైనవి. ఈ తుల్యతను మరింత చక్కగా సాధించడానికి, కొంతమంది సాఫ్ట్‌వేర్ డెవలపర్లు ఒక అధీకృత దోష ప్రాధాన్యత ప్రక్రియ (వైద్య పదం తీసుకోబడింది)ను ఉపయోగిస్తారు. అంటే, ప్రతి కొత్త దోషానికి దాని తీవ్రత, సంభవక్రమం, ప్రమాదం మరియు ఇతర పూర్వనిర్ణయ అంశాలను బట్టి ఒక ప్రాధాన్యతను ఇవ్వడం జరుగుతుంది.[citation needed]

లైనస్ యొక్క చట్టం మాదిరిగా ఎరిక్ S. రేమాండ్ ద్వారా ప్రసిద్ధిగాంచిన మేధావి వర్గ విశ్వాసం ప్రసిద్ధ ఉచిత సాఫ్ట్‌వేర్ అనేది ఇతర సాఫ్ట్‌వేర్ కంటే కొన్ని దోషాలను లేదా దోష రహితంగా ఉండే అవకాశం ఎక్కువ. ఎందుకంటే, "తగినంత మంది దృష్టిసారిస్తే, దోషాలు తేలిపోతాయి".[15] ఏదేమైనప్పటికీ, ఈ స్పష్టీకరణ వివాదాస్పదంగా మారింది. కంప్యూటర్ భద్రతా నిపుణుడు ఎలియాస్ లెవీ ఈ విధంగా రాశారు, "ఎక్కువగా ఉన్న దుర్బలత్వాలను కొద్దిగా అవగాహన మరియు ప్రమాణ పత్రరచన చేయని సోర్సు కోడు ద్వారా దాచిపెట్టొచ్చు," ఎందుకంటే, "ఒకవేళ యూజర్లు కోడును సమీక్షిస్తున్నారంటే, దానర్థం వారు అలా చేయడానికి అర్హత సాధించారని కాదు."[16]

ఇంజినీరింగ్ నిర్వహణ యొక్క ఏదైనా ఇతర భాగం మాదిరిగానే, అయితే నిర్వహణ అనేది తప్పక జాగ్రత్తగా మరియు తెలివిగా చేయాలి. ఎందుకంటే, "ఏదైతే కొలవబడుతుందో అది నిర్వర్తించబడుతుంది"[17] మరియు దోష గణాంకాల ద్వారా పూర్తిగా నిర్వహించడం అనేది అనూహ్య పరిణామాలకు దారితీయొచ్చు. ఉదాహరణకు, డెవలపర్లు వారు పరిష్కరించిన దోషాల ద్వారా గుర్తించబడినప్పుడు, వారు సహజంగా కఠినమైన వాటిని మరియు సంభవనీయంగా అత్యంత ప్రమాదకరమైన లేదా కీలకమైన వాటిని ఆఖరి సంభవనీయ సందర్భం వరకు పక్కనపెట్టి, మొదటి దోషాలను ముందుగా పరిష్కరిస్తారు ("నా జాబితాలో ఒక్క దోషం మాత్రమే ఉంది. అయితే అది "పశ్చిమాన సూర్యుడు ఉదయిస్తాడని చెప్పమంటోంది"). ఒకవేళ నిర్వహణ పద్ధతులనేవి అసంఖ్యాక దోషాల పరిష్కారాన్ని తెలపడమయితే, కొంతమంది డెవలపర్లు తర్వాత దోషాలను పరిష్కరించగలమని వారు తెలుసుకుని, వారు క్రమపద్ధతి లేకుండా సత్వరం ఒక కోడును రాయడం మరియు దానికి వారు ప్రశంసలు అందుకుంటారు. మరోవైపు జాగ్రత్త కలిగిన బహుశా "నెమ్మదియైన" డెవలపర్లు దోషాలు అస్సలు లేనందున వారు ప్రశంసలు పొందరు.

భద్రతా దుర్బలత్వాలు[మార్చు]

హానికర సాఫ్ట్‌వేర్ అనేది ఒక వ్యవస్థ (సిస్టమ్)లోని తెలిసిన దుర్బలత్వాలను దోపిడీ చేసే ప్రయత్నం చేయొచ్చు. అవి దోషాలు కావొచ్చు లేదా కాకపోవచ్చు. అయితే వాటిలోని వైరస్‌లు దోషాలు కావు. అవి సాధారణంగా ప్రోగ్రామ్‌లు. అవి ఎందుకోసమైతే రూపకల్పన చేయబడ్డవో అవి పూర్తిగా ఆ విధంగానే పనిచేస్తాయి. ఏదేమైనప్పటికీ, వైరస్‌లనేవి సందర్భోచితంగా ఆ విధంగానే ప్రముఖ ముద్రణల్లో పేర్కొనడం జరుగుతోంది.[citation needed]

సాధారణ కంప్యూటర్ దోషాల రకాలు[మార్చు]

  • పౌహిక పొరపాటు(కోడు వాక్యనిర్మాణపరంగా సరియైనది, అయితే ప్రోగ్రామర్ లేదా రూపకర్త అది మరో విధంగా పనిచేయాలని భావించవచ్చు)

అంకగణిత దోషాలు[మార్చు]

  • సున్నా చేత విభజన
  • అంకగణిత అధిక ప్రవాహం లేదా తక్కువ ప్రవాహం
  • రౌండింగ్ (అంకెల లేదా సంఖ్యల పరిపూర్ణతా ప్రయత్నం) లేదా సంఖ్యాపరమైన అస్థిరత కలిగిన యాంత్రిక పద్ధతుల వల్ల సంభవించే అంకగణిత ఖచ్చితత్వ నష్టం.

తర్క దోషాలు[మార్చు]

  • అనంత వలయాలు మరియు అనంత సూత్రం
  • ఆఫ్ బై వన్ ఎర్రర్, వలయంగా చేర్చేటప్పుడు, ఒక దానిని అనేక పర్యాయాలు లేదా కొన్నిసార్లు లెక్కించడం

వాక్యనిర్మాణ దోషాలు[మార్చు]

  • తప్పుడు ఆపరేటర్‌ను ఉపయోగించడం అంటే సమానత్వ పరీక్షకు బదులుగా అప్పగించిన పనిని (బాధ్యత)ను చేయడం వంటిది. సాధారణ సందర్భాల్లో, తరచూ సంగ్రహకుడి చేత హెచ్చరించబడుతుంది. అనేక భాషల్లో, భాషా పరమైన వాక్యనిర్మాణం ద్వారా ఉద్దేశపూర్వకంగా సంరక్షించబడుతుంది.

వనరు దోషాలు[మార్చు]

  • నిష్ఫల సూచిక డీరిఫరెన్స్ (ఒక మెమరీ లొకేషన్‌లోని విలువను పొందడం)
  • ఒక అవినియోగిత చరరాశిని వినియోగించడం
  • తప్పుడు డాటా టైపు (ప్యాక్డ్ డెసిమల్/బైనరీ కోడెడ్ డెసిమల్ చూడండి)పై ఒక విభిన్న విలువైన సూచనను ఉపయోగించడం
  • ప్రవేశ ఉల్లంఘనలు
  • వనరు బహిర్గతాలు, మెమరీ లేదా ఫైల్ హ్యాండిల్స్ (ఫైల్ డెస్క్రిప్టర్) వంటి ఒక పరిమిత వ్యవస్థ వనరు అనేది విడుదల లేకుండా పదే పదే కేటాయించబడటం ద్వారా ఖాళీ అయిపోవడం.
  • బఫర్ అధిక ప్రవాహం, అంటే, కేటాయించిన స్టోరీజీ ముగింపులో గత సమాచారాన్ని నిల్వ చేయడానికి ఒక ప్రోగ్రామ్ ప్రయత్నించడం. ఇది ఒక ప్రవేశ ఉల్లంఘన లేదా నిల్వ ఉల్లంఘనకు దారితీయొచ్చు లేదా తీయకపోవచ్చు. ఈ దోషాలు ఒక భద్రతా దుర్బలత్వంను ఏర్పాటు చేయొచ్చు.
  • తర్కం పరంగా విలువైనదిగా భావించబడే అదనపు సూత్రం కుప్ప ప్రవాహంకు కారణమవుతుంది.

బహుళ-వరుస సందేశాల ప్రోగ్రామింగ్ దోషాలు[మార్చు]

  • డెడ్‌లాక్
  • ప్రమాద స్థితి
  • కీలక విభాగాలు, పరస్పర మినహాయింపులు మరియు ఇతర ఏకకాలిక ప్రక్రియ విశిష్టతల్లోని ఏకీభావ పొరపాట్లు. టైమ్ ఆఫ్ చెక్ టు టైమ్ ఆఫ్ యూజ్ (TOCTOU) అనేది రక్షించబడని కీలక విభాగం యొక్క రూపం.

టీమ్‌వర్కింగ్ దోషాలు[మార్చు]

  • ప్రచారం చేయబడని కొత్త విషయాలు, ఉదాహరణకు, ప్రోగ్రామర్ "myAdd"ను మార్పుదల చేసి, "mySubtract"ను మార్చడం మరిచిపోవడం. ఇది కూడా అదే యాంత్రిక పద్ధతిని అనుసరిస్తుంది. ఈ పొరపాట్లు డోంట్ రిపీట్ యువర్‌సెల్ఫ్ సిద్ధాంతం ద్వారా తగ్గించబడుతాయి.
  • కాలం చెల్లిన లేదా అసమంజసమైన వ్యాఖ్యలు: పలువురు ప్రోగ్రామర్లు వ్యాఖ్యలనేవి కోడును కచ్చితంగా వివరిస్తాయని భావిస్తారు.
  • ప్రమాణ పత్రరచన (డాక్యుమెంటేషన్) మరియు వాస్తవిక ఉత్పత్తి మధ్య తేడాలు

పాప్ సంస్కృతిలోని దోషాలు[మార్చు]

ఒక అంతరిక్షనౌకలోని కంప్యూటర్, HAL 9000 అందులోని సిబ్బంది మొత్తాన్ని హతమార్చే ప్రయత్నం చేస్తుంది. దాని కొనసాగింపుగా వచ్చిన 1982 నవల, 2010:ఒడిస్సీ టూ మరియు దానికి సంబంధించిన 1984 చలనచిత్రం, 2010 లో, కంప్యూటర్ ద్వారా ఈ చర్య జరగడానికి కారణం రెండు విరుద్ధ లక్ష్యాలతో ప్రోగ్రామ్ రాయబడిందనే విషయం బహిర్గతమయింది. అందులోని మొత్తం సమాచారాన్ని పూర్తిగా బహిర్గతం చేయడానికి మరియు విమాన రహస్యం యొక్క వాస్తవిక ప్రయోజనాన్ని సిబ్బందిలో ఉంచడానికి ఈ వివాదం HAL అనుమానాస్పదంగానూ మరియు చివరకు అతిక్రూరమైనదిగానూ మారేందుకు ఆస్కారం కల్పించింది.

  • 1984 పాట 99 రెడ్ బెలూన్స్‌ లో (ఇది వాస్తవిక జర్మన్ అనువాదంలో లేనప్పటికీ), "సాఫ్ట్‌వేర్‌లోని దోషాలు" ఒక బుడగల సమూహంను ఒక అణు క్షిపణిగా కంప్యూటర్ పొరపాటు పడేందుకు దారితీసింది. తద్వారా ఒక అణు యుద్ధం మొదలైంది.
  • ఎలెన్ ఉల్‌మన్ రాసిన 2004 నవల ది బగ్ అనేది ఒక డాటాబేస్ అప్లికేషన్‌లో అంతుచిక్కని దోషాన్ని గుర్తించడానికి ఒక ప్రోగ్రామర్ చేసే ప్రయత్నం గురించి.

వీటిని కూడా చూడండి[మార్చు]

  • యాంటీ-ప్యాటర్న్ (తప్పుడు సాధనకు ఒక ఉదాహరణ)
  • బిట్ రాట్
  • దోష గుర్తింపు వ్యవస్థ
  • అవాంతరం
  • ISO/IEC 9126, ఇది దోషాన్ని ఒక లోపం లేదా ఒక స్వమతానుష్టన లేమి గా వర్గీకరించింది.
  • ఏక పంక్తి పరిష్కారం
  • సాఫ్ట్‌వేర్ లోప సూచి
  • సాఫ్ట్‌వేర్ తిరోగమనం
  • అసాధారణ సాఫ్ట్‌వేర్ దోషాలు (ష్రోయిదిన్‌బగ్, హీసెన్‌బగ్, బోహ్ర్ దోషం మరియు మందెల్‌బగ్)
  • తాత్కాలిక పరిష్కారాలు
  • రేస్‌ట్రాక్ సమస్య

గమనికలు[మార్చు]

  1. ది చినూక్ హెలికాప్టర్ డిజాస్టర్
  2. సాఫ్ట్‌వేర్ బగ్స్ కాస్ట్ US ఎకానమీ డీర్
  3. ఎడిషన్ టు పుస్కాస్, 13 నవంబరు 1878, ఎడిషన్ పేపర్స్, ఎడిషన్ నేషనల్ లేబొరేటరీ, U.S. నేషనల్ పార్క్ సర్వీస్, వెస్ట్ ఆరెంజ్, N.J., థామస్ P.హ్యూస్ యొక్క అమెరికన్ జెనిసిస్: ఎ హిస్టరీ ఆఫ్ ది అమెరికన్ జెనిసిస్ ఫర్ ఇన్వెన్షన్‌ లో పొందుపరచబడింది. పెంగ్విన్ బుక్స్, 1989, ISBN 0-14-009741-4, పేజీ 75లో.
  4. "Baffle Ball". Internet Pinball Database. "(See image of advertisement in reference entry)" 
  5. FCAT #REDIRECT Template:Disambiguation needed * This is a redirect from a shortcut page name in any namespace to a page in template namespace. For more information follow the category link. ** If target page is not a template, then use {{R from shortcut}} instead. Template shortcuts are wikilinked on community pages, talk pages and edit summaries, but not in mainspace articles. ** Note: Template talk pages are in a talk namespace; they are not in the template namespace. All shortcuts to talk pages should be tagged with {{R from shortcut}}.Script error: No such module "Redirect template". NRT Test, Harcourt, 18 March 2008 
  6. "Danis, Sharron Ann: "Rear Admiral Grace Murray Hopper"". ei.cs.vt.edu. 16 February 1997. సంగ్రహించిన తేదీ 31 January 2010. 
  7. "బగ్", ది జార్గన్ ఫైల్ , వెర్షన్ 4.4.7. 3 జూన్ 2010న తిరిగి పొందబడింది.
  8. 8.0 8.1 "లాగ్ బుక్ విత్ కంప్యూటర్ బగ్", నేషనల్ మ్యూజియం ఆఫ్ అమెరికన్ హిస్టరీ, స్మిత్‌సోనియన్ ఇన్‌స్టిట్యూషన్
  9. "ది ఫస్ట్ "కంప్యూటర్ బగ్", నావల్ హిస్టారికల్ సెంటర్. అయితే 1947 వేసవి వరకు హార్వర్డ్ మార్క్ II కంప్యూటర్ పూర్తి కాలేదన్న విషయాన్ని గుర్తించుకోవాలి.
  10. IEEE అన్నాల్స్ ఆఫ్ హిస్టీరీ ఆఫ్ కంప్యూటింగ్, వాల్యూమ్ 22, సంచిక 1, 2000
  11. ఫస్ట్ కంప్యూటర్ బగ్
  12. Huizinga, Dorota; Kolawa, Adam (2007). Automated Defect Prevention: Best Practices in Software Management. Wiley-IEEE Computer Society Press. పేజీ. 426. ISBN 0470042125. 
  13. McDonald, Marc; Musson, Robert; Smith, Ross (2007). The Practical Guide to Defect Prevention. Microsoft Press. పేజీ. 480. ISBN 0735622531. 
  14. మౌరీస్ విల్కీస్ ఉల్లేఖనాలు
  15. "రిలీజ్ ఎర్లీ, రిలీజ్ ఆఫన్", ఎరిక్ S. రేమాండ్, ది కేథడ్రల్ అండ్ ది బజార్
  16. "వైడ్ ఓపెన్ సోర్స్", ఎలియాస్ లెవీ, సెక్యూరిటీఫోకస్ , 17 ఏప్రిల్ 2000
  17. Smith, Mark, What gets measured gets done, Cobalt Group, సంగ్రహించిన తేదీ 8 April 2009 

మరింత చదవడానికి[మార్చు]

  • అలెన్, మిట్చ్, మే/జూన్ 2002 "బగ్ ట్రాకింగ్ బేసిక్స్: ఎ బిగినర్స్ గైడ్ టు రిపోర్టింగ్ అండ్ ట్రాకింగ్ డిఫెక్ట్స్" ది సాఫ్ట్‌వేర్ టెస్టింగ్ & క్వాలిటీ ఇంజినీరింగ్ మేగజైన్ . వాల్యూమ్. 4, సంచిక 3, పేజీలు. 20–24.

బాహ్య లింకులు[మార్చు]