Από Ανάλυση στη Σχεδίαση

Σχετικά έγγραφα
Από Ανάλυση στη Σχεδίαση

Εισαγωγή στη Σχεδίαση Λογισμικού

Τεχνολογία Λογισμικού

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα

Επιχειρηµατικές ιαδικασίες: Εισαγωγικές Έννοιες & Αρχικά στάδια µοντελοποίησης

ΠΕΡΙΕΧΟΜΕΝΑ. 2.5 Παράδειγµα πληροφοριακού συστήµατος Παράδειγµα συστήµατος πραγµατικού χρόνου

Αρχιτεκτονική Λογισμικού

Κατευθυντήριες γραµµές

Ειδικά θέματα τεχνολογίας λογισμικού

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Υλοποίηση στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

Τεχνολογία Λογισμικού

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Ανάλυση και ο Σχεδιασµός στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΙΟΙΚΗΣΗΣ. Ανάπτυξη Πληροφοριακών Συστηµάτων Επισκόπηση Π.Σ. & τεχνικές για Ανάλυση και Ανάπτυξη. πληροφοριακών συστηµάτων

Μοντέλα. χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες.

Οι περιπτώσεις χρήσης

ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Συστήµατος Συσκευασίας Φακέλων Τσαγιού

Περιεχόµενα. Ανασκόπηση - Ορισµοί. Ο κύκλος ανάπτυξης προγράµµατος. Γλώσσες Προγραµµατισµού Ασκήσεις

ΜΕΘΟΔΟΛΟΓΙΕΣ ΑΝΑΠΤΥΞΗΣ ΣΥΣΤΗΜΑΤΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ

Χειρισµός Σφαλµάτων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:

ΠαράδειγµαΠρογραµµατισµού

Μέθοδοι. Υποσυστήµατα και πακέτα. Μοντέλα αντικειµενοστραφούς σχεδίασης. Αντικειµενοστραφής Σχεδίαση. Στα πρώτα στάδια της ανάλυσης

Ασφαλή Συστήματα Μέθοδοι ελέγχου και εξακρίβωσης ορθής λειτουργίας

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 5: Component Adaptation Environment (COPE)

Εισαγωγή στην Τεχνολογία Λογισµικού

Α. Ερωτήσεις Ανάπτυξης

Σχεδιασµός βασισµένος σε συνιστώσες

Τεχνολογία Λογισµικού Ι Κεφάλαιο 3

Τεχνολογία Λογισµικού Ι Κεφάλαιο 5

ΠΛΗΡΟΦΟΡΙΚΗ ΣΤΟ ΕΝΙΑΙΟ ΛΥΚΕΙΟ

ΕΠΛ 034: Εισαγωγήστον ΠρογραµµατισµόγιαΗΜΥ

Εισαγωγή στην πληροφορική

Κεφάλαιο 3.1, : Συναρτήσεις I. ( ιάλεξη 11) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 Συµπληρωµατική ΔΙΑΛΕΞΗ 14: Περιγραφή Ακολουθιακών Κυκλωµάτων στη VHDL

Σχεδίαση Κλάσεων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:

Σύνθεση Data Path. ιασύνδεσης. Μονάδες. Αριθµό Μονάδων. Τύπο Μονάδων. Unit Selection Unit Binding. λειτουργιών σε. Μονάδες. Αντιστοίχιση µεταβλητών &

Εισαγωγή στην Τεχνολογία Λογισµικού

Αναζήτηση Κατά Πλάτος

Αντικειμενοστρεφής Προγραμματισμός

Ελληνικό Ανοικτό Πανεπιστήµιο. Η ιαχείριση Απαιτήσεων στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

VHDL για Σχεδιασµό Ακολουθιακών Κυκλωµάτων

Τεχνολογία λογισμικού στην πράξη

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 13: Διαδικασία Σχεδιασµού Ακολουθιακών Κυκλωµάτων (Κεφάλαιο 6.

Σχεδίαση του συστήµατος (συνέχεια) Επίπεδα αποσύνθεσης και συστατικά. Αποσύνθεση και Τµηµατικότητα. Σχεδίαση Λογισµικού

Περιεχόμενο του μαθήματος

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Μέθοδοι αποσύνθεσης. Σχεδίαση του συστήµατος (συνέχεια) Επίπεδα αποσύνθεσης και συστατικά. Αποσύνθεση και Τµηµατικότητα. Σχεδίαση Λογισµικού

Εισαγωγή στην Τεχνολογία Λογισµικού

Ανοχή απέναντι σε Σφάλµατα Fault Tolerance

Τεχνολογία Λογισμικού

METROPOLIS. Ένα περιβάλλον σχεδιασμού για ετερογενή συστήματα

Αρχές Προγραμματισμού Υπολογιστών

Ελληνικό Ανοικτό Πανεπιστήµιο Εισαγωγή στη Ενοποιηµένη Προσέγγιση Unified Process (UP) ρ. Πάνος Φιτσιλής

Υπολογιστικές Μέθοδοι στις Κατασκευές

Computing. Νοέμβριος Έκδοση 1.0

Διαφορές single-processor αρχιτεκτονικών και SoCs

Ενότητα 4. Πρωτόκολλα ροµολόγησης: Αρχές Λειτουργίας του OSPF (Open Shortest Path First)

. Μεθοδολογία Προγραμματισμού. Καλή και κακή σχεδίαση. Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014

Σχεδίαση συστήµατος. Εννοιολογικό και Τεχνικό σχέδιο. Εισαγωγή στη Σχεδίαση Λογισµικού

Τεχνολογία Λογισµικού Ι Κεφάλαια 1-21

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

ΚΕΦΑΛΑΙΟ 7 ΕΙ Η, ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Στρατηγικό Σχεδιασµό Πληροφοριακών Συστηµάτων

8. ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ ΔΕΔΟΜΕΝΩΝ

Αλγόριθµοι Γραφηµάτων

ΗΜΥ 210: Λογικός Σχεδιασµός, Εαρινό Εξάµηνο Ένα συνδυαστικό κύκλωµα µπορεί να περιγραφεί από: Φεβ-05. n-είσοδοι

Τεχνολογίες Υλοποίησης Αλγορίθµων

Αρχιτεκτονικός σχεδιασμός. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 11

Requirements Απαιτήσεις

ΑΞΙΟΠΙΣΤΙΑ ΥΛΙΚΟΥ ΚΑΙ ΛΟΓΙΣΜΙΚΟΥ


Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

Εισαγωγή στην πληροφορική

Aρχές Σπονδυλωτού Προγραµµατισµού σε Kατανεµηµένα Συστήµατα. Kεφάλαιο ύο - Tι Eίναι και Tι δεν Eίναι Συστατικό

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 18: Διαδικασία Σχεδίασης Ψηφιακών Συστηµάτων - Επανάληψη

Τα διαγράµµατα καταστάσεων

ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή

Σελίδα 1 από 11. Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για:

Γ. Κορίλη Αλγόριθµοι ροµολόγησης

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. VHDL για Ακολουθιακά Κυκλώματα 1

οκιμασία και πλάνο δοκιμασίας

Πίνακας Περιεχομένων. μέρος A 1 Εισαγωγή στην Τεχνολογία Λογισμικού

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Σχεδίαση Συστήματος Λογισμικού

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

Μονάδες 10. Μονάδες 9 5 PROLOG. Μονάδες 5

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΕΡΓΑΛΕΙΑ ΙΟΙΚΗΣΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΜΑΘΗΜΑ: ΙΟΙΚΗΣΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

ΜΕΘΟΔΟΛΟΓΙΑ ΑΝΑΠΤΥΞΗΣ ΕΜΠΟΡΙΚΩΝ ΕΦΑΡΜΟΓΩΝ

Δείχτες Επιτυχίας και Δείχτες Επάρκειας

09 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών. Εαρινό εξάμηνο

Τεχνολογία Λογισμικού & Πνευματική Ιδιοκτησία. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Βάσεις εδοµένων. Βασίλειος Βεσκούκης. Ενα παράδειγµα σχεδίασης Β. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών

ΜΑΘΗΜΑ 10 Ο ΟΡΓΑΝΩΣΗ ΤΗΣ Β ΓΙΑ ΧΡΗΣΤΕΣ (NON-EXPERTS) Α. ΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ ΕΠΙΛΟΓΩΝ 1. TOOLS DATA UTILITIES SWITCHBOARD MANAGER YES

Λογισµικό (Software SW) Γλώσσες

Transcript:

Σχεδίαση Λογισµικού ΙΙ Αντώνης Καραγεώργος Τµήµα Μηχανικών Η/Υ και ικτύων Πανεπιστήµιο Θεσσαλίας karageorgos@inf.uth.gr Πρότυπα σχεδίων και επαναχρησιµοποίηση Θέλουµε ναεκµεταλλευτούµε τακοινά χαρακτηριστικά µεταξύ των συστηµάτων ώστε να µην τα αναπτύσσουµε κάθε φορά από την αρχή Η αναζήτηση κοινών χαρακτηριστικών αντιστοιχεί σε αναζήτηση προτύπων σχεδίασης Είναι σηµαντικό να κατασκευάζουµε πρότυπα σχεδίου µε τρόπους που δεν τα συνδέουν µε κάποιο συγκεκριµένο σύστηµα Από Ανάλυση στη Σχεδίαση Χαρακτηριστικά καλού σχεδίου Data Object Description Process Specification (PSPEC) Entity- Data Flow Relationship Diagram Diagram Data Dictionary State-Transition Diagram Control Specification (CSPEC) interface design architectural design data design procedural design Αναζητούµε χαρακτηριστικά που συνδέονται µε ποιότητα σχεδίασης: Ανεξαρτησία δοµικών µονάδων Αναγνώριση και χειρισµός εξαιρέσεων Παρεµπόδιση και ανοχή σφαλµάτων ΜΟΝΤΕΛΟ ΑΝΑΛΥΣΗΣ ΜΟΝΤΕΛΟ ΣΧΕ ΙΑΣΗΣ Pressman p. 331 1

Ανεξαρτησία συστατικών του σχεδίου Σύζευξη Προσπαθούµε νακάνουµε τιςδοµικές µονάδες (συστατικά) όσο το δυνατόν ανεξάρτητες µεταξύ τους Με τον τρόπο αυτό είναι πιό εύκολο να κατανοήσουµε τι κάνουν αλλά και να τις τροποποιήσουµε πιοεύκολα Οβαθµός ανεξαρτησίας των συστατικών ενός σχεδίου χαρακτηρίζεται µε βάση τη σύζευξη και τη συνεκτικότητά τους Σύζευξη (coupling) είναι ο βαθµός συσχέτισης µεταξύ των δοµικών µονάδων. Συνεκτικότητα (Cohesion): Αναφέρεται στην εσωτερική συνοχή µε βάση την οποία κατασκευάζεται ένα συστατικό Προσπαθούµε ναέχουµε χαµηλή σύζευξη και υψηλή συνεκτικότητα!!! Χαλαρή σύζευξη Κάποιες εξαρτήσεις Μή συζευγµένα (καθόλου σύζευξη) Υψηλή σύζευξη Πολλές εξαρτήσεις Τύποι σύζευξης Τύποι σύζευξης (συνέχεια) Σύζευξη περιεχοµένων : Αναφορές που γίνονται από ένα συστατικό στα υπόλοιπα (π.χ. Α καλεί Β και τροποποιεί τα περιεχόµενά του) Σύζευξη κοινών δεδοµένων: εδοµένα που είναι κοινά για κάποια συστατικά (π.χ. το Α και το Β έχουν µια κοινή µεταβλητή) Σύζευξη ελέγχου: Έλεγχος που ένα συστατικό ασκεί στα υπόλοιπα (π.χ. Α περνά µια σηµαία ελέγχου στο Β και µε τοντρόποαυτό καθορίζει τη µετέπειτα λειτουργία του) Σύζευξη αντιγράφου: Ανταλλαγή δοµών δεδοµένων µεταξύ των συστατικών (π.χ. το Α περνά ένα αντικείµενο ή µια δοµή στο Β) Σύζευξη δεδοµένων: εδοµένα που περνούν από ένα συστατικό στα υπόλοιπα (π.χ. το Α περνά µια µεταβλητή ή έναν πίνακα στο Β) Component B Go to D1 Component D B A D C E Στόχος µας η διατήρηση χαµηλού βαθµού σύζευξης στα συστατικά του σχεδίου Go to D1 D1: Παράδειγµα σύζευξης περιεχοµένου 2

Τύποι σύζευξης (συνέχεια) Αποτίµηση σύζευξης Global: A1 A2 A3 Variables: V1 V2 Common data area and variable names Component X Component Y Component Z Change V1 to zero Increment V1 V1 = V2 + A1 Σύζευξη περιεχοµένων Σύζευξη κοινών δεδοµένων Σύζευξη ελέγχου Σύζευξη αντιγράφου Σύζευξη δεδοµένων Μη σύζευξη ΥΨΗΛΗ ΣΥΖΕΥΞΗ ΧΑΛΑΡΗ ΕΛΑΧΙΣΤΗ Παράδειγµα σύζευξης κοινών δεδοµένων Μερικοί τύποι σύζευξης είναι λιγότερο επιθυµητοί από άλλους π.χ. σύζευξη περιεχοµένου Συνεκτικότητα Αναφέρεται στην εσωτερική συνοχή µε βάση την οποία κατασκευάζεται ένα συστατικό Όσο πιο συνεκτικό είναι ένα συστατικό τόσο περισσότερο τα εσωτερικά µέρη του σχετίζονται µεταξύ τους και εξυπηρετούν το συνολικό σκοπό του Ένα συστατικό είναι συνεκτικό άν όλα τα τµήµατά του χρειάζονται για την εκτέλεση της ίδιας εργασίας Κοινός στόχος της σχεδίασης είναι να γίνει κάθε συνθετικό όσο συνεκτικότερο γίνεται Τύποι συνεκτικότητας Συµπτωµατική (coincidental): τα τµήµατα του συστατικού δε σχετίζονται µεταξύ τους Λογική (logical): διάφορες λογικά συσχετιζόµενες συναρτήσεις ή δεδοµένα τοποθετούνται στο ίδιο συστατικό π.χ. συναρτήσεις ανάγνωσης δεδοµένων Χρονική (temporal): οι λειτουργίες του συστατικού σχετίζονται µόνο µε βάση τη χρονική περίοδο στην οποία εκτελούνται ιαδικασιακή (procedural): οι λειτουργίες πρέπει να εκτελούνται µε βάση µια συγκεκριµένη σειρά Επικοινωνιακή (communicational): οι λειτουργίες παράγουν ή ενεργούνστοίδιοσύνολοδεδοµένων Σειριακή (sequential): η έξοδος από το ένα τµήµα του συστατικού αποτελεί είσοδο για ένα άλλο Λειτουργική (functional): κάθε τµήµα της επεξεργασίας είναι απαραίτητο για την απόδοση µιας µόνο λειτουργίας 3

Τύποι συνεκτικότητας (συνέχεια) Παραδείγµατα συνεκτικότητας ΛΕΙΤΟΥΡΓΙΑ A ΛΕΙΤΟΥΡΓΙΑ A ΧΡΟΝΟΣ T0 ΛΕΙΤΟΥΡΓΙΑ A Λειτουργική Σειριακή Επικοινωνιακή ΥΨΗΛΗ ΣΥΝΕΚΤΙΚΟΤΗΤΑ ΛΕΙΤΟΥΡΓΙΑ Β ΛΕΙΤΟΥΡΓΙΑ ΛΕΙΤΟΥΡΓΙΑ Γ ΛΕΙΤΟΥΡΓΙΑ Ε logic ΛΕΙΤΟΥΡΓΙΑ Α ΛΕΙΤΟΥΡΓΙΑ Α ΣΥΜΠΤΩΜΑΤΙΚΗ ΛΟΓΙΚΗ Τα τµήµατα δε σχετίζονται Παρόµοιες λειτουργίες ΧΡΟΝΟΣ T0 + X ΧΡΟΝΟΣ T0 + 2X ΧΡΟΝΙΚΗ Σχετίζονται µε βάση το χρονισµό ΛΕΙΤΟΥΡΓΙΑ B ΛΕΙΤΟΥΡΓΙΑ Γ ΙΑ ΙΚΑΣΙΑΚΗ Σχετίζονται µε βάση τη σειρά των λειτουργιών ιαδικασιακή Χρονική Λογική Συµπτωµατική ΧΑΜΗΛΗ Ε ΟΜΕΝΑ ΛΕΙΤΟΥΡΓΙΑ A ΛΕΙΤΟΥΡΓΙΑ Β ΛΕΙΤΟΥΡΓΙΑ Γ ΕΠΙΚΟΙΝΩΝΙΑΚΗ Πρόσβαση στα ίδια δεδοµένα ΛΕΙΤΟΥΡΓΙΑ A ΛΕΙΤΟΥΡΓΙΑ Β ΛΕΙΤΟΥΡΓΙΑ Γ ΛΕΙΤΟΥΡΓΙΑ A µέρος 1 ΛΕΙΤΟΥΡΓΙΑ A µέρος 2 ΛΕΙΤΟΥΡΓΙΑ A µέρος 3 ΑΚΟΛΟΥΘΙΑΚΗ ΛΕΙΤΟΥΡΓΙΚΗ Η έξοδος του ενός τµήµατος Ακολουθιακή συνεκτικότητα είναι η είσοδος στο επόµενο µε επιπλέον πλήρεις σχετιζόµενες λειτουργίες Παράδειγµα ελέγχου συστατικών A B C D E F G A B C D E F G Σύστηµα 1 (προτιµητέο) Σύστηµα 2 Στόχος: ηµιουργία συστατικών µε υψηλό πλήθος εισόδων (fan-in) και χαµηλό πλήθος εξόδων (fan-out) Αναγνώριση και χειρισµός εξαιρέσεων Σχεδιάζουµε αµυντικά, προσπαθώντας να αποφύγουµε καταστάσεις που µπορούν να οδηγήσουν σε προβλήµατα για το σύστηµα Εξαιρέσεις (exceptions): καταστάσεις που είναι γνωστό ότι είναι ενάντια στη λειτουργία του συστήµατος Οι εξαιρέσεις συµπεριλαµβάνουν: Αδυναµία παροχής µιας υπηρεσίας Παροχή λανθασµένης υπηρεσίας ή δεδοµένων Αλλοίωση δεδοµένων Χειρισµός εξαιρέσεων Επανάληψη: επανεκτελούµε τηνυπηρεσίαµε διαφορετικό τρόπο ξεκινώντας από την προηγούµενη κατάσταση ιόρθωση: εκτελούµε επανάληψη αφού πρώτα διορθώσουµε κάποια χαρακτηριστικά του συστήµατος Αναφορά: αναφέρουµε την εξαίρεση σε κατάλληλο συστατικό και δεν εκτελούµε την υπηρεσία 4

Παρεµπόδιση και ανοχή σφαλµάτων Προσπάθεια για αντιµετώπιση σφαλµάτων µε τρόπο που να ελαχιστοποιεί τη δυσλειτουργία του συστήµατος και να µεγιστοποιεί την ασφάλεια Σφάλµα: Αποτέλεσµα ανθρώπινου λάθους Αστοχία: η αποµάκρυνση του συστήµατος από την προβλεπόµενη συµπεριφορά Χαρακτηριστικό καλής σχεδίασης: οτρόποςπου παρεµποδίζει ή ανέχεται τα σφάλµατα Τεχνικές για αντιµετώπιση σφαλµάτων Παθητική ανίχνευση σφαλµάτων Αντιµετωπίζουµε τα σφάλµατα µόλις εµφανιστούν οι αστοχίες στην εκτέλεση Ενεργητική ανίχνευση σφαλµάτων Έλεγχος για σφάλµαταπρινγίνουναστοχίες ιόρθωση σφαλµάτων Επανόρθωση του συστήµατος µετά τη δράση του σφάλµατος Ανοχή στα σφάλµατα Αποµόνωση της ζηµιάς που προκαλείται από ένα σφάλµα Ενεργητική ανίχνευση σφαλµάτων Περιοδικός έλεγχος συµπτωµάτων σφαλµάτων και προσπάθεια πρόβλεψης αστοχιών (συχνά σε δεύτερο υπολογιστή) Αµοιβαία υποψία (mutual redundancy): κάθε συστατικό του συστήµατος υποθέτει οτι τα άλλα περιέχουν σφάλµατα και ελέγχει την είσοδό του για ορθότητα και συνέπεια Πλεονασµός (redundancy): τα αποτελέσµατα δύο ή περισσοτέρων διεργασιών συγκρίνονται για να εξεταστεί άν είναι πανοµοιότυπα Π.χ. στο διαστηµικό λεωφορείο 7 υπολογιστές ψηφίζουν για κάθε επόµενη ενέργεια ιόρθωση και ανοχή σφαλµάτων ιόρθωση σφαλµάτων Στρατηγική για χειρισµό σφαλµάτων Επανόρθωση της δυσλειτουργίας που έγινε από κάποια αστοχία (π.χ. καταγραφή της δυσλειτουργίας και διακοπή της λειτουργίας του συστήµατος) Αλλαγή του συστήµατος για να εξαλειφθεί η δυσλειτουργία Ανοχή σφαλµάτων Αποµόνωση της ζηµιάς που προκαλείται από ένα σφάλµα Ενέργειες ώστε το σφάλµα ναµην εξελιχθεί σε αστοχία 5

Τεχνικές για βελτίωση του σχεδίου Μείωση της πολυπλοκότητας Σχεδίαση µε συµβόλαιο Πρωτοτυποποίηση της σχεδίασης Ανάλυση δέντρου σφαλµάτων Πολυπλοκότητα υσκολία στην κατανόηση και την διαχείριση Πολυπλοκότητα σχεδίασης: υσκολία στην κατανόηση και την διαχείριση προϊόντων σχεδίασης Σχετίζεται µε τοναριθµό των χαρακτηριστικών, π.χ. έννοιες, διαγράµµατα, σχέσεις µεταξύ των στοιχείων των διαγραµµάτων, που περιλαµβάνονται στο σχέδιο αλλά και στη διαδικασία σχεδίασης Σχετίζεται µε σφάλµατα στο λογισµικό και γι αυτό είναι επιθυµητό να έχουµε χαµηλή πολυπλοκότητα Μείωση της πολυπλοκότητας σχεδίασης Σχεδίαση µε συµβόλαιο Αστοχίες ανά χιλιάδες γραµµές κώδικα 10 9 8 7 6 5 4 3 2 1 20 25 30 35 Πολυπλοκότητα σχεδίασης του συστήµατος Card and Class 1990 Το σύστηµα αποτελείται από έναν αριθµό αλληλεπιδρόντων συστατικών Υπάρχουν αυστηρά καθορισµένες προδιαγραφές για το τι κάνει το κάθε συστατικό που ονοµάζονται συµβόλαια (contracts) Κάθε συµβόλαιο καλύπτει αµοιβαίες υποχρεώσεις (preconditions), µετασυνθήκες (postconditions) και διαβεβαιώσεις (invariants) π.χ. require count <= capacity not key.empty ensure has(x) item(key)=x invariant is_full =(.95*capacity<=gauge) 6

Πρωτοτυποποίηση σχεδίασης Ανάλυση δέντρου σφαλµάτων Κατασκευή πρωτοτύπου υλοποιώντας µόνο τις αναγκαίες λειτουργίες Μπορεί να είναι: µιας χρήσης (throw away prototype) Μέρος του τελικού συστήµατος (rapid prototyping) Το ίδιο αποτελεσµατική όπως οι παραδοσιακές τεχνικές ανάπτυξης συστηµάτων Either event can occur Valve stuck in open position Basic events Cooling system overflows OR Timeout control fails Failure Fill mode remains on AND Sensor fails Both events must occur G1 G2 G3 G4 G5 A1 A2 A3 A4 Fault tree A5 G2 G1 G3 {G4, G5} {A4, A5} {A1, G5} {A2, G5} {A1, A3} {A1, A4} {A2, A3} {A2, A4} Cut-set tree Τµήµα συστήµατος ελέγχου ενός πυρηνικού αντιδραστήρα έντρο σφαλµάτων και δέντρο συνόλου αποκοπής Σύνολο αποκοπής [cut-set] είναι το σύνολο των κόµβων-φύλλων του δέντρου αποκοπής όταν αφαιρεθούν τα διπλά αντίγραφα Ανάλυση δέντρου σφαλµάτων Βοηθάει στην αναζήτηση περιπτώσεων που µπορεί να οδηγήσουν σε αστοχίες είχνουν τη λογική διαδροµή από το αποτέλεσµα στην αιτία της αστοχίας Επαλήθευση και επικύρωση της σχεδίασης Επικύρωση (validation): εξασφάλιση οτι η σχεδίαση ικανοποιεί όλες τις απαιτήσεις που ορίστηκαν από τον πελάτη Επαλήθευση (verification): εξασφάλιση οτι υπάρχουν τα χαρακτηριστικά της καλής σχεδίασης 7

Τεχνικές επικύρωσης και επαλήθευσης σχεδίασης Μαθηµατική επικύρωση Μέτρηση της ποιότητας του σχεδίου Σύγκριση σχεδίων Μια προδιαγραφή, πολλά σχέδια Πίνακες σύγκρισης Ανασκοπήσεις σχεδίασης Κριτική ανασκόπηση σχεδίου Ανασκόπηση σχεδίου προγράµµατος Αξία των ανασκοπήσεων σχεδίων Μαθηµατική επικύρωση Αποδεικνύει οτι το σχέδιο είναι σωστό είχνει: Αν το σύνολο των εισόδων µετατρέπεται σωστά στο σύνολο των εξόδων Αν η διεργασία ολοκληρώνεται χωρίς αστοχίες Μέτρηση της ποιότητας του σχεδίου Μέτρηση του σχεδίου σε υψηλό επίπεδο, συµπεριλαµβανοµένων της σύζευξης και της συνεκτικότητας Μέτρηση της πολυπλοκότητας σε κάθε συστατικό και της πολυπλοκότητας των σχέσεων µεταξύ των συστατικών Περισσότερα για µετρήσεις σε επόµενο µάθηµα! Σύγκριση σχεδίων Μια προδιαγραφή πολλά σχέδια ηµιουργία πολλών σχεδίων για µια προδιαγραφή µε βάση διαφορετικά στυλ αρχιτεκτονικής Επιλογή του σχεδίου που είναι πιο κατάλληλο για το σκοπό του συστήµατος Πίνακες σύγκρισης µε διάφορα κριτήρια Ευκολία αλλαγής των αλγορίθµων Ευκολία αλλαγής της αναπαράστασης δεδοµένων Ευκολία αλλαγής λειτουργιών Easy to change function Καλή απόδοση Ευκολία επαναχρησιµοποίησης 8

Πίνακας σύγκρισης σχεδίασης Γενική µέθοδος σχεδίασης της αρχιτεκτονικής Table 5.5. Weighted comparison of Shaw and Garlan designs. Attribute Priority Shared Abstract data Implicit Pipe and filter data type invocation Easy to change 1 1 2 4 5 algorithm Easy to change 4 1 5 2 1 data representation Easy to change 3 4 1 4 5 function Good 3 5 4 2 2 performance Easy to reuse 5 1 4 2 5 Total 37 57 40 55 Από τις απαιτήσεις του χρήστη «αρ. δωµατίων, χρώµα, παράθυρα, πόρτες» architectural design Στοσχέδιοαρχιτεκτονικής Μέθοδος σχεδίασης της αρχιτεκτονικής 1. Καθορισµός προδιαγραφών απαιτήσεων (συλλογή σεναρίων, περιγραφή απαιτήσεων, περιορισµοί) 2. Περιγραφή των στυλ αρχιτεκτονικής που έχουν επιλεγεί 3. Αξιολόγηση των αντίστοιχων χαρακτηριστικών ποιότητας 5. Προσδιορισµός της ευαισθησίας των χαρακτηριστικών ποιότητας των στυλ αρχιτεκτονικής 6. Αξιολόγηση των υποψήφιων αρχιτεκτονικών µε βάση την ευαισθησία των χαρακτηριστικών ποιότητας Μοντέλο περιγραφής απαιτήσεων Μετασχηµατισµοί ηµιουργία του µοντέλου αρχιτεκτονικής Αρχιτεκτονική προγράµµατος 9

ιαχωρισµός της αρχιτεκτονικής Κάνουµε οριζόντιο και κάθετο διαχωρισµό της αρχιτεκτονικής Οριζόντιος διαχωρισµός Ορίζουµε ξεχωριστούς κλάδους της ιεραρχίας των συστατικών για κάθε κύρια λειτουργία Χρησιµοποιούµε συστατικά ελέγχου για να συντονίζουµε την επικοινωνία µεταξύ των λειτουργιών Λειτουργία 1 Λειτουργία 3 Λειτουργία 2 Κάθετος διαχωρισµός: Παραγοντοποίηση Σχεδιάζουµε έτσιώστεοιαποφάσειςκαιοι λειτουργικότητα να στρωµατοποιούνται Τα συστατικά αποφάσεων πρέπει να βρίσκονται στην κορυφή της αρχιτεκτονικής Αποφάσεις Λειτουργικότητα Γιατί θέλουµε διαχωρισµένη αρχιτεκτονική; Έχει σαν αποτέλεσµα λογισµικό που είναι πιο εύκολο να ελεγχθεί Οδηγεί σε λογισµικόπουείναιεύκολονα συντηρηθεί Είναι πιο δύσκολο να µεταφέρονται παρενέργειες (π.χ. από λάθη µεταξύ των δοµικών µονάδων) Το λογισµικόπουπαράγεταιείναιπιοεύκολονα επεκταθεί 10

οµηµένη σχεδίαση Στόχος: να κατασκευάσουµε µια διαχωρισµένη αρχιτεκτονική προγράµµατος Προσέγγιση: Τα διαγράµµατα ροής αντιστοιχίζονται σε µια αρχιτεκτονική προγράµµατος κλήσης και επιστροφής (call and return) the PSPEC and STD are used to indicate the content of each module Συµβολισµός: διαγράµµατα αρχιτεκτονικής Χαρακτηριστικά της ροής πληροφοριών στο σύστηµα Ροή Μετασχηµατισµού Ροή συναλλαγής Γενική µέθοδος αντιστοίχισης Αποµονώνουµε τα όρια της εισερχόµενης και της εξερχόµενης ροής Γιαροέςσυναλλαγήςαποµονώνουµε τοκέντροτης συναλλαγής Ξεκινώντας από τα άκρα του διαγράµµατος αντιστοιχούµε τιςµετατροπές του διαγράµµατος ροής σε συστατικά Προσθέτουµε συστατικά ελέγχου ανάλογα µε τις ανάγκες Βελτιώνουµε την αρχιτεκτονική χρήση κανόνων καλού σχεδίου χρήση στυλ αρχιτεκτονικής και αξιολόγηση των χαρακτηριστικών τους Αντιστοίχιση µετατροπών a b g h d e f c i j ιάγραµµα ροής x1 Αντιστοίχιση µετατροπής x2 x3 x4 b c d e f g i a h j 11

Παραγοντοποίηση Παράδειγµα παραγοντοποίησης πρώτου επιπέδου Αυξανόµενη λήψη αποφάσεων Συστατικά που λαµβάνουν αποφάσεις main program input processing output Συστατικά που εκτελούν λειτουργίες Αντιστοίχιση δευτέρου επιπέδου Ροή συναλλαγών incoming flow D B C A control main T ιαδροµή ενέργειας A C B Απεικόνιση από τα όρια τηςροήςκαιπροςταέξω D 12

Παράδειγµα συναλλαγής Αρχές αντιστοίχισης συναλλαγών operator commands process operator commands assembly record fixture setting report robot control fixture servos display screen robot control software in reality, other commands would also be shown Αποµονώνουµε τηδιαδροµή εισερχόµενης ροής Ορίζουµε τιςδιαδροµές ενέργειας (είναι σαν ακτίνες σε τροχό) Αξιολογούµε τηροήσεκάθεδιαδροµή ενέργειας Ορίζουµε την αρχιτεκτονική αποστολής και ελέγχου Αντιστοιχίζουµε κάθεδιαδροµή ενέργειας ξεχωριστά Αντιστοίχιση συναλλαγών a Μοντέλο ροής δεδοµένων b a x2 d e f x1 b t l t m x3 d g n g h x3.1 i k h j e i j f k x4 l m n Απεικόνιση Αντιστοίχιση του µοντέλου ροής read command command input validate command produce error message process operator commands fixture status determine type report generation send control value Κάθε µια από τις διαδροµές ενέργειας πρέπει να επεκταθεί επιπλέον 13

read command Βελτίωση του διαγράµµατος αρχιτεκτονικής command input validate command read fixture status produce error message determine setting process operator commands fixture status format setting determine type report generation read record send control value calculate output values format report Architecture Trade-off Analysis method (ΑΤΑΜ) Τεχνική για αξιολόγηση αρχιτεκτονικών λογισµικού µε βάση κάποια επιθυµητά χαρακτηριστικά ποιότητας (π.χ. ασφάλεια και ευκολία τροποποιήσεων) Χρησιµοποιεί στυλ αρχιτεκτονικής βασισµένα σε χαρακτηριστικά (attribute-based architectural styles) Χαρακτηρισµός χαρακτηριστικών ποιότητας λογισµικού Σε τι ερεθίσµατα πρέπει να αποκρίνεται η αρχιτεκτονική; Πώς µετράται η επίτευξη των χαρακτηριστικών ποιότητας; Ποιες αποφάσεις σχετικά µε την αρχιτεκτονική επηρεάζουν την επίτευξη του χαρακτηριστικού αυτού; Βήµατα της ΑΤΑΜ 1. Παρουσίαση της ΑΤΑΜ των αναγκών που θα καλύψει το λογισµικό και των αρχιτεκτονικών που προτείνονται 2. Συλλογή σεναρίων, δηµιουργία του δέντρου χρησιµότητας χαρακτηριστικών ποιότητας και ανάλυση των αρχιτεκτονικών προσεγγίσεων 3. Αξιολόγηση των διαφόρων εναλλακτικών αρχιτεκτονικών λύσεων µε βάση τα επιθυµητά χαρακτηριστικά ποιότητας 4. Παρουσίαση των αποτελεσµάτων Περισσότερες πληροφορίες για την ΑΤΑΜ στο: Kazman, R., M. Klein, and P. Clements, ATAM: Method for Architecture Evaluation. 2000, Software Engineering Institute: Pittsburgh, PA 15213-3890. p. 83. 14