Αρχιτεκτονική σχεδίαση

Διομήδης Σπινέλλης
Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας
Οικονομικό Πανεπιστήμιο Αθηνών
dds@aueb.gr

Στοιχεία του σχεδίου

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

Αφαίρεση (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)

Αρχές σχεδιασμού

Δομή του συστήματος

Μοντέλα ελέγχου

Αποσύνθεση σε τμήματα

Η αποσύνθεση σε τμήματα μπορεί να γίνει με βάση:

Εξειδικευμένες αρχιτεκτονικές

Ορισμένες εφαρμογές αναπτύσσονται με βάση τυποποιημένες αρχιτεκτονικές για το συγκεκριμένο πεδίο. Παραδείγματα:

Το έγγραφο περιγραφής σχεδίου λογισμικού

Το έγγραφο περιγραφής σχεδίου λογισμικού (software design description) περιέχει τα παρακάτω στοιχεία (Γιακουμάκης 1994, σ. 250):
  1. Εισαγωγή
    1. Σκοπός
    2. Γενική άποψη
    3. Ορισμοί και ακρονυμίες
  2. Αναφορές
  3. Περιγραφή αποσύνθεσης
    1. Αποσύνθεση σε μονάδες
      1. Περιγραφή μονάδας 1
      2. Περιγραφή μονάδας 2
    2. Αποσύνθεση σε ταυτόχρονες διεργασίες
      1. Περιγραφή διεργασίας 1
      2. Περιγραφή διεργασίας 2
    3. Αποσύνθεση δεδομένων
      1. Περιγραφή οντότητας δεδομένων 1
      2. Περιγραφή οντότητας δεδομένων 2
  4. Περιγραφή εξαρτήσεων
    1. Διεπαφές μονάδων
      1. Περιγραφή μονάδας 1
      2. Περιγραφή μονάδας 2
    2. Διεπαφές διεργασιών
      1. Περιγραφή διεργασίας 1
      2. Περιγραφή διεργασίας 2
  5. Λεπτομερές σχέδιο
    1. Λεπτομερές σχέδιο μονάδων
      1. Λεπτομερές σχέδιο μονάδας 1
      2. Λεπτομερές σχέδιο μονάδας 2
    2. Λεπτομερές σχέδιο διεργασιών
      1. Λεπτομερές σχέδιο διεργασίας 1
      2. Λεπτομερές σχέδιο διεργασίας 2

Βιβλιογραφία

Ασκήσεις

  1. Περιγράψτε τα πλεονεκτήματα και μειονεκτήματα των δομικών αρχιτεκτονικών μοντέλων που εξετάσαμε. Για κάθε μοντέλο δώστε ένα παράδειγμα εφαρμογής που το ακολουθεί.
  2. Δώστε το κατάλληλο δομικό μοντέλο για κάθε ένα από τα παρακάτω συστήματα:
  3. Επιλέξτε μια εφαρμογή που γνωρίζετε και γράψτε τα κύρια στοιχεία του εγγράφου περιγραφής σχεδίου λογισμικού.