अमूर्तता एक सॉफ्टवेयर प्रणाली की कठोरता का एक उपाय है। उच्च अवशोषण, कठोरता को कम करें (या लचीलापन से अधिक) और इसके विपरीत। यदि सिस्टम के घटक अमूर्त कक्षाओं या इंटरफेस पर निर्भर करते हैं, तो ऐसी प्रणाली को विस्तारित करना और बदलना आसान है, अगर यह सीधे कंक्रीट कक्षाओं पर निर्भर करता है।
स्थिरता बदलने के लिए सहिष्णुता का एक उपाय है क्योंकि सॉफ़्टवेयर सिस्टम इसे तोड़ने के बिना इसमें कितनी अच्छी तरह से परिवर्तन की अनुमति देता है। यह प्रणाली के घटकों की परस्पर निर्भरता का विश्लेषण करके निर्धारित किया जाता है।
ओओ मेट्रिक्स पर रॉबर्ट सी मार्टिन article इन अवधारणाओं को अधिक मात्रात्मक शर्तों में वर्णित करता है। लेख से
अंश:
जिम्मेदारी, स्वतंत्रता और एक वर्ग की स्थिरता निर्भरता उस श्रेणी के साथ बातचीत गणना के द्वारा मापा जा सकता है। तीन मीट्रिक की पहचान की गई है:
Ca: असाधारण कपलिंग: इस श्रेणी के बाहर कक्षाओं पर निर्भर इस श्रेणी के बाहर कक्षाओं की संख्या।
Ce: अपवाही कपलिंग: इस श्रेणी के अंदर वर्गों है कि इस श्रेणियों के बाहर वर्गों पर निर्भर करते हैं की संख्या।
मैं: अस्थिरता: (Ce ÷ (सीए + सीई)): यह मीट्रिक रेंज [0,1] है। I = 0 अधिकतम स्थिर श्रेणी इंगित करता है। I = 1 एक अधिकतम अस्थिर श्रेणी इंगित करता है।
एक: अमूर्तता: (श्रेणी में # सार कक्षाएं ÷ श्रेणी में कक्षाओं की कुल #)। यह मीट्रिक रेंज [0,1] है। 0 का मतलब ठोस और 1 का अर्थ पूरी तरह से सार है।
किसी भी सॉफ्टवेयर सिस्टम में विशेष रूप से बड़े, संतुलन महत्वपूर्ण है। इस मामले में, एक प्रणाली को "अच्छा" होने के लिए स्थिरता के साथ अमूर्तता को संतुलित करना चाहिए। ए-आई ग्राफ पर स्थिति यह दिखाती है। स्पष्टीकरण के लिए लेख पढ़ें।