# மென்பொருள்



**கணிப்பொறி மென்பொருள்** அல்லது **மென்பொருள்** என்பது கணிப்பொறி நிரல்கள் மற்றும் கணிப்பொறிகளால் படிக்கவும் எழுதப்படவும் முடிகின்ற மற்றும் பிற வகைப்பட்ட தகவல் போன்ற எண்ணிம முறையில் சேமிக்கப்படும் *தரவு* என்று முதன்மையாகப் பயன்படுத்தப்படுகின்ற பொதுவான ஒரு சொல்லாகும். இன்று இந்தச் சொல் திரைப்படச் சுருள், நாடாக்கள் மற்றும் பதிவுப்பொருட்கள் போன்று வழக்கமாக கணிப்பொறியோடு தொடர்புகொண்டிராத தரவையும் உள்ளடக்கியிருக்கிறது.. இந்த சொற்பதம் *வன்பொருள்* (அதாவது உடலியல் *சாதனங்கள்*) என்ற பழைய சொல்லுக்கு முரணாக இருக்கும் விதத்தில் உருவாக்கப்பட்டிருக்கிறது; வன்பொருள் என்பதற்கு முரணாக மென்பொருள் என்பது கண்ணுக்குப் புலப்படாதது, அதாவது "தொட இயலாதது" என்பதைக் குறிக்கிறது.. மென்பொருள் என்பதும் சிலசமயங்களில் மிகவும் குறுகலான பொருளிலேயே, அதாவது பயன்பாட்டு மென்பொருட்கள் என்பதாக மட்டுமே பயன்படுத்தப்படுகிறது.  

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

## மேலோட்டப் பார்வை

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

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

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

"மென்பொருள்" என்ற சொல் இந்தப் பொருளில் முதன்முறையாக 1958 இல் ஜான் டபிள்யு.டர்க்கி அவர்களால் பயன்படுத்தப்பட்டது. கணினி அறிவியல் மற்றும் மென்பொருள் பொறியியலில் **கணினி மென்பொருள்** என்பது எல்லா கணினி நிரல்களுமாகும். மிகவும் நவீன மென்பொருளுக்கு அடிப்படையாக உள்ள கோட்பாடு 1935 ஆம ஆண்டில் ஆலன் டூரிங் அவர்களால், அவருடைய *எண்ஸ்டைடங்ஸ்பிராப்ளத்திற்கான (முடிவுசெய்யும் கணிதம்) பயன்பாட்டுடன் கூடிய கணக்கிடக்கூடிய எண்கள்* கட்டுரையில் முதல்முறையாக முன்மொழியப்பட்டிருக்கிறது.  

## மென்பொருள் வகைகள்

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

### அமைப்பு மென்பொருள்

அமைப்பு மென்பொருள் கணிப்பொறி வன்பொருளையும் கணிப்பொறி அமைப்பையும் செயல்படுத்த உதவுகிறது. இது பின்வரும் இணைகளை உள்ளடக்கியிருக்கிறது:  

- சாதன இயக்கிகள்
- இயங்கு தளம்
- சர்வர்கள்
- பயனீடுகள்
- விண்டோ சிஸ்டம்ஸ்

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

### நிரலாக்க மென்பொருள்

நிரலாக்க மென்பொருள் வழக்கமாக கணிப்பொறி நிரலாக்கங்களை எழுதுவதில் நிரலாக்குனருக்கு உதவுவதற்கென்று கருவிகள் மற்றும் மிகவும் வசதியான முறையில் வேறுபட்ட நிரலாக்க மொழிகளைப் பயன்படுத்தும் மென்பொருளையும் வழங்குகின்றன. இந்தக் கருவிகளில் உள்ளடங்குவன:  
- தொகுப்பிகள்
- டீபக்கர்கள்
- இண்டர்பிரட்டர்கள்
- லின்கர்கள்
- டெக்ஸ்ட் எடிட்டர்கள்
ஒரு ஒருங்கிணைந்த உருவாக்கச் சூழல் என்பது (ஐடிஇ) இந்த செயல்பாடுகள் அனைத்தையும் கையாள்வதற்கு முயற்சிக்கும் ஒற்றைப் பயன்பாடாக இருக்கிறது.  

### பயன்பாட்டு மென்பொருள்
பயன்பாட்டு மென்பொருள் ஒன்று அல்லது அதற்கு மேற்பட்ட குறிப்பிட்ட (நேரடியாக கணினி மேம்பாடு தொடர்புடையது) வேலைகளை செய்துமுடிக்க பயனர்களுக்கு உதவுகிறது. வழக்கமான பயன்பாடுகளில் உள்ளவை:  
- தொழில்துறை தானியக்கம்
- தொழில் மென்பொருள்
- வீடியோ கேம்ஸ்
- நுண்ணலகு ரசாயனம் மற்றும் திடநிலை இயற்பியல் மென்பொருள்
- தகவல்தொடர்புகள் (அதாவது இணையத்தளம் மற்றும் அதில் உள்ளடக்கப்பெறும் அனைத்தும்)
- தரவுத்தளங்கள்
- கல்வித்துறை மென்பொருள்( தற்போது இவை இந்தியாவில் பிரபலமடைந்து வருகின்றன )
- மருத்துவ மென்பொருள்
- இராணுவ மென்பொருள்
- மூலக்கூறு மாதிரியாக்க மென்பொருள்
- இமேஜ் எடிட்டிங்
- வீடியோ எடிடிங்
- ஸ்பிரெட்ஷீட்
- போலியாக்க மென்பொருள்
- வேர்ட் பிராசஸிங்
- முடிவெடுத்தல் மென்பொருள்
- முப்பரிமான வரைகலை மென்பொருள்
- கணக்குப் பதிவியல் மென்பொருள்
- சம்பளப் பட்டியல் மென்பொருள்

பரந்துவிரிந்த தலைப்புகளுக்கான பயன்பாட்டு மென்பொருள் இருப்பதுடன் அவற்றில் தாக்கமேற்படுத்தவும் செய்கின்றன.  

## மென்பொருள் தலைப்புகள்
### கட்டுமானம்
நிரலாக்குனர்களைக் காட்டிலும் பயனர்கள் இவற்றைப் வேறுபட்ட விதத்தில் பார்க்கின்றனர். நவீன பொதுப்பயன்பாட்டு கணினிகளை (எம்பட்டட் சிஸ்டம்கள், அனலாக் கணினிகள் மற்றும் சூப்பர் கணினிகளுக்கு எதிரானதாக), தளம், பயன்பாடு மற்றும் பயனர் மென்பொருள் என மூன்று அடுக்குகளிலான மென்பொருள் பல்வேறுவிதமான வேலைகளைச் செய்வதை பயன்படுத்துனர்கள் காண்கின்றனர்: .  
- தளம் மென்பொருள்: தளம் என்பது தளநிரல், சாதன இயக்கிகள், ஒரு இயங்கு தளம் மற்றும் வகைமாதிரியாக ஒரு கிராபிக்கல் பயனர் இடைமுகம் ஆகியவற்றை உள்ளிட்டிருக்கிறது, இது மொத்தத்தில் கணினி மற்றும் அதனுடைய துணைப்பொருட்களோடு (உடனிணைந்த சாதனம்) ஒருங்கிணைந்த முறையில் பயனர் செயல்படுவதற்கு உதவுகிறது. தளம் மென்பொருள் கணிப்பொறியுடன் இணைந்தே வருகிறது. ஒரு பிசியில் நீங்கள் சாதாரணமாக தளம் மென்பொருளை மாற்றிக்கொள்வதற்கான திறன் உங்களுக்கு இருக்கிறது.
- பயன்பாட்டு மென்பொருள்: மென்பொருளை பற்றி நினைக்கையில், பெரும்பாலான பயனர்கள் பயன்பாட்டு மென்பொருள் அல்லது பயன்பாடுகளை தான் நினைக்கிறார்கள். ஆஃபீஸ் ஸ்யூட் மற்றும் வீடியோ கேம்ஸ் ஆகியவை வகைமாதிரியான உதாரணங்களாகும். பயன்பாட்டு மென்பொருள் எப்பொழுதும் கணிப்பொறி வன்பொருளிலிருந்து தனித்தே வாங்கப்படுகிறது. சிலநேரங்களில் பயன்பாடுகள் கணிப்பொறியுடன் சேர்ந்தே வருகின்றன, ஆனால் அது தனிப்பட்ட பயன்பாடுகளாகத்தான் செயல்படும் என்ற உண்மையை மாற்றிவிடுவதில்லை. பயன்பாடுகள் வழக்கமாக இயங்கு தளத்திலிருந்து தனித்திருக்கும் நிரல்களாகும், இருப்பினும் அவை குறிப்பிட்ட தளங்களுக்கென்றே வடிவமைக்கப்பட்டிருக்கின்றன. பெரும்பாலான பயனர்கள் இருமமாக்கிகள், தரவுத்தளங்கள் மற்றும் இதர "அமைப்பு மென்பொருள்" ஆகியவற்றை பயன்பாடுகள் என்றே நினைத்துக்கொண்டிருக்கின்றனர்.
- பயனர்-எழுதிய மென்பொருள்: இறுதிப் பயனர் மேம்படுத்துனர், பயனரின் குறிப்பிட்ட தேவைகளை பூர்த்திசெய்வதற்கு அமைப்புக்களை வடிவமைக்கிறார். பயனர் மென்பொருள் ஸ்பிரெட்ஷீட் டெம்ப்லட்டுகள், வேர்ட் பிராசஸரை உள்ளிட்டிருக்கிறது [தளம் மென்பொருள்: தளம் என்பது தளநிரல், சாதன இயக்கிகள், ஒரு இயங்குதளம் மற்றும் வகைமாதிரியாக கிராபிகல் பயனர் இடைமுகம் ஆகியவற்றை உள்ளிட்டிருக்கிறது, மொத்தத்தில் இது பயனரை கணிப்பொறியோடும் அதனுடைய துணைப்பொருட்களோடும் (உடனிணைந்த சாதனம்) ஒருங்கிணைந்து செயல்பட அனுமதிக்கிறது. தளம் மென்பொருள் கணி்னியுடன் இணைந்தே வருகிறது. ஒரு பிசியில் தள மென்பொருளை மாற்றுதற்கான திறன் உங்களுக்கு வழங்கப்படுகிறது. மின்னஞ்சல் பிரிப்பான்கள்கூட ஒருவகையான பயனர் மென்பொருளாகும். பயனர்கள் இந்த மென்பொருளை தாங்களாகவே உருவாக்கிக்கொள்கின்றனர் என்பதோடு இது எவ்வளவு முக்கிமானது என்பதையும் மேற்பார்வையிடுகின்றனர். தன்னியல்பான பயன்பாட்டு பேக்கேஜ்களில் பயனர் எழுதிய மென்பொருள் எவ்வளவு திறனோடு ஒருங்கிணைக்கப்பட்டிருக்கிறது என்பதைப் பொறுத்து பல பயனர்களும் அசலான பேக்கேஜ்கள் மற்றும் உடன் பணிபுரிபவர்களால் சேர்க்கப்பட்டவற்றிற்கும் இடையில் உள்ள வேறுபாட்டை பயனர்கள் தெரிந்துகொண்டிராமல் இருக்கலாம்.

### ஆவணமாக்கல்
பெரும்பாலான மென்பொருள்களும் மென்பொருள் ஆவணமாக்கலைக் கொண்டிருப்பதால் ஒரு நிரல் என்ன செய்கிறது மற்றும் அதைப் பயன்படுத்துவது எப்படி என்பதை இறுதிப் பயனர் புரிந்துகொள்கிறார். தெளிவான ஆவணமாக்கம் இல்லாமல் மென்பொருள் பயன்படுத்துவதற்கு கடினமானதாக இருக்கலாம் - குறிப்பாக இது ஃபோட்டோஷாப் அல்லது ஆட்டோகேட் போன்று மிகவும் சிறப்புவாய்ந்த மற்றும் சிக்கலான மென்பொருளாக இருக்கும்போது அவ்வாறு ஏற்படலாம்.  

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

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

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

### செயல்படுத்துதல்
கணிப்பொறி மென்பொருள் "கணிப்பொறியின் சேமிப்பகத்திற்குள்ளாக" (*வன் வட்டு*, *நினைவகம்* அல்லது *ரேம்*) பதிவேற்றம் செய்யப்படுகிறது. மென்பொருள் ஏற்றப்பட்டவுடன் கணிப்பொறியானது மென்பொருளை *செயல்படுத்தும்* திறனைப் பெறுகிறது. இது பயன்பாட்டு மென்பொருளிலிருந்து அமைப்பு மென்பொருள் ஊடாக அறிவுறுத்தல்களை முடிவில் இயந்திர குறியெழுத்தாக பெறும் வன்பொருளுக்கு எடுத்துச்செல்கிறது. ஒவ்வொரு அறிவுறுத்தலும் ஒரு செயல்பாட்டை கணிப்பொறி மேற்கொள்வதற்கு காரணமாக அமைகிறது - தரவை நகர்த்திச்செல்லல், கணக்கிடுதல் அல்லது அறிவுறுத்தல்களின் கட்டுப்பாட்டு ஓட்டத்தை மாற்றுவது ஆகியன இதில் அடங்கும்.  

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

### தரமும் நம்பகத்தன்மையும்
மென்பொருளின் தரம் முக்கியமானது, குறிப்பாக மைக்ரோசாஃப்ட் ஆபீஸ், மைக்ரோசாஃப்ட் விண்டோஸ் மற்றும் லினக்ஸ் போன்ற வர்த்தக மற்றும் அமைப்பு மென்பொருள்களுக்கு. மென்பொருள் பிழையானதாக (பக் கொண்டிருந்தால்) இது ஒருவருடைய வேலையை அழித்தும் சிதைத்தும் விடலாம் என்பதுடன் எதிர்பாராத செயல்களையும் செய்துவிடலாம். தவறுகளும் பிழைகளும் "பக்ஸ்" என்றழைக்கப்படுகின்றன. பல பக்ஸ்களும் மென்பொருள் சோதனையின் வழியாக கண்டுபிடிக்கப்பட்டு அழிக்கப்படுகின்றன (டீபக் செய்யப்படுகிறது). இருப்பினும், மென்பொருள் சோதனை எப்போதாவதுதான் -அவ்வாறு இருந்தால்- ஒவ்வொரு பக்கையும் அழிக்கிறது; சில நிரலாக்குனர்கள் "ஒவ்வொரு நிரலாக்கமும் குறைந்தது ஒரு பக்காவது இல்லாமல் இருக்காது"(லூபேர்ஸ்கி விதி) என்று கூறுகின்றனர். எல்லா முக்கியமான நிறுவனங்களும், மைக்ரோசாஃப்ட், நோவல் மற்றும் சன் மைக்ரோ சிஸ்டம்ஸ் போன்றவை, சோதனையிடுவதற்கு மட்டுமேயான குறிப்பிட்ட இலக்கோடு மென்பொருள் சோதிப்பு துறைகளை வைத்திருக்கின்றன.  

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

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

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

## வடிவம் மற்றும் நடைமுறைப்படுத்தல்
மென்பொருளை வடிவமைத்தல் மற்றும் நடைமுறைப்படுத்துதல் மென்பொருளின் சிக்கல்தன்மையைப் பொறுத்து அமைகிறது. உதாரணத்திற்கு, மைக்ரோசாஃப்ட் வேர்ட் மென்பொருளின் வடிவமைப்பு மற்றும் உருவாக்கம் மைக்ரோசாஃப்ட் நோட்பேடைக் காட்டிலும் மிக அதிகமான நேரத்தை எடுத்துக்கொள்ளும், ஏனென்றால் இவை ஒவ்வொன்றிலும் உள்ள செயல்பாடுகள் வெவ்வேறு விதமானவை.  

இந்த நிகழ்முறையையும் நிரலை தொகுக்கச் செய்வதையும் எளிதாக்கக்கூடிய எக்லிப்ஸ், இமேக்ஸ் மற்றும் மைக்ரோசாஃப்ட் விஷுவல் ஸ்டுடியோ போன்ற ஒருங்கிணைந்த மேம்பாட்டுச் சூழலில் (ஐடிஇ) மென்பொருள் சாதாரணமாக வடிவமைக்கப்பட்டு உருவாக்கப்படுகிறது (குறியாக்கம்/எழுதுதல்/நிரலாக்கம்). பல்வேறு பிரிவுகளில் குறிப்பிட்டுள்ளபடி, மென்பொருள் என்பது ஜிடிகே+, ஜாவாபீ்ன்ஸ் அல்லது ஸ்விங் போன்ற உள்ளுறையும் மென்பொருளை வழங்கும் இருந்துவரும் மென்பொருள் மற்றும் பயன்பாட்டு நிரலாக்க இடைமுகம் (ஏபிஐ) ஆகியவற்றில் உருவாக்கப்படுவதாகும். நூலகங்கள் (ஏபிஐகள்) வேறுபட்ட நோக்கங்களுக்காக வகைப்படுத்தப்பட்டிருக்கின்றன. உதாரணத்திற்கு, ஜாவாபீன்ஸ் நூலகம் நிறுவனப் பயன்பாடுகளை வடிவமைக்கப் பயன்படுத்தப்படுகிறது, விண்டோஸ் ஃபார்ம்ஸ் நூலகம் மைக்ரோசாஃப்ட் வேர்ட் போன்ற வரைகலை சார்ந்த பயனர் இடைமுகத்தை (ஜியுஐ) வடிவமைக்கப் பயன்படுத்தப்படுகிறது மற்றும் விண்டோஸ் கம்யூனிகேஷன் ஃபவுண்டேஷன் வலைத்தள சேவைகளை உருவாக்கப் பயன்படுத்தப்படுகிறது. குயிக்சார்ட், ஹாஷ்டேபில், அரே மற்றும் பைனரி ட்ரீ போன்ற உள்ளுறையும் கணி்ப்பொறி நிரலாக்க கருத்தாக்க மென்பொருளை உருவாக்குவதற்கு பயன்மிக்கதாக இருக்கலாம். ஒரு நிரல் வடிவமைக்கப்படும்போது அது ஏபிஐயை நம்பியிருக்கிறது. உதாரணத்திற்கு ஒரு பயனர் மைக்ரோசாஃப்ட் விண்டோஸ் டெஸ்க்டாப் பயன்பாட்டை வடிவமைக்கிறார் என்றால் அவர் அந்த டெஸ்க்டாப் பயன்பாட்டை உருவாக்குவதற்கு .நெட் விண்டோஸ் ஃபார்ம்ஸ் நூலகத்தைப் பயன்படுத்தலாம் என்பதோடு அதை அவர் அதன் ஏபிஐயை பின்வருவது போல் அழைப்பார் form1.Close மற்றும் form1.Show இது பயன்பாட்டை திறப்பதற்கும் மூடுவதற்கும் என்பதோடு அது கொண்டிருக்க வேண்டிய கூடுதல் செயல்பாடுகளையும் எழுதுவார். இந்த ஏபிஐகள் இல்லாமல் நிரலாக்குனர் இந்த ஏபிஐகளை தானாகவே எழுதவேண்டியிருக்கும். சன் மைக்ரோசிஸ்டம்ஸ், நோவல் மற்றும் மைக்ரோசாஃப்ட் போன்ற நிறுவனங்கள் அவர்களுடைய சொந்த ஏபிஐகளை வழங்குகின்றன என்பதால் பல பயன்பாடுகளும் தங்களுக்குள் நிறைய ஏபிஐகளைக் கொண்டிருக்கும் சொந்த மென்பொருள் நூலகங்களைப் பயன்படுத்தி எழுதப்படுகின்றன.  

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

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

மென்பொருள் விற்பனை செய்வதும் ஒரு இலாபம் மிகுந்த துறையாக இருக்கிறது. உதாரணத்திற்கு, மைக்ரோசாஃப்டின் நிறுவனரான பில் கேட்ஸ் மைக்ரோசாஃப்ட் விண்டோஸ் மற்றும் மைக்ரோசாஃப்ட் ஆபீஸ் மென்பொருள் நிரல்களை விற்பனை செய்ததன் மூலமே 2009 ஆம் ஆண்டில் உலகின் மிகப்பெரிய பணக்காரராக இருந்தார். இதே போன்றுதான் லேரி எல்லிஸன் தனது ஆரக்கிள் தரவுத்தளம் மென்பொருள் மூலமாக பணக்காரராக இருக்கிறார்.  

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

மைக்ரோசாஃப்ட், ஆரக்கிள், நோவல், எஸ்ஏபி, சிமண்டெக், அடோப் சிஸ்டம்ஸ் மற்றும் கோரல் ஆகியவை சில பிரபலமான நன்கறியப்பட்ட மென்பொருள் நிறுவனங்களாகும்.