2009-08-30 40 views
8

पर कोड "गुणवत्ता" को कैसे मापेंगे, मैं एक बड़ी बड़ी कंपनी पर, निर्माण में कुछ सालों में काफी बड़ी परियोजना पर काम कर रहा हूं, और मैं बेहतर दिशा में ड्राइविंग का काम कर रहा हूं समग्र कोड गुणवत्ता।आप एक बड़ी परियोजना

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

अब तक, मैं एक सूची है कि इस तरह दिखता है: पूर्ण कार्यात्मक परीक्षण

  • BVT विफलताओं की Recurrance दौरान

    • कोड कवरेज प्रतिशत
    • निर्भरता ग्राफ/स्कोर, जैसे कुछ उपकरण के आधार पर nDepend
    • निर्माण चेतावनियों की संख्या
    • FxCop/StyleCop चेतावनियों की संख्या पाया/दबा "CATC की
    • संख्या ज "बयान
    • मैनुअल तैनाती की संख्या कदम
    • परियोजनाओं
    • कोड का प्रतिशत/परियोजनाओं है कि की संख्या" मृत ", के रूप में में, कहीं भी नहीं संदर्भित
    • WTF के कोड के दौरान की संख्या की समीक्षा
    • कुल लाइनों कोड की है, शायद स्तरीय
  • +4

    मिडो-क्लोरियन की उपस्थिति। – cletus

    +0

    http://stackoverflow.com/questions/84556/whats-your-favorite-programmer-cartoon/84609#84609 –

    +1

    एक मतदान प्रश्न। – Raedwald

    उत्तर

    2

    के आधार पर विभाजित हो सकता है आप दिलचस्प, और दिलचस्प लगे, इस विश्लेषण मिल जाएगा: A Tale of Four Kernels
    संपादित करें:schema, and the corresponding queries

    +0

    मुझे बताएं कि यह सी कोड के लिए प्रासंगिक है। –

    1

    चक्रवात जटिलता एक सभ्य "गुणवत्ता" मीट्रिक है। मुझे यकीन है कि डेवलपर्स इसे "गेम" करने का रास्ता ढूंढ सकते हैं अगर यह एकमात्र मीट्रिक था, हालांकि! :)

    और फिर वहाँ C.R.A.P. मीट्रिक है ...

    पी.एस. NDepend में लगभग दस अरब मीट्रिक हैं, इसलिए यह देखने लायक हो सकता है। परावर्तक के लिए CodeMetrics भी देखें।

    डी ओह! मैंने अभी देखा है कि आपने पहले से ही एनडपेन्स का उल्लेख किया है।

    सूचना दी कीड़े की संख्या ट्रैक करने के लिए भी ...

    +0

    स्नैप करें। वह कोडमैट्रिक्स पीएस अकेले पूछने लायक हो सकता है। – askheaves

    +0

    हमारे पास आंतरिक रूप से खुले और बग को ट्रैक करने वाले बहुत से लोग हैं। मेरे आवेदन में हजारों बग्स और अन्य रिलीज प्रति सेकंड। जैसे मैंने कहा ... बड़ा। – askheaves

    0

    software cloning/duplicate code की राशि दिलचस्प हो सकता है, कम स्पष्ट रूप से बेहतर है। (लिंक क्लोन और विभिन्न तकनीकों को पहचानने/मापने के लिए चर्चा करता है।)

    +0

    ड्राइव-फ्लैगर द्वारा: आप यह समझाने के लिए सौजन्य कर सकते हैं कि आप इसका विरोध क्यों करते हैं। –

    1

    यदि आप बेहतर समग्र कोड गुणवत्ता की ओर ड्राइविंग करने का कार्य करते हैं। आप यहां देख सकते हैं:

    • आपके पास वर्तमान में कितने खुले मुद्दे हैं और वे कितने समय तक हल करने के लिए लेते हैं?
    • आवश्यकताओं को इकट्ठा करने के लिए आपके पास क्या प्रक्रिया है?
    • क्या आपके कर्मचारी सर्वोत्तम प्रथाओं का पालन करते हैं?
    • क्या आपके पास अपनी कंपनियों प्रोग्रामिंग पद्धति का वर्णन करने के लिए एसओपी परिभाषित किया गया है।

    जब आपके पास एक बड़ी परियोजना में शामिल कई डेवलपर हैं तो हर किसी के पास प्रोग्रामिंग का तरीका होता है। प्रोग्रामिंग की प्रत्येक शैली समस्या को हल करती है लेकिन कुछ उत्तरों दूसरों की तुलना में कम कुशल हो सकते हैं।

    नई सुविधा पर हमला करते समय या मौजूदा कोड को ठीक करते समय आप कर्मचारियों को कैसे उपयोग करते हैं। प्रोग्राम्स के बाद टीमों में टीमों का काम करने के बाद प्रोग्रामिंग सोप की ताकत हर किसी को बेहतर कोड बनने के लिए मजबूर करती है।

    जब आपके लोग नियम के बाद अधिक कुशलता से कोड करते हैं तो विकास का समय जल्दी हो जाना चाहिए।

    आप सभी अपने वांछित मीट्रिक प्राप्त कर सकते हैं, लेकिन मैं पहले कहते हैं कि तुम को देखने के लिए कैसे चीजें किया जा रहा है कर रहे हैं:

    क्या आप विकास प्रथाओं कर रहे हैं?

    बिना जानते हुए कि वर्तमान में चीजें कैसे की जा रही हैं, आप सभी मीट्रिक प्राप्त कर सकते हैं लेकिन आप कभी भी कोई सुधारक नहीं देखेंगे।

    +0

    मुझे यह जवाब पसंद है क्योंकि यह मेरी समस्या के दूसरे पक्ष से बात करता है ... विकास के लिए मैंने क्या मानक रखा है? मुझे लगता है कि मैं उन मानकों को चलाने वाले मीट्रिक देख रहा था, लेकिन हम दोनों दिशाओं से इस पर आ सकते हैं। – askheaves

    5

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

    संबंधित मुद्दे