पेशेवर गतिविधि के दौरान, एक प्रोग्रामर को कई स्थितियों से निपटना पड़ता है जिसके लिए स्रोत कोड के बड़े अंशों या यहां तक कि संपूर्ण अनुप्रयोगों के जटिल विश्लेषण की आवश्यकता होती है। सफल समाधानों और प्रथाओं की खोज करना, पहले से लागू एल्गोरिदम का विश्लेषण करना, या किसी अन्य प्रोजेक्ट को किसी टीम में स्थानांतरित करना अक्सर किसी और द्वारा लिखे गए प्रोग्राम को अलग करना आवश्यक बनाता है।
ज़रूरी
- - स्रोत कोड देखने का कार्यक्रम;
- - संभवतः रिवर्स इंजीनियरिंग और केस टूल्स।
निर्देश
चरण 1
पार्स किए जा रहे कार्यक्रम के नियंत्रण हस्तांतरण के प्रवाह की जांच करें प्रवेश बिंदु को पहचानें। उदाहरण के लिए, यह सी और सी ++ में मुख्य कार्य है, एक अज्ञात प्रथम-स्तरीय संरचना ब्लॉक की शुरुआत, पास्कल में एक बिंदु के साथ END कीवर्ड के साथ समाप्त होता है। प्रवेश बिंदु से शुरू होकर, के सभी मार्गों का पता लगाएं कार्यों, प्रक्रियाओं, कक्षाओं के तरीकों के लिए कॉल। एक उच्च स्तरीय नियंत्रण प्रवाह आरेख बनाइए। इस प्रक्रिया को सरल बनाने के लिए, आप विभिन्न रिवर्स इंजीनियरिंग टूल का उपयोग कर सकते हैं। पार्स किए गए प्रोग्राम के संरचनात्मक तत्वों के स्रोत कोड का अधिक विस्तार से विश्लेषण करें। अलग-अलग कार्यों और विधियों के लिए नियंत्रण प्रवाह आरेख या प्रवाह आरेख बनाएं।
चरण 2
पार्स किए जा रहे प्रोग्राम के डेटा स्ट्रीम का विश्लेषण करें। सूचनाओं को संग्रहीत करने के लिए उपयोग की जाने वाली संरचनाओं की पहचान करें और इसे एप्लिकेशन के कार्यात्मक तत्वों के बीच स्थानांतरित करें। डेटा को एक रूप से दूसरे रूप में बदलने वाले कोड स्निपेट की पहचान करें। कार्यक्रम में उन स्थानों की सूची बनाएं जहां बाहरी वातावरण से जानकारी प्राप्त होती है, साथ ही इसका आउटपुट कहीं न कहीं। इस तरह के विश्लेषण में पुनर्रचना उपकरण और केस टूल्स (उदाहरण के लिए, एक विरासत आरेख और एक निर्भरता आरेख बनाने के लिए) भी मदद करेंगे।
चरण 3
इसके संचालन के सिद्धांतों की पूरी समझ रखते हुए, कार्यक्रम को अलग करें। संरचनात्मक तत्वों के साथ-साथ उनके भीतर नियंत्रण के हस्तांतरण के प्रवाह के बारे में ज्ञान के आधार पर, प्रवाह का ज्ञान और डेटा परिवर्तन के प्रकार, कार्य के मुख्य एल्गोरिदम की पहचान करें। डेटा प्रोसेसिंग और इंटरफ़ेस नियंत्रण के लिए एल्गोरिदम को अलग करें। विशिष्ट प्रसंस्करण एल्गोरिदम का चयन करें और उन्हें वर्गीकृत करें। विभिन्न घटकों की बातचीत के आधार पर एल्गोरिदम की पहचान करें (उदाहरण के लिए, खोज का उपयोग स्वतंत्र रूप से और एक प्रकार के भाग के रूप में किया जा सकता है)। यदि आवश्यक हो, तो कार्यक्रम के संचालन को स्पष्ट करने के लिए अलग-अलग डिग्री के फ़्लोचार्ट तैयार करें।