Software quality
સોફ્ટવેર ઇજનેરીના સંદર્ભમાં, સોફ્ટવેરની ગુણવત્તા બે સંબંધિત પરંતુ અલગ કલ્પનાઓનો સંદર્ભ આપે છેઃ સોફ્ટવેરની કાર્યાત્મક ગુણવત્તા પ્રતિબિંબિત કરે છે કે તે કાર્યાત્મક જરૂરિયાતો અથવા સ્પષ્ટીકરણોના આધારે આપેલ ડિઝાઇનનું કેટલું સારી રીતે પાલન કરે છે અથવા અનુરૂપ છે. તે લક્ષણને સોફ્ટવેરના હેતુ માટેની યોગ્યતા તરીકે પણ વર્ણવી શકાય છે અથવા તે યોગ્ય ઉત્પાદન તરીકે બજારમાં સ્પર્ધકો સાથે કેવી રીતે સરખાવે છે. તે એ ડિગ્રી છે કે જેના માટે સાચું સોફ્ટવેર બનાવવામાં આવ્યું હતું. સોફ્ટવેર માળખાકીય ગુણવત્તા એ છે કે તે કેવી રીતે બિન-કાર્યાત્મક જરૂરિયાતોને પૂર્ણ કરે છે જે કાર્યાત્મક જરૂરિયાતો, જેમ કે મજબૂતાઈ અથવા જાળવણીક્ષમતાના વિતરણને ટેકો આપે છે. સોફ્ટવેર જરૂરિયાત મુજબ જે હદ સુધી કામ કરે છે તેની સાથે તેનો ઘણો સંબંધ છે. માળખાકીય ગુણવત્તાના ઘણા પાસાઓનું મૂલ્યાંકન માત્ર સોફ્ટવેર આંતરિક માળખા, તેના સ્રોત કોડ (સોફ્ટવેર મેટ્રિક્સ જુઓ), એકમ સ્તરે અને સિસ્ટમ સ્તરે (કેટલીકવાર એન્ડ-ટુ-એન્ડ પરીક્ષણ તરીકે ઓળખવામાં આવે છે) વિશ્લેષણ દ્વારા સ્થિર રીતે કરી શકાય છે, જે અસરકારક રીતે તેની રચના ઓબ્જેક્ટ મેનેજમેન્ટ ગ્રુપ (OMG) દ્વારા વિષય પરના પેપરમાં દર્શાવેલ સોફ્ટવેર આર્કિટેક્ચરના ધ્વનિ સિદ્ધાંતોનું પાલન કરે છે. જો કે કેટલાક માળખાકીય ગુણો, જેમ કે ઉપયોગીતા, માત્ર ગતિશીલ રીતે મૂલ્યાંકન કરી શકાય છે (વપરાશકર્તાઓ અથવા તેમના વતી કામ કરતા અન્ય લોકો સોફ્ટવેર સાથે ક્રિયાપ્રતિક્રિયા કરે છે અથવા, ઓછામાં ઓછું, કેટલાક પ્રોટોટાઇપ અથવા આંશિક અમલીકરણ; કાર્ડબોર્ડમાં બનાવેલ મોક વર્ઝન સાથેની ક્રિયાપ્રતિક્રિયા પણ ગતિશીલ પરીક્ષણને રજૂ કરે છે કારણ કે આવા સંસ્કરણને પ્રોટોટાઇપ ગણી શકાય). અન્ય પાસાઓ, જેમ કે વિશ્વસનીયતા, તેમાં માત્ર સોફ્ટવેર જ નહીં પણ અંતર્ગત હાર્ડવેર પણ સામેલ હોઈ શકે છે, તેથી, તેનું મૂલ્યાંકન સ્થિર અને ગતિશીલ બંને રીતે કરી શકાય છે (તણાવ પરીક્ષણ). કાર્યાત્મક ગુણવત્તાનું મૂલ્યાંકન સામાન્ય રીતે ગતિશીલ રીતે કરવામાં આવે છે પરંતુ સ્થિર પરીક્ષણો (જેમ કે સોફ્ટવેર સમીક્ષાઓ) નો ઉપયોગ કરવો પણ શક્ય છે. ઐતિહાસિક રીતે, સોફ્ટવેર ગુણવત્તા વ્યવસ્થાપનને લાગુ પડતા લક્ષણો અને મેટ્રિક્સનું માળખું, વર્ગીકરણ અને પરિભાષા આઇએસઓ 9126 અને તેના પછીના આઇએસઓ/આઇઇસી 25000 ધોરણમાંથી લેવામાં આવી છે અથવા કાઢવામાં આવી છે. આ મોડેલોના આધારે (નમૂનાઓ જુઓ), કન્સોર્ટિયમ ફોર આઇટી સોફ્ટવેર ક્વોલિટી (સીઆઇએસક્યુ) એ વ્યવસાયિક મૂલ્ય પ્રદાન કરવા માટે સોફ્ટવેરના ભાગ માટે જરૂરી પાંચ મુખ્ય ઇચ્છનીય માળખાકીય લાક્ષણિકતાઓને વ્યાખ્યાયિત કરી છેઃ વિશ્વસનીયતા, કાર્યક્ષમતા, સુરક્ષા, જાળવણીક્ષમતા અને (પર્યાપ્ત) કદ. સોફ્ટવેરની ગુણવત્તાનું માપન આ પાંચ પરિમાણોમાંથી દરેકમાં સોફ્ટવેર પ્રોગ્રામ અથવા સિસ્ટમ કેટલો દર આપે છે તેનું પ્રમાણ નક્કી કરે છે. સોફ્ટવેર ગુણવત્તાના એકંદર માપની ગણતરી ગુણાત્મક અથવા માત્રાત્મક સ્કોરિંગ યોજના અથવા બંનેના મિશ્રણ દ્વારા કરી શકાય છે અને પછી પ્રાથમિકતાઓને પ્રતિબિંબિત કરતી વેઇટિંગ સિસ્ટમ. સોફ્ટવેરની ગુણવત્તાને રેખીય સાતત્ય પર સ્થિત કરવાના આ દ્રષ્ટિકોણને "જટિલ પ્રોગ્રામિંગ ભૂલો" ના વિશ્લેષણ દ્વારા પૂરક બનાવવામાં આવે છે જે ચોક્કસ સંજોગોમાં આપત્તિજનક આઉટેજ અથવા પ્રદર્શનના અધઃપતન તરફ દોરી શકે છે જે એકંદર માપનના આધારે રેટિંગને ધ્યાનમાં લીધા વિના આપેલ સિસ્ટમને ઉપયોગ માટે અયોગ્ય બનાવે છે. સિસ્ટમ સ્તરે જોવા મળતી આવી પ્રોગ્રામિંગ ભૂલો 90 ટકા ઉત્પાદન સમસ્યાઓનું પ્રતિનિધિત્વ કરે છે, જ્યારે એકમ સ્તરે, ભલે ઘણી વધુ હોય, પ્રોગ્રામિંગ ભૂલો 10 ટકાથી ઓછી ઉત્પાદન સમસ્યાઓ માટે જવાબદાર છે (નેવું-નેવું નિયમ પણ જુઓ). પરિણામે, સમગ્ર પ્રણાલીના સંદર્ભ વિના કોડની ગુણવત્તા, જેમ કે ડબલ્યુ. એડવર્ડ્સ ડેમિંગે તેનું વર્ણન કર્યું છે, તેનું મૂલ્ય મર્યાદિત છે. સોફ્ટવેર ગુણવત્તાના માપન, વિભાવનાઓ અને માહિતી વિઝ્યુલાઇઝેશનની તકનીકોને જોવા, અન્વેષણ કરવા, વિશ્લેષણ કરવા અને વાતચીત કરવા માટે વિઝ્યુઅલ, ઇન્ટરેક્ટિવ માધ્યમો ઉપયોગી છે, ખાસ કરીને, જો કેટલાક સોફ્ટવેર ગુણવત્તાના પગલાં એકબીજા સાથે અથવા સોફ્ટવેર અથવા સિસ્ટમના ઘટકો સાથે સંબંધિત હોય. ઉદાહરણ તરીકે, સોફ્ટવેર નકશા એક વિશિષ્ટ અભિગમ રજૂ કરે છે જે "સોફ્ટવેર વિકાસ, સોફ્ટવેર ગુણવત્તા અને સિસ્ટમ ગતિશીલતા વિશેની માહિતીને વ્યક્ત કરી શકે છે અને જોડી શકે છે". સોફ્ટવેર પ્રોજેક્ટના પ્રકાશન તબક્કામાં સોફ્ટવેરની ગુણવત્તા પણ ભૂમિકા ભજવે છે. ખાસ કરીને, પ્રકાશન પ્રક્રિયાઓની ગુણવત્તા અને સ્થાપના (પેચ પ્રક્રિયાઓ પણ), રૂપરેખાંકન વ્યવસ્થાપન એ એકંદર સોફ્ટવેર ઇજનેરી પ્રક્રિયાના મહત્વપૂર્ણ ભાગો છે. પ્રેરણા સોફ્ટવેરની ગુણવત્તા ઓછામાં ઓછા બે મુખ્ય પરિપ્રેક્ષ્યો દ્વારા પ્રેરિત છેઃ જોખમ વ્યવસ્થાપનઃ સોફ્ટવેરની નિષ્ફળતા અસુવિધા કરતાં વધુ પેદા કરે છે. સોફ્ટવેર ભૂલો માનવ જાનહાનિનું કારણ બની શકે છે (ઉદાહરણ તરીકે જુઓઃ સોફ્ટવેર ભૂલોની સૂચિ). તેના કારણો નબળી ડિઝાઇનવાળા વપરાશકર્તા ઇન્ટરફેસોથી લઈને સીધી પ્રોગ્રામિંગ ભૂલો સુધીના છે, ઉદાહરણ તરીકે બોઇંગ 737 કેસ અથવા અનિચ્છનીય પ્રવેગક કેસ અથવા થેરેક-25 કેસ જુઓ. આના પરિણામે કેટલાક પ્રકારના સોફ્ટવેરના વિકાસ માટેની જરૂરિયાતો, ખાસ કરીને અને ઐતિહાસિક રીતે તબીબી અને અન્ય ઉપકરણોમાં જડિત સોફ્ટવેર માટે કે જે નિર્ણાયક માળખાગત સુવિધાનું નિયમન કરે છેઃ "[એમ્બેડેડ સોફ્ટવેર લખતા ઇજનેરો] જાવા પ્રોગ્રામ્સને કચરાનો સંગ્રહ કરવા અને વપરાશકર્તા ઇન્ટરફેસને અપડેટ કરવા માટે સેકન્ડના ત્રીજા ભાગ માટે અટકી જતા જુએ છે, અને તેઓ આકાશમાંથી વિમાનો પડી જવાની કલ્પના કરે છે". યુનાઇટેડ સ્ટેટ્સમાં, ફેડરલ એવિએશન એડમિનિસ્ટ્રેશન (એફએએ) ની અંદર, એફએએ એરક્રાફ્ટ સર્ટિફિકેશન સર્વિસ સોફ્ટવેર પ્રોગ્રામ્સ, નીતિ, માર્ગદર્શન અને તાલીમ પ્રદાન કરે છે, સોફ્ટવેર અને જટિલ ઇલેક્ટ્રોનિક હાર્ડવેર પર ધ્યાન કેન્દ્રિત કરે છે જે હવાઈ ઉત્પાદન પર અસર કરે છે ("ઉત્પાદન" એ વિમાન, એન્જિન અથવા પ્રોપેલર છે). પ્રમાણપત્ર ધોરણો જેમ કે ડીઓ-178સી, આઇએસઓ 26262, આઇઇસી 62304, વગેરે. માર્ગદર્શન આપો. ખર્ચ વ્યવસ્થાપનઃ ઇજનેરીના અન્ય કોઈપણ ક્ષેત્રોની જેમ, સારી સોફ્ટવેર ગુણવત્તા દ્વારા સંચાલિત સોફ્ટવેર ઉત્પાદન અથવા સેવા જાળવવા માટે ઓછો ખર્ચ કરે છે, સમજવામાં સરળ હોય છે અને વ્યવસાયની જરૂરિયાતોને દબાવવાના જવાબમાં વધુ ખર્ચ-અસરકારક રીતે બદલી શકે છે. ઉદ્યોગના આંકડા દર્શાવે છે કે મુખ્ય વ્યવસાયિક કાર્યક્રમો (જેમ કે એન્ટરપ્રાઇઝ રિસોર્સ પ્લાનિંગ (ઇ. આર. પી.), ગ્રાહક સંબંધ વ્યવસ્થાપન (સી. આર. એમ.) અથવા નાણાકીય સેવાઓમાં મોટી વ્યવહાર પ્રક્રિયા પ્રણાલીઓ) માં નબળી એપ્લિકેશન માળખાકીય ગુણવત્તા ખર્ચમાં પરિણમે છે, સમયપત્રકમાં વધારો કરે છે અને પુનઃકાર્યના સ્વરૂપમાં કચરો પેદા કરે છે (જુઓ મુડા (જાપાનીઝ શબ્દ)). વધુમાં, નબળી માળખાકીય ગુણવત્તા દૂષિત ડેટા, એપ્લિકેશન આઉટેજ, સુરક્ષા ભંગ અને કામગીરીની સમસ્યાઓને કારણે ઉચ્ચ અસરવાળા વ્યવસાયિક વિક્ષેપો સાથે મજબૂત રીતે સંકળાયેલી છે. નબળી ગુણવત્તાની કિંમત પર CISQ અહેવાલો 2020 માં $2.08 ટ્રિલિયનની અસરનો અંદાજ મૂકે છે 2018 માં IBM નો ડેટા ભંગ અહેવાલ 2020 માં $2.84 ટ્રિલિયનનો અંદાજ છે કે ડેટા ભંગની સરેરાશ વૈશ્વિક કિંમતઃ $3.86 મિલિયન વ્યાખ્યાઓ ISO સોફ્ટવેર ગુણવત્તા એ "જરૂરિયાતોને અનુરૂપ સોફ્ટવેર ઉત્પાદનની ક્ષમતા" છે. જ્યારે અન્ય લોકો માટે તે ગ્રાહક-અથવા મૂલ્ય-નિર્માણ અથવા ખામી સ્તરનો પર્યાય પણ હોઈ શકે છે. ASQ ASQ નીચેની વ્યાખ્યાનો ઉપયોગ કરે છેઃ સોફ્ટવેર ગુણવત્તા સોફ્ટવેર ઉત્પાદનોના ઇચ્છનીય લક્ષણોનું વર્ણન કરે છે. બે મુખ્ય અભિગમો અસ્તિત્વમાં છેઃ ખામી વ્યવસ્થાપન અને ગુણવત્તા લક્ષણો. NIST સોફ્ટવેર એસ્યોરન્સ (SA) મિલકત અને તેને હાંસલ કરવાની પ્રક્રિયા બંનેને આવરી લે છેઃ [ન્યાયી] વિશ્વાસ કે સોફ્ટવેર નબળાઈઓથી મુક્ત છે, ક્યાં તો ઇરાદાપૂર્વક સોફ્ટવેરમાં ડિઝાઇન કરવામાં આવ્યું છે અથવા તેના જીવન ચક્ર દરમિયાન કોઈપણ સમયે આકસ્મિક રીતે દાખલ કરવામાં આવ્યું છે અને સોફ્ટવેર ઇચ્છિત રીતે કાર્ય કરે છે તે પ્રવૃત્તિઓનો આયોજિત અને વ્યવસ્થિત સમૂહ જે સુનિશ્ચિત કરે છે કે સોફ્ટવેર જીવન ચક્ર પ્રક્રિયાઓ અને ઉત્પાદનો જરૂરિયાતો, ધોરણો અને પ્રક્રિયાઓને અનુરૂપ છે PMI પ્રોજેક્ટ મેનેજમેન્ટ ઇન્સ્ટિટ્યૂટની PMBOK માર્ગદર્શિકા "સોફ્ટવેર એક્સ્ટેંશન" પોતે "સોફ્ટવેર ગુણવત્તા" ને વ્યાખ્યાયિત કરતી નથી, પરંતુ સોફ્ટવેર ગુણવત્તા ખાતરી (SQA) "એક સતત પ્રક્રિયા છે જે તે પ્રક્રિયાઓનું પાલન કરવામાં આવી રહ્યું છે તેની ખાતરી કરવા માટે અન્ય સોફ્ટવેર પ્રક્રિયાઓનું ઓડિટ કરે છે (ઉદાહરણ તરીકે સોફ્ટવેર ગુણવત્તા વ્યવસ્થાપન યોજના શામેલ છે)". જ્યારે સોફ્ટવેર ગુણવત્તા નિયંત્રણ (SCQ) નો અર્થ થાય છે "વિકાસ અથવા ફેરફાર હેઠળ સોફ્ટવેર માટે ગુણવત્તાની જરૂરિયાતો તરફ કાર્ય ઉત્પાદનોની સંતોષ સુનિશ્ચિત કરવા માટે પદ્ધતિઓ, સાધનો, તકનીકોને લાગુ કરવાની કાળજી લેવી". અન્ય સામાન્ય અને ઐતિહાસિક ગુણવત્તાયુક્ત ઇતિહાસની પ્રથમ વ્યાખ્યા 20મી સદીની શરૂઆતમાં શેવહાર્ટ દ્વારા યાદ કરવામાં આવે છેઃ "ગુણવત્તાના બે સામાન્ય પાસાં છેઃ તેમાંથી એક વસ્તુની ગુણવત્તાને માણસના અસ્તિત્વથી સ્વતંત્ર વસ્તુનિષ્ઠ વાસ્તવિકતા તરીકે ધ્યાનમાં લેવા સાથે સંબંધિત છે. બીજું વસ્તુનિષ્ઠ વાસ્તવિકતાના પરિણામે આપણે જે વિચારીએ છીએ, અનુભવીએ છીએ અથવા અનુભવીએ છીએ તેની સાથે સંબંધિત છે. બીજા શબ્દોમાં કહીએ તો, ગુણવત્તાની એક વ્યક્તિલક્ષી બાજુ છે. કિચનહામ અને પ્ફ્લીગર, ડેવિડ ગાર્વિનના ઉપદેશોનો વધુ અહેવાલ આપતા, ગુણવત્તા પર પાંચ જુદા જુદા પરિપ્રેક્ષ્યોને ઓળખે છેઃ દિવ્ય પરિપ્રેક્ષ્ય ગુણવત્તાના આધ્યાત્મિક પાસા સાથે વ્યવહાર કરે છે. ગુણવત્તાના આ દ્રષ્ટિકોણમાં, તે "એવી વસ્તુ છે જેના તરફ આપણે એક આદર્શ તરીકે પ્રયત્ન કરીએ છીએ, પરંતુ તેનો ક્યારેય સંપૂર્ણ અમલ કરી શકતા નથી". તેને ભાગ્યે જ વ્યાખ્યાયિત કરી શકાય છે, પરંતુ તે એક વખત સંઘીય ન્યાયાધીશે અશ્લીલતા વિશે જે ટિપ્પણી કરી હતી તેના જેવું જ છેઃ "જ્યારે હું તેને જોઉં છું ત્યારે હું તેને જાણું છું". વપરાશકર્તાનો પરિપ્રેક્ષ્ય ઉપયોગના આપેલ સંદર્ભ માટે ઉત્પાદનની યોગ્યતા સાથે સંબંધિત છે. જ્યારે દિવ્ય દૃશ્ય અલૌકિક હોય છે, ત્યારે વપરાશકર્તાનું દૃશ્ય વધુ નક્કર હોય છે, જે ઉત્પાદનની લાક્ષણિકતાઓમાં આધારિત હોય છે જે વપરાશકર્તાની જરૂરિયાતોને પૂર્ણ કરે છે. ઉત્પાદનનો પરિપ્રેક્ષ્ય ગુણવત્તાને જરૂરિયાતો અનુસાર રજૂ કરે છે. ગુણવત્તાના આ પાસા પર ISO 9001 જેવા ધોરણો દ્વારા ભાર મૂકવામાં આવે છે, જે ગુણવત્તાને "જે હદ સુધી અંતર્ગત લાક્ષણિકતાઓનો સમૂહ જરૂરિયાતોને પૂર્ણ કરે છે" (ISO/IEC 9001) તરીકે વ્યાખ્યાયિત કરે છે. ઉત્પાદનનો પરિપ્રેક્ષ્ય સૂચવે છે કે ઉત્પાદનની અંતર્ગત લાક્ષણિકતાઓને માપીને ગુણવત્તાની પ્રશંસા કરી શકાય છે. ગુણવત્તાનો અંતિમ પરિપ્રેક્ષ્ય મૂલ્ય આધારિત છે. આ પરિપ્રેક્ષ્ય સ્વીકારે છે કે ગુણવત્તાના વિવિધ પરિપ્રેક્ષ્યો વિવિધ હિસ્સેદારો માટે અલગ મહત્વ અથવા મૂલ્ય ધરાવી શકે છે. ટોમ ડેમાર્કોએ પ્રસ્તાવ મૂક્યો છે કે "ઉત્પાદનની ગુણવત્તા એ એક કાર્ય છે કે તે વિશ્વને વધુ સારા માટે કેટલું બદલે છે". આનો અર્થ એ થાય છે કે સોફ્ટવેરની ગુણવત્તા નક્કી કરવામાં માળખાકીય ગુણવત્તા કરતાં કાર્યાત્મક ગુણવત્તા અને વપરાશકર્તા સંતોષ વધુ મહત્વપૂર્ણ છે. ગેરાલ્ડ વેનબર્ગે ક્વોલિટી સોફ્ટવેર મેનેજમેન્ટઃ સિસ્ટમ્સ થિંકિંગમાં બીજી વ્યાખ્યા આપી છે, "ગુણવત્તા એ કોઈ વ્યક્તિ માટે મૂલ્ય છે". આ વ્યાખ્યા ભારપૂર્વક જણાવે છે કે ગુણવત્તા સ્વાભાવિક રીતે વ્યક્તિલક્ષી છે-જુદા જુદા લોકો એક જ સોફ્ટવેરની ગુણવત્તાનો અલગ રીતે અનુભવ કરશે. આ વ્યાખ્યાની એક તાકાત એ છે કે તે સોફ્ટવેર ટીમોને વિચારણા કરવા માટે આમંત્રિત કરે છે, જેમ કે "આપણે આપણા સોફ્ટવેરની કદર કરવા માંગતા લોકો કોણ છે?" અને "તેમના માટે શું મૂલ્યવાન હશે?". અન્ય અર્થો અને વિવાદો ગુણવત્તાને વ્યાખ્યાયિત કરવામાં એક પડકાર એ છે કે "દરેકને લાગે છે કે તેઓ તેને સમજે છે" અને સોફ્ટવેર ગુણવત્તાની અન્ય વ્યાખ્યાઓ વ્યવસાયમાં ઉપયોગમાં લેવાતી ગુણવત્તાના ખ્યાલના વિવિધ વર્ણનોના વિસ્તરણ પર આધારિત હોઈ શકે છે. સોફ્ટવેરની ગુણવત્તા ઘણીવાર ગુણવત્તા ખાતરી અથવા સમસ્યા નિવારણ વ્યવસ્થાપન અથવા ગુણવત્તા નિયંત્રણ અથવા દેવઓપ્સ સાથે મિશ્ર થઈ જાય છે. તે અગાઉ ઉલ્લેખિત ક્ષેત્રો સાથે ઓવર-લેપ કરે છે (પીએમઆઈ વ્યાખ્યાઓ પણ જુઓ), પરંતુ તે વિશિષ્ટ છે કારણ કે તે માત્ર પરીક્ષણ પર જ નહીં પરંતુ પ્રક્રિયાઓ, વ્યવસ્થાપન, સુધારાઓ, મૂલ્યાંકન વગેરે પર પણ ધ્યાન કેન્દ્રિત કરે છે. માપન જોકે આ વિભાગમાં પ્રસ્તુત વિભાવનાઓ માળખાકીય અને કાર્યાત્મક સોફ્ટવેર ગુણવત્તા બંનેને લાગુ પડે છે, પછીનું માપન અનિવાર્યપણે પરીક્ષણ દ્વારા કરવામાં આવે છે [મુખ્ય લેખ જુઓઃ સોફ્ટવેર પરીક્ષણ]. જો કે, પરીક્ષણ પૂરતું નથીઃ એક અભ્યાસ અનુસાર, વ્યક્તિગત પ્રોગ્રામરો તેમના પોતાના સોફ્ટવેરમાં ભૂલો શોધવામાં 50 ટકાથી ઓછા કાર્યક્ષમ હોય છે. અને મોટાભાગના પરીક્ષણો માત્ર 35 ટકા કાર્યક્ષમ છે. આ [સોફ્ટવેર] ની ગુણવત્તા નક્કી કરવાનું મુશ્કેલ બનાવે છે. પરિચય સોફ્ટવેરની ગુણવત્તાનું માપન એ સિસ્ટમ અથવા સોફ્ટવેર કેટલી હદે ઇચ્છનીય લાક્ષણિકતાઓ ધરાવે છે તે માપવા વિશે છે. આ ગુણાત્મક અથવા માત્રાત્મક માધ્યમો અથવા બંનેના મિશ્રણ દ્વારા કરી શકાય છે. બંને કિસ્સાઓમાં, દરેક ઇચ્છનીય લાક્ષણિકતા માટે, માપી શકાય તેવા લક્ષણોનો સમૂહ છે જેનું અસ્તિત્વ સોફ્ટવેર અથવા સિસ્ટમના ભાગમાં સહસંબંધિત અને આ લાક્ષણિકતા સાથે સંકળાયેલું હોય છે. ઉદાહરણ તરીકે, પોર્ટેબિલિટી સાથે સંકળાયેલ લક્ષણ એ પ્રોગ્રામમાં લક્ષ્ય-આધારિત નિવેદનોની સંખ્યા છે. વધુ સ્પષ્ટ રીતે કહીએ તો, ક્વોલિટી ફંક્શન ડિપ્લોયમેન્ટ અભિગમનો ઉપયોગ કરીને, આ માપી શકાય તેવા લક્ષણો "કેવી રીતે" છે જેને ઉપરની સોફ્ટવેર ક્વોલિટી વ્યાખ્યામાં "શું છે" ને સક્ષમ કરવા માટે લાગુ કરવાની જરૂર છે. સોફ્ટવેર ગુણવત્તા વ્યવસ્થાપનને લાગુ પડતા લક્ષણો અને મેટ્રિક્સનું માળખું, વર્ગીકરણ અને પરિભાષા ISO 9126-3 અને અનુગામી ISO/IEC 25000:2005 ગુણવત્તા મોડેલમાંથી મેળવવામાં આવી છે અથવા કાઢવામાં આવી છે. મુખ્ય ધ્યાન આંતરિક માળખાકીય ગુણવત્તા પર છે. બિઝનેસ એપ્લિકેશન આર્કિટેક્ચર અને ડેટા એક્સેસ અને મેનીપ્યુલેશન અથવા વ્યવહારોની કલ્પના જેવા તકનીકી લાક્ષણિકતાઓ જેવા ચોક્કસ ક્ષેત્રોને સંભાળવા માટે પેટા વર્ગો બનાવવામાં આવ્યા છે. સોફ્ટવેર ગુણવત્તાની લાક્ષણિકતાઓ અને તેમના માપી શકાય તેવા લક્ષણો વચ્ચેનું અવલંબન વૃક્ષ જમણી બાજુના આકૃતિમાં દર્શાવવામાં આવ્યું છે, જ્યાં વપરાશકર્તા (જમણે) અથવા વ્યવસાય પ્રણાલીના માલિક માટે મહત્વની 5 લાક્ષણિકતાઓમાંથી દરેક માપી શકાય તેવા લક્ષણો પર આધાર રાખે છે (ડાબે): એપ્લિકેશન આર્કિટેક્ચર પ્રેક્ટિસ કોડિંગ પ્રેક્ટિસ એપ્લિકેશન જટિલતા દસ્તાવેજીકરણ પોર્ટેબિલિટી પ્રોગ્રામિંગ ભૂલો અને ઉત્પાદન ખામીઓ વચ્ચેના તકનીકી અને કાર્યાત્મક વોલ્યુમ સહસંબંધો દર્શાવે છે કે મૂળભૂત કોડ ભૂલો સ્રોત કોડમાં કુલ ભૂલોના 92 ટકા માટે જવાબદાર છે. આ અસંખ્ય કોડ-સ્તરના મુદ્દાઓ આખરે ઉત્પાદનમાં માત્ર 10 ટકા ખામીઓ માટે ગણવામાં આવે છે. આર્કિટેક્ચર સ્તરે ખરાબ સોફ્ટવેર એન્જિનિયરિંગ પદ્ધતિઓ કુલ ખામીઓના માત્ર 8 ટકા માટે જવાબદાર છે, પરંતુ સમસ્યાઓ સુધારવા પર ખર્ચવામાં આવતા અડધાથી વધુ પ્રયાસોનો વપરાશ કરે છે, અને ઉત્પાદનમાં 90 ટકા ગંભીર વિશ્વસનીયતા, સુરક્ષા અને કાર્યક્ષમતાના મુદ્દાઓ તરફ દોરી જાય છે. કોડ-આધારિત વિશ્લેષણ પ્રવર્તમાન ઘણા સોફ્ટવેર પગલાં એપ્લિકેશનના માળખાકીય તત્વોની ગણતરી કરે છે જે આવા વ્યક્તિગત સૂચનો માટે સ્રોત કોડનું વિશ્લેષણ કરવાથી પરિણમે છે-ટોકન નિયંત્રણ માળખાં (જટિલતા), અને પદાર્થો. સોફ્ટવેરની ગુણવત્તાનું માપન એ પરિમાણ વિશે છે કે આ પરિમાણો સાથે સિસ્ટમ અથવા સોફ્ટવેર કેટલો દર આપે છે. વિશ્લેષણ ગુણાત્મક અથવા માત્રાત્મક અભિગમ અથવા બંનેના મિશ્રણનો ઉપયોગ કરીને કરી શકાય છે જે એકંદર દૃષ્ટિકોણ પ્રદાન કરે છે [ઉદાહરણ તરીકે ભારિત સરેરાશ (ઓ) નો ઉપયોગ કરીને જે માપવામાં આવતા પરિબળો વચ્ચેના સંબંધિત મહત્વને પ્રતિબિંબિત કરે છે]. રેખીય સાતત્ય પર સોફ્ટવેર ગુણવત્તાના આ દ્રષ્ટિકોણને અલગ જટિલ પ્રોગ્રામિંગ ભૂલોની ઓળખ દ્વારા પૂરક બનાવવો પડશે. આ નબળાઈઓ પરીક્ષણના કેસમાં નિષ્ફળ ન થઈ શકે, પરંતુ તે ખરાબ પ્રથાઓનું પરિણામ છે જે ચોક્કસ સંજોગોમાં આપત્તિજનક આઉટેજ, પ્રદર્શનમાં ઘટાડો, સુરક્ષા ભંગ, દૂષિત ડેટા અને અસંખ્ય અન્ય સમસ્યાઓ તરફ દોરી શકે છે જે આપેલ સિસ્ટમને વાસ્તવિક રીતે ઉપયોગ માટે અયોગ્ય બનાવે છે. નબળાઈનું એક જાણીતું ઉદાહરણ સામાન્ય નબળાઈની ગણતરી છે, જે સ્રોત કોડમાં નબળાઈઓનો ભંડાર છે જે એપ્લિકેશનોને સુરક્ષા ભંગોના સંપર્કમાં લાવે છે. જટિલ એપ્લિકેશન લાક્ષણિકતાઓના માપનમાં ઉપરના ચિત્રમાં દર્શાવ્યા મુજબ એપ્લિકેશનના આર્કિટેક્ચર, કોડિંગ અને ઇન-લાઇન દસ્તાવેજીકરણના માળખાકીય લક્ષણોને માપવાનો સમાવેશ થાય છે. આમ, દરેક લાક્ષણિકતા એપ્લિકેશનમાં અમૂર્તતાના અસંખ્ય સ્તરો પરના લક્ષણોથી પ્રભાવિત થાય છે અને જો તે વ્યવસાયને અસર કરતા ગુણવત્તાના પરિણામોની મૂલ્યવાન આગાહી કરનાર બનવું હોય તો લાક્ષણિકતાના માપની ગણતરીનો સમાવેશ કરવો આવશ્યક છે. ઉપરની આકૃતિમાં દર્શાવવામાં આવેલા લાક્ષણિક પગલાંની ગણતરી કરવા માટેનો સ્તરબદ્ધ અભિગમ સૌપ્રથમ ટીઆરડબલ્યુ (બોહેમ, 1978) ખાતે બોહેમ અને તેમના સાથીદારો દ્વારા પ્રસ્તાવિત કરવામાં આવ્યો હતો અને તે આઇએસઓ 9126 અને 25000 શ્રેણીના ધોરણોમાં લેવામાં આવેલો અભિગમ છે. આ વિશેષતાઓને એપ્લિકેશન સ્રોત કોડના સ્થિર વિશ્લેષણના પદચ્છેદન પરિણામોમાંથી માપી શકાય છે. વિશ્વસનીયતા અને પ્રદર્શન કાર્યક્ષમતા જેવી એપ્લિકેશનોની ગતિશીલ લાક્ષણિકતાઓ પણ એપ્લિકેશનના સ્થિર માળખામાં તેમના કારણભૂત મૂળ ધરાવે છે. માળખાકીય ગુણવત્તા વિશ્લેષણ અને માપન સોર્સ કોડ, આર્કિટેક્ચર, સોફ્ટવેર ફ્રેમવર્ક, સિદ્ધાંતો અને ધોરણોના સંબંધમાં ડેટાબેઝ સ્કીમાના વિશ્લેષણ દ્વારા કરવામાં આવે છે જે એકસાથે સિસ્ટમના વૈચારિક અને તાર્કિક આર્કિટેક્ચરને વ્યાખ્યાયિત કરે છે. આ મૂળભૂત, સ્થાનિક, ઘટક-સ્તરના કોડ વિશ્લેષણથી અલગ છે જે સામાન્ય રીતે વિકાસ સાધનો દ્વારા કરવામાં આવે છે જે મોટે ભાગે અમલીકરણની વિચારણાઓ સાથે સંબંધિત હોય છે અને ડીબગિંગ અને પરીક્ષણ પ્રવૃત્તિઓ દરમિયાન નિર્ણાયક હોય છે. વિશ્વસનીયતા નબળી વિશ્વસનીયતાના મૂળ કારણો સારી સ્થાપત્ય અને કોડિંગ પ્રથાઓનું પાલન ન કરવાના સંયોજનમાં જોવા મળે છે. આ બિન-પાલનને એપ્લિકેશનના સ્થિર ગુણવત્તાના લક્ષણોને માપીને શોધી શકાય છે. એપ્લિકેશનની વિશ્વસનીયતામાં રહેલા સ્થિર લક્ષણોનું મૂલ્યાંકન વ્યવસાયના જોખમના સ્તર અને સંભવિત એપ્લિકેશન નિષ્ફળતાઓ અને ખામીઓની સંભાવનાનો અંદાજ પૂરો પાડે છે જે એપ્લિકેશનને કામગીરીમાં મૂકવામાં આવે ત્યારે અનુભવ થશે. વિશ્વસનીયતાનું મૂલ્યાંકન કરવા માટે ઓછામાં ઓછી નીચેની સોફ્ટવેર એન્જિનિયરિંગ શ્રેષ્ઠ પદ્ધતિઓ અને તકનીકી વિશેષતાઓની તપાસની જરૂર છેઃ એપ્લિકેશન આર્કિટેક્ચર પ્રેક્ટિસ કોડિંગ પ્રેક્ટિસ અલ્ગોરિધમ્સની જટિલતા પ્રોગ્રામિંગ પ્રેક્ટિસની જટિલતા ઓબ્જેક્ટ-ઓરિએન્ટેડ અને સ્ટ્રક્ચર્ડ પ્રોગ્રામિંગ સાથે પાલન શ્રેષ્ઠ પદ્ધતિઓ (જ્યારે લાગુ પડે ત્યારે) ઘટક અથવા પેટર્ન ફરીથી ઉપયોગ ગુણોત્તર ગંદા પ્રોગ્રામિંગ ભૂલ અને અપવાદ સંચાલન (તમામ સ્તરો માટે-GUI, તર્ક અને ડેટા) બહુ-સ્તર ડિઝાઇન પાલન સંસાધન મર્યાદા વ્યવસ્થાપન સોફ્ટવેર એવી પેટર્નને ટાળે છે જે અનપેક્ષિત વર્તણૂકો તરફ દોરી જશે સોફ્ટવેર ડેટા અખંડિતતા અને સુસંગતતા વ્યવહાર જટિલતાના સ્તરનું સંચાલન કરે છે એપ્લિકેશન આર્કિટેક્ચર અને ઉપયોગમાં લેવાતા તૃતીય-પક્ષ ઘટકો (જેમ કે બાહ્ય પુસ્તકાલયો અથવા માળખા) પર આધાર રાખીને, કસ્ટમ તપાસને શ્રેષ્ઠ પદ્ધતિઓની ઉપરોક્ત સૂચિ દ્વારા દોરવામાં આવેલી રેખાઓ સાથે વ્યાખ્યાયિત કરવી જોઈએ. કાર્યક્ષમતા વિશ્વસનીયતા સાથે, કામગીરીની બિનકાર્યક્ષમતાના કારણો ઘણીવાર સારી સ્થાપત્ય અને કોડિંગ પ્રથાના ઉલ્લંઘનમાં જોવા મળે છે જે એપ્લિકેશનના સ્થિર ગુણવત્તાના લક્ષણોને માપવા દ્વારા શોધી શકાય છે. આ સ્થિર લક્ષણો સંભવિત કાર્યકારી કામગીરીના અવરોધો અને ભવિષ્યની માપનીયતાની સમસ્યાઓની આગાહી કરે છે, ખાસ કરીને જટિલ અલ્ગોરિધમ્સ અથવા ડેટાના વિશાળ જથ્થાને સંભાળવા માટે ઉચ્ચ અમલીકરણ ઝડપની જરૂર હોય તેવી એપ્લિકેશનો માટે. કામગીરીની કાર્યક્ષમતાનું મૂલ્યાંકન કરવા માટે ઓછામાં ઓછી નીચેની સોફ્ટવેર એન્જિનિયરિંગ શ્રેષ્ઠ પદ્ધતિઓ અને તકનીકી વિશેષતાઓની તપાસ કરવી જરૂરી છેઃ એપ્લિકેશન આર્કિટેક્ચર પ્રથાઓ ખર્ચાળ અને/અથવા દૂરસ્થ સંસાધનો સાથે યોગ્ય ક્રિયાપ્રતિક્રિયાઓ ડેટા એક્સેસ પ્રદર્શન અને ડેટા મેનેજમેન્ટ મેમરી, નેટવર્ક અને ડિસ્ક સ્પેસ મેનેજમેન્ટ કોડિંગ પ્રથાઓનું પાલન (શ્રેષ્ઠ કોડિંગ પદ્ધતિઓ) સુરક્ષા સોફ્ટવેર ગુણવત્તામાં સોફ્ટવેર સુરક્ષાનો સમાવેશ થાય છે. ઘણી સુરક્ષા નબળાઈઓ નબળી કોડિંગ અને એસક્યુએલ ઈન્જેક્શન અથવા ક્રોસ-સાઇટ સ્ક્રિપ્ટીંગ જેવી સ્થાપત્ય પદ્ધતિઓનું પરિણામ છે. સીડબ્લ્યુઇ અને કાર્નેગી મેલોન યુનિવર્સિટી ખાતે એસઇઆઇ/કમ્પ્યુટર ઇમર્જન્સી સેન્ટર (સીઇઆરટી) દ્વારા જાળવવામાં આવેલી સૂચિમાં આ સારી રીતે દસ્તાવેજીકૃત છે. સુરક્ષાનું મૂલ્યાંકન કરવા માટે ઓછામાં ઓછા નીચેની સોફ્ટવેર એન્જિનિયરિંગ શ્રેષ્ઠ પદ્ધતિઓ અને તકનીકી વિશેષતાઓની તપાસ કરવી જરૂરી છેઃ અમલીકરણ, સુરક્ષા-જાગૃત અને સખત વિકાસ પ્રક્રિયાનું સંચાલન, દા. ત. સુરક્ષા વિકાસ જીવનચક્ર (માઈક્રોસોફ્ટ) અથવા આઇ. બી. એમ. નું સુરક્ષિત ઇજનેરી માળખું. સુરક્ષિત એપ્લિકેશન આર્કિટેક્ચર પ્રથાઓ બહુ-સ્તર ડિઝાઇન પાલન સુરક્ષા શ્રેષ્ઠ પદ્ધતિઓ (ઇનપુટ વેલિડેશન, એસક્યુએલ ઇન્જેક્શન, ક્રોસ-સાઇટ સ્ક્રિપ્ટીંગ, એક્સેસ કંટ્રોલ વગેરે) સુરક્ષિત અને સારી પ્રોગ્રામિંગ પ્રથાઓ ભૂલ અને અપવાદ વ્યવસ્થાપન જાળવણીક્ષમતા જાળવણીક્ષમતામાં મોડ્યુલરિટી, સમજણ, પરિવર્તનક્ષમતા, પરીક્ષણક્ષમતા, પુનઃઉપયોગિતા અને એક વિકાસ ટીમમાંથી બીજી ટીમમાં સ્થાનાંતરણક્ષમતાના ખ્યાલોનો સમાવેશ થાય છે. આ કોડ સ્તરે નિર્ણાયક મુદ્દાઓનું સ્વરૂપ લેતા નથી. તેના બદલે, નબળી જાળવણીક્ષમતા સામાન્ય રીતે દસ્તાવેજીકરણ, જટિલતા ટાળવાની વ્યૂહરચના અને મૂળભૂત પ્રોગ્રામિંગ પ્રથાઓમાં શ્રેષ્ઠ પ્રથાઓ સાથેના હજારો નાના ઉલ્લંઘનોનું પરિણામ છે જે સ્વચ્છ અને સરળતાથી વાંચી શકાય તેવા કોડ વિરુદ્ધ અસંગઠિત અને વાંચવામાં મુશ્કેલ કોડ વચ્ચે તફાવત બનાવે છે. જાળવણીક્ષમતાનું મૂલ્યાંકન કરવા માટે નીચેની સોફ્ટવેર એન્જિનિયરિંગ શ્રેષ્ઠ પદ્ધતિઓ અને તકનીકી વિશેષતાઓની તપાસ કરવી જરૂરી છેઃ એપ્લિકેશન આર્કિટેક્ચર પ્રેક્ટિસ આર્કિટેક્ચર, પ્રોગ્રામ અને કોડ દસ્તાવેજીકરણ સ્રોત કોડમાં જડિત કોડ વાંચનક્ષમતા કોડ વ્યવહારોની જટિલતાના સ્તરને ગંધ કરે છે અલ્ગોરિધમ્સની જટિલતા પ્રોગ્રામિંગ પ્રથાઓની જટિલતા ઑબ્જેક્ટ-ઓરિએન્ટેડ અને સ્ટ્રક્ચર્ડ પ્રોગ્રામિંગ સાથે પાલન શ્રેષ્ઠ પદ્ધતિઓ (જ્યારે લાગુ પડે ત્યારે) ઘટક અથવા પેટર્ન ફરીથી ઉપયોગ ગુણોત્તર ગતિશીલ કોડિંગ કપલિંગ ગુણોત્તરનું નિયંત્રિત સ્તર ડર્ટી પ્રોગ્રામિંગ દસ્તાવેજીકરણ હાર્ડવેર, ઓએસ, મિડલવેર, સોફ્ટવેર ઘટકો અને ડેટાબેઝ સ્વતંત્રતા બહુ-સ્તર ડિઝાઇન પાલન પોર્ટેબિલિટી પ્રોગ્રામિંગ પ્રથાઓ (કોડ સ્તર) સ્રોત કોડ ફાઇલ સંસ્થા સ્વચ્છતા જાળવણી ઓછી ડુપ્લિકેટ કોડ અને કાર્યો સ્રોત કોડ ફાઇલ સંસ્થા જાળવણીક્ષમતા એ વોર્ડ કનિંગહામની તકનીકી ઋણની વિભાવના સાથે નજીકથી સંબંધિત છે, જે એક છે. જાળવણીક્ષમતા ઓછી હોવાના કારણોને અવિચારી વિરુદ્ધ સમજદાર અને ઇરાદાપૂર્વક વિરુદ્ધ અજાણતા તરીકે વર્ગીકૃત કરી શકાય છે, અને ઘણીવાર વિકાસકર્તાઓની અસમર્થતા, સમય અને ધ્યેયોનો અભાવ, તેમની બેદરકારી અને નિર્માણ ખર્ચમાં વિસંગતતાઓ અને દસ્તાવેજીકરણના લાભો અને, ખાસ કરીને, જાળવણીપાત્ર સ્રોત કોડમાં તેનું મૂળ હોય છે. કદ માપન સોફ્ટવેર કદ માટે જરૂરી છે કે સમગ્ર સ્રોત કોડ યોગ્ય રીતે એકત્રિત કરવામાં આવે, જેમાં ડેટાબેઝ સ્ટ્રક્ચર સ્ક્રિપ્ટ્સ, ડેટા મેનિપ્યુલેશન સ્રોત કોડ, ઘટક હેડર, રૂપરેખાંકન ફાઇલો વગેરેનો સમાવેશ થાય છે. માપવા માટે આવશ્યકપણે બે પ્રકારના સોફ્ટવેર કદ છે, તકનીકી કદ (પદચિહ્ન) અને કાર્યાત્મક કદઃ ઘણી સોફ્ટવેર તકનીકી કદ પદ્ધતિઓ છે જેનું વ્યાપક વર્ણન કરવામાં આવ્યું છે. સૌથી સામાન્ય તકનીકી કદ નિર્ધારણ પદ્ધતિ એ ટેકનોલોજી દીઠ કોડની રેખાઓની સંખ્યા (#LOC), ફાઇલોની સંખ્યા, કાર્યો, વર્ગો, કોષ્ટકો વગેરે છે, જેમાંથી બેકફાયરિંગ કાર્ય બિંદુઓની ગણતરી કરી શકાય છે; કાર્યાત્મક કદને માપવા માટે સૌથી સામાન્ય કાર્ય બિંદુ વિશ્લેષણ છે. કાર્ય બિંદુ વિશ્લેષણ વપરાશકર્તાના દ્રષ્ટિકોણથી વિતરિત કરી શકાય તેવા સોફ્ટવેરના કદને માપે છે. ફંક્શન પોઇન્ટ સાઇઝિંગ વપરાશકર્તાની જરૂરિયાતોને આધારે કરવામાં આવે છે અને વિકાસકર્તા/અંદાજકર્તા અને મૂલ્ય (વિતરિત કરવાની કાર્યક્ષમતા) બંને માટે કદની સચોટ રજૂઆત પ્રદાન કરે છે અને ગ્રાહકને વિતરિત કરવામાં આવતી વ્યવસાયિક કાર્યક્ષમતાને પ્રતિબિંબિત કરે છે. આ પદ્ધતિમાં વપરાશકર્તાને ઓળખી શકાય તેવા ઇનપુટ્સ, આઉટપુટ અને ડેટા સ્ટોર્સની ઓળખ અને વજનનો સમાવેશ થાય છે. કદ મૂલ્ય પછી સોફ્ટવેર વિતરણ અને કામગીરી (કાર્ય બિંદુ દીઠ વિકાસ ખર્ચ; કાર્ય બિંદુ દીઠ વિતરિત ખામીઓ; કર્મચારી મહિના દીઠ કાર્ય બિંદુઓ) નું પ્રમાણ અને મૂલ્યાંકન કરવા માટે અસંખ્ય પગલાં સાથે જોડાણમાં ઉપયોગ માટે ઉપલબ્ધ છે. ફંક્શન પોઇન્ટ એનાલિસિસ સાઇઝિંગ સ્ટાન્ડર્ડ ઇન્ટરનેશનલ ફંક્શન પોઇન્ટ યુઝર્સ ગ્રૂપ (IFPUG) દ્વારા સમર્થિત છે. તે સોફ્ટવેર વિકાસ જીવન-ચક્રની શરૂઆતમાં લાગુ કરી શકાય છે અને તે કંઈક અંશે અચોક્કસ બેકફાયરિંગ પદ્ધતિ જેવા કોડની રેખાઓ પર આધારિત નથી. આ પદ્ધતિ તકનીકી અજ્ઞેયવાદી છે અને તેનો ઉપયોગ સંસ્થાઓ અને તમામ ઉદ્યોગોમાં તુલનાત્મક વિશ્લેષણ માટે થઈ શકે છે. ફંક્શન પોઇન્ટ એનાલિસિસની શરૂઆત થઈ ત્યારથી, ઘણી વિવિધતાઓ વિકસિત થઈ છે અને ફંક્શનલ સાઇઝિંગ તકનીકોના કુટુંબમાં કોસ્મિક, એનઇએસએમએ, યુઝ કેસ પોઇંટ્સ, એફપી લાઇટ, અર્લી અને ક્વિક એફપી અને તાજેતરમાં સ્ટોરી પોઇંટ્સ જેવા કદના પગલાંનો સમાવેશ કરવામાં આવ્યો છે. જો કે, ફંક્શન પોઇંટ્સ આંકડાકીય ચોકસાઈનો ઇતિહાસ ધરાવે છે, અને તેનો ઉપયોગ અસંખ્ય એપ્લિકેશન ડેવલપમેન્ટ મેનેજમેન્ટ (એ. ડી. એમ.) અથવા આઉટસોર્સિંગ જોડાણોમાં કાર્ય માપનના સામાન્ય એકમ તરીકે થાય છે, જે "ચલણ" તરીકે સેવા આપે છે જેના દ્વારા સેવાઓ પહોંચાડવામાં આવે છે અને કામગીરી માપવામાં આવે છે. ફંક્શન પોઇન્ટ પદ્ધતિની એક સામાન્ય મર્યાદા એ છે કે તે એક મેન્યુઅલ પ્રક્રિયા છે અને તેથી તે એપ્લિકેશન ડેવલપમેન્ટ અથવા આઉટસોર્સિંગ જોડાણ જેવી મોટા પાયે પહેલમાં શ્રમ-સઘન અને ખર્ચાળ હોઈ શકે છે. કાર્યપદ્ધતિ લાગુ કરવાના આ નકારાત્મક પાસાએ ઉદ્યોગના આઇટી અગ્રણીઓને આઇટી સોફ્ટવેર ગુણવત્તા માટે કન્સોર્ટિયમ રચવા માટે પ્રેરિત કર્યા હોઈ શકે છે, જે સોફ્ટવેર કદના માપનને સ્વચાલિત કરવા માટે ગણતરીપાત્ર મેટ્રિક્સ ધોરણ રજૂ કરવા પર કેન્દ્રિત છે, જ્યારે આઇએફપીયુજી મેન્યુઅલ અભિગમને પ્રોત્સાહન આપવાનું ચાલુ રાખે છે કારણ કે તેની મોટાભાગની પ્રવૃત્તિ એફપી કાઉન્ટર્સ પ્રમાણપત્રો પર આધાર રાખે છે. CISQ કદને ખર્ચ અંદાજ, પ્રગતિ ટ્રેકિંગ અથવા અન્ય સંબંધિત સોફ્ટવેર પ્રોજેક્ટ મેનેજમેન્ટ પ્રવૃત્તિઓને ટેકો આપવા માટે સોફ્ટવેરના કદના અંદાજ તરીકે વ્યાખ્યાયિત કરે છે. બે ધોરણોનો ઉપયોગ થાય છેઃ સોફ્ટવેરના કાર્યાત્મક કદને માપવા માટે ઓટોમેટેડ ફંક્શન પોઇંટ્સ અને એક માપમાં કાર્યાત્મક અને બિન-કાર્યાત્મક બંને કોડના કદને માપવા માટે ઓટોમેટેડ એન્હાન્સમેન્ટ પોઇંટ્સ. જટિલ પ્રોગ્રામિંગ ભૂલોને ઓળખવી જટિલ પ્રોગ્રામિંગ ભૂલો એ ચોક્કસ સ્થાપત્ય અને/અથવા કોડિંગ ખરાબ પદ્ધતિઓ છે જે ઉચ્ચતમ, તાત્કાલિક અથવા લાંબા ગાળાના, વ્યવસાયમાં વિક્ષેપના જોખમમાં પરિણમે છે. આ ઘણી વાર ટેકનોલોજી-સંબંધિત હોય છે અને સંદર્ભ, વ્યવસાયિક ઉદ્દેશો અને જોખમો પર ભારે આધાર રાખે છે. કેટલાક લોકો સંમેલનોના નામકરણ માટે આદરને ધ્યાનમાં લઈ શકે છે જ્યારે અન્ય-ઉદાહરણ તરીકે જ્ઞાન હસ્તાંતરણ માટે જમીન તૈયાર કરનારા-તેને એકદમ નિર્ણાયક ગણશે. જટિલ પ્રોગ્રામિંગ ભૂલોને CISQ લાક્ષણિકતાઓ અનુસાર પણ વર્ગીકૃત કરી શકાય છે. નીચે મૂળભૂત ઉદાહરણ છેઃ વિશ્વસનીયતા સોફ્ટવેર પેટર્ન ટાળો જે અણધારી વર્તણૂક તરફ દોરી જશે (પ્રારંભિક ચલ, નલ પોઇન્ટર, વગેરે) દાખલ કરો, અપડેટ કરો, કાઢી નાખો, કોષ્ટક બનાવો અથવા પસંદ કરો તે પદ્ધતિઓ, પ્રક્રિયાઓ અને કાર્યોમાં ભૂલ વ્યવસ્થાપનનો સમાવેશ થવો જોઈએ મલ્ટી-થ્રેડ કાર્યોને થ્રેડ સુરક્ષિત બનાવવું જોઈએ, દાખલા તરીકે સર્વલેટ્સ અથવા સ્ટ્રટ્સ ક્રિયા વર્ગોમાં ઉદાહરણ/બિન-અંતિમ સ્થિર ક્ષેત્રો ન હોવા જોઈએ કાર્યક્ષમતા નેટવર્ક ટ્રાફિકને ઘટાડવા માટે ક્લાયન્ટ વિનંતીઓ (ઇનકમિંગ અને ડેટા) નું કેન્દ્રીકરણ સુનિશ્ચિત કરો લૂપમાં મોટા કોષ્ટકો સામે અનુક્રમણિકાનો ઉપયોગ ન કરતા એસક્યુએલ ક્વેરીઓ ટાળો સુરક્ષા સર્વલેટ વર્ગોમાં ક્ષેત્રો ટાળો જે અંતિમ સ્થિર નથી ભૂલ વ્યવસ્થાપનને શામેલ કર્યા વિના ડેટા ઍક્સેસ ટાળો નિયંત્રણ રીટર્ન કોડ્સ અને ભૂલ સંભાળવાની પદ્ધતિઓ અમલમાં મૂકો ક્રોસ-સાઇટ સ્ક્રિપ્ટીંગ ભૂલો અથવા એસક્યુએલ ઇન્જેક્શન ભૂલોને ટાળવા માટે ઇનપુટ માન્યતા સુનિશ્ચિત કરો જાળવણી જાળવણી જાળવણી ઊંડા વારસો વૃક્ષો અને માળાને ટાળવા જોઈએ. ગુણવત્તાના લક્ષણોને તોડીને અથવા વધારાના સ્તરોને વ્યાખ્યાયિત કરીને, જટિલ, અમૂર્ત ગુણવત્તાના લક્ષણો (જેમ કે વિશ્વસનીયતા અથવા જાળવણીક્ષમતા) વધુ વ્યવસ્થિત અને માપી શકાય તેવા બની જાય છે. તે ગુણવત્તાના નમૂનાઓ ઔદ્યોગિક સંદર્ભોમાં લાગુ કરવામાં આવ્યા છે પરંતુ તેને વ્યાપક રીતે અપનાવવામાં આવ્યા નથી. ટ્રીવીયા "એક વિજ્ઞાન તેના માપન સાધનો જેટલું જ પરિપક્વ છે". "જ્યારે હું તેને જોઉં છું ત્યારે હું તેને જાણું છું. "તમે જેને માપી શકતા નથી તેને તમે નિયંત્રિત કરી શકતા નથી". (ટોમ ડેમાર્કો) "તમે ઉત્પાદનની ગુણવત્તાનું નિરીક્ષણ કરી શકતા નથી". (ડબલ્યુ. એડવર્ડ્સ ડેમિંગ) "નબળી ગુણવત્તાની કડવાશ સમયપત્રકને મળવાની મીઠાશને ભૂલી ગયા પછી લાંબા સમય સુધી રહે છે". (અનામિક) "જો તમે વિશિષ્ટતા સાથે શરૂઆત ન કરો, તો તમે લખો છો તે કોડનો દરેક ભાગ પેચ છે". (લેસ્લી લેમ્પોર્ટ) સોફ્ટવેર બગ એક્સેસિબિલિટી અવેલેબિલિટી પણ જુઓ શ્રેષ્ઠ કોડિંગ પદ્ધતિઓ સંકલન અને જોડાણ ચક્રીય જટિલતા કોડિંગ સંમેલનો કમ્પ્યુટર બગ નિર્ભરતા GQM ISO/IEC 9126 સોફ્ટવેર પ્રક્રિયા સુધારણા અને ક્ષમતા નિર્ધારણ-ISO/IEC 15504 પ્રોગ્રામિંગ શૈલી ગુણવત્તાઃ ગુણવત્તા નિયંત્રણ, કુલ ગુણવત્તા વ્યવસ્થાપન. જરૂરિયાતો વ્યવસ્થાપન અવકાશ (પ્રોજેક્ટ મેનેજમેન્ટ) સુરક્ષા સુરક્ષા ઇજનેરી સોફ્ટવેર ગુણવત્તા ખાતરી સોફ્ટવેર આર્કિટેક્ચર સોફ્ટવેર ગુણવત્તા નિયંત્રણ સોફ્ટવેર મેટ્રિક્સ સોફ્ટવેર પુનઃઉપયોગિતા પ્રમાણભૂત સોફ્ટવેર પરીક્ષણ પરીક્ષણ યોગ્યતા સ્થિર કાર્યક્રમ વિશ્લેષણ UI, સુરક્ષા વગેરે માટે ચેકલિસ્ટ સહિત એન્ડ્રોઇડ OS ગુણવત્તા માર્ગદર્શિકાઓનું વધુ વાંચન. જુલાઈ 2021 એસોસિએશન ઑફ મેરીટાઇમ મેનેજર્સ ઇન ઇન્ફર્મેશન ટેક્નોલોજી એન્ડ કોમ્યુનિકેશન્સ (AMMITEC). દરિયાઈ સોફ્ટવેર ગુણવત્તા માર્ગદર્શિકા. સપ્ટેમ્બર 2017 કેપર્સ જોન્સ અને ઓલિવર બોન્સિગ્નોર, "ધ ઇકોનોમિક્સ ઓફ સોફ્ટવેર ક્વોલિટી", એડિસન-વેસ્લી પ્રોફેશનલ, પ્રથમ આવૃત્તિ, ડિસેમ્બર 31,2011, કેટ લેબ-સી. એન. ઇ. એસ. કોડ એનાલિસિસ ટૂલ્સ લેબોરેટરી (ગિટહબ પર) ગિરીશ સૂર્યનારાયણ, સોફ્ટવેર પ્રોસેસ વિરુદ્ધ ડિઝાઇન ક્વોલિટીઃ ટગ ઓફ વોર? હો-વોન જંગ, સેઉંગ-ગ્વેન કિમ અને ચાંગ-સિન ચુંગ. સોફ્ટવેર ઉત્પાદનની ગુણવત્તાને માપવીઃ ISO/IEC 9126 નું સર્વેક્ષણ. IEEE સોફ્ટવેર, 21 (5): 10-13, સપ્ટેમ્બર/ઓક્ટોબર 2004. ઇન્ટરનેશનલ ઓર્ગેનાઇઝેશન ફોર સ્ટાન્ડર્ડાઇઝેશન. સોફ્ટવેર એન્જિનિયરિંગ-ઉત્પાદનની ગુણવત્તા-ભાગ 1: ગુણવત્તા મોડેલ. આઇએસઓ, જીનીવા, સ્વિટ્ઝર્લૅન્ડ, 2001. ISO/IEC 9126-1:2001 (E). સોફ્ટવેર પ્રોડક્ટ ક્વોલિટીને માપવીઃ ISO 25000 સિરીઝ અને CMMI (SEI સાઇટ) MSQF-એક માપન આધારિત સોફ્ટવેર ક્વોલિટી ફ્રેમવર્ક કોર્નેલ યુનિવર્સિટી લાઇબ્રેરી ઓમર અલશાથ્રી, હેલ્જ જેનિક, "ઓપ્ટિમાઇઝિંગ સોફ્ટવેર ક્વોલિટી એસ્યોરન્સ", કોમ્પ્સેક્યુ, પીપી. 87-92,2010 IEEE 34 મી વાર્ષિક કમ્પ્યુટર સોફ્ટવેર અને એપ્લિકેશન્સ કોન્ફરન્સ વર્કશોપ, 2010. રોબર્ટ એલ. ગ્લાસ. ગુણવત્તાયુક્ત સોફ્ટવેરનું નિર્માણ. પ્રેન્ટિસ હોલ, અપર સેડલ રિવર, એનજે, 1992. રોલેન્ડ પેટ્રાશ, "સોફ્ટવેર ક્વોલિટીની વ્યાખ્યાઃ એક વ્યવહારુ અભિગમ", ISSRE, 1999 સોફ્ટવેર ક્વોલિટી પ્રોફેશનલ, અમેરિકન સોસાયટી ફોર ક્વોલિટી (ASQ) સ્પ્રિંગર નેચર સ્ટીફન એચ. કાન દ્વારા સોફ્ટવેર ક્વોલિટી જર્નલ. મેટ્રિક્સ એન્ડ મોડલ્સ ઇન સોફ્ટવેર ક્વોલિટી એન્જિનિયરિંગ. એડિસન-વેસ્લી, બોસ્ટન, એમએ, બીજી આવૃત્તિ, 2002. સ્ટેફન વેગનર. સોફ્ટવેર ઉત્પાદન ગુણવત્તા નિયંત્રણ. સ્પ્રિંગર, 2013. સંદર્ભો ગ્રંથસૂચિ નોંધો બાહ્ય કડીઓ જ્યારે કોડ રાજા છેઃ ઓટોમોટિવ સોફ્ટવેર શ્રેષ્ઠતામાં નિપુણતા (મેકકિન્સે, 2021) એમ્બેડેડ સિસ્ટમ સોફ્ટવેર ગુણવત્તાઃ તે ઘણીવાર ભયંકર કેમ હોય છે? આપણે તેના વિષે શું કરી શકીએ? (ફિલિપ કૂપમેન દ્વારા) CISQ TM દ્વારા કોડ ગુણવત્તા ધોરણો CISQ બ્લોગઃ https://blog.it-cisq.org સોફ્ટવેર ગુણવત્તા ખાતરી માટે માર્ગદર્શિકા (ESA) નાના સોફ્ટવેર પ્રોજેક્ટ્સમાં ESA સોફ્ટવેર ઇજનેરી ધોરણો લાગુ કરવા માટે માર્ગદર્શિકા (ESA) ESA સોફ્ટવેર ઉત્પાદન ખાતરી સેવાઓ (NASA/ESA) નું વિહંગાવલોકન ફોક્સવેગન સોફ્ટવેર દેવ કેન્દ્ર લિસ્બનમાં ગુણવત્તા પ્રત્યેનો અમારો અભિગમ ગૂગલ પર ઉત્પાદનની ગુણવત્તાની ખાતરી કરવા માટે ગૂગલ શૈલી માર્ગદર્શિકાઓ (2011) NASA સોફ્ટવેર ખાતરી NIST સોફ્ટવેર ગુણવત્તા જૂથ OMG/CISQ સ્વચાલિત કાર્ય બિંદુઓ (ISO/IEC 19515) OMG સ્વચાલિત તકનીકી દેવું માનક સ્વચાલિત ગુણવત્તા ખાતરી (હેરી સ્નીડ દ્વારા IREB માં સ્પષ્ટ) સંરચિત પરીક્ષણઃ ચક્રીય જટિલતા મેટનો ઉપયોગ કરીને એક પરીક્ષણ પદ્ધતિ