ಶುಕ್ರವಾರ, ಡಿಸೆಂಬರ್ 13, 2013

ತರ್ಕದ ಹರಿವಿಗೆ ಫ್ಲೋಚಾರ್ಟ್ ನೆರವು

ಟಿ. ಜಿ. ಶ್ರೀನಿಧಿ

ಕಂಪ್ಯೂಟರಿಗೆ ಏನಾದರೂ ಕೆಲಸ ಮಾಡುವಂತೆ ಹೇಳಬೇಕಾದರೆ ಕ್ರಮವಿಧಿ (ಪ್ರೋಗ್ರಾಮ್) ಬರೆಯಬೇಕು ತಾನೆ, ಹಾಗೆ ಬರೆಯುವಾಗ ನಮ್ಮ ಅಗತ್ಯಗಳನ್ನೆಲ್ಲ ಒಂದೇ ಬಾರಿಗೆ ಕಂಪ್ಯೂಟರಿನ ಭಾಷೆಯಲ್ಲೇ ಹೇಳುವುದು ಕೊಂಚ ಕಷ್ಟವಾಗಬಹುದು. ಹಾಗಾಗಿ ಕ್ರಮವಿಧಿ ರಚನೆಯ ಮೊದಲು ಅದರ ವಿವರಗಳನ್ನೆಲ್ಲ ಒಂದು ಕಡೆ ಬರೆದು, ವಿಶ್ಲೇಷಿಸಿ ಆನಂತರವಷ್ಟೇ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಕೆಲಸ ಕೈಗೆತ್ತಿಕೊಳ್ಳುವುದು ಐಟಿ ಜಗತ್ತಿನ ಸಂಪ್ರದಾಯ.

ಈ ಕೆಲಸದಲ್ಲಿ ಹಲವಾರು ತಂತ್ರಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ನಾವು ಬರೆಯಲಿರುವ ಕ್ರಮವಿಧಿಯ ಪ್ರತಿಯೊಂದು ಹೆಜ್ಜೆಯನ್ನೂ ಗುರುತಿಸುವುದು, ಹಾಗೂ ಪ್ರತಿ ಹೆಜ್ಜೆಯಲ್ಲೂ ನಮ್ಮ ಕ್ರಮವಿಧಿ ಹೇಗೆ ವರ್ತಿಸಬೇಕು ಎಂದು ತೀರ್ಮಾನಿಸಿಕೊಳ್ಳಲು ನೆರವಾಗುವುದು ಈ ತಂತ್ರಗಳೆಲ್ಲವುದರ ಸಮಾನ ಗುರಿ. ಇಂತಹ ತಂತ್ರಗಳಲ್ಲೊಂದು ಫ್ಲೋಚಾರ್ಟ್, ಅಂದರೆ ಪ್ರವಾಹನಕ್ಷೆ.


ಮೊದಲಿಗೆ ಒಂದು ಉದಾಹರಣೆಯನ್ನು ಗಮನಿಸೋಣ. ಶಾಲೆಯಿಂದ ಮನೆಗೆ ಬಂದ ವಿದ್ಯಾರ್ಥಿ ಏನೆಲ್ಲ ಮಾಡುತ್ತಾನೆ? ತಿಂಡಿ ತಿಂದು ಸ್ವಲ್ಪಹೊತ್ತು ಆಟವಾಡಿ ಆನಂತರ ಓದಿಕೊಳ್ಳಲು ಕೂರುತ್ತಾನೆ, ಓದಿ ಮುಗಿದಮೇಲೆ ಊಟಮಾಡಿ ಟೀವಿ ನೋಡಿ ನಿದ್ರಿಸುತ್ತಾನೆ - ಅಷ್ಟೇ ತಾನೆ?

ವಿವರಣೆಯ ದೃಷ್ಟಿಯಿಂದ ಸರಿಯೇ ಇರಬಹುದು, ಆದರೆ ಇಂತಹ ವಿವರಣೆಗಳು ಕಂಪ್ಯೂಟರಿಗೆ ಅರ್ಥವಾಗುವುದಿಲ್ಲ. ಹಾಗಾದರೆ ಕಂಪ್ಯೂಟರಿಗೆ ಅರ್ಥವಾಗಲು ಇನ್ನೇನೆಲ್ಲ ವಿವರಗಳು ಬೇಕು?

ಮತ್ತೊಮ್ಮೆ ಪ್ರಯತ್ನಿಸೋಣ:
ಹೆಜ್ಜೆ ೧: ತಿಂಡಿ ತಿನ್ನು
ಹೆಜ್ಜೆ ೨: ಆಟ ಆಡು
ಹೆಜ್ಜೆ ೩: ಪಾಠ ಓದಿಕೋ
ಹೆಜ್ಜೆ ೪: ಊಟ ಮಾಡು
ಹೆಜ್ಜೆ ೫: ಟೀವಿ ನೋಡು
ಹೆಜ್ಜೆ ೬: ನಿದ್ರಿಸು

ಇದು ಮೊದಲ ವಿವರಣೆಗಿಂತ ಉತ್ತಮವಾಗಿದ್ದರೂ ಇಲ್ಲಿ ಯಾವ ಕೆಲಸವನ್ನು ಎಷ್ಟು ಹೊತ್ತು ಮಾಡಬೇಕು ಎನ್ನುವ ಬಗ್ಗೆ ಯಾವ ವಿವರವೂ ಇಲ್ಲ. ಉದಾಹರಣೆಗೆ - ತಿಂಡಿ ತಿಂದಾದ ಮೇಲೆ ಆಟದ ಸಮಯ ಹತ್ತು ನಿಮಿಷವೋ ಎರಡು ಗಂಟೆಯೋ?

ಇಂತಹ ಪ್ರಶ್ನೆಗಳಿಗೂ ಉತ್ತರಿಸಬೇಕು ಎಂದರೆ ನಮ್ಮ ವಿವರಣೆಯನ್ನು ಇನ್ನಷ್ಟು ಸ್ಪಷ್ಟವಾಗಿಸಬೇಕು. ಹೀಗೆ:
ಹೆಜ್ಜೆ ೧: ತಿಂಡಿ ತಿನ್ನು
ಹೆಜ್ಜೆ ೨: ಆಟ ಆಡು
ಹೆಜ್ಜೆ ೩: ಆರು ಗಂಟೆಗೆ ಮನೆಗೆ ಬಂದು ಪಾಠ ಓದಿಕೋ
ಹೆಜ್ಜೆ ೪: ಒಂಬತ್ತು ಗಂಟೆಗೆ ಊಟ ಮಾಡು
ಹೆಜ್ಜೆ ೫: ಟೀವಿ ನೋಡು
ಹೆಜ್ಜೆ ೬: ಹತ್ತು ಗಂಟೆಗೆ ನಿದ್ರಿಸು

ಈ ವಿವರಣೆ ಮೊದಲೆರಡು ವಿವರಣೆಗಳಿಗಿಂತ ಹೆಚ್ಚು ಸ್ಪಷ್ಟವಾಗಿದೆ, ನಿಜ. ಆದರೆ ಹೆಜ್ಜೆಗಳ ಸಂಖ್ಯೆ ಜಾಸ್ತಿಯಾಗುತ್ತ ಹೋದಂತೆ ಇದೂ ಕ್ಲಿಷ್ಟವೆಂದು ತೋರಬಹುದು. ಆ ಸಮಸ್ಯೆಯನ್ನು ತಪ್ಪಿಸಲು ನಿರ್ದೇಶನಗಳ ಈ ಸರಣಿಯನ್ನು ಚಿತ್ರರೂಪದಲ್ಲಿ ನಿರೂಪಿಸುವುದು ಸಾಧ್ಯ. ಅಂತಹ ನಿರೂಪಣೆಯೇ ಫ್ಲೋಚಾರ್ಟ್, ಅಂದರೆ ಪ್ರವಾಹನಕ್ಷೆ.

ಯಾವುದೇ ಕೆಲಸವನ್ನು ಪ್ರಾರಂಭಿಸುವುದರಿಂದ ಮುಗಿಸುವವರೆಗಿನ ಎಲ್ಲ ಹೆಜ್ಜೆಗಳನ್ನೂ ಇಲ್ಲಿ ಚಿತ್ರರೂಪದಲ್ಲಿ ಪ್ರತಿನಿಧಿಸಲಾಗುತ್ತದೆ. ಅಂದರೆ ಪ್ರತಿಯೊಂದು ಹೆಜ್ಜೆಯನ್ನೂ ಒಂದೊಂದು ಪೆಟ್ಟಿಗೆಯಲ್ಲಿ ಬರೆದು ಯಾವ ಹೆಜ್ಜೆಯ ನಂತರ ಯಾವ ಹೆಜ್ಜೆಗೆ ಯಾವಾಗ, ಹೇಗೆ ಮುನ್ನಡೆಯಬೇಕು ಎನ್ನುವುದನ್ನು ಬಾಣದ ಗುರುತಿನಿಂದ ತೋರಿಸಲಾಗುತ್ತದೆ.

ಬೇರೆಬೇರೆ ರೀತಿಯ ಕೆಲಸಗಳನ್ನು ಬೇರೆಬೇರೆ ರೀತಿಯ ಆಕೃತಿಗಳಿಂದ ಗುರುತಿಸುವುದು ಸಾಮಾನ್ಯ ಅಭ್ಯಾಸ. ಕೆಲಸದ ಆರಂಭ-ಅಂತ್ಯದ ಹೆಜ್ಜೆಗಳನ್ನು ವೃತ್ತಗಳೊಳಗೆ ಬರೆದರೆ ನಿರ್ದಿಷ್ಟ ಕೆಲಸಮಾಡುವಂತೆ ಹೇಳುವ (ಉದಾ: ಆಟ ಆಡು, ಪಾಠ ಓದಿಕೋ ಇತ್ಯಾದಿ) ಹೆಜ್ಜೆಗಳನ್ನು ಆಯತಾಕೃತಿಗಳೊಳಗೆ ಬರೆಯಲಾಗುತ್ತದೆ. ಇಂತಹ ಪ್ರತಿಯೊಂದು ಹೆಜ್ಜೆಯಿಂದ ಮುಂದಿನ ಹೆಜ್ಜೆಗೆ ಬಾಣದ ಗುರುತಿನಿಂದ ತೋರಿಸಲಾದ ಒಂದು ಮಾರ್ಗವಷ್ಟೆ ಇರುವುದು ಸಾಧ್ಯ.

ಪಾಠ ಓದಿಕೊಳ್ಳಲು ಶುರುಮಾಡುವ ಮುನ್ನ ಆರುಗಂಟೆ ಆಗಿದೆಯೋ ಇಲ್ಲವೋ ನೋಡಬೇಕಲ್ಲ, ಅಂತಹ ಪ್ರಶ್ನೆಗಳನ್ನು ವಜ್ರಾಕೃತಿಯಲ್ಲಿ (ರಾಂಬಸ್) ಬರೆಯಲಾಗುತ್ತದೆ. ಆರೂವರೆ ಆಗಿದ್ದರೆ ಏನು ಮಾಡಬೇಕು, ಆಗಿಲ್ಲದಿದ್ದರೆ ಏನು ಮಾಡಬೇಕು ಎನ್ನುವ ನಿರ್ದೇಶನವನ್ನು ಎರಡು ಪ್ರತ್ಯೇಕ ಬಾಣದ ಗುರುತುಗಳು ತೋರಿಸುತ್ತವೆ.

ರಚನೆ, ವಿನ್ಯಾಸ ಹಾಗೂ ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದರಲ್ಲಿನ ಸರಳತೆಯಿಂದಾಗಿ ಪ್ರವಾಹ ನಕ್ಷೆಗಳು ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಕಲಿಕೆಯಲ್ಲಿ ಮಹತ್ವದ ಪಾತ್ರ ವಹಿಸುತ್ತವೆ. ವಿದ್ಯಾರ್ಥಿಗಳಷ್ಟೇ ಅಲ್ಲ, ಐಟಿ ಕ್ಷೇತ್ರದಲ್ಲಿ ಕಾರ್ಯನಿರತರಾಗಿರುವವರು ಕೂಡ ಕ್ರಮವಿಧಿ ರಚನೆ ಸೇರಿದಂತೆ ಹಲವು ಪ್ರಕ್ರಿಯೆಗಳ ವಿಶ್ಲೇಷಣೆ, ದಾಖಲಿಸುವಿಕೆ ಹಾಗೂ ನಿರ್ವಹಣೆಯಲ್ಲಿ ಪ್ರವಾಹ ನಕ್ಷೆಗಳನ್ನು ಬಳಸುತ್ತಾರೆ.

ಡಿಸೆಂಬರ್ ೧೩, ೨೦೧೩ರ ಉದಯವಾಣಿಯಲ್ಲಿ ಪ್ರಕಟವಾದ ಲೇಖನ

ಕಾಮೆಂಟ್‌ಗಳಿಲ್ಲ:

badge