Βασικές έννοιες

Αφαίρεση (abstraction)

Η αφαίρεση επιτυγχάνεται στα παρακάτω επίπεδα:

Εκλέπτυνση (refinement)

Η βηματική εκλέπτυνση (stepwise refinement) είναι ένας τρόπος για να δαμάσει κανείς το πλήθος των λεπτομερειών του τελικού σχεδίου.

Τμηματικότητα (modularity)

Η τμηματικότητα ενός σχεδίου μειώνει τη συνολική πολυπλοκότητα του συστήματος και κατά συνέπεια το κόστος υλοποίησης και το ενδεχόμενο λαθών. Μια καλή μέθοδος σχεδιασμού πρέπει να επιτρέπει:

Συνεκτικότητα (cohesion)

Ο καλός σχεδιασμός πρέπει να φέρνει κοντά τμήματα που εμφανίζουν υψηλή συνεκτικότητα. Διακρίνουμε τα παρακάτω αυξανόμενα επίπεδα συνεκτικότητας:
  1. συμπτωματική συνεκτικότητα (coincidental cohesion)
  2. λογική συνεκτικότητα (logical cohesion)
  3. χρονική συνεκτικότητα (temporal cohesion)
  4. διαδικαστική συνεκτικότητα (procedural cohesion)
  5. επικοινωνιακή συνεκτικότητα (communicational cohesion)
  6. ακολουθιακή συνεκτικότητα (sequential cohesion)
  7. λειτουργική συνεκτικότητα (functional cohesion)

Σύζευξη (coupling)

Ο καλός σχεδιασμός πρέπει κατά το δυνατόν να αποφεύγει τη σύζευξη μεταξύ τμημάτων. Διακρίνουμε τα παρακάτω αυξανόμενα επίπεδα σύζευξης:
  1. σύζευξη δεδομένων (data coupling)
  2. σύζευξη δομής δεδομένων (stamp coupling) (ή αντιγράφου)
  3. σύζευξη ελέγχου (control coupling)
  4. σύζευξη κοινών δεδομένων (common coupling) (ή από κοινού σύνδεση)
  5. σύζευξη εξωτερικών δεδομένων (external coupling)
  6. σύζευξη περιεχομένων (content coupling)