Βασικές έννοιες
Η αφαίρεση επιτυγχάνεται στα παρακάτω επίπεδα:
Η βηματική εκλέπτυνση (stepwise refinement)
είναι ένας τρόπος για να δαμάσει κανείς το πλήθος των λεπτομερειών
του τελικού σχεδίου.
Η τμηματικότητα ενός σχεδίου μειώνει τη συνολική πολυπλοκότητα του
συστήματος και κατά συνέπεια το κόστος υλοποίησης και το ενδεχόμενο
λαθών.
Μια καλή μέθοδος σχεδιασμού πρέπει να επιτρέπει:
Ο καλός σχεδιασμός πρέπει να φέρνει κοντά τμήματα που εμφανίζουν
υψηλή συνεκτικότητα.
Διακρίνουμε τα παρακάτω αυξανόμενα επίπεδα συνεκτικότητας:
- συμπτωματική συνεκτικότητα (coincidental cohesion)
- λογική συνεκτικότητα (logical cohesion)
- χρονική συνεκτικότητα (temporal cohesion)
- διαδικαστική συνεκτικότητα (procedural cohesion)
- επικοινωνιακή συνεκτικότητα (communicational cohesion)
- ακολουθιακή συνεκτικότητα (sequential cohesion)
- λειτουργική συνεκτικότητα (functional cohesion)
Ο καλός σχεδιασμός πρέπει κατά το δυνατόν να αποφεύγει τη σύζευξη μεταξύ
τμημάτων.
Διακρίνουμε τα παρακάτω αυξανόμενα επίπεδα σύζευξης:
- σύζευξη δεδομένων (data coupling)
- σύζευξη δομής δεδομένων (stamp coupling) (ή αντιγράφου)
- σύζευξη ελέγχου (control coupling)
- σύζευξη κοινών δεδομένων (common coupling) (ή από κοινού σύνδεση)
- σύζευξη εξωτερικών δεδομένων (external coupling)
- σύζευξη περιεχομένων (content coupling)