மென்பொருள் வடிவமைப்பு முறை

மென்பொருள் பொறியியலில் மென்பொருள் வடிவமைப்பு முறை (Design pattern) என்பது ஒரு குறிப்பிட்ட சூழலில் பொதுவாக ஏற்படும் பிரச்சனைகளுக்கு உருவாக்கப்படும் மென்பொருள் வடிவமைப்பு ஆகும். மென்பொருள் வடிவமைப்பு என்பது நேரடியாக ஒரு மூல குறியீடாகவோ அல்லது ஒரு இயந்திர மொழியாகவோ மாற்ற கூடிய அமைப்பு அல்ல. பல்வேறு சூழ்நிலைகளில் எவ்வாறு நிரலாக்கம் செய்வது என்பதற்கான ஒரு வார்ப்புருவையும், விளக்கத்தையும் கொண்டிருக்கும். நிரலாளர்கள் வெவ்வேறு சூழலுக்கேற்ப சிறந்த நடைமுறைகளைப் பின்பற்றி மென்பொருள் உருவாக்கத்தை எளிமைப்படுத்தியும், தரமுள்ளவையகவும் இருக்க மென்பொருள் வடிவங்கள் உதவுகின்றன. பொதுவாக திரும்ப நிகழ்த்தப்பட இயலுகின்ற தீர்வுகள் வடிவமைப்பு முறைகள் ஆகின்றன.

வரலாறு
வடிவங்கள் கட்டடக்கலை கருத்து மூலம் கிறிஸ்டோபர் அலெக்சாண்டரால் (1977-79)  உருவாக்கப்பட்டது. 1987ல், கென்ட் பெக் மற்றும் வார்டு கன்னிங்காம் நிரலாக்கங்கள் போன்றவற்றுக்கு வடிவங்களை பயன்படுத்துவதற்கான யோசனையை பரிசோதனை செய்ய தொடங்கினர். அந்த ஆண்டின் OOPSLA மாநாட்டில் தங்கள் முடிவுகளை வழங்கினர்.

1994ல்  வடிவமைப்பு முறைகள் குறித்த புத்தகம் Design Patterns: Elements of Reusable Object-Oriented Softwareபுத்தகம் வெளிவந்த பின்பே மென்பொருள் வடிவமைப்பு முறைகள் பிரபலமடையத் தொடங்கின. வடிவமைப்பு முறைகள் நீண்ட காலமாக நடைமுறையில் பயன்படுத்தப்படுகிறது என்றாலும், வடிவமைப்பு முறைகள் கருத்து ஒழுங்குபடுத்துதல் பல ஆண்டுகளாக நலிவுற்றிருந்தது.http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.62.6466&rep=rep1&type=pdf&ei=69IjUdnhIae9iwKanIDACg&usg=AFQjCNHzAyCwy9-XWw9akEMoQk56Tqn-hg&bvm=bv.42661473,d.cGE&cad=rja

நடைமுறை
சோதனை செய்ப்பட்ட அல்லது நிருபிக்கப்பட்ட மேற்கோள் சூத்திரங்களாக வழங்குவதன் மூலம் வடிவமைப்பு முறைகள் மென்பொருள் தயாரிப்பின் தரத்தையும் வேகத்தையும் அதிகரிக்க இயலும். . வடிவைமைப்பு முறைகளை மீண்டும் மீண்டும் பயன்படுத்துவதன் மூலம் குறியீடை படிப்பதும் புரிந்து கொள்வதும் நிரலாளர்களுக்கும், வடிவைமைப்பு முறைகளை அறிந்த மென்பொருள் வடிவைமைப்பாலர்களுக்கும்  எளிதாகிறது. மேலும் அது பல நடைமுறை சிக்கல்களை தவிர்க்கிறது.

வகைகள்
 உருவாக்கும் வடிவமைப்பு முறைகள் (creational patterns)
 கட்டமைப்பு  வடிவமைப்பு முறைகள் (structural patterns)
 நடத்தைக்குரிய வடிவமைப்பு முறைகள் (behavioural patterns)

மேற்கோள்கள்

பகுப்பு:மென்பொருள்