സോഫ്റ്റ്‌വെയർ ഡോക്യുമെന്റേഷൻ

ഒരു കംപ്യൂട്ടർ സോഫ്റ്റ്‌വെയറിന്റെ വികസനത്തേയും, അത് എങ്ങനെ ഉപയോഗിക്കാം എന്നതിനേയും വ്യക്തമായി സൂചിപ്പിക്കുന്ന ഒരു മാർഗരേഖയാണ് **ഡോക്യുമെന്റേഷൻ**. സിസ്റ്റം നിർമ്മിക്കപ്പെട്ട രീതി, അതിലെ ഘടകഭാഗങ്ങളുടെ പ്രവർത്തനം എന്നിവയെ സംബന്ധിച്ച പൂർണ വിവരങ്ങൾ രേഖപ്പെടുത്തിവയ്ക്കുന്നത് ഡോക്കുമെന്റേഷനിലൂടെയാണ്. ഉപയോക്താവ്, സിസ്റ്റം പ്രോഗ്രാമിങ്, നിർദ്ദേശ നിർവഹണം (command execution) എന്നീ വ്യത്യസ്ത മേഖലകളിലെ സമഗ്ര വിവരണമാണ് ഡോക്കുമെന്റേഷനിലൂടെ സാധാരണയായി ലഭ്യമാകുന്നത്.

## പ്രധാന ലക്ഷ്യങ്ങൾ
ഡോക്കുമെന്റേഷന് പ്രധാനമായി നാലു ലക്ഷ്യങ്ങൾ നിർവഹിക്കേണ്ടിവരാറുണ്ട്.
### ഇന്റർടാസ്ക്/ഇന്റർഫേസ് വാർത്താവിനിമയം
ഓരോ ഘട്ടത്തിലും പൂർത്തീകരിക്കുന്ന പ്രവർത്തനങ്ങളെ സൂചിപ്പിക്കുന്നതോടൊപ്പം അനന്തര നടപടികൾ ആസൂത്രണം ചെയ്യാൻ സഹായിക്കുന്ന മാർഗനിർദ്ദേശങ്ങളും ഇതിൽ ഉൾപ്പെടുത്താറുണ്ട്. വിഭവ സമാഹരണം, ഇൻവെൻട്രി കൺട്രോൾ, ഷെഡ്യൂളിങ്, പുരോഗതി വിലയിരുത്തൽ, ജോബ് അനാലിസിസ്, മാർക്കറ്റ് സ്റ്റഡി, സെയിൽസ് ഫോർകാസ്റ്റിങ് തുടങ്ങിയവയെല്ലാം ഇതിലുൾപ്പെടുന്നു. പ്രോജക്റ്റിൽ നിന്ന് ഒരാൾ പിരിഞ്ഞുപോയാൽ അയാൾ ഏറ്റു നടത്തിയിരുന്ന പണി വിശകലനം ചെയ്യാനും പകരം വരുന്ന ആളിന് തുടർ ചുമതല ഏൽക്കാനും ഡോക്കുമെന്റേഷൻ അന്ത്യന്തം സഹായകമാണ്.

### സമയാധിഷ്ഠിത തുടർരേഖകൾ

കാലാനുഗതമായു ണ്ടാകുന്ന ഗുണ വൃദ്ധിയും തദനുസാര മാറ്റങ്ങളും സിസ്റ്റത്തിൽ ഉൾപ്പെടുത്തണമെങ്കിൽ സിസ്റ്റത്തിന്റെ പരിണാമപര സംക്രമത്തെ സംബന്ധിച്ച് വ്യക്തമായ അറിവുണ്ടായിരിക്കണം. സിസ്റ്റത്തിലെ എല്ലാ ഭാഗങ്ങളുടേയും പ്രവർത്തനം, അന്യോന്യ വിനിമയം എന്നിവയെപ്പറ്റി വ്യക്തമായ ധാരണ ആവശ്യമാണ്. സിസ്റ്റത്തിൽ സമയാധിഷ്ഠിതമായി നടത്തേണ്ടി വരുന്ന അറ്റകുറ്റപ്പണികൾ നിർവഹിക്കാനും ഇത്തരം അറിവ് ഉപകരിക്കുന്നു. പ്രോഗ്രാം എഴുതിയ ആൾ പിരിഞ്ഞുപോയശേഷം വരുന്ന സിസ്റ്റം പ്രോഗ്രാമർക്ക്, പ്രോഗ്രാമിലെ യുക്തി ഗ്രഹിക്കാൻ, ഡോക്കുമെന്റേഷനെ ആശ്രയിക്കുകയേ നിർവാഹമുള്ളൂ. ഇതിന്റെ അഭാവം പുതിയ ഡിസൈൻ നടപ്പിലാക്കുന്നതു ദുഷ്കരമാക്കും.

### ഗുണനിലവാര നിയന്ത്രണം

ഡോക്കുമെന്റേഷൻ പരിശോധിച്ച്, സിസ്റ്റത്തിന്റെ ഗുണ വൃദ്ധിയുടേയും തദനുസൃത പ്രചാരത്തിന്റേയും അതിനെടുത്ത സമയാന്തരങ്ങളുടേയും ഘട്ടം ഘട്ടമായ വിശകലനത്തിലൂടെയാണ്, മാനേജ്മെന്റ് സിസ്റ്റത്തിനെ വിലയിരുത്തുന്നത്.

### നിർദ്ദേശക രേഖകൾ

സിസ്റ്റത്തിന്റെ പ്രവർത്തനത്തെ സംബന്ധിച്ച വിശദാംശങ്ങൾ സിസ്റ്റത്തിന്റെ ഗുണമേന്മകൾ, സമയ ബന്ധിതമായ വളർച്ചകൾ എന്നിവയെക്കുറിച്ചുള്ള വിവരണമാണ് ഇവ ഉൾക്കൊള്ളുന്നത്.

സിസ്റ്റത്തിന്റെ കൂടെ ലഭ്യമാവുന്ന ലാങ്ഗ്വേജ് മാനുവലുകൾ, കംപ്യൂട്ടർ ഭാഷകളെക്കുറിച്ചുള്ള പ്രതിപാദ്യം, ഓപ്പറേറ്റിങ് സിസ്റ്റം മാനുവലുകൾ, സബ്റുട്ടീനുകൾ, ആപ്ലിക്കേഷൻ, യൂട്ടിലിറ്റി പാക്കേജുകൾ മുതലായവ ഇതിനുള്ള ഉദാഹരണങ്ങളാണ്.

## വർഗീകരണം
ഡോക്കുമെന്റേഷനെ പൊതുവേ അഞ്ചായി തരംതിരിക്കാം: 1. അനലിറ്റിക്കൽ ഡോക്കുമെന്റേഷൻ, 2. സിസ്റ്റംസ് ഡോക്കുമെന്റേഷൻ, 3. പ്രോഗ്രാം ഡോക്കുമെന്റേഷൻ, 4. ഓപ്പറേഷൻസ് ഡോക്കുമെന്റേഷൻ, 5. യൂസെർ ഡോക്കുമെന്റേഷൻ.  
### അനലിറ്റിക്കൽ ഡോക്കുമെന്റേഷൻ
ഉപയോക്താക്കൾ ക്ക് പലപ്പോഴും അവരുടെ ആവശ്യങ്ങൾ വസ്തുനിഷ്ഠമായി നിർവചിക്കാനാവില്ല. ഉദാരഹരണമായി, ബില്ല് തയ്യാറാക്കി നൽകാനുള്ള ഒരു കംപ്യൂട്ടർ സോഫ്റ്റ്  വെയെറിന്റെ സാധ്യതയെക്കുറിച്ചുള്ള അന്വേഷണവുമായിട്ടാണ് ഉപയോക്താവ് വരുന്നത് എന്നു കരുതുക. പ്രൊഫോർമ ഇൻവോയിസ്, ക്യാഷ് ബില്ല് തുടങ്ങിയവയെക്കുറിച്ചെല്ലാം ഉപയോക്താവ് ബോധവാനായിരിക്കണമെന്നില്ല. ഇത്തരം സന്ദർഭങ്ങളിൽ സോഫ്റ്റ് വെയെർ എൻജിനീയർ ഉപയോക്താവുമായി വിശദമായ ചർച്ചയിൽ ഏർപ്പെട്ടശേഷം സിസ്റ്റത്തിന് ആവശ്യമുള്ള ഇൻപുട്ട് ഡേറ്റ, ഔട്ട്പുട്ടുകൾ എന്നിവ ഏതൊക്കെയാണെന്നു നിശ്ചയിച്ചുറപ്പിക്കുന്നു. തുടർന്ന്  ഇതിനെ പ്രോഗ്രാമിങ്ങിലൂടെ പ്രാവർത്തികമാക്കുന്നതിന് ഒരു ബാഹ്യ ചട്ടക്കൂട് തയ്യാറാക്കുന്നു. അതിനുശേഷം ഇതിനായി ആവശ്യമുള്ള വിഭവസമാഹരണത്തിന്റെ തോത്, പദ്ധതി ആസൂത്രണം ചെയ്ത് നടപ്പാക്കാൻ വേണ്ടിവരുന്ന സമയം എന്നിവയെക്കുറിച്ചുള്ള വിശദാംശങ്ങൾ സമാഹരിക്കുന്നു. ഉപയോക്താവിനെ ഇവയെക്കുറിച്ചെല്ലാം ബോധ്യപ്പെടുത്തുന്നതോടൊപ്പം അവയുടെ ഡോക്കുമെന്റേഷൻ കൂടി തയ്യാറാക്കുന്നു. ഇവയുടെ അടിസ്ഥാനത്തിലാണ് സിസ്റ്റം ഡിസൈനും, പ്രോഗ്രാമിങ്ങും നടത്തുന്നത്. പിൽക്കാല ആവശ്യങ്ങൾക്ക്, മേൽ സൂചിപ്പിച്ച മുൻ കാര്യങ്ങളുടെ വസ്തുനിഷ്ഠ വിവരണം ലഭിക്കുന്നതും, ഇത്തരം അനലിറ്റിക്കൽ ഡോക്കുമെന്റേഷനിലൂടെ മാതമാണ്. 

### സിസ്റ്റംസ് ഡോക്കുമെന്റേഷൻ

സോഫ്റ്റ് വെയെറിൽ ഉപയോഗിക്കുന്ന പ്രോഗ്രാമിങ് നടപടികൾ, അവ പരീക്ഷിക്കപ്പെടുന്ന രീതികൾ, അവ നടപ്പാക്കുന്നതിനുള്ള ക്രമീകരണങ്ങൾ തുടങ്ങി സോഫ്റ്റ് വെയെർ പ്രോഗ്രാമിന്റെ പ്രവർത്തന രീതികളെപ്പറ്റിയുള്ള സമഗ്രമായൊരു വിവരണമാണ് സിസ്റ്റംസ് ഡോക്കുമെന്റേഷൻ നൽകുന്നത്. വിശ്ലേഷണ ഡിസൈൻ രീതികളെക്കുറിച്ചുള്ള പരാമർശം സിസ്റ്റംസ് ഡോക്കുമെന്റേഷനിൽ ഉൾക്കൊള്ളിക്കുന്നു. പ്രോഗ്രാമിൽ പിശകുകൾ കണ്ടെത്തിയാൽ പരിഹരിക്കുന്നതിനും, പുതിയ ഹാർഡ് വെയെർ, സോഫ്റ്റ് വെയെർ എന്നിവയെ അവലംബിച്ച് പ്രവർത്തനം ക്രമീകരിക്കുന്നതിനും സിസ്റ്റംസ് ഡോക്കുമെന്റേഷൻ പരിശോധിക്കേണ്ടി വരും. ഓരോ കമ്പനിക്കും അവരുടേതായ രീതിയിൽ സിസ്റ്റംസ് ഡോക്കുമെന്റേഷൻ നടപ്പിലാക്കാം; അല്ലെങ്കിൽ എസ്എസ് എഡിഎം (സ്ട്രക്ചേഡ് സിസ്റ്റംസ് അനാലിസിസ് ആൻഡ് ഡിസൈൻ മെത്തേഡ്) പോലെ വ്യാപകമായി ലഭ്യമാകുന്ന ഏതെങ്കിലും മാനദണ്ഡം സ്വീകരിക്കാം. പ്രോഗ്രാം തയ്യാറാക്കുമ്പോൾ ഏതെല്ലാം തലത്തിൽ ഏതേതു വിധത്തിലുള്ള ഡോക്കുമെന്റേഷൻ എങ്ങനെ നൽകാനാവും എന്നു വിശദമാക്കുന്ന രൂപരേഖകളാണിവ. കൂടാതെ കംപ്യൂട്ടർ എയിഡഡ് സോഫ്റ്റ് വെയെർ എൻജിനീയറിങ് ടൂളുകളും (CASE tools) ഇതിനായി ഇന്ന് വിപണിയിൽ ലഭ്യമാണ്.

ഡേറ്റാ എലിമെന്റുകളുടെ പ്രതിനിധാനം, അവ തമ്മിലുള്ള പരസ്പര ബന്ധങ്ങൾ, ഡേറ്റാഫ്ളൊ, സിസ്റ്റം ഫ്ളൊച്ചാർട്ട് എന്നി വയെക്കുറിച്ചെല്ലാം സിസ്റ്റംസ് ഡോക്കുമെന്റേഷൻ വ്യക്തമായ അറിവ് നൽകണം. ഇതിനായി പ്രോഗ്രാമർ പലതരത്തിലുള്ള ഫ്ളോച്ചാർട്ട് ചിഹ്നങ്ങളും ഉപയോഗിക്കാറുണ്ട്.

### പ്രോഗ്രാം ഡോക്കുമെന്റേഷൻ

സോഫ്റ്റ് വെയെറിലെ മൊത്തം പ്രോഗ്രാമിങ് മോഡ്യൂളുകളുടെ വികാസത്തേയും അവ തമ്മിലുള്ള പ്രതിക്രിയകളേയും വിശദമാക്കുന്ന ഡോക്കുമെന്റേഷ നാണിത്. ഓരോ മോഡ്യൂളും തയ്യാറാക്കിയ വ്യക്തി, ഡേറ്റകൾ നിർവചിക്കപ്പെട്ടിരിക്കുന്ന രീതി, പ്രോഗ്രാം വിലയിരുത്താൻ ഉപയോഗിച്ച ടെസ്റ്റ് ഡേറ്റ മുതലായവയെക്കുറിച്ചുള്ള സമഗ്രവിവരങ്ങൾ ഇതിലൂടെ ലഭ്യമാക്കേണ്ടതുണ്ട്. ഇതിനായി വിവിധ സംവിധാനങ്ങൾ നിവവിലുണ്ട്. പ്രോഗ്രാം ലോജിക് വ്യക്തമാക്കുന്ന സ്യൂഡൊ-കോഡ് ആദ്യം തയ്യാറാക്കുന്നു. അതിനെ അടിസ്ഥാനമാക്കിയുള്ള പ്രോഗ്രാം ഫ്ളൊചാർട്ടിൽ നിന്ന്, ഏതെങ്കിലും ഒരു കംപ്യൂട്ടർ ഭാഷയിൽ പ്രോഗ്രാം എഴുതുമ്പോൾ, കമന്റുകളും ഉൾപ്പെടുത്തേണ്ടതാണ്. പ്രോഗ്രാമിലെ ചരങ്ങൾക്ക് അർഥസംപുഷ്ടമായ വാക്കുകൾ തിരഞ്ഞെടുക്കുന്നതാണ് ഉത്തമം. ഉദാഹരണമായി, ഒരു പേറോൾ പ്രോഗ്രാമിൽ തൊഴിലാളിയുടെ അടിസ്ഥാന ശമ്പളത്തെ A എന്നു സൂചിപ്പിക്കുന്നതിനു പകരം BASIC PAY അഥവാ   BAPAY എന്ന രീതിയിൽ സൂചിപ്പിക്കുന്നത് പിന്നീട് പ്രോഗ്രാം വായിക്കുന്നവർക്ക് സൗകര്യപ്രദമാവും. അതുപോലെ പ്രോഗ്രാമിലെ ഡു/ഫോർ/ തുടങ്ങിയ ലൂപ്പുകൾ മറ്റു പ്രോഗ്രാം വരികളെ അപേക്ഷിച്ച് അല്പം വലത്തോട്ടു മാറ്റി എഴുതിയാൽ പെട്ടെന്ന് ശ്രദ്ധയിൽപ്പെടുത്താൻ കഴിയും. പ്രോഗ്രാം ശരിയായി പ്രവർത്തിക്കാൻ ആവശ്യമായ ഹാർഡ് വെയെർ/സോഫ്റ്റ് വെയെർ ക്രമീകരണങ്ങളെക്കുറിച്ചും ഇതിൽ പ്രതിപാദ്യമുണ്ടാവാം.

പ്രോഗ്രാം ഡോക്കുമെന്റേഷന്റെ  വിവിധ തലങ്ങൾ ചാർട്ടിൽ വ്യക്തമാക്കിയിരിക്കുന്നു. ഒരു പ്രോഗ്രാം സ്യൂഡോ-കോഡും അതിന്റെ പ്രോഗ്രാം ഫ്ളൊചാർട്ടും യഥാക്രമം a,b എന്നിവയിൽ സൂചിപ്പിച്ചിട്ടുണ്ട്:

### ഓപ്പറേഷൻസ് ഡോക്കുമെന്റേഷൻ

സിസ്റ്റം പ്രവർത്തിപ്പിക്കാൻ നൽകേണ്ട നിർദ്ദേശങ്ങളുടെ വിവരണമാണിത്. ഡേറ്റ തയ്യാറാക്കാനുള്ള നടപടിക്രമങ്ങൾ, ഡേറ്റയെ സംരക്ഷിക്കാനുള്ള രീതികൾ, ഔട്ട്പുട്ട് ക്രമീകരണം, ഇതര നിർദ്ദേശങ്ങൾ എന്നിവയെല്ലാം ഇതിലുണ്ടായിരിക്കും.

### യൂസർ ഡോക്കുമെന്റേഷൻ

സൗകര്യപ്രദമായി സോഫ്റ്റ് വെയർ ഉപയോഗിക്കാനുള്ള വഴികൾ ഉപയോക്താവിന് വ്യക്തമാക്കിക്കൊടുക്കുന്ന ഡോക്കുമെന്റേഷനാണിത്. ഹാർഡ് വെയറുകൾ സജ്ജീകരിക്കേണ്ടരീതി, പ്രോഗ്രാം ലോഡ് ചെയ്യൽ, ചോദ്യങ്ങൾ സിസ്റ്റത്തിലേക്ക് നൽകേണ്ട രീതി, ഔട്ട്പുട്ടിനെക്കുറിച്ചുള്ള വിശകലനം തുടങ്ങിയവയെല്ലാം യൂസെർ ഡോക്കുമെന്റേഷനിൽ പ്രതിപാദിക്കപ്പെടണം. വിപണിയിലെത്തുന്ന സോഫ്റ്റ് വെയെറുകളെ ഉപയോക്താവ് ഏതു തരത്തിൽ സ്വീകരിക്കുന്നു എന്നതിനെ സ്വാധീനിക്കുന്ന പ്രധാനഘടകം കൂടിയാണിത്. സിസ്റ്റത്തിന്റെ പ്രവർത്തനത്തെ വിശദമാക്കുന്ന ട്യൂട്ടോറിയൽ പ്രോഗ്രാമുകളും ഇവയിൽപ്പെടുന്നു.

## കാലാനുഗത മാറ്റങ്ങൾ

ഡോക്കുമെന്റേഷൻ സഹിതം സോഫ്റ്റ് വെയെർ വിപണിയിലെത്തിയാലും കാലാനുഗതമായി സിസ്റ്റത്തിൽ മാറ്റങ്ങൾ വരുത്തേണ്ടിവരാം. ഇത്തരത്തിൽ സിസ്റ്റത്തിൽ വരുന്ന മാറ്റങ്ങളെ സംബന്ധിച്ചുള്ള പൂർണ വിവരങ്ങൾ ഉൾപ്പെടുത്തി പുതിയ ഡോക്കുമെന്റേഷൻ പുറത്തിറക്കണം. ഓരോ പ്രാവശ്യം മാറ്റം വരുമ്പോഴും അതിനെ സൂചിപ്പിക്കുന്ന ഡോക്കുമെന്റേഷനും തയ്യാറാക്കപ്പെടുന്നു. സിസ്റ്റത്തിന്റെ ഏറ്റവും പുതിയ അവസ്ഥയെ വ്യക്തമാക്കുന്നതാവണം അതിന്റെ ഡോക്കുമെന്റേഷൻ. സിസ്റ്റത്തിന് സമൂലമായ മാറ്റം വരുത്തുമ്പോൾ അതിന്റെ നിലവിലുള്ള ഡോക്കുമെന്റേഷൻ വിപണിയിൽ നിന്ന് പിൻവലിക്കേണ്ടത് അത്യാവശ്യമാണ്.

വർഗ്ഗം:സോഫ്റ്റ്‌വെയർ സാങ്കേതികവിദ്യ