2009ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης1 ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Σχεδίαση Λογισμικού Εισαγωγή.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
ΤΡΟΠΟΣ ΑΞΙΟΛΟΓΗΣΗΣ ΤΩΝ ΟΡΓΑΝΩΤΙΚΩΝ ΚΑΙ ΔΙΟΙΚΗΤΙΚΩΝ ΔΕΞΙΟΤΗΤΩΝ ΤΟΥ ΟΡΓΑΝΙΣΜΟΥ  Εκπαιδευτικό Κεφάλαιο 1.1 Τεχνικές δεξιότητες και προσόντα.
Advertisements

ΑΞΙΟΛΟΓΗΣΗ ΕΙΣΑΓΩΓΗ Στη διδακτική διαδικασία ο διδάσκων θέτει στόχους, στη συνέχεια μεριμνά για την επίτευξή τους και τέλος αξιολογεί το έργο του, το υλικό.
7.5.2 Αντικειμενοστραφής προγραμματισμός
ΠΜΣ ΠΡΟΗΓΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Κατεύθυνση ΤΕΔΑ Τεχνολογίες Διαχείρισης Ασφάλειας Security Management Engineering Τμήμα Πληροφορικής ΠΑΝΕΠΙΣΤΗΜΙΟ.
Διαδικασία ανάπτυξης Προσδιορισμός απαιτήσεων Αρχιτεκτονικός Σχεδιασμός Λεπτομερής Σχεδιασμός Κωδικοποίηση Έλεγχος Παράδοση Συστήματος Λειτουργία - Συντήρηση.
H διαδικασία ανάπτυξης λογισμικού. Tι θα γνωρίσουμε •Τις φάσεις ανάπτυξης του λογισμικού. •Γιατί χρειάζεται να γίνει ανάλυση του προβλήματος. •Τι θα πρέπει.
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
ΚΕΝΤΡΟ ΠΟΛΙΤΙΣΜΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΙΝΣΤΙΤΟΥΤΟ ΠΛΗΡΟΦΟΡΙΚΗΣ ΙΤΕ 21,23/2/2005Πληροφοριακή σχεδίαση για πολιτισμική τεκμηρίωση και διαλειτουργικότητα1 Τεκμηρίωση.
 Αυδίκου Χριστίνα  Γιουμούκης Παναγιώτης  Κιντσάκης Θάνος  Πάπιστας Γιάννης.
Εισαγωγικές Έννοιες Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Η ποιότητα της πληροφορίας στο εκπαιδευτικό υλικό που χρησιμοποιείται ή διανέμεται μέσω του Internet Χρήστος Σαβρανίδης Πανεπιστήμιο Ιωαννίνων Τμήμα ΦΠΨ.
1 Εισαγωγή στις Βάσεις Δεδομένων  Ανάγκη Αποθήκευσης και Διαχείρισης Δεδομένων  Συστήματα Αρχείων  Συστήματα Βάσεων Δεδομένων  Παραδοσιακές και Σύγχρονες.
Μοντέλο Διδασκαλίας Φυσικών Επιστήμων, για την Υποχρεωτική Εκπαίδευση, στην Κατεύθυνση της Ανάπτυξης Γνώσεων και Ικανοτήτων. Π. Κουμαράς.
Τι είναι Ανάλυση Τι είναι Συστήματα Πληροφορικής
Υπηρεσίες δικτύων επικοινωνίας
ΕΚΠΑΙΔΕΥΤΙΚΗ ΠΡΟΣΕΓΓΙΣΗ ΤΗΣ ΕΥΡΥΤΕΡΗΣ ΕΝΝΟΙΑΣ ΤΟΥ ΑΛΓΟΡΙΘΜΟΥ ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΔΙΑΦΟΡΕΤΙΚΟ ΛΟΓΙΣΜΙΚΟ ΓΙΑ ΚΑΘΕ ΠΤΥΧΗ ΤΟΥ Κάππας Κων/νος Επιμορφωτής ΤΠΕ -
Διαδικασία ανάπτυξης Προσδιορισμός απαιτήσεων
ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ
ΚΕΦΑΛΑΙΟ 3 ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΤΩΝ Γ.Σ.Π.. ΟΡΙΣΜΟΙ Ένα σύστημα για τακτικό και συνηθισμένο τρόπο επεξεργασίας δεδομένων και για απάντηση προκαθορισμένων και.
Δεδομένα, Πληροφορίες και Ηλεκτρονικοί Υπολογιστές
19/04/2005Γεώργιος Α Βούρος ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων ΗΜΕΡΙΔΑ ΠΑΡΟΥΣΙΑΣΗΣ - ΑΞΙΟΛΟΓΗΣΗΣ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ.
Σχολή Διοίκησης & Οικονομίας Τμήμα Εμπορίας & Διαφήμισης
Τεχνολογία ΛογισμικούSlide 1 Σχεδιασμός Λογισμικού u Ανάπτυξη λύσης που ικανοποιεί τις απαιτήσεις λογισμικού.
HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ. Καθηγητής, Ε.Μ.Π.
1 Εισαγωγή στις Βάσεις Δεδομένων  Ανάγκη Αποθήκευσης και Διαχείρισης Δεδομένων  Συστήματα Αρχείων  Συστήματα Βάσεων Δεδομένων  Παραδοσιακές και Σύγχρονες.
Μοντέλα Συστημάτων Παρουσιάσεις των συστημάτων των οποίων οι απαιτήσεις αναλύονται.
1 HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ. Καθηγητής, Ε.Μ.Π.
2009ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης1 ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Κατασκευή Λογισμικού (2/2) Μανόλης.
ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης
HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ. Καθηγητής, Ε.Μ.Π.
2009ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης1 ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Έλεγχος Συστήματος Μανόλης Γιακουμάκης.
ΟΠΑ - Τεχνολογία Λογισμικού - Εμμ. Γιακουμάκης
Αλγόριθμοι 2.1.1,
Κατανόηση (δεδομένα – ζητούμενα) Ανάλυση σε απλούστερα προβλήματα Επίλυση με οργανωμένα, απολύτως καθορισμένα, πεπερασμένα βήματα ΑΛΓΟΡΙΘΜΟΣ.
Διδακτική της Πληροφορικής ΗΥ302 Εργασία :Παρουσίαση σχολικού βιβλίου Γ’ Λυκείου Τεχνολογικής Κατεύθυνσης «Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον»
ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης
2009ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης1 ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Συντήρηση Λογισμικού Μανόλης.
Δίνονται το ονοματεπώνυμο κάθε μαθητή μιας τάξης και η βαθμολογία του σε κάθε μάθημά του και θέλουμε να υπολογίσουμε το μέσο όρο της βαθμολογίας όλων των.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων.
Τεχνολογία Επικοινωνιών
Κεφάλαιο 10 – Υποπρογράμματα
Προγραμματισμός Γιατι γραφουμε προγραμματα (προηγ. διαλεξη)
Τεχνολογία ΛογισμικούSlide 1 Τεχνολογία Απαιτήσεων u Καθορίζει τι θέλει ο πελάτης από ένα σύστημα λογισμικού.
Μπόλαρη Αγγελικη(1451) Επιβλέπων Βολογιαννίδης Σταύρος ΑΤΕΙ ΣΕΡΡΩΝ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΙΚΟΙΝΩΝΙΩΝ Σέρρες 2013.
Ορισμός Έργου Δρ. Α. Ραφαηλίδης Τμ. Διοίκησης Επιχειρήσεων (Πάτρα) ΤΕΙ Δυτ. Ελλάδας.
Επίσημος ορισμός Ποιότητας (πρότυπο ISO 8402) Σύνολο χαρακτηριστικών μιας οντότητας για την ικανοποίηση εκφρασμένων και συνεπαγόμενων αναγκών. Αντικείμενο.
Τεχνολογία Λογισμικού
Δραματική Τέχνη στην εκπαίδευση: Ερευνητικό Σχέδιο ΙΙ
ΕΠΙΧΕΙΡΗΜΑΤΙΚΟ ΣΧΕΔΙΟ ΙΔΡΥΣΗΣ ΚΑΙ ΛΕΙΤΟΥΡΓΙΑΣ ΠΡΑΤΗΡΙΟΥ ΥΓΡΩΝ ΚΑΥΣΙΜΩΝ
Χειρισμός Χρόνου και Μεθοδολογίες Προσομοίωσης
Προσομοίωση και Μοντέλα Συστημάτων (Μέρος B)
Αρχές Διοίκησης και Διαχείρισης Έργων
Διδάσκων: Δρ. Τσίντζα Παναγιώτα
Στρατηγικές ελέγχου ολοκλήρωσης
Δρ. Αλέξανδρος Αποστολάκης Τηλ.:
ΣΥΣΤΗΜΑ ΠΟΙΟΤΗΤΑΣ ΛΟΓΙΣΜΙΚΟΥ (QUALITY SYSTEM)
Η ΕΝΝΟΙΑ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ
Μαθησιακοί στόχοι κεφαλαίου
ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης
Πληροφοριακό σύστημα Πληροφοριακό Σύστημα μιας επιχείρησης/οργανισμού είναι ένα σύστημα που αποτελείται από ανθρώπους, διαδικασίες και εξοπλισμό (Υλικό,
Στοιχεία Δομημένου Προγραμματισμού
Σύγχρονες μεθοδολογίες ανάπτυξης και διαχείρισης Πληροφοριακών Συστημάτων 2ο Κεφάλαιο.
Κάποιες βασικές έννοιες στη μεθοδολογία της ψυχολογίας
Εφαρμογή Μεθοδολογίας ICONIX
ΔΙΟΙΚΗΣΗ ΟΛΙΚΗΣ ΠΟΙΟΤΗΤΑΣ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗ ΠΕΡΙΒΑΛΛΟΝΤΟΣ
Κλειούσης Ε. Ελευθέριος
Τεχνολογία Β’ Γυμνασίου
Μεθοδολογία Έρευνας Διάλεξη 6η: Δευτερογενή Δεδομένα: Τύποι δευτερογενών δεδομένων Δρ. Αλέξανδρος Αποστολάκης Τηλ.:
ΠΛΗΡΟΦΟΡΙΚΗ Γ΄ Γυμνασίου Α΄ Τρίμηνο
Σκοπός Η συνοπτική παρουσίαση
Μεταγράφημα παρουσίασης:

2009ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης1 ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Σχεδίαση Λογισμικού Εισαγωγή Μανόλης Γιακουμάκης αναπληρωτής καθηγητής ΟΠΑ

2009ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης2 Σημερινή παρουσίαση Εισαγωγή Τι είναι η σχεδίαση λογισμικού Έννοιες σχεδίασης Δραστηριότητες σχεδίασης Σχεδίαση και υποδείγματα ανάπτυξης λογισμικού

2009ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης3 Εισαγωγή (1/2) Η σχεδίαση του λογισμικού απαντά στο ερώτημα πώς θα είναι το λογισμικό που θα ικανοποιεί τις απαιτήσεις που περιγράφονται στο ΕΠΑΛ. Για να δώσει αυτή την απάντηση η σχεδίαση, οι σχεδιαστές λαμβάνουν ένα σύνολο αποφάσεων. Ορισμένες από τις αποφάσεις αυτές είναι σημαντικές και δύσκολα αλλάζουν, άλλες είναι λιγότερο σημαντικές και αλλάζουν εύκολα. Ορισμένες από τις αποφάσεις σχεδίασης δεν είναι ούτε απόλυτα σωστές ούτε απόλυτα λανθασμένες, αλλά είναι δυνατόν να οδηγούν σε λύσεις με μειονεκτήματα ή και πλεονεκτήματα. Τις περισσότερες φορές η σχεδίαση δεν αξιολογείται ως σωστή ή λανθασμένη, αλλά ως καλή ή κακή.

2009ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης4 Εισαγωγή (2/2) Η σχεδίαση δεν είναι μηχανική διαδικασία, είναι περισσότερο ευριστική. Η καλή σχεδίαση «αναδύεται» μετά από δοκιμές, αποτυχίες και αναθεωρήσεις. Αν και η σχεδίαση δεν είναι μηχανική διαδικασία, υπάρχουν κριτήρια αξιολόγησης της καλής σχεδίασης. Υπάρχουν επίσης και κανόνες που όταν εφαρμόζονται οδηγούν σε καλή σχεδίαση. Όλες οι αποφάσεις σχεδίασης υπάρχουν στον τελικό κώδικα του λογισμικού. Από μόνος του ο κώδικας όμως δε διευκολύνει στο να έρθουν στην επιφάνεια όλες οι αποφάσεις της σχεδίασης. Για αυτό το λόγο οι σημαντικότερες σχεδιαστικές επιλογές απεικονίζονται σε μοντέλα σχεδίασης. Η δημιουργία των μοντέλων σχεδίασης βοηθά στην κατανόηση, επικοινωνία, διερεύνηση, αξιολόγηση και αναθεώρηση των αποφάσεών μας.

2009ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης5 Τι είναι η σχεδίαση λογισμικού (1/2) Το λογισμικό συντίθεται από «κομμάτια» λογισμικού, διαφορετικά θα ήταν αδύνατη η συντήρηση του. Τα κομμάτια αυτά τα ονομάζουμε μονάδες λογισμικού ή μονάδες προγράμματος, ή μονάδες, ή δομικά μέρη, ή οντότητες σχεδίου. Σε έναν πρώτο ορισμό που δόθηκε το 1974 «Μια μονάδα λογισμικού είναι ένα συνεχόμενο σύνολο εντολών που έχουν ένα όνομα με το οποίο άλλα μέρη του συστήματος μπορούν να καλέσουν αυτό το σύνολο εντολών και κατά προτίμηση διαθέτει το δικό του διακριτό σύνολο μεταβλητών».

2009ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης6 Τι είναι η σχεδίαση λογισμικού (2/2) Στη συνέχεια ο ορισμός αυτός υπέστη αναδιατυπώσεις αλλά η βασική έννοια του ορισμού είναι ότι η μονάδα προγράμματος αποτελεί ένα μέρος του συστήματος, το οποίο έχει μία ταυτότητα στο λογισμικό και που μπορεί να «συνεργαστεί» με άλλα μέρη για να παραχθούν τα αποτελέσματα που περιγράφουν οι προδιαγραφές του συστήματος. Η σχεδίαση προσδιορίζει τα μέρη αυτά του συστήματος, τη συμπεριφορά κάθε μέρους, καθώς και τον τρόπο συνεργασίας των μερών μεταξύ τους. Η σχεδίαση απαντά στο ερώτημα «πώς θα είναι το προϊόν;» που θα υλοποιεί τις απαιτήσεις που περιγράφουν οι προδιαγραφές του λογισμικού.

2009ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης7 Διαφορά μοντέλου σχεδίασης και μοντέλου ανάλυσης Το μοντέλο σχεδίασης παρέχει λεπτομέρειες σχετικά με την αρχιτεκτονική του συστήματος, τις δομές δεδομένων, τις διεπαφές και τα δομικά μέρη που υλοποιούν το σύστημα. Το μοντέλο ανάλυσης εστιάζεται στα απαιτούμενα δεδομένα, τις λειτουργίες και συμπεριφορές του συστήματος. Η σχεδίαση ασχολείται και με τις μη λειτουργικές απαιτήσεις (απόδοση κλπ) και τα ποιοτικά χαρακτηριστικά του λογισμικού (συντηρησιμότητα κλπ) Η σχεδίαση επομένως επιτρέπει στους μηχανικούς λογισμικού να παράγουν ένα μοντέλο του συστήματος πριν αυτό κατασκευαστεί και αφού το αξιολογήσουν, όσον αφορά την ποιότητα του, να κάνουν όλες τις απαραίτητες τροποποιήσεις, πριν ξεκινήσει η υλοποίησή του. Η σχεδίαση προσφέρει στους μηχανικούς λογισμικού την ευκαιρία να συγκρίνουν εναλλακτικές λύσεις υλοποίησης του λογισμικού και να επιλέξουν την «καλύτερη».

2009ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης8 Σχεδίαση Λογισμικού Υπάρχουν πολλές λύσεις για ένα πρόβλημα. Σχεδίαση: Το σύνολο των αποφάσεων για την επίλυση του προβλήματος που περιγράφουν οι απαιτήσεις.

2009ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης9 Έννοιες σχεδίασης Αφαίρεση Τμηματικότητα Απόκρυψη πληροφοριών Σύζευξη Συνεκτικότητα

2009ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης10 Αφαίρεση Ένας τρόπος για την διαχείριση της πολυπλοκότητας του λογισμικού είναι η αφαίρεση (abstraction). Με την αφαίρεση επιχειρούμε να αγνοήσουμε πληροφορίες που προς στιγμήν δε μας ενδιαφέρουν και να εστιάσουμε την προσοχή μας σε εκείνες τις πληροφορίες που προς στιγμή κρίνουμε σημαντικές. Η αφαίρεση χρησιμοποιείται και για την ίδια τη σχεδίαση. Θέλουμε να κατανοήσουμε τη βασική δομή του λογισμικού σε υψηλό επίπεδο. Την υψηλού επιπέδου αφαίρεσή μας την προσφέρει το αρχιτεκτονικό σχέδιο του λογισμικού. Το αρχιτεκτονικό σχέδιο εστιάζεται στα βασικότερα υψηλού επιπέδου δομικά στοιχεία του λογισμικού. Σε χαμηλότερο επίπεδο αφαίρεσης μπορούμε να εξετάσουμε το λογισμικό μέσω του λεπτομερούς σχεδίου. Το λεπτομερές σχέδιο μας προσφέρει περισσότερη λεπτομέρεια για κάθε δομική μονάδα του λογισμικού.

2009ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης11 Τμηματικότητα

2009ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης12 Απόκρυψη πληροφοριών

2009ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης13 Σύζευξη Η σύζευξη (coupling) είναι ένα μέτρο εξάρτησης μεταξύ των μονάδων του λογισμικού. Επιθυμούμε δύο διαφορετικές μονάδες λογισμικού να έχουν χαλαρή σύζευξη. Να έχουν δηλαδή μικρή εξάρτηση. Η χαλαρή σύζευξη των μονάδων λογισμικού έχει ως συνέπεια: –Τοπικότητα αλλαγών –Καλύτερη συντηρησιμότητα –Ευκαιρίες επαναχρησιμοποίησης –Διευκόλυνση στον έλεγχο και την εκσφαλμάτωση

2009ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης14 Παράγοντες Σύζευξης Οι κλήσεις που γίνονται από μια μονάδα σε άλλη. Για παράδειγμα, η μονάδα Α καλεί τη μονάδα Β. Έτσι η λειτουργία της μονάδας Α εξαρτάται από τη μονάδα Β. Η ποσότητα των δεδομένων, που περνά από μια μονάδα σε άλλη. Για παράδειγμα, η μονάδα Α μπορεί να περνά το περιεχόμενο ενός πίνακα στη μονάδα Β. Έτσι η μονάδα Β εξαρτάται από την Α. Το μέγεθος του ελέγχου που μια μονάδα έχει πάνω σε μια άλλη. Για παράδειγμα η μονάδα Α μπορεί να περνά στη μονάδα Β ένα flag ελέγχου. Η λειτουργία που εκτελείται από τη Β εξαρτάται από την τιμή του flag. Ο βαθμός πολυπλοκότητας στη διεπαφή μιας μονάδας με τις άλλες. Για παράδειγμα, εάν η μονάδα Α περνά ένα flag στη μονάδα Β, αλλά οι μονάδες C και D ανταλλάσσουν τιμές, πριν η D συμπληρώσει τη λειτουργία της, τότε η διάταξη μεταξύ Α και Β είναι λιγότερο πολύπλοκη από ό,τι μεταξύ των C και D.

2009ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης15 Τύποι σύζευξης (1/2) περιεχόμενη σύζευξη (content coupling): μια μονάδα επεμβαίνει και τροποποιεί μια άλλη. Η τροποποιημένη μονάδα είναι πλήρως εξαρτημένη από την πρώτη. από κοινού σύζευξη (common coupling): δεδομένα σε μια καθολική (global) ή κοινή (common) περιοχή. Όταν μια μονάδα περνά flags για να ελέγξει τη δραστηριότητα μιας άλλης μονάδας λέμε ότι υπάρχει σύζευξη ελέγχου (control coupling) μεταξύ των δύο μονάδων.

2009ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης16 Τύποι σύζευξης (2/2) Εστω ότι περνάμε μια δομή δεδομένων σε μια μονάδα για να περάσουμε πληροφορία από μια μονάδα σε μια άλλη. Αν η μονάδα η οποία λαμβάνει τη δομή δεδομένων χρησιμοποιεί μόνο ένα τμήμα της πληροφορίας της δομής δεδομένων, τότε έχουμε σύζευξη αντιγράφου (stamp coupling) μεταξύ των μονάδων. Η σύζευξη αντιγράφου εμφανίζεται, όταν η πληροφορία που αποστέλλεται μεταξύ των μονάδων δεν είναι η απολύτως απαραίτητη. Όταν δύο μονάδες ανταλλάσουν μόνο τα απαραίτητα δεδομένα, τότε οι μονάδες συνδέονται με σύζευξη δεδομένων (data coupling).

2009ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης17 Η κλίμακα της σύζευξης 5. Σύζευξη δεδομένων Χαλαρή ή χαμηλή (επιθυμητή) 4. Σύζευξη αντιγράφου 3. Σύζευξη ελέγχου 2. Σύζευξη από κοινού 1. Περιεχόμενη Σύζευξη Υψηλή (μη επιθυμητή)

2009ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης19 Συνεκτικότητα Επιθυμούμε μία μονάδα λογισμικού να εμφανίζει υψηλή συνεκτικότητα. Η συνεκτικότητα εστιάζει σε μία μονάδα λογισμικού και στα δομικά της στοιχεία. Υψηλή συνεκτικότητα σημαίνει ότι μία μονάδα λογισμικού εξυπηρετεί ένα και καλά ορισμένο σκοπό.

2009ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης20 Επίπεδα συνεκτικότητας (1/2) Συμπτωματική συνεκτικότητα (coincidental cohesion) : τα τμήματα μιας μονάδας είναι εντελώς ασυσχέτιστα. Λογική συνεκτικότητα (logical cohesion): ένας αριθμός λογικά συσχετισμένων λειτουργιών τοποθετούνται στην ίδια μονάδα. Χρονική συνεκτικότητα (temporal cohesion): οι λειτουργίες της μονάδας σχετίζονται μόνο λόγω της χρονικής τους σχέσης.

2009ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης21 Επίπεδα συνεκτικότητας (2/2) Διαδικαστικά συνεκτική (procedurally cohesive).: οι λειτουργίες ομαδοποιούνται σε μονάδες ακριβώς για να επιβεβαιώνεται η σειρά εκτέλεσης. Εναλλακτικά μπορούμε να συσχετίσουμε συγκεκριμένες λειτουργίες, είτε επειδή δουλεύουν με, ή παράγουν, τα ίδια δεδομένα. Μερικές φορές αυτή η κατασκευή φαίνεται βολική. Οι μονάδες που κατασκευάζονται με αυτό τον τρόπο είναι επικοινωνιακά συνεκτικές (communicationally cohesive). Εάν η έξοδος από ένα τμήμα μιας μονάδας είναι είσοδος σε ένα επόμενο τμήμα, η μονάδα έχει ακολουθιακή συνεκτικότητα (sequential cohesion). Λειτουργική συνεκτικότητα (functional cohesion) : κάθε στοιχείο επεξεργασίας είναι απαραίτητο για την εκτέλεση μιας λειτουργίας.

2009ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης22 Κλίμακα τύπων συνεκτικότητας

2009ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης23 Δραστηριότητες σχεδίασης Ανεξάρτητα από το υπόδειγμα ανάπτυξης που υιοθετείται, η σχεδίαση περιλαμβάνει τις δραστηριότητες : της αρχιτεκτονικής σχεδίασης (architectural design), της λεπτομερούς σχεδίασης (detailed design) και τον έλεγχο του σχεδίου.

2009ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης24 Αρχιτεκτονική σχεδίαση Κατά την αρχιτεκτονική σχεδίαση (ή γενική σχεδίαση ή σχεδίαση υψηλού επιπέδου ή σχεδίαση συστήματος) προσδιορίζονται οι μονάδες που συνθέτουν το σύστημα λογισμικού σύμφωνα με τη συγκεκριμένη σχεδιαστική λύση. Οι σχεδιαστές μελετούν διεξοδικά το ΕΠΑΛ και όλα τα έγγραφα του έργου και παράγουν μια δομή μονάδων που εξασφαλίζει την επιθυμητή λειτουργικότητα και ικανοποιεί τις μη λειτουργικές απαιτήσεις. Πέρα από τον προσδιορισμό των μονάδων περιγράφεται και ο τρόπος διασύνδεσής τους. Το αποτέλεσμα είναι ένα μοντέλο του συστήματος που θα πρέπει να έχει τη «σωστή» τμηματικότητα, να κάνει χρήση της απόκρυψης πληροφοριών, να αξιοποιεί την αφαίρεση, να έχει χαλαρή σύζευξη ανά ζεύγος μονάδων και κάθε μονάδα να έχει υψηλή συνεκτικότητα. Επιπρόσθετα στην αρχιτεκτονική σχεδίαση λαμβάνονται υπόψη και τα ποιοτικά χαρακτηριστικά του λογισμικού, όπως η αξιοπιστία, η απόδοση, η ελεγξιμότητα κ.τ.λ.

2009ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης25 Λεπτομερής σχεδίαση Η λεπτομερής σχεδίαση (ή σχεδίαση μονάδας ή σχεδίαση χαμηλού επιπέδου) επικεντρώνεται σε μονάδες λογισμικού παράγοντας το σχέδιο κάθε μονάδας. Επιλέγονται συγκεκριμένοι αλγόριθμοι και δομές δεδομένων και περιγράφεται λεπτομερώς η επεξεργασία της κάθε μονάδας. Κάθε λεπτομερής σχεδίαση μπορεί να θεωρηθεί ένα αυτοτελές έργο σχεδίασης, αγνοώντας το γεγονός ότι είναι μέρος ενός όλου.

2009ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης26 Έλεγχος Σχεδίου Ο έλεγχος σχεδίου ακολουθεί τη λεπτομερή σχεδίαση και εξετάζει την ορθότητα της αρχιτεκτονικής λύσης σε συνδυασμό με τα λεπτομερή σχέδια, παρέχοντας την δυνατότητα εντοπισμού τυχόν λαθών στη σχεδίαση, πριν ξεκινήσει η υλοποίηση των σχεδίων. Για τον έλεγχο του σχεδίου εκτελούμε τεχνικές ανασκοπήσεις όπως οι περιηγήσεις και οι επιθεωρήσεις. Ο έλεγχος του σχεδίου απαντά στο ερώτημα εάν χτίζουμε σωστά το λογισμικό, ενώ αντίθετα ο έλεγχος της τεκμηρίωσης των απαιτήσεων απαντά στο ερώτημα εάν χτίζουμε το σωστό λογισμικό.

2009ΟΠΑ -Τεχνολογία Λογισμικού – Εμμ. Γιακουμάκης27 Σχεδίαση και υποδείγματα ανάπτυξης λογισμικού Σχεδίαση προσανατολισμένη στις λειτουργίες. Η έμφαση δίδεται στις λειτουργίες και στην υψηλή συνεκτικότητα των μονάδων. Σχεδίαση προσανατολισμένη στα δεδομένα. Η σχεδίαση ξεκινά με τον προσδιορισμό των δομών δεδομένων και ακολουθεί ο προσδιορισμός μονάδων επεξεργασίας των δεδομένων. Σχεδίαση προσανατολισμένη στα αντικείμενα. Η σχεδίαση αντιμετωπίζει τις λειτουργίες και τα δεδομένα από κοινού, χωρίς να δίδει προτεραιότητα σε ένα εκ των δυο.