Formal specification
கணினி அறிவியலில், முறையான விவரக்குறிப்புகள் என்பது கணித அடிப்படையிலான நுட்பங்கள் ஆகும், இதன் நோக்கம் அமைப்புகள் மற்றும் மென்பொருளை செயல்படுத்த உதவுவதாகும். அவை ஒரு அமைப்பை விவரிக்கவும், அதன் நடத்தையை பகுப்பாய்வு செய்யவும், கடுமையான மற்றும் பயனுள்ள பகுத்தறிவு கருவிகள் மூலம் ஆர்வத்தின் முக்கிய பண்புகளை சரிபார்ப்பதன் மூலம் அதன் வடிவமைப்பிற்கு உதவவும் பயன்படுத்தப்படுகின்றன. இந்த விவரக்குறிப்புகள் முறையானவை, அவை ஒரு தொடரமைப்பைக் கொண்டுள்ளன, அவற்றின் சொற்பொருள்கள் ஒரு களத்திற்குள் வருகின்றன, மேலும் அவை பயனுள்ள தகவல்களை ஊகிக்க பயன்படுத்தப்படலாம். உந்துதல் கடந்து செல்லும் ஒவ்வொரு தசாப்தத்திலும், கணினி அமைப்புகள் பெருகிய முறையில் அதிக சக்திவாய்ந்தவையாக மாறிவிட்டன, இதன் விளைவாக, அவை சமூகத்திற்கு அதிக தாக்கத்தை ஏற்படுத்தியுள்ளன. இதன் காரணமாக, நம்பகமான மென்பொருளின் வடிவமைப்பு மற்றும் செயல்படுத்தலுக்கு உதவ சிறந்த நுட்பங்கள் தேவைப்படுகின்றன. நிறுவப்பட்ட பொறியியல் துறைகள் கணித பகுப்பாய்வை தயாரிப்பு வடிவமைப்பை உருவாக்குவதற்கும் சரிபார்ப்பதற்கும் அடித்தளமாக பயன்படுத்துகின்றன. முறையான விவரக்குறிப்புகள் ஒரு முறை கணிக்கப்பட்டபடி மென்பொருள் பொறியியல் நம்பகத்தன்மையில் இதை அடைய ஒரு வழியாகும். சோதனை போன்ற பிற முறைகள் பொதுவாக குறியீடு தரத்தை மேம்படுத்த பயன்படுத்தப்படுகின்றன. பயன்பாடுகள் அத்தகைய விவரக்குறிப்பைக் கருத்தில் கொண்டு, ஒரு கணினி வடிவமைப்பு அதன் விவரக்குறிப்பைப் பொறுத்தவரை சரியானது என்பதை நிரூபிக்க முறையான சரிபார்ப்பு நுட்பங்களைப் பயன்படுத்த முடியும். எந்தவொரு பெரிய முதலீடுகளும் உண்மையான செயல்பாட்டிற்குள் வருவதற்கு முன்பு தவறான கணினி வடிவமைப்புகளை திருத்த இது அனுமதிக்கிறது. மற்றொரு அணுகுமுறை என்னவென்றால், ஒரு விவரக்குறிப்பை ஒரு வடிவமைப்பாக மாற்ற சரியான சுத்திகரிப்பு படிகளைப் பயன்படுத்துவதாகும், இது இறுதியில் கட்டுமானத்தின் மூலம் சரியான செயல்பாடாக மாற்றப்படுகிறது. ஒரு முறையான விவரக்குறிப்பு ஒரு செயல்படுத்தல் அல்ல, மாறாக அது ஒரு செயல்படுத்தலை உருவாக்க பயன்படுத்தப்படலாம் என்பதைக் குறிப்பிடுவது முக்கியம். முறையான விவரக்குறிப்புகள் ஒரு அமைப்பு என்ன செய்ய வேண்டும் என்பதை விவரிக்கின்றன, அமைப்பு அதை எப்படி செய்ய வேண்டும் என்பதை அல்ல. ஒரு நல்ல விவரக்குறிப்பு பின்வரும் பண்புகளில் சிலவற்றைக் கொண்டிருக்க வேண்டும்ஃ போதுமான, உட்புற சீரான, தெளிவான, முழுமையான, திருப்திகரமான, குறைந்தபட்ச ஒரு நல்ல விவரக்குறிப்பு பின்வருவனவற்றைக் கொண்டிருக்கும்ஃ கட்டமைத்தல், மேலாண்மை மற்றும் பரிணாமம் பயன்பாடு தகவல்தொடர்பு சக்திவாய்ந்த மற்றும் திறமையான பகுப்பாய்வு முறையான விவரக்குறிப்புகளில் ஆர்வம் இருப்பதற்கான முக்கிய காரணங்களில் ஒன்று, அவை மென்பொருள் செயல்பாடுகளில் சான்றுகளைச் செய்யும் திறனை வழங்கும். இந்த சான்றுகள் ஒரு விவரக்குறிப்பை சரிபார்க்கவும், வடிவமைப்பின் சரியான தன்மையை சரிபார்க்கவும் அல்லது ஒரு நிரல் ஒரு விவரக்குறிப்பை திருப்திப்படுத்துகிறது என்பதை நிரூபிக்கவும் பயன்படுத்தப்படலாம். வரம்புகள் ஒரு வடிவமைப்பு (அல்லது செயல்படுத்தல்) ஒருபோதும் அதன் சொந்த "சரியானது" என்று அறிவிக்க முடியாது. இது எப்போதுமே "கொடுக்கப்பட்ட விவரக்குறிப்பைப் பொறுத்தவரை சரியானது" மட்டுமே. முறையான விவரக்குறிப்பு தீர்க்கப்பட வேண்டிய சிக்கலை சரியாக விவரிக்கிறதா என்பது ஒரு தனி பிரச்சினை. இது ஒரு முறைசாரா உறுதியான சிக்கல் களத்தின் சுருக்கமான முறையான பிரதிநிதித்துவங்களை உருவாக்குவதில் உள்ள சிக்கலைப் பற்றி இறுதியில் கவலைப்படுவதால், இது ஒரு கடினமான பிரச்சினையாகும், மேலும் அத்தகைய சுருக்க நடவடிக்கை முறையான ஆதாரத்திற்கு ஏற்றது அல்ல. இருப்பினும், விவரக்குறிப்பு வெளிப்படுத்தும் என்று எதிர்பார்க்கப்படும் பண்புகள் தொடர்பான "சவால்" கோட்பாடுகளை நிரூபிப்பதன் மூலம் ஒரு விவரக்குறிப்பை சரிபார்க்க முடியும். சரியாக இருந்தால், இந்த கோட்பாடுகள் விவரக்குறிப்பு பற்றிய விவரக்குறிப்பின் புரிதல் மற்றும் அடிப்படை சிக்கல் களத்துடன் அதன் உறவை வலுப்படுத்துகின்றன. இல்லையென்றால், விவரக்குறிப்பை உற்பத்தி செய்வதில் (மற்றும் செயல்படுத்துவதில்) ஈடுபட்டுள்ளவர்களின் கள புரிதலை சிறப்பாக பிரதிபலிக்கும் வகையில் விவரக்குறிப்பு மாற்றப்பட வேண்டும். மென்பொருள் மேம்பாட்டின் முறையான முறைகள் தொழில்துறையில் பரவலாகப் பயன்படுத்தப்படுவதில்லை. பெரும்பாலான நிறுவனங்கள் தங்கள் மென்பொருள் மேம்பாட்டு செயல்முறைகளில் அவற்றைப் பயன்படுத்துவது செலவு குறைந்ததாக கருதுவதில்லை. இது பல்வேறு காரணங்களுக்காக இருக்கலாம், அவற்றில் சிலஃ குறைந்த அளவிடக்கூடிய வருமானத்துடன் நேர உயர் ஆரம்ப தொடக்க செலவு நெகிழ்வுத்தன்மை நிறைய மென்பொருள் நிறுவனங்கள் நெகிழ்வுத்தன்மையில் கவனம் செலுத்தும் சுறுசுறுப்பான முறைகளைப் பயன்படுத்துகின்றன. முழு அமைப்பின் முறையான விவரக்குறிப்பை முன் செய்வது பெரும்பாலும் நெகிழ்வானதற்கு நேர்மாறாக கருதப்படுகிறது. இருப்பினும், "சுறுசுறுப்பான" வளர்ச்சி சிக்கலான தன்மையுடன் முறையான விவரக்குறிப்புகளைப் பயன்படுத்துவதன் நன்மைகள் குறித்து சில ஆராய்ச்சிகள் உள்ளன, அவற்றைப் புரிந்துகொள்வதற்கும் அவற்றை திறம்படப் பயன்படுத்துவதற்கும் அவர்களுக்கு உயர் மட்ட கணித நிபுணத்துவம் மற்றும் பகுப்பாய்வு திறன்கள் தேவைப்படுகின்றன இதற்கு ஒரு தீர்வு, இந்த நுட்பங்களை செயல்படுத்த அனுமதிக்கும் கருவிகள் மற்றும் மாதிரிகளை உருவாக்குவதே ஆகும், ஆனால் அடிப்படை கணித வரையறுக்கப்பட்ட நோக்கத்தை மறைக்கிறது. முறையான விவரக்குறிப்புகளின் அமலாக்கங்கள் அவை எந்த வகையான அமைப்பை மாதிரியாக்க முயற்சிக்கின்றன, அவை எவ்வாறு பயன்படுத்தப்படுகின்றன, மென்பொருள் வாழ்க்கைச் சுழற்சியின் எந்த கட்டத்தில் அவை அறிமுகப்படுத்தப்பட்டுள்ளன என்பதைப் பொறுத்து மாறுபடும். இந்த வகையான மாதிரிகள் பின்வரும் விவரக்குறிப்பு முன்னுதாரணங்களாக வகைப்படுத்தப்படலாம்ஃ அமைப்பு வரலாறுகளின் அடிப்படையில் வரலாறு அடிப்படையிலான விவரக்குறிப்பு நடத்தை காலப்போக்கில் கணினி நிலைகளின் தொடர்ச்சியான படிகளின் அடிப்படையில் மாநில அடிப்படையிலான விவரக்குறிப்பு நடத்தை விளக்கப்படுகிறது, (எ. கா. ஒரு நிதி பரிவர்த்தனை) இசட், வி. டி. எம் அல்லது பி போன்ற மொழிகள் இந்த முன்னுதாரண மாற்றம் அடிப்படையிலான விவரக்குறிப்பு நடத்தையை நம்பியுள்ளன, இது ஸ்டேட் சார்ட்கள், ப்ரோமெலா, எஸ். டி. இ. பி-எஸ். பி. எல், ஆர். எஸ். எம். எல் அல்லது எஸ். சி. ஆர் போன்ற எதிர்வினை அமைப்பு மொழிகளுடன் சிறப்பாகப் பயன்படுத்தப்படும் அமைப்பின் மாநிலத்திலிருந்து மாநிலத்திற்கு மாற்றங்களை அடிப்படையாகக் கொண்டது செயல்பாட்டு விவரக்குறிப்பு இந்த முன்னுதாரணத்தை நம்பியுள்ளது செயல்பாட்டு விவரக்குறிப்பு ஒரு அமைப்பை கணித செயல்பாடுகளின் கட்டமைப்பாகக் குறிப்பிடுகிறது ஓ. பி. ஜே, ஏ. எஸ். எல், பிளஸ், எல். ஏ. ஆர். சி, எச். ஓ. எல் அல்லது பி. வி. எஸ் இந்த முன்னுதாரணத்தை நம்பியுள்ளது செயல்பாட்டு விவரக்குறிப்பு பைஸ்லி, ஜி. ஐ. எஸ். டி, பெட்ரி வலைகள் அல்லது செயல்முறை ஆல்ஜ் போன்ற ஆரம்ப மொழிகள் இந்த முன்னுதாரணத்தை நம்ப இங்கே குறிப்பிடப்பட்டுள்ள கட்டுரை ஒரு விவரக்குறிப்பை வடிவமைக்கும்போது பயன்படுத்த வேண்டிய ஹூரிஸ்டிக்ஸ் பற்றி சிறப்பாக விவாதிக்கிறது. பிளவுபடுத்தி வெல்லும் அணுகுமுறையைப் பயன்படுத்துவதன் மூலம் அவர்கள் அவ்வாறு செய்கிறார்கள். மென்பொருள் கருவிகள் இசட் குறியீடு ஒரு முன்னணி முறையான விவரக்குறிப்பு மொழிக்கு ஒரு எடுத்துக்காட்டு. மற்றவற்றில் வியன்னா மேம்பாட்டு முறையின் விவரக்குறிப்பு மொழி (வி. டி. எம்-எஸ். எல்) மற்றும் பி-முறையின் சுருக்க இயந்திர குறியீடு (ஏ. எம். என்) ஆகியவை அடங்கும். வலை சேவைகள் பகுதியில், முறையான விவரக்குறிப்பு பெரும்பாலும் செயல்படாத பண்புகளை (வலை சேவைகளின் சேவையின் தரம்) விவரிக்க பயன்படுத்தப்படுகிறது. சில கருவிகள் பின்வருமாறுஃ இயற்கணித லார்ச் ஓ. பி. ஜே. லோட்டோஸ் மாடல் அடிப்படையிலான இசட். பி. வி. டி. எம். சி. எஸ். பி. பெட்ரி நெட்ஸ் டி. எல். ஏ + மேலும் காண்க இயற்கணித விவரக்குறிப்பு முறையான முறைகள் மாதிரி அடிப்படையிலான விவரக்குறிப்பு மென்பொருள் பொறியியல் விவரக்குறிப்பு மொழி விவரக்குறிப்பு (தொழில்நுட்ப தரநிலை) குறிப்புகள் வெளிப்புற இணைப்புகள் கோரியோத்தின் முறையான விவரக்குறிப்புக்கான ஒரு வழக்கு (தொழில்நுட்பம்) முறையான முறைகள் முறையான விவரக்குறிப்பு