මෘදුකාංග නිර්මාණකරණයේ මූලික හරයන්



මෘදුකාංග නිර්මාණ ශිල්පය, නැතහොත් Programming යැයි පැවසූ විට බොහෝ විට කෙනෙක් ගේ සිතේ මැවෙන්නේ පරිගණකයක් ඉදිරියේ යතුරු පුවරුව ඔබනා රුවකි. එය බොහෝ සෙයින් වැරැදි චිත්‍රයකි. ඒ වැරැදි චිත්‍රය ඔබ මනසින් ඉවත් කිරීම පිණිස මෙන්ම මෘදුකාංග නිර්මාණ ශිල්පයේ ඇල්ම ඇති, ඉගෙනගැනීමේ ආශාව ඇති අයගේ අවබෝධය පිණිස මෙම පෝස්ටුව ලියා තබමි.

ගැටළු නිරාකරණය.

අප මෘදුකාංගයක් ලියනු ලබන්නේ කුමන හෝ ගැටළුවකට විසඳුමක් සෙවීමේ අරමුණෙනි. නැතහොත් යම් අරමුණක් ඉටුකර ගැනීම සඳහා ය. එබැවින්, යම් ගැටළුවක් නිරාකරණය කිරීමේ පියවරයන් මෙලෙස විග්‍රහ කරනු ලැබේ.

  1. ප්‍රශ්ණය විශ්ලේෂණය කිරීම - ගැටළුව ගැන මූලික අවබෝධයක් ලබා ගැනීම සහ ගැටළුවේ ස්වභාවය ගැන යම් වටහා ගැනීමක් ඇති කර ගැනිම.
  2. ගැටළුව නිරාකරණය සඳහා කළ යුතු දෑ ගැන මූලික අවබෝධයක් ලබා ගැනීම - ඇති වී ඇති ගැටළුවට විසඳුමක් සොයා එම විසඳුම කරා යාම සඳහා කළ යුත්තේ කුමක් දැයි විමසා බැලීම.
  3. ගැටළුව විසඳීම සඳහා පියවර ඉදිරිපත් කිරීම. - ගැටළුවක් විසඳීමේ පියවරයන් සමූහයට ඇල්ගොරිතමයක් යැයි කියනු ලැබේ. මෙම ඇල්ගොරිතමය නිර්මාණය කිරීම මෙම කොටසේදී සිදු කරයි.
  4. විසඳුම ස්ථාපිත කිරීම. - මෙම පියවරයේදී පෙර පියවරේදී සැලසුම් කළ ඇල්ගොරිතමය ක්‍රමලේඛණය කිරීම සහ අදාළ පද්ධතියට ඇතුළත් කිරීම අයත් වේ.
  5. පරීක්ෂා කිරීම සහ දෝෂ නිරාකරණය - පෙර පියවරයේදී ස්ථාපනය කළ විසඳුම, පෙර බලාපොරොත්තු වූ ආකාරයේ ප්‍රතිඵල ලබා දෙන්නේද යන වග පරීක්ෂා කිරීම සහ එසේ අදාළ විසඳුම කරා යාමේදී ඇතිවන දෝෂ නිරාකරණය කිරීම මෙහිදී සිදුවේ.

මෘදුකාංග නිර්මාණකරණය යනු... (Programming)

  • මෘදුකාංග නිර්මාණකරණය යනු ගැටළු නිරාකරණය කිරීමේ ක්‍රියාවලියකි.
  • පරිගණකය හරහා යම් කාර්යයක් සිදු කර ගැනීම සඳහා පිළිවෙළක් අනුව, උපදෙස්, විධාන සමූහයක් ලේඛනය කරීමයි.
  • මේ ආකාරයට ලියනු ලබන උපදෙස්, විධාන සමූහයකට පරිගණක වැඩසටහනක් හෝ script එකක් යැයි කියනු ලැබේ.
  • ඔබට පරිගණකය හරහා සිදු කර ගැනීමට අවශ්‍ය දෑ ඇල්ගොරිතම භාවිතයෙන් විස්තර කිරීමද මෘදුකාංග නිර්මාණකරණය යටතට ගැනේ.
  • මෙවැනි පරිගණක පාලනය කළ හැකි උපදෙස්, විධාන නිර්මාණය කරන්නන් මෘදුකාංග නිර්මාණ ශිල්පීන් (programmers) ලෙස හැඳින්වේ.

වැඩසටහන්  සැලසුම් නිර්මාණය

වැඩසටහන ලිවීමට පෙර  Top Down Design එකක් සෑදීම වැඩසටහන් සැලසුම නිර්මාණය කිරීමේ ප්‍රධාන ක්‍රියාවයි. Top Down Design එකක් යනු වැඩසටහන ක්‍රියා කරන පිළිවෙළ මුල සිට අගට චිත්‍රණය කිරීමකි. මෙය වාර්තාවක් ලිවීමට පෙර සකසන දළ සටහනක් වැනිය. 

මෙහි ඇති වැදගත්කම :-

  1. අදහස් සංවිධිත ලෙස සැලසුම් කිරීම.
  2. ව්‍යාපෘතියේ ප්‍රමාණය විශාල වන තරමටම මෙහි වැදගත්කමද වැඩිවේ.
  3. මූලික අදහස් වල සිට සූක්ෂම විස්තර දක්වා විස්තර කිරීම.

නිර්මාණය සහ සංවර්ධනය

  1. ගැටළුව විශ්ලේෂණය කිරීම
  2. විසඳුම ගොඩනැඟීම (developing)
  3. විසඳුම ක්‍රමලේඛණය
  4. පරීක්ෂා කිරීම හා දෝෂ නිරාකරණය.



1) ගැටළුව විශ්ලේෂණය කිරීම

ගැටළුව ගැන මුළුමනින්ම අවබෝධ කරගැනීම.
    • පරිගණකයෙන් නිපදවා ගත යුතු තොරතුරු මොනවාදැයි හඳුනා ගැනීම.
    • පරිගණකයට ඇතුළත් කළ යුතු දත්ත/තොරතුරු හඳුනා ගැනීම.
    • යම් විශේෂ සංසිද්ධි තිබේද යන්න සලකා බලා ඒවා හැසිරවිය යුතු ආකාරය හඳුනා ගැනීම.
ගැටළුව විසඳීම සඳහා අවශ්‍යතා හඳුනාගැනීම.
    • පරිශීලකයන් වැඩසටහන සමඟ අන්‍යොන්‍ය ක්‍රියාකාරකම්  පැවැත්විය යුතු ද යන්න.
    • වැඩසටහන විසින් දත්ත මෙහෙයවීම් සිදු කළ යුතුද යන්න.
    • ප්‍රතිදානය කුමක්ද යන්න.

මෙම අවශ්‍යතා මොනවාද යන්න සොයා ගැනීම අදාළ ක්ෂේත්‍රයේ අත්දැකීම් සහිත අය විසින් සිදු කළ යුතුය.

ගැටළුව විසඳීම සඳහා අවශ්‍යතා ලියවිල්ලක ආකාරයෙන් ඉදිරිපත් කෙරේ. මේ සඳහා බොහෝවිට සාමාන්‍ය ඉංග්‍රීසි භාෂාව හෝ වෙනත් භාෂාවක් යොදාගනී.

මෙම පියවරේදී කිසිම ආකාරයක ක්‍රමලේඛණය කිරීමක් (programming) සිදු කරනු නොලැබේ.

2) විසඳුම ගොඩනැඟීම (developing)

වැඩසටහනේ සැලසුම ගොඩනැඟීම ලෙස හැඳින්විය හැක.
අදානය ලබාගෙන අදාළ ප්‍රතිදානය ලබා දිය හැකි ඇල්ගොරිතමයක් ගොඩනංවනු ලැබේ.

වැඩසටහ වඩා සංකීර්ණ නම්, එය කොටස් වලට වෙන් කර, එම වෙන් කළ කොටස් නිමා කළ පසු එම කොටස් නියම පිළිවෙලට එකලස් කිරීම මඟින්, අපේක්ෂිත ප්‍රතිදානය ලබා දෙන, ප්‍රධාන වැඩසටහන සාදාගනී.

Top Down Design

මෙම ක්‍රමයේදී,
වැඩසටහන විසින් සිදු කළ යුතු ප්‍රධාන කාර්යය වෙන වෙනම කුඩා මොඩියුල ලෙස බෙදා දැක්වේ.
මුලින්, සම්පූර්ණ විසඳුම ගැන අවබෝධයක් ලබාගනී.
දෙවනුව එම විසඳුම කොටස් වලට බෙදනු ලැබේ.
එම බෙදනු ලැබූ මොඩියුලත්, අවශ්‍ය පරිදි පෙර ලෙසම නැවත බෙදා දක්වනු ලැබේ.


සංරචක නිර්මාණය කිරීම. (Design Components)

දත්ත ව්‍යුහ (Data Structures)
දත්ත පිළිබඳ විස්තරය, ඒවායේ නම්, දත්ත වර්ගය, සහ අගයන් පරාසය.

ඇල්ගොරිතම
ඇල්ගොරිතමයක් යනු යම් නිශ්චිත කාලයකදී, යම් කාර්යයක් සිදු කරන ආකාරය නිරවද්‍යව, නිරවුල්ව, පියවරෙන් පියවරට පැහැදිලි කිරීමයි.
එය සියළු ක්‍රමලේඛ භාෂා වලින් ස්වායත්ත වේ.

3) විසඳුම ක්‍රමලේඛණය කිරීම

ඇල්ගොරිතමය Pseudo කේතයක් ආකාරයෙන් ලිවීම.
පරිගණක ක්‍රමලේඛ භාෂාවක් භාවිතා කර Pseudo කේතය Source Code එකක් බවට පත් කිරීම.
ලියන ලද උපදෙස් ප්‍රකාශයේ  Syntax එක (වාක්‍ය වින්‍යාසය) පරීක්ෂා කිරීම.
කේතය compile කර, syntax එකේ දෝෂ නිරාකරණය කිරීම.

4) වැඩසටහන පරීක්ෂා කර බලා නිවැරැදි කිරීම

පරීක්ෂා කිරීම සඳහා, තෝරා ගත් දත්ත නියැදියක් ගෙන ඒවා සඳහා පිළිතුරු ගණනය කිරීම.
වැඩසටහන ධාවනය කර ඒ අදාළ බලාපොරොත්තු වූ ප්‍රතිඵල පරිගණකය විසින් ලබා දේ දැයි පරීක්ෂා කිරීම.
එලෙස බලාපොරොත්තු වූ පිළිතුරු නොලැබේ නම්, දෝෂය ඇති තැන සොයා එම දෝෂය නිවාරණය කිරීම.
කේතය අහඹු ලෙස වෙනස් කර අදාළ පිළිතුරු ලැබේ යැයි බලාපොරොත්තු වීමෙන් වළකින්න.

පරිගණක ක්‍රමලේඛ භාෂා පරිවර්තනය

පරිගණක වලට වටහාගත හැක්කේ යාන්ත්‍රික භාෂාව (machine language/code) පමණි.
පරිවර්තකයක් මඟින් කේත සටහන (source code) යාන්ත්‍රික භාෂාවට පරිවර්තනය කරනු ලැබේ.
විවිධ වර්ගයේ පරිවර්තක වැඩසටහන් පවතී.

Assemblers

Assembly භාෂාවෙන් ලියූ කේත යාන්ත්‍රික භාෂාව බවට පරිවර්තනය කරයි.
සාමාන්‍යයෙන්, එක් පහළ මට්ටමක (low-level) භාෂාවකින් ලියූ statement එකක් එක් යාන්ත්‍රික භාෂා උපදෙස් කේතයක් බවට හරවනු ලැබේ.
සාමාන්‍යයෙන් වගු පරීක්ෂා ක්‍රම වේදය භාවිතා වේ.

Interpreters

වරකට එක බැගින්, ඉහළ මට්ටමේ (high level) භාෂාවකින් ලියන ලද statements, පරිවර්තනය කරනු ලැබේ.
ක්ෂණිකවම දෝෂ පණිවුඩ නිර්මාණය කරයි. (එතැනින් වැඩසටහන නතර වේ.)

Compilers

එක්වරම, මුළු කේත සටහනම (source code) යාන්ත්‍රික භාෂාව බවට පරිවර්තනය කර එම පරිවර්තනය කළ කේත සටහන ගබඩා කරගනී.
මෙම compiler එක මඟින් නිපදවා දෙන කේත සටහන object code එකක් ලෙස හැඳින්වේ.
සාමාන්‍යයෙන්, මුළු කේත සටහනම පරිවර්තනය කිරීමෙන් අනතුරුව දෝෂ වාර්තාව ලබා දේ.

C භාෂාවෙන් ලියූ කේතයක් Compile වන ආකාරය.


පාලන ව්‍යුහයන් (Control Structures)

Sequence

දෙන ලද අනුපිළිවෙළින් නියම කරන ලද උපදෙස් ක්‍රියාත්මක කිරීම මෙනමින් හැඳින්වේ.
මෙය සාමාන්‍යයෙන් ක්‍රියාත්මක වෙන (පෙරනිමි - default) පාලන ව්‍යුහයයි.

Selection

මාර්ග කිහිපයකින්, තෝරාගත් මාර්ගයක / මාර්ග වල ගමන් කිරීමයි.

Iteration

එක් විධානයක් හෝ විධාන එකතුවක්, නැවත නැවතත් ක්‍රියාත්මක කිරීම මෙනමින් හැඳින්වේ.

Invocation

වෙනම ලියා තබන ලද, සංකීර්ණ කාර්යයක් ක්‍රියාවට නැංවීම.

***

තවත් පාඩමකින් නැවත හමුවෙමු!

Post a Comment

0 Comments