Connascence
ಸಂರಚಿತ ವಿನ್ಯಾಸಕ್ಕಾಗಿ ಕಪ್ಲಿಂಗ್ ಮಾಡಿದಂತೆಯೇ ವಸ್ತು-ಆಧಾರಿತ ವಿನ್ಯಾಸದಲ್ಲಿ ಅವಲಂಬನೆ ಸಂಬಂಧಗಳಿಂದ ಉಂಟಾಗುವ ಸಂಕೀರ್ಣತೆಯ ಬಗ್ಗೆ ತರ್ಕಿಸಲು ಅನುವು ಮಾಡಿಕೊಡಲು ಮೆಯ್ಲಿರ್ ಪೇಜ್-ಜೋನ್ಸ್ ಕಂಡುಹಿಡಿದ ಸಾಫ್ಟ್ವೇರ್ ಗುಣಮಟ್ಟದ ಮೆಟ್ರಿಕ್ ಕೊನಾಸೆನ್ಸ್ () ಆಗಿದೆ. ಸಾಫ್ಟ್ವೇರ್ ಎಂಜಿನಿಯರಿಂಗ್ನಲ್ಲಿ, ವ್ಯವಸ್ಥೆಯ ಒಟ್ಟಾರೆ ನಿಖರತೆಯನ್ನು ಕಾಪಾಡಿಕೊಳ್ಳಲು ಒಂದು ಬದಲಾವಣೆಗೆ ಇನ್ನೊಂದನ್ನು ಮಾರ್ಪಡಿಸುವ ಅಗತ್ಯವಿದ್ದರೆ ಎರಡು ಘಟಕಗಳು ಹೊಂದಾಣಿಕೆಯಾಗುತ್ತವೆ. ಅವಲಂಬನೆ ಸಂಬಂಧಗಳ ವರ್ಗೀಕರಣವನ್ನು ಅನುಮತಿಸುವುದರ ಜೊತೆಗೆ, ವಿವಿಧ ರೀತಿಯ ಅವಲಂಬನೆಯನ್ನು ಹೋಲಿಸಲು ಒಂದು ವ್ಯವಸ್ಥೆಯನ್ನು ಸಹ ಕೊನಾಸೆನ್ಸ್ ಒದಗಿಸುತ್ತದೆ. ಸಂಭಾವ್ಯ ವಿನ್ಯಾಸಗಳ ನಡುವಿನ ಅಂತಹ ಹೋಲಿಕೆಗಳು ಸಾಮಾನ್ಯವಾಗಿ ತಂತ್ರಾಂಶದ ಗುಣಮಟ್ಟವನ್ನು ಸುಧಾರಿಸುವ ಮಾರ್ಗಗಳ ಬಗ್ಗೆ ಸುಳಿವು ನೀಡಬಹುದು. ಸಾಮೀಪ್ಯದ ಒಂದು ರೂಪವು ಸಾಮೀಪ್ಯದ ಅಂಶಗಳಲ್ಲಿ ಸರಿದೂಗಿಸುವ ಬದಲಾವಣೆಗಳ ಅಗತ್ಯವಿದ್ದರೆ ಅದನ್ನು ಬಲವಾದದ್ದು ಎಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ. ಅನ್ಯೋನ್ಯತೆಯ ರೂಪವು ಎಷ್ಟು ಬಲವಾಗಿರುತ್ತದೆಯೋ, ಸಂಬಂಧದಲ್ಲಿನ ಅಂಶಗಳನ್ನು ಬದಲಾಯಿಸುವುದು ಹೆಚ್ಚು ಕಷ್ಟ ಮತ್ತು ದುಬಾರಿಯಾಗಿರುತ್ತದೆ. ಕೊನಾಸೆನ್ಸ್ನ ಸ್ವೀಕಾರಾರ್ಹತೆಯು ಅದರ ಸಂಭವದ ಮಟ್ಟಕ್ಕೆ ಸಂಬಂಧಿಸಿದೆ. ಕೋನ್ನಸೆನ್ಸ್ ಸೀಮಿತ ಪ್ರಮಾಣದಲ್ಲಿ ಸ್ವೀಕಾರಾರ್ಹವಾಗಿರಬಹುದು ಆದರೆ ದೊಡ್ಡ ಪ್ರಮಾಣದಲ್ಲಿ ಸ್ವೀಕಾರಾರ್ಹವಲ್ಲ. ಉದಾಹರಣೆಗೆ, ಎರಡು ವಾದಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುವ ಕಾರ್ಯ ಅಥವಾ ವಿಧಾನವನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಸ್ವೀಕಾರಾರ್ಹವೆಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ. ಆದಾಗ್ಯೂ, ಕಾರ್ಯಗಳು ಅಥವಾ ವಿಧಾನಗಳು ಹತ್ತು ವಾದಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುವುದು ಸಾಮಾನ್ಯವಾಗಿ ಸ್ವೀಕಾರಾರ್ಹವಲ್ಲ. ಹೆಚ್ಚಿನ ಮಟ್ಟದ ಸಾಮೀಪ್ಯವನ್ನು ಹೊಂದಿರುವ ಅಂಶಗಳು ಕಡಿಮೆ ಮಟ್ಟದ ಅಂಶಗಳನ್ನು ಹೊಂದಿರುವ ಅಂಶಗಳಿಗಿಂತ ಹೆಚ್ಚಿನ ತೊಂದರೆ ಮತ್ತು ವೆಚ್ಚವನ್ನು ಹೊಂದಿರುತ್ತವೆ. ಸಾಮೀಪ್ಯವನ್ನು ವಿಶ್ಲೇಷಿಸುವಾಗ ಸ್ಥಳೀಯತೆಯು ಮುಖ್ಯವಾಗಿದೆ. ಒಳಗೊಂಡಿರುವ ಅಂಶಗಳು ನಿಕಟವಾಗಿ ಸಂಬಂಧ ಹೊಂದಿದ್ದರೆ ಬಲವಾದ ರೂಪಗಳು ಸ್ವೀಕಾರಾರ್ಹವಾಗಿವೆ. ಉದಾಹರಣೆಗೆ, ಅನೇಕ ಭಾಷೆಗಳು ಕಾರ್ಯಗಳು ಅಥವಾ ವಿಧಾನಗಳನ್ನು ಕರೆಯುವಾಗ ಸ್ಥಾನಿಕ ವಾದಗಳನ್ನು ಬಳಸುತ್ತವೆ. ಕರೆ ಮಾಡುವವರು ಮತ್ತು ಗದ್ದಲದ ಸಾಮೀಪ್ಯದಿಂದಾಗಿ ಸ್ಥಾನದ ಈ ಸಾಮೀಪ್ಯವು ಸ್ವೀಕಾರಾರ್ಹವಾಗಿದೆ. ಪಕ್ಷಗಳ ಸಾಪೇಕ್ಷ ಸಂಬಂಧವಿಲ್ಲದ ಕಾರಣದಿಂದಾಗಿ ವೆಬ್ ಸೇವೆಗೆ ಸ್ಥಾನಮಾನದ ವಾದಗಳನ್ನು ರವಾನಿಸುವುದು ಸ್ವೀಕಾರಾರ್ಹವಲ್ಲ. ಅದೇ ಶಕ್ತಿ ಮತ್ತು ಸಾಮರ್ಥ್ಯದ ಮಟ್ಟವು ಹೆಚ್ಚಿನ ತೊಂದರೆ ಮತ್ತು ಬದಲಾವಣೆಯ ವೆಚ್ಚವನ್ನು ಹೊಂದಿರುತ್ತದೆ, ಒಳಗೊಂಡಿರುವ ಅಂಶಗಳು ಹೆಚ್ಚು ದೂರದಲ್ಲಿರುತ್ತವೆ. ವಿಧಗಳು ಇದು ಸುಮಾರು ದುರ್ಬಲದಿಂದ ಬಲವಾದ ರೂಪಗಳವರೆಗೆ ಕ್ರಮಿಸಲಾದ ಕೆಲವು ರೀತಿಯ ಸಂಯೋಗಗಳ ಪಟ್ಟಿಯಾಗಿದೆ. ಕೋಡ್ ಅನ್ನು ದೃಷ್ಟಿಗೋಚರವಾಗಿ ಪರಿಶೀಲಿಸುವ ಮೂಲಕ ಕಂಡುಹಿಡಿಯಲು ಸಾಧ್ಯವಾದರೆ ಕೊನಾಸೆನ್ಸ್ಗಳನ್ನು "ಸ್ಥಿರ" ಎಂದು ಹೇಳಲಾಗುತ್ತದೆ. ಕನಸೆನ್ಸ್ ಆಫ್ ನೇಮ್ (ಸಿಒಎನ್) ಹೆಸರಿನ ಕನಸೆನ್ಸ್ ಎಂದರೆ ಒಂದು ಘಟಕದ ಹೆಸರಿನ ಮೇಲೆ ಅನೇಕ ಘಟಕಗಳು ಒಪ್ಪಿಕೊಳ್ಳಬೇಕು. ವಿಧಾನದ ಹೆಸರುಗಳು ಈ ರೀತಿಯ ಸಂಯೋಗಕ್ಕೆ ಒಂದು ಉದಾಹರಣೆಯಾಗಿದೆಃ ಒಂದು ವಿಧಾನದ ಹೆಸರು ಬದಲಾದರೆ, ಹೊಸ ಹೆಸರನ್ನು ಬಳಸಲು ಆ ವಿಧಾನದ ಕರೆ ಮಾಡುವವರನ್ನು ಬದಲಾಯಿಸಬೇಕು. ಕನಸೆನ್ಸ್ ಆಫ್ ಟೈಪ್ (ಸಿಒಟಿ) ಕನಸೆನ್ಸ್ ಆಫ್ ಟೈಪ್ ಎಂದರೆ ಒಂದು ಘಟಕದ ಪ್ರಕಾರದ ಬಗ್ಗೆ ಅನೇಕ ಘಟಕಗಳು ಒಪ್ಪಿಕೊಳ್ಳಬೇಕು. ಸ್ಥಿರವಾಗಿ ಟೈಪ್ ಮಾಡಲಾದ ಭಾಷೆಗಳಲ್ಲಿ, ವಿಧಾನದ ವಾದಗಳ ಪ್ರಕಾರವು ಈ ರೀತಿಯ ಸಂಯೋಗಕ್ಕೆ ಒಂದು ಉದಾಹರಣೆಯಾಗಿದೆ. ಒಂದು ವಿಧಾನವು ಅದರ ವಾದದ ಪ್ರಕಾರವನ್ನು ಪೂರ್ಣಾಂಕದಿಂದ ಸ್ಟ್ರಿಂಗ್ಗೆ ಬದಲಾಯಿಸಿದರೆ, ಆ ವಿಧಾನದ ಕರೆ ಮಾಡುವವರನ್ನು ಮೊದಲಿಗಿಂತ ವಿಭಿನ್ನವಾದ ವಾದವನ್ನು ರವಾನಿಸಲು ಬದಲಾಯಿಸಬೇಕು. ನಿರ್ದಿಷ್ಟ ಮೌಲ್ಯಗಳ ಅರ್ಥದ ಬಗ್ಗೆ ಅನೇಕ ಘಟಕಗಳು ಒಪ್ಪಿಕೊಳ್ಳಬೇಕಾದಾಗ ಅರ್ಥದ ಕನಸೆನ್ಸ್ (ಸಿಒಎಂ) ಅಥವಾ ಕನ್ವೆನ್ಶನ್ ಕನಸೆನ್ಸ್ (ಸಿಒಸಿ) ಅರ್ಥದ ಕನಸೆನ್ಸ್. ಸುಳ್ಳು ಮತ್ತು ಸತ್ಯವನ್ನು ಪ್ರತಿನಿಧಿಸಲು ಅನುಕ್ರಮವಾಗಿ 0 ಮತ್ತು 1 ಪೂರ್ಣಾಂಕಗಳನ್ನು ಹಿಂದಿರುಗಿಸುವುದು ಈ ರೀತಿಯ ಸಂಯೋಗಕ್ಕೆ ಒಂದು ಉದಾಹರಣೆಯಾಗಿದೆ. ಸ್ಥಾನದ ಕನಸೆನ್ಸ್ (ಸಿ. ಓ. ಪಿ.) ಸ್ಥಾನದ ಕನಸೆನ್ಸ್ ಎಂದರೆ ಮೌಲ್ಯಗಳ ಕ್ರಮದಲ್ಲಿ ಅನೇಕ ಘಟಕಗಳು ಒಪ್ಪಿಕೊಳ್ಳಬೇಕು. ವಿಧಾನ ಕರೆಗಳಲ್ಲಿನ ಸ್ಥಾನಿಕ ನಿಯತಾಂಕಗಳು ಈ ರೀತಿಯ ಸಂಯೋಗಕ್ಕೆ ಒಂದು ಉದಾಹರಣೆಯಾಗಿದೆ. ಕರೆ ಮಾಡುವವರು ಮತ್ತು ಕ್ಯಾಲೀ ಇಬ್ಬರೂ ಮೊದಲ, ಎರಡನೆಯ, ಇತ್ಯಾದಿಗಳ ಶಬ್ದಾರ್ಥಗಳನ್ನು ಒಪ್ಪಿಕೊಳ್ಳಬೇಕು. ನಿಯತಾಂಕಗಳನ್ನು. ಕಾನ್ನಾಸೆನ್ಸ್ ಆಫ್ ಅಲ್ಗಾರಿದಮ್ (ಸಿಒಎ) ಅಲ್ಗಾರಿದಮ್ನ ಕಾನ್ನಾಸೆನ್ಸ್ ಎಂದರೆ ಒಂದು ನಿರ್ದಿಷ್ಟ ಅಲ್ಗಾರಿದಮ್ನಲ್ಲಿ ಅನೇಕ ಘಟಕಗಳು ಒಪ್ಪಿಕೊಳ್ಳಬೇಕು. ಸಂದೇಶ ದೃಢೀಕರಣ ಸಂಕೇತಗಳು ಈ ರೀತಿಯ ಸಂಯೋಗಕ್ಕೆ ಒಂದು ಉದಾಹರಣೆಯಾಗಿದೆ. ವಿನಿಮಯದ ಎರಡೂ ಬದಿಗಳು ಒಂದೇ ರೀತಿಯ ಹ್ಯಾಶಿಂಗ್ ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬೇಕು ಅಥವಾ ದೃಢೀಕರಣವು ವಿಫಲಗೊಳ್ಳುತ್ತದೆ. ಚಾಲನೆಯಲ್ಲಿರುವ ಸಮಯದಲ್ಲಿ ಮಾತ್ರ ಕಂಡುಹಿಡಿಯಲು ಸಾಧ್ಯವಾದರೆ ಡೈನಾಮಿಕ್ ಕೊನಾಸೆನ್ಸ್ಗಳನ್ನು "ಡೈನಾಮಿಕ್" ಎಂದು ಹೇಳಲಾಗುತ್ತದೆ. ಅನೇಕ ಘಟಕಗಳ ಕಾರ್ಯಗತಗೊಳಿಸುವ ಕ್ರಮವು ಮುಖ್ಯವಾದಾಗ ಕಾರ್ಯಗತಗೊಳಿಸುವ ಕನಸೆನ್ಸ್ (ಸಿ. ಓ. ಇ.) ಆಗಿದೆ. ಕನಸೆನ್ಸ್ ಆಫ್ ಟೈಮಿಂಗ್ (ಸಿ. ಓ. ಟಿ) ಅನೇಕ ಘಟಕಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಸಮಯವು ಮುಖ್ಯವಾದಾಗ ಸಮಯದ ಕನಸೆನ್ಸ್ ಆಗಿದೆ. ಮೌಲ್ಯಗಳ ಹೊಂದಾಣಿಕೆ (ಸಿ. ಓ. ವಿ.) ಮೌಲ್ಯಗಳ ಹೊಂದಾಣಿಕೆಯು ಹಲವಾರು ಮೌಲ್ಯಗಳು ಒಟ್ಟಿಗೆ ಬದಲಾಗಬೇಕಾದಾಗ. ಕನಸೆನ್ಸ್ ಆಫ್ ಐಡೆಂಟಿಟಿ (ಸಿ. ಓ. ಐ.) ಎಂದರೆ ಅನೇಕ ಘಟಕಗಳು ಒಂದೇ ಅಸ್ತಿತ್ವವನ್ನು ಉಲ್ಲೇಖಿಸಬೇಕು. ಕನಸೆನ್ಸ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡುವುದರಿಂದ ಸಾಫ್ಟ್ವೇರ್ ಸಿಸ್ಟಮ್ನ ಬದಲಾವಣೆಯ ವೆಚ್ಚವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ. ಕನಸೆನ್ಸ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡುವ ಒಂದು ಮಾರ್ಗವೆಂದರೆ ಬಲವಾದ ಕನಸೆನ್ಸ್ ಅನ್ನು ದುರ್ಬಲ ರೂಪಗಳಾಗಿ ಪರಿವರ್ತಿಸುವುದು. ಉದಾಹರಣೆಗೆ, ಹಲವಾರು ವಾದಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುವ ವಿಧಾನವನ್ನು ಹೆಸರಿಸಲಾದ ನಿಯತಾಂಕಗಳನ್ನು ಬಳಸಲು ಬದಲಾಯಿಸಬಹುದು. ಇದು ಸಿ. ಓ. ಪಿ. ಯಿಂದ ಸಿ. ಓ. ಎನ್. ಗೆ ಸಂಯೋಜನೆಯನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ. ಮಟ್ಟವನ್ನು ಕಡಿಮೆ ಮಾಡುವುದು ಮತ್ತು ಒಳಗೊಂಡಿರುವ ಅಂಶಗಳ ಸ್ಥಳವನ್ನು ಹೆಚ್ಚಿಸುವುದು ಸಂಯೋಗವನ್ನು ಕಡಿಮೆ ಮಾಡುವ ಇತರ ಮಾರ್ಗಗಳಾಗಿವೆ. ಗ್ರ್ಯಾಂಡ್ ಯೂನಿಫೈಡ್ ಥಿಯರಿ ಆಫ್ ಸಾಫ್ಟ್ವೇರ್ ಡಿಸೈನ್, ಜಿಮ್ ವೈರಿಚ್ ಮೆಯಿಲಿರ್ ಪೇಜ್-ಜೋನ್ಸ್, ಎನ್ಕ್ಯಾಪ್ಸುಲೇಷನ್ ಮತ್ತು ಸಂಯೋಗದ ಮೂಲಕ ತಂತ್ರಗಳನ್ನು ಹೋಲಿಸುವುದು, ಎಸಿಎಂ ಸಂವಹನ, ಸಂಪುಟ 35, ಸಂಚಿಕೆ 9 ಆಬ್ಜೆಕ್ಟ್ ಓರಿಯೆಂಟೆಡ್ ಡಿಸೈನ್, ಮೆಯಿಲಿರ್ ಪೇಜ್-ಜೋನ್ಸ್, ಡಾರ್ಸೆಟ್ ಹೌಸ್ ಪಬ್ಲಿಷಿಂಗ್, ಯುಎಂಎಲ್ನಲ್ಲಿ ಆಬ್ಜೆಕ್ಟ್-ಓರಿಯೆಂಟೆಡ್ ಡಿಸೈನ್ನ ಮೂಲಭೂತ ಅಂಶಗಳು, ಮೆಯಿಲಿರ್ ಪೇಜ್-ಜೋನ್ಸ್, ಅಡಿಸನ್-ವೆಸ್ಲಿ ಪಬ್ ಕಂ; ಮ್ಯಾನುಯೆಲ್ ರಿವೆರೊ; ಆಗಸ್ಟ್ 9,2018; ಕೊನಾಸೆನ್ಸ್ಃ ಜಾವಾ ಸಾಫ್ಟ್ವೇರ್ ವಾಸ್ತುಶಿಲ್ಪದಲ್ಲಿ ಆಬ್ಜೆಕ್ಟ್-ಓರಿಯೆಂಟೆಡ್ ಡಿಸೈನ್ನಲ್ಲಿ ಒಂದು ನೋಟ