Κατά τη διάρκεια της επαγγελματικής δραστηριότητας, ο προγραμματιστής πρέπει να αντιμετωπίσει πολλές καταστάσεις που απαιτούν πολύπλοκη ανάλυση μεγάλων τμημάτων πηγαίου κώδικα ή ακόμη και ολόκληρων εφαρμογών. Η έρευνα επιτυχημένων λύσεων και πρακτικών, η ανάλυση αλγορίθμων που έχουν ήδη εφαρμοστεί ή η απλή μεταφορά άλλου έργου σε μια ομάδα συχνά καθιστά απαραίτητη την αποσυναρμολόγηση ενός προγράμματος που έχει γραφτεί από κάποιον άλλο.
Απαραίτητη
- - πρόγραμμα για την προβολή του πηγαίου κώδικα ·
- - πιθανώς εργαλεία αντίστροφης μηχανικής και θήκης.
Οδηγίες
Βήμα 1
Εξετάστε τη ροή της μεταφοράς ελέγχου του προγράμματος που αναλύεται Προσδιορίστε το σημείο εισόδου. Για παράδειγμα, είναι η κύρια συνάρτηση στα C και C ++, η αρχή ενός ανώνυμου μπλοκ δομής πρώτου επιπέδου, που τελειώνει με τη λέξη-κλειδί ΤΕΛΟΣ με μια κουκκίδα, σε pascal. Ξεκινώντας από το σημείο εισόδου, εντοπίστε όλες τις διαδρομές του κλήσεις σε λειτουργίες, διαδικασίες, μεθόδους μαθημάτων. Δημιουργήστε ένα διάγραμμα ροής ελέγχου υψηλού επιπέδου. Για να απλοποιήσετε αυτήν τη διαδικασία, μπορείτε να χρησιμοποιήσετε διάφορα εργαλεία αντίστροφης μηχανικής. Αναλύστε τον πηγαίο κώδικα των δομικών στοιχείων του αναλυμένου προγράμματος με περισσότερες λεπτομέρειες. Σχεδιάστε διαγράμματα ροής ελέγχου ή διαγράμματα ροής για μεμονωμένες λειτουργίες και μεθόδους.
Βήμα 2
Αναλύστε τις ροές δεδομένων του προγράμματος που αναλύεται. Προσδιορίστε τις δομές που χρησιμοποιούνται για την αποθήκευση πληροφοριών και τη μεταφορά τους μεταξύ των λειτουργικών στοιχείων της εφαρμογής. Προσδιορίστε τα αποσπάσματα κώδικα που μετατρέπουν δεδομένα από τη μία φόρμα στην άλλη. Δημιουργήστε μια λίστα με τα μέρη στο πρόγραμμα όπου λαμβάνονται πληροφορίες από το εξωτερικό περιβάλλον, καθώς και από την έξοδο κάπου. Εργαλεία ανασχεδιασμού και εργαλεία περιπτώσεων (για παράδειγμα, για να δημιουργήσετε ένα διάγραμμα κληρονομιάς και ένα διάγραμμα εξάρτησης) θα βοηθήσουν επίσης σε αυτό το είδος ανάλυσης.
Βήμα 3
Αποσυναρμολογήστε το πρόγραμμα, έχοντας πλήρη κατανόηση των αρχών λειτουργίας του. Με βάση τις γνώσεις σχετικά με τη ροή της μεταφοράς ελέγχου μεταξύ δομικών στοιχείων, καθώς και εντός αυτών, η γνώση των ροών και των τύπων μετασχηματισμών δεδομένων, προσδιορίζει τους κύριους αλγόριθμους εργασίας. Διαχωρίστε τους αλγόριθμους για την επεξεργασία δεδομένων και τον έλεγχο της διεπαφής. Επιλέξτε τυπικούς αλγόριθμους επεξεργασίας και ταξινομήστε τους. Προσδιορίστε αλγόριθμους με βάση την αλληλεπίδραση διαφόρων συστατικών (για παράδειγμα, η αναζήτηση μπορεί να χρησιμοποιηθεί τόσο ανεξάρτητα όσο και ως μέρος ενός είδους). Εάν είναι απαραίτητο, σχεδιάστε διαγράμματα ροής με διαφορετικούς βαθμούς λεπτομερειών για να απεικονίσετε τη λειτουργία του προγράμματος.