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

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

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

Δομημένος Προγραμματισμός

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

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

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

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

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

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

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

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

14η ιάλεξη. Προχωρημένα θέματα σχεδίασης

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

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

9 ο ΕΡΓΑΣΤΗΡΙΟ ΣΗΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ

ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ. Λογισμός ΙΙ. Χρήστος Θ. Αναστασίου Τμήμα Μηχανικών Πληροφορικής ΤΕ

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

4η ιάλεξη. UML ιαγράμματα αλληλεπίδρασης

ΔΙΔΑΣΚΩΝ: Δρ. Στυλιανός Τσίτσος

ΑΝΑΛΥΣΗ ΧΡΗΜΑΤΟΟΙΚΟΝΟΜΙΚΩΝ ΚΑΤΑΣΤΑΣΕΩΝ

ΑΣΦΑΛΕΙΑ & ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ(Θ)

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δείκτες Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις

Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης. Λογισμός 3 Ασκήσεις. Μιχάλης Μαριάς Τμήμα Α.Π.Θ.

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

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

Ειδικά Θέματα Προγραμματισμού

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

Διαδικαστικός Προγραμματισμός

ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΜΕ ΧΡΗΣΗ Η/Υ

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Εργαστήριο

Αλληλεπίδραση Ανθρώπου- Υπολογιστή & Ευχρηστία

Πληροφορική ΙΙ Θεματική Ενότητα 5

Ιόνιο Πανεπιστήμιο - Τμήμα Πληροφορικής

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1

Ηλεκτρονικοί Υπολογιστές I

Σχεδίαση με Ηλεκτρονικούς Υπολογιστές

Θεωρία Πιθανοτήτων & Στατιστική

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

Αυτοματοποιημένη χαρτογραφία

Αρχιτεκτονική υπολογιστών

Προγραμματισμός Η/Υ. Συναρτήσεις & Υποπρογράμματα. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Διδακτική της Πληροφορικής

Πληροφορική. Εργαστηριακή Ενότητα 1 η : Εισαγωγή στα Λογιστικά Φύλλα με το MS Excel. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

ΔΙΔΑΣΚΩΝ: Δρ. Στυλιανός Τσίτσος

Λειτουργικά Συστήματα

Πληροφορική. Εργαστηριακή Ενότητα 3 η : Επεξεργασία Κελιών Γραμμών & Στηλών. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Σχεδίαση με Ηλεκτρονικούς Υπόλογιστές

Ιόνιο Πανεπιστήμιο - Τμήμα Πληροφορικής

Νέες Τεχνολογίες και Καλλιτεχνική Δημιουργία

Εφαρμογές Συστημάτων Γεωγραφικών Πληροφοριών

Εφαρμογές Πληροφορικής στην Τοπογραφία 9η Ενότητα - Εκτυπώσεις στο AutoCAD

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Μοντελοποίηση Λογικών Κυκλωμάτων

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Πληροφορική II. Ενότητα 5 : Δομές Δεδομένων και αφηρημένοι. τύποι δεδομένων. Δρ. Γκόγκος Χρήστος

{ int a = 5; { int b = 7; a = b + 3;

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

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

Αυτοματοποιημένη χαρτογραφία

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Μαθηματικά. Ενότητα 7: Μη Πεπερασμένα Όρια. Σαριαννίδης Νικόλαος Τμήμα Λογιστικής και Χρηματοοικονομικής

Ειδικά Θέματα Δικτύων Ι

Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

Στατιστική Επιχειρήσεων Ι

Λογιστικές Εφαρμογές Εργαστήριο

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων Ι Σύνολο- Περιεχόμενο Μαθήματος

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ

ΣΥΣΤΗΜΑΤΑ ΠΑΡΑΓΩΓΗΣ - ΡΟΜΠΟΤΙΚΗ

Διαδικτυακές Εφαρμογές Ενότητα 7: Προσπέλαση ΒΔ με το JDBC

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Επιχειρησιακή Έρευνα

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

ΑΝΑΓΝΩΡΙΣΗ ΠΡΟΤΥΠΩΝ. ΕΝΟΤΗΤΑ: Γραμμικές Συναρτήσεις Διάκρισης. ΔΙΔΑΣΚΟΝΤΕΣ: Βλάμος Π. Αυλωνίτης Μ. ΙΟΝΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Αλγόριθμοι και Δομές Δεδομένων(Θ) Ευάγγελος Γ. Ούτσιος

Τεχνικές Προγραμματισμού και Χρήση Λογισμικού Η/Υ στις Κατασκευές

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Transcript:

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι κ. ΠΕΤΑΛΙΔΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. ΒΙΟΜΗΧΑΝΙΚΗ ΠΛΗΡΟΦΟΡΙΚΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Κεντρικής Μακεδονίας» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. ΒΙΟΜΗΧΑΝΙΚΗ ΠΛΗΡΟΦΟΡΙΚΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 3

13η ιάλεξη Σχεδίαση συστημάτων/συνεκτικότητα 1

Συνεκτικότητα Αναφέρεται στην εσωτερική συνοχή ενός συστατικού Όσο πιο συνεκτικό είναι ένα συστατικό τόσο περισσότερο σχετίζονται μεταξύ τους τα εσωτερικά του μέρη και εξυπηρετούν καλύτερα το συνολικό σκοπό του Ένα συστατικό με μεγάλη συνοχή δεν έχει παραπανίσια κομμάτια! 2

Είδη συνεκτικότητας Λειτουργική Σειριακή Επικοινωνιακή ιαδικασιακή Χρονική Λογική Συμπτωματική Υψηλή συνεκτικότητα (καλή) Χαμηλή συνεκτικότητα (κακή) 3

Συμπτωματική συνεκτικότητα Όταν τα μέρη δε σχετίζονται μεταξύ τους Παράδειγμα: function doitall(char *par1,int par2) printnextline(); ReverseString(par1) par2 += 7; return par2 Συνήθως προκύπτει από εντολές του τύπου Γράψτε μια συνάρτηση που αποτελείται από 10-20 εντολές 4

Γιατί είναι κακή; Το συστατικό δε συντηρείται εύκολα γιατί είναι δυσνόητο ε μπορεί να επαναχρησιμοποιηθεί ιορθώνεται όμως εύκολα! Φτιάξτε τόσα χωριστά συστατικά όσες και οι ενέργειες που έχετε 5

Λογική συνεκτικότητα Όταν διάφορα λογικά σχετιζόμενες συναρτήσεις ή δεδομένα τοποθετούνται στο ίδιο συστατικό Για παράδειγμα έχετε μια συνάρτηση η οποία γράφει δεδομένα σε συσκευές. Επιλέγετε τη συσκευή στην οποία θα γράψει περνώντας μια παράμετρο: Αν περαστεί το 1 γράφει σε δίσκο, αν περαστεί το 2 γράφει στη μνήμη κτλ Συνήθως συνάρτηση αυτή θα παίρνει και άλλες παραμέτρους που θα τους χρησιμοποιεί ανάλογα με τον κωδικό που περάσατε 6

Λογική συνεκτικότητα Παράδειγμα function code = 7; writedata(op code, dummy 1, dummy 2, dummy 3); // dummy 1, dummy 2, and dummy 3 are dummy variables, // not used if function code is equal to 7 Η writedata καλείται με 4 παραμέτρους αλλά μόνο 3 χρησιμοποιούνται όταν ο κωδικός είναι 7 7

Το συστατικό στα δεξιά περιέχει κώδικα που διαχειρίζεται όλες τις εγγραφές/αναγνώσεις. 8 Παράδειγμα Βάζετε μια καινούργια συσκευή. (πχ. Ένα νέο δίσκο). Πρέπει να αλλάξετε τα κομμάτια 1,2,3,4,7,8. Τι θα γίνει όμως με τις συσκευές που ήδη χρησιμοποιούσαν αυτόν τον κώδικα;

Γιατί είναι κακή; Οι διεπαφές δεν είναι ξεκάθαρες εν είναι ξεκάθαρο που βρίσκεται και τι κάνει κάθε κομμάτι Η επαναχρησιμοποίηση είναι δύσκολη 9

Χρονική συνεκτικότητα Όταν τα μέρη σχετίζονται με βάση το χρονισμό τους Παράδειγμα. Ένα συστατικό που κάνει αρχικοποίηση class initialize { Αρχικοποίησε μεταβλητές προγράμματος Άδειασε τον πίνακα Sales ιάβασε την πρώτη εγγραφή από τον πίνακα Transactions Εμφάνισε μήνυμα στην οθόνη 10

Γιατί είναι τόσο κακή; Γιατί οι ενέργειες που εκτελούνται μέσα στο συστατικό έχουν μόνο μικρή σχέση μεταξύ τους αλλά συνήθως μεγάλη σχέση με ενέργειες που γίνονται σε άλλα συστατικά. Αρχικοποιούμε τον πίνακα Sales αλλά άλλες ενέργειες όπως «ενημέρωσε τον Sales» «τύπωσε τον Sales» βρίσκονται σε άλλα συστατικά Αν θέλουμε να αλλάξουμε τη δομή του πίνακα σε ποιά συστατικά πρέπει να αλλάξουμε τον κώδικα; εν επιτρέπει την επαναχρησιμοποίηση 11

ιαδικασιακή συνεκτικότητα ιαφορετικές λειτουργίες ομαδοποιούνται σε ένα συστατικό επειδή πρέπει να εκτελεστούν με συγκεκριμένη σειρά Συνήθως οι λειτουργίες δεν έχουν κάποιο κοινό δεδομένο, αλλά απλά όταν ολοκληρώνεται η μία περνάει τον έλεγχο στην άλλη Για παράδειγμα: function makerepairs() { read part number update repair record on master file } 12

Γιατί είναι κακή; εν επιτρέπει την επαναχρησιμοποίηση Οι ενέργειες μέσα στο συστατικό είναι μόνο χαλαρά συνδεδεμένες μεταξύ τους. 13

Πότε είναι καλή; Όταν φτιάχνεται ένα συστατικό που ελέγχει (βρίσκεται πάνω από) όλα τα άλλα 14

Επικοινωνιακή συνεκτικότητα Ομαδοποιούνται συναρτήσεις που δρουν στο ίδιο σύνολο δεδομένων. Μοιάζει με τη χρονική αλλά εδώ κάθε λειτουργία δρα στα ίδια δεδομένα και η σειρά με την οποία γίνονται οι λειτουργίες δεν είναι τόσο σημαντική Παράδειγμα Ενημέρωσε μια εγγραφή στη βάση ΚΑΙ γράψε τα στοιχεία της εγγραφής σε ένα αρχείο Υπολόγισε νέες συντεταγμένες ΚΑΙ τύπωσέ τες στην οθόνη 15

Γιατί δεν είναι καλή; Οι ενέργειες είναι πιο στενά συνδεδεμένες αλλά όχι με το βέλτιστο τρόπο εν είναι εύκολη η επαναχρησιμοποίηση γιατί κάθε συστατικό τελικά εκτελεί πάνω από μια ενέργειες Καλό θα ήταν να χωριστεί σε περισσότερα συστατικά, ένα για κάθε ενέργεια 16

Ακολουθιακή συνεκτικότητα Όταν ένα συστατικό εκτελεί μια σειρά από ενέργειες, αλλά κάθε μία είναι ορισμένη ανεξάρτητα από την άλλη και όλες ενεργούν πάνω στο ίδιο σύνολο δεδομένων 17

Παράδειγμα 18

Παράδειγμα (σε κώδικα C) Ένα αρχείο salesregion.c που περιέχει struct SalesRegion {}; //definition initsalesregion() //function updatesalesregion() //function printsalesregion() //function 19

Γιατί είναι καλή Γιατί ο κώδικας για κάθε ενέργεια είναι ανεξάρτητος και η επαναχρησιμοποίηση είναι πιο εύκολη 20

Λειτουργική συνεκτικότητα Κάθε τμήμα επεξεργασίας είναι απαραίτητο για την απόδοση μιας μόνο λειτουργίας Παράδειγμα Υπολόγισε τη θερμοκρασία του δωματίου Παράδειγμα Υπολόγισε το εμβαδόν ενός τετραγώνου 21

Γιατί είναι καλή Γιατί η επαναχρησιμοποίηση είναι εύκολη Γιατί η εύρεση και διόρθωση λαθών είναι εύκολη Η λειτουργική συνεκτικότητα είναι ιδεατή και όχι πάντα δυνατή 22