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