सॉफ़्टवेयर अभिकल्प व सॉफ़्टवेयर गुणवत्ता
अमूर्तन, मॉड्यूलरता, संसक्ति व युग्मन
मॉड्यूलरता तंत्र को पृथक, स्वतंत्र रूप से विकसित करने योग्य मॉड्यूलों में विघटित करती है; सूचना-आच्छादन किसी मॉड्यूल के आंतरिक अभिकल्प-निर्णयों को अन्य मॉड्यूलों को दृश्य होने (या उन पर निर्भर होने) से रोकती है, केवल सुपरिभाषित अंतरापृष्ठ उजागर करते हुए। संसक्ति मापती है कि एक मॉड्यूल के भीतर उत्तरदायित्व कितने प्रबल रूप से संबंधित हैं (उच्च संसक्ति — एक सुपरिभाषित काम करता मॉड्यूल — लक्ष्य है); युग्मन मापता है कि एक मॉड्यूल दूसरे पर कितना प्रबल रूप से निर्भर करता है (निम्न युग्मन — जो मॉड्यूल बड़े पैमाने पर पृथक रूप से समझे, बदले व परखे जा सकें — लक्ष्य है)। दोनों संबद्ध पर पृथक हैं: सुअभिकल्पित तंत्र उच्च संसक्ति व निम्न युग्मन साथ चाहता है, और उन मॉड्यूलों के भीतर उच्च संसक्ति होना संभव (व बुरा) है जो फिर भी एक-दूसरे से कसकर युग्मित हों, या व्यक्तिगत रूप से असंसक्त गड़बड़ी वाले मॉड्यूलों के बीच निम्न युग्मन।
- इस उप-प्रकरण में नामित चार अभिकल्प-क्रियाकलाप — वस्तु-उन्मुख, आँकड़ा, वास्तुकलात्मक व उपयोगकर्ता-अंतरापृष्ठ अभिकल्प — प्रत्येक भिन्न चिंता संबोधित करता है: OO अभिकल्प क्लास/वस्तुएँ व उनके संबंध तय करता है, आँकड़ा अभिकल्प तय करता है कि सूचना कैसे संरचित व संचित है, वास्तुकलात्मक अभिकल्प समग्र संरचना व प्रमुख घटक/उनके संबंध तय करता है, व उपयोगकर्ता-अंतरापृष्ठ अभिकल्प तय करता है कि मानव वस्तुतः तंत्र से कैसे अंतःक्रिया करता है।
सॉफ़्टवेयर गुणवत्ता कारक: मैककॉल व ISO 9126
| ढाँचा | संरचना |
|---|---|
| मैककॉल के गुणवत्ता-कारक | कारकों को तीन परिप्रेक्ष्यों में समूहित करता है — उत्पाद प्रचालन (शुद्धता, विश्वसनीयता, दक्षता, अखंडता, प्रयोज्यता), उत्पाद संशोधन (रखरखाव-योग्यता, लचीलापन, परीक्षणीयता) व उत्पाद संक्रमण (पोर्टेबिलिटी, पुनर्प्रयोज्यता, अंतर-प्रचालनीयता) — पुराना पर ऐतिहासिक रूप से आधारभूत वर्गीकरण। |
| ISO 9126 | छह शीर्ष-स्तरीय विशेषताएँ नामित करता अंतरराष्ट्रीय मानक — प्रकार्यात्मकता, विश्वसनीयता, प्रयोज्यता, दक्षता, रखरखाव-योग्यता, पोर्टेबिलिटी — प्रत्येक उप-विशेषताओं में टूटा, सॉफ़्टवेयर गुणवत्ता हेतु मानकीकृत (एक विक्रेता के अपने के बजाय) शब्दावली प्रदान करते हुए। |
सॉफ़्टवेयर विश्वसनीयता
सॉफ़्टवेयर विश्वसनीयता निर्दिष्ट शर्तों के अंतर्गत निर्दिष्ट अवधि हेतु विफलता-रहित प्रचालन की प्रायिकता है — MTBF (विफलताओं के बीच औसत समय) व विफलता-दर/तीव्रता जैसे मापकों से मापी गई, व वृद्धि-प्रतिरूपों से प्रतिरूपित जो भविष्यवाणी करते हैं कि परीक्षण दोष खोजते व हटाते जारी रहने पर विश्वसनीयता कैसे सुधरती है।
सॉफ़्टवेयर आकार-निर्धारण, आकलन व COCOMO
सॉफ़्टवेयर आकार-निर्धारण पहले से कार्य की मात्रा आकलित करता है: LOC-आधारित आकलन कोड-पंक्तियाँ गिनता (या भविष्यवाणी करता) है, सरल पर भाषा व कोडिंग-शैली के प्रति संवेदनशील; फलन-बिंदु (FP) आधारित आकलन इसके बजाय उपयोगकर्ता-दृश्य प्रकार्यात्मक तत्व (निवेश, निर्गम, पूछताछ, आंतरिक/बाह्य फ़ाइलें) जटिलता से भारित गिनता है, भाषा-स्वतंत्र आकार-माप देते हुए जो प्रक्रिया में पहले उपलब्ध है (फलन-बिंदु अपेक्षाओं से गिने जा सकते हैं, कोड की एक पंक्ति लिखे जाने से पहले)।
मुख्य बिंदु
- मॉड्यूलों के भीतर उच्च संसक्ति व उनके बीच निम्न युग्मन साझा लक्ष्य है — एक के बिना दूसरा फिर भी बुरा अभिकल्प है।
- मैककॉल के कारक प्रचालन/संशोधन/संक्रमण के अंतर्गत समूहित हैं; ISO 9126 छह अंतरराष्ट्रीय-मानक विशेषताएँ नामित करता है।
- गुणवत्ता आश्वासन प्रक्रिया-केंद्रित व निवारक है; गुणवत्ता नियंत्रण उत्पाद-केंद्रित व संसूचक है — भिन्न क्रियाकलाप, पर्यायवाची नहीं।
- फलन-बिंदु भाषा-स्वतंत्र हैं व केवल अपेक्षाओं से गिनने योग्य, LOC-आधारित आकार-निर्धारण के विपरीत।
- COCOMO के आर्गेनिक/सेमी-डिटैच्ड/एम्बेडेड मोड प्रोजेक्ट-आकार व प्रतिबंध-कसावट से प्रयास मापते हैं, एम्बेडेड प्रोजेक्टों का प्रयास आकार के साथ सबसे तेज़ बढ़ते हुए।
अभ्यास प्रश्न (8)
उत्तर खोलने से पहले प्रत्येक प्रश्न हल करें। हर व्याख्या सही विकल्प के साथ लुभावना गलत विकल्प भी बताती है, क्योंकि अंक वहीं जाते हैं।
सुअभिकल्पित मॉड्यूल वह है जिसमें है:
उत्तर देखें
उत्तर: A — इसके भीतर उच्च संसक्ति व अन्य मॉड्यूलों से निम्न युग्मन
उच्च आंतरिक संसक्ति (एक सुपरिभाषित काम करता मॉड्यूल) व निम्न बाह्य युग्मन (अन्य मॉड्यूलों पर न्यूनतम निर्भरता) सुअभिकल्पित मॉड्यूलरता के साझा लक्ष्य के रूप में साथ अनुसरित किए जाते हैं।मैककॉल के गुणवत्ता-कारकों में, रखरखाव-योग्यता, लचीलापन व परीक्षणीयता समूहित हैं:
उत्तर देखें
उत्तर: A — उत्पाद संशोधन
उत्पाद संशोधन उन कारकों को समूहित करता है जो परिदान के बाद सॉफ़्टवेयर बदलने से संबंधित हैं — रखरखाव-योग्यता, लचीलापन व परीक्षणीयता — उत्पाद प्रचालन (जैसा है वैसा प्रयोग) व उत्पाद संक्रमण (नए परिवेश में ले जाना) से भिन्न।गुणवत्ता नियंत्रण से भिन्न, गुणवत्ता आश्वासन का सर्वोत्तम वर्णन है:
उत्तर देखें
उत्तर: A — प्रक्रिया-केंद्रित व बड़े पैमाने पर निवारक
गुणवत्ता आश्वासन दोषों को होने से पहले रोकने हेतु प्रक्रिया को लक्षित करता है; विशिष्ट परिदेय की उत्पाद-केंद्रित, संसूचक जाँच (समीक्षा, परीक्षण) इसके बजाय गुणवत्ता नियंत्रण का काम है।LOC-आधारित आकार-निर्धारण की तुलना में, फलन-बिंदु (FP) आधारित आकार-निर्धारण का यह लाभ है कि यह:
उत्तर देखें
उत्तर: A — भाषा-स्वतंत्र है व किसी कोड के लिखे जाने से पहले अपेक्षाओं से गिना जा सकता है
फलन-बिंदु उपयोगकर्ता-दृश्य प्रकार्यात्मक तत्व जटिलता से भारित गिनते हैं, जो केवल अपेक्षाओं/विनिर्देशन से पहचाने जा सकते हैं — LOC के विपरीत, जो कोड विद्यमान होने तक ज्ञात नहीं हो सकता व उसी प्रकार्यता हेतु भाषा/शैली से बदलता है।COCOMO में, EMBEDDED-मोड प्रोजेक्ट (बड़ा, जटिल, कसकर प्रतिबंधित) का प्रयास-घातांक, ORGANIC-मोड प्रोजेक्ट की तुलना में:
उत्तर देखें
उत्तर: A — उच्चतर है, अतः प्रयास आकार के साथ रैखिक से तेज़ बढ़ता है
प्रयास = a·(KLOC)^b में एम्बेडेड मोड का उच्चतर घातांक यह दर्शाता है कि सादे आर्गेनिक प्रोजेक्ट की तुलना में, कठिनतम, सर्वाधिक कसकर-प्रतिबंधित प्रोजेक्टों में आकार बढ़ने पर प्रयास असमानुपातिक रूप से तेज़ बढ़ता है।इस उप-प्रकरण हेतु नामित चार अभिकल्प-क्रियाकलापों में निम्नलिखित में कौन हैं? (एक से अधिक विकल्प सही हो सकते हैं।)
उत्तर देखें
उत्तर: A — वास्तुकलात्मक अभिकल्प; B — उपयोगकर्ता-अंतरापृष्ठ अभिकल्प; C — आँकड़ा अभिकल्प
वस्तु-उन्मुख, आँकड़ा, वास्तुकलात्मक व उपयोगकर्ता-अंतरापृष्ठ अभिकल्प चार नामित क्रियाकलाप हैं; विपणन बिल्कुल कोई सॉफ़्टवेयर अभिकल्प-क्रियाकलाप नहीं है।उस विश्वसनीयता-मापक का नाम बताइए जो एक विफलता व अगली के बीच बीते औसत समय के रूप में परिभाषित है।
संख्यात्मक उत्तर — मान टाइप करें।
उत्तर देखें
उत्तर: MTBF
MTBF (विफलताओं के बीच औसत समय) विफलता-दर/तीव्रता के साथ मानक विश्वसनीयता-मापक है, व विश्वसनीयता-वृद्धि प्रतिरूप भविष्यवाणी करते हैं कि परीक्षण दोष हटाने पर यह कैसे सुधरता है।अभिकल्प-सिद्धांत के रूप में, सूचना-आच्छादन का मुख्यतः अर्थ है:
उत्तर देखें
उत्तर: A — किसी मॉड्यूल के आंतरिक अभिकल्प-निर्णय अन्य मॉड्यूलों को दृश्य या उन पर निर्भर होने योग्य नहीं होते
सूचना-आच्छादन आंतरिक निर्णयों को निजी रखते हुए केवल सुपरिभाषित अंतरापृष्ठ उजागर करती है, जो ठीक वही है जो मॉड्यूल के आंतरिक भाग को बाद में बदलने देता है बिना उन मॉड्यूलों को तोड़े जो केवल उसके अंतरापृष्ठ पर निर्भर हैं।