सॉफ्टवेयर निर्माण और गुणवत्ता
सॉफ्टवेयर निर्माण और गुणवत्ता में कार्यशील कोड का अनुशासित निर्माण और वे तकनीकें शामिल हैं — परीक्षण, सत्यापन, समीक्षा और माप — जो यह स्थापित और सुनिश्चित करती हैं कि सॉफ्टवेयर अपनी आवश्यकताओं और गुणवत्ता लक्ष्यों को पूरा करता है।
Definition
सॉफ्टवेयर निर्माण कोडिंग, सत्यापन, यूनिट परीक्षण और डीबगिंग के माध्यम से कार्यशील सॉफ्टवेयर का विस्तृत निर्माण है, और सॉफ्टवेयर गुणवत्ता वह डिग्री है जिस तक सॉफ्टवेयर अपनी बताई गई और निहित आवश्यकताओं को पूरा करता है, जिसे सत्यापन, प्रमाणीकरण और गुणवत्ता-प्रबंधन गतिविधियों द्वारा सुनिश्चित किया जाता है।
Scope
यह क्षेत्र सॉफ्टवेयर निर्माण प्रथाओं को शामिल करता है, जिसमें कोडिंग मानक, रक्षात्मक प्रोग्रामिंग और यूनिट परीक्षण शामिल हैं; सॉफ्टवेयर परीक्षण के स्तर और तकनीकें; सत्यापन और प्रमाणीकरण; स्थिर और गतिशील विश्लेषण; कोड समीक्षा और रीफैक्टरिंग; सॉफ्टवेयर गुणवत्ता विशेषताएँ और मेट्रिक्स; और शुद्धता सिद्ध करने के लिए औपचारिक तरीके। यह विश्वसनीय सॉफ्टवेयर का उत्पादन और आश्वासन देने वाली गतिविधियों को एकीकृत करता है।
Sub-topics
Core questions
- कौन सी प्रथाएँ ऐसा कोड उत्पन्न करती हैं जो सही, पठनीय और रखरखाव योग्य हो?
- परीक्षण, समीक्षा और विश्लेषण के माध्यम से दोषों का पता कैसे लगाया जाता है?
- सॉफ्टवेयर गुणवत्ता को कैसे परिभाषित, मापा और सुनिश्चित किया जाता है?
- शुद्धता को केवल परीक्षण के बजाय औपचारिक प्रमाण द्वारा कब स्थापित किया जा सकता है?
Key theories
- परीक्षण दोषों की उपस्थिति को प्रकट करता है, अनुपस्थिति को नहीं
- परीक्षण यह प्रदर्शित कर सकता है कि दोष मौजूद हैं लेकिन उनकी अनुपस्थिति को सिद्ध नहीं कर सकता है; प्रभावी परीक्षण इसलिए संपूर्ण निष्पादन के बजाय व्यवस्थित केस चयन के माध्यम से दोषों को खोजने की संभावना को अधिकतम करने का लक्ष्य रखता है।
- सत्यापन और प्रमाणीकरण
- सत्यापन यह जाँचता है कि सॉफ्टवेयर विनिर्देश के संबंध में सही ढंग से बनाया गया है, जबकि प्रमाणीकरण यह जाँचता है कि उपयोगकर्ता की आवश्यकताओं को पूरा करने के लिए सही सॉफ्टवेयर बनाया गया था; साथ में वे जीवनचक्र में समीक्षाओं, विश्लेषण और परीक्षण को शामिल करते हैं।
- गुणवत्ता अंतर्निहित होती है, परीक्षण द्वारा नहीं आती
- गुणवत्ता निर्माण प्रथाओं, डिजाइन और प्रक्रिया अनुशासन से उत्पन्न होती है, न कि अंत में निरीक्षण से; दोष-निवारण और प्रारंभिक पहचान देर से सुधार की तुलना में कहीं अधिक सस्ती होती है।
Clinical relevance
निर्माण और गुणवत्ता गतिविधियाँ किसी सिस्टम की विश्वसनीयता, सुरक्षा और रखरखाव क्षमता को निर्धारित करती हैं और दोषों की लागत पर हावी होती हैं; प्रारंभिक और व्यवस्थित सत्यापन क्षेत्र की विफलताओं और पुनर्कार्य को कम करता है, जो विश्वसनीय सॉफ्टवेयर प्रदान करने के लिए केंद्रीय है।
Evidence & guidelines
ISO/IEC 25010 एक सॉफ्टवेयर उत्पाद गुणवत्ता मॉडल को परिभाषित करता है, और सॉफ्टवेयर निर्माण, परीक्षण और गुणवत्ता पर SWEBOK ज्ञान क्षेत्र आम सहमति संदर्भ मार्गदर्शन प्रदान करते हैं।
History
व्यवस्थित परीक्षण को 1970 के दशक में मायर्स द्वारा, संरचित प्रोग्रामिंग और सत्यापन को उसी युग में डिज्क्स्ट्रा और होरे द्वारा, और निर्माण शिल्प कौशल को 1990 के दशक में मैककोनेल द्वारा स्पष्ट किया गया था; ISO/IEC 25010 जैसे गुणवत्ता मॉडल और मानकों ने गुणवत्ता विशेषताओं और माप को समेकित किया।
Debates
- परीक्षण बनाम औपचारिक सत्यापन
- शुद्धता में विश्वास व्यापक परीक्षण पर आधारित होना चाहिए या औपचारिक प्रमाण पर, इस पर बहस होती है; परीक्षण बड़े सिस्टम तक फैलता है लेकिन शुद्धता की गारंटी नहीं दे सकता है, जबकि औपचारिक तरीके उच्च लागत पर मजबूत गारंटी देते हैं और महत्वपूर्ण घटकों के लिए आरक्षित होते हैं।
Key figures
- Glenford Myers
- Steve McConnell
- C. A. R. Hoare
- Edsger Dijkstra
Related topics
Seminal works
- myers2011
- mcconnell2004
- swebok2014
Frequently asked questions
- क्या परीक्षण यह सिद्ध कर सकता है कि कोई प्रोग्राम सही है?
- नहीं। परीक्षण इनपुट के एक सीमित सेट का अभ्यास करता है और दोषों को प्रकट कर सकता है लेकिन उनकी अनुपस्थिति को प्रदर्शित नहीं कर सकता है; सभी इनपुट के लिए शुद्धता सिद्ध करने के लिए औपचारिक सत्यापन की आवश्यकता होती है, जो केवल सिस्टम के प्रतिबंधित या महत्वपूर्ण भागों के लिए ही संभव है।
- क्या गुणवत्ता बग की अनुपस्थिति के समान है?
- नहीं। सॉफ्टवेयर गुणवत्ता बहुआयामी है, जिसमें कार्यात्मक शुद्धता के साथ-साथ विश्वसनीयता, प्रदर्शन, सुरक्षा, उपयोगिता और रखरखाव क्षमता जैसी विशेषताएँ शामिल हैं; कम बग वाला प्रोग्राम भी खराब गुणवत्ता का हो सकता है यदि वह रखरखाव योग्य न हो या असुरक्षित हो।