MS Visual Studio में कोड क्वालिटी इवैल्यूएशन टूल

परिचय



अक्सर, प्रोग्रामर को किसी और के कोड को बनाए रखना पड़ता है, बहुत बार यह कोड सबसे अच्छा नहीं दिखता है, और इसे बनाए रखना बहुत मुश्किल है। यदि इस एप्लिकेशन को जल्द ही खारिज नहीं करना है, तो स्वाभाविक रूप से इसे मानव रूप में लाया जाना चाहिए, अर्थात्। refactor। यह अच्छा होगा कि किसी प्रकार का मीट्रिक हमारे पास हो जिससे हम कोड की गुणवत्ता का मूल्यांकन कर सकें और उन स्थानों की पहचान कर सकें जो सुधार के लायक हैं। इस तरह के एक मीट्रिक का मूल्यांकन करना संभव होगा, उदाहरण के लिए, प्रोग्रामर कैसे स्रोत कोड लिखता है या उस एप्लिकेशन में उच्च-गुणवत्ता वाला कोड कैसे होता है जिसका आप समर्थन करने जा रहे हैं।



Microsoft दृश्य स्टूडियो में एक अंतर्निहित टूल प्रदान करता है जो आपको अपनी परियोजना के लिए कोड का मूल्यांकन करने की अनुमति देता है।







आप प्रोजेक्ट पर राइट-क्लिक करके और "कैलकुलेट कोड मेट्रिक्स" का चयन करके अपने कोड का अनुमान प्राप्त कर सकते हैं (यह कार्यक्षमता विजुअल स्टूडियो 2008 टीम सिस्टम और विजुअल स्टूडियो 2010 में प्रीमियम संस्करण के साथ शुरू होती है)।



मैट्रिक्स का विवरण



परिणामों में आपके कोड के लिए 5 मेट्रिक्स होते हैं।



  1. अनुरक्षणीय सूचकांक कोड गुणवत्ता का एक व्यापक उपाय है। यह संकेतक कार्नेगी मेलन सॉफ्टवेयर इंजीनियरिंग संस्थान के विशेषज्ञों द्वारा विकसित किया गया था। मीट्रिक की गणना निम्न सूत्र का उपयोग करके की जाती है:



    MI = MAX (0, (171 - 5.2 * ln (HV) - 0.23 * CC - 16.2 * ln (LoC)) * 100/171)



    • एचवी - हैल्स्टीड वॉल्यूम, कम्प्यूटेशनल जटिलता। अधिक ऑपरेटर, इस मीट्रिक का मूल्य जितना अधिक होगा;
    • सीसी - चक्रवाती जटिलता। यह मीट्रिक नीचे वर्णित है;
    • एलओसी - कोड की लाइनों की संख्या।


    यह मीट्रिक 0 से 100 तक मान ले सकती है और कोड समर्थन की सापेक्ष जटिलता दिखाती है। इस मीट्रिक का मान जितना अधिक होगा, कोड को बनाए रखना उतना ही आसान होगा।



    विजुअल स्टूडियो हरे रंग के तरीकों / वर्गों को चिह्नित करता है यदि मीट्रिक मूल्य 20 से 100 की सीमा में है, तो 10 से 20 की रेंज में मूल्य में पीला, और जब मूल्य 10 से कम है।
  2. साइक्लोमैटिक जटिलता - कोड की संरचनात्मक जटिलता को दर्शाता है, अर्थात। कोड में विभिन्न शाखाओं की संख्या। यह संकेतक जितना अधिक होगा, कोड को पूरी तरह से कवर करने के लिए और अधिक परीक्षण लिखे जाने चाहिए।
  3. वंशानुक्रम की गहराई - वंशानुक्रम की गहराई। यह मैट्रिक प्रत्येक वर्ग के लिए दिखाता है कि यह किस प्रकार का खाता विरासत श्रृंखला में है। उदाहरण के लिए, 3 वर्ग ए, बी, सी, बी ए से विरासत में मिला है, और सी बी से विरासत में मिला है, फिर कक्षा ए, बी और सी के लिए इस मीट्रिक का मूल्य क्रमशः 1, 2 और 3 होगा।
  4. क्लास कपलिंग - एक दूसरे के साथ कक्षाओं की निर्भरता की डिग्री को दर्शाता है। मापदंडों की अनूठी कक्षाएं, स्थानीय चर, वापसी प्रकार, आधार वर्ग, विशेषताओं को ध्यान में रखा जाता है (एक पूर्ण सूची एमएसडीएन पर पाया जा सकता है)। अच्छा सॉफ्टवेयर डिजाइन में संबंधित कक्षाओं की एक छोटी संख्या शामिल होती है। जितने अधिक हैं, भविष्य में इस वर्ग का पुन: उपयोग करना उतना ही कठिन है, साथ ही इसे बनाए रखना भी है, क्योंकि बहुत सारी निर्भरताएँ हैं।
  5. कोड की लाइनें - कोड की लाइनों की संख्या को दर्शाता है। यह संकेतक आपकी फ़ाइल में लाइनों की सही संख्या नहीं दिखाता है, जैसा कि गिनती IL कोड पर आधारित है। रिक्त लाइनों, टिप्पणियों, कोष्ठक के साथ लाइनों, प्रकारों और नामस्थानों की घोषणा को ध्यान में नहीं रखा जाता है। एक विधि / वर्ग में बड़ी संख्या में लाइनें डिजाइन त्रुटियों को इंगित कर सकती हैं और इस कोड को कई भागों में विभाजित किया जा सकता है।



आप इन मैट्रिक्स को यहाँ कैसे पढ़ा जाता है, इसके बारे में अधिक पढ़ सकते हैं।



वास्तविक उपयोग



जब मैंने पहली बार किसी एक प्रोजेक्ट पर विश्लेषण शुरू किया, तो सभी मेंटेनेंस इंडेक्स वैल्यूज़ हरे रंग की थीं। यह थोड़ा अजीब लग रहा था, क्योंकि स्पष्ट रूप से कोड था जिसे फिर से लिखने की आवश्यकता थी। ऐसे कोड अनुभागों के लिए MI मान लगभग 30-40 थे। यह पता चला है कि डिफ़ॉल्ट संकेतक सबसे अधिक संभावना वाले व्यक्तिपरक हैं, और कम गुणवत्ता वाले विचार करने के लिए किस कोड पर निर्णय स्वयं प्रोग्रामर को करना होगा।



अपनी परियोजनाओं के लिए, मैं अधिकांश तरीकों के लिए लगभग 70-90 के एमआई स्कोर को बनाए रखने की कोशिश करता हूं। ऐसे तरीके हैं जिनमें यह सूचक 50-60 है, और उन्हें फिर से लिखा जा सकता है, लेकिन यह लागत और लाभों का मूल्यांकन करने योग्य है।



इस उपकरण के लिए धन्यवाद, एक बड़ी परियोजना की कोड समीक्षा का संचालन करना काफी आसान है, उन स्थानों को ढूंढें जिन्हें फिर से लिखने की आवश्यकता है। उपरोक्त मेट्रिक्स को बदलने की प्रक्रिया का पालन करना भी काफी उपयोगी है। यह एक प्रोग्रामर के विकास के लिए प्रोग्रामर के रवैये के बारे में नेता को दिखा सकता है, साथ ही प्रत्येक प्रोग्रामर के लिए कोड की गुणवत्ता को बदलने की गतिशीलता, जो हमारे पेशे में महत्वपूर्ण है। मैट्रिक्स पर नज़र रखने का एक अन्य कारण, प्रोग्रामर, थ्रेशोल्ड मानों द्वारा परिभाषित किया गया है, जिस पर पहुंचने पर, रिफैक्टिंग करना आवश्यक है।



बहुत बहुत धन्यवाद।



सूत्रों का कहना है



  1. MSDN
  2. पीसी सप्ताह
  3. कोड विश्लेषण टीम ब्लॉग





All Articles