1. Αρχές και ευρετικά
* Στερεές αρχές: Αυτές οι αρχές (ενιαία ευθύνη, ανοικτή/κλειστή, υποκατάσταση Liskov, διαχωρισμός διεπαφής, αντιστροφή εξάρτησης) καθοδηγούν τη δημιουργία αρθρωτών, κατανοητών και ευέλικτων κώδικα.
* ξηρό (μην επαναλάβετε τον εαυτό σας): Ελαχιστοποιήστε την επικάλυψη του κώδικα, την προώθηση της επαναχρησιμοποίησης και την απλούστευση της συντήρησης.
* φιλί (κρατήστε το απλό, ηλίθιο): Προσπαθήστε για απλότητα στο σχεδιασμό και την υλοποίηση για να μειώσετε την πολυπλοκότητα και τα σφάλματα.
* yagni (δεν θα το χρειαστείτε): Αποφύγετε την προσθήκη χαρακτηριστικών ή πολυπλοκότητας που δεν απαιτούνται αμέσως.
2. Εργαλεία μετρήσεων και ανάλυσης κώδικα
* Κυκλική πολυπλοκότητα: Μετρά τον αριθμό των γραμμικά ανεξάρτητων διαδρομών μέσω ενός τμήματος κώδικα, υποδεικνύοντας την πολυπλοκότητα και τις δυνατότητες για σφάλματα.
* Κάλυψη κώδικα: Αξιολογεί το ποσοστό του κώδικα που καλύπτεται από τις δοκιμές, αποκαλύπτοντας περιοχές που δεν έχουν κάλυψη δοκιμών και πιθανές αδυναμίες.
* Εργαλεία στατικής ανάλυσης: Προσδιορίστε πιθανές μυρωδιές κώδικα, τρωτά σημεία και παραβιάσεις στυλ, συμβάλλοντας στην επιβολή προτύπων κωδικοποίησης και βέλτιστων πρακτικών.
3. Αρχιτεκτονική αξιολόγηση
* Modularity: Αξιολογήστε πόσο καλά το λογισμικό χωρίζεται σε ανεξάρτητες, επαναχρησιμοποιήσιμες ενότητες.
* σύζευξη και συνοχή: Αναλύστε τον βαθμό αλληλεξάρτησης μεταξύ των μονάδων (σύζευξη) και της λειτουργικής συγγένειας εντός των μονάδων (συνοχή). Η χαμηλή σύζευξη και η υψηλή συνοχή είναι επιθυμητές.
* Επιμελητικότητα: Αξιολογήστε την ικανότητα του σχεδιασμού να χειρίζεται αποτελεσματικά τον αυξανόμενο φόρτο εργασίας και τους όγκους δεδομένων.
* Διατήρηση: Προσδιορίστε πόσο εύκολα το λογισμικό μπορεί να τροποποιηθεί, να ενημερωθεί και να επεκταθεί χωρίς να εισαγάγετε ελαττώματα.
4. Διαδικασίες αναθεώρησης σχεδιασμού
* Κωδικοί κώδικα: Επανεξέταση από ομοτίμους των αλλαγών κώδικα για τον εντοπισμό πιθανών ζητημάτων, τη βελτίωση της ποιότητας του κώδικα και την κοινή χρήση της γνώσης.
* Ανασκοπήσεις σχεδίασης: Τυπικές αξιολογήσεις των αποφάσεων σχεδιασμού και της αρχιτεκτονικής για την εξασφάλιση της ευθυγράμμισης με τις απαιτήσεις και τον εντοπισμό πιθανών προβλημάτων νωρίς.
5. Μη λειτουργικές πτυχές
* απόδοση: Αξιολογήστε παράγοντες όπως ο χρόνος απόκρισης, η διακίνηση και η αξιοποίηση των πόρων για να διασφαλίσετε ότι το λογισμικό πληροί τις απαιτήσεις απόδοσης.
* Ασφάλεια: Αναλύστε το σχεδιασμό για τρωτά σημεία και κινδύνους ασφαλείας και επαληθεύστε την εφαρμογή κατάλληλων μέτρων ασφαλείας.
* χρηστικότητα: Εξετάστε τη διεπαφή χρήστη και την εμπειρία χρήστη για να διασφαλίσετε ότι το λογισμικό είναι διαισθητικό και εύκολο στη χρήση.
υποκειμενική έναντι αντικειμενικής αξιολόγησης:
* Στόχος: Οι μετρήσεις κώδικα παρέχουν ποσοτικά δεδομένα, επιτρέποντας συγκρίσεις και παρακολούθηση της προόδου με την πάροδο του χρόνου.
* υποκειμενική: Οι αρχές σχεδιασμού και η αρχιτεκτονική αξιολόγηση συχνά περιλαμβάνουν υποκειμενικές κρίσεις που βασίζονται στην εμπειρία και την εμπειρογνωμοσύνη.
Βασικές εκτιμήσεις:
* Το περιβάλλον έχει σημασία: Η ιδανική προσέγγιση σχεδιασμού ποικίλλει ανάλογα με το συγκεκριμένο έργο, τις απαιτήσεις και τους περιορισμούς του.
* Οι αντισταθμίσεις είναι αναπόφευκτες: Ο σχεδιασμός του λογισμικού περιλαμβάνει την πραγματοποίηση συμβιβασμών μεταξύ διαφορετικών ιδιοτήτων (π.χ. επιδόσεις έναντι συντήρησης).
* Συνεχής βελτίωση: Η ποιότητα σχεδιασμού λογισμικού είναι μια συνεχιζόμενη διαδικασία, που απαιτεί συνεχή αξιολόγηση, ανατροφοδότηση και βελτίωση.
Με την ενσωμάτωση αυτών των πρακτικών και αρχών, μπορείτε να αποκτήσετε μια ολοκληρωμένη κατανόηση της ποιότητας του σχεδιασμού λογισμικού και να εργαστείτε για την οικοδόμηση λογισμικού που είναι ισχυρό, διατηρήσιμο και ικανοποιεί τις ανάγκες των χρηστών του.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα