Επαναχρησιμοποίηση Λογισμικού

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Γραφήματα & Επίπεδα Γραφήματα
Advertisements

Τι είναι ο προγραμματισμός
Ερωτηματολόγιο Συλλογής Απαιτήσεων Εφαρμογών Υψηλών Επιδόσεων
Μάρτιος 2011 Βαρόμετρο ΕΒΕΘ - Καταναλωτές. “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι.
Επιμέλεια: Τίκβα Χριστίνα
Πέτσας Δημήτριος Παρουσίαση στο μάθημα: Ψηφιακές Βιβλιοθήκες
7.3.8 Μεταφραστές Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα.
Ανάλυση Αναγκών Η κατανόηση των απαιτήσεων του πελάτη για ένα σύστημα λογισμικού.
ΜοντελοποίησηΈργα ΜαθήματαΑξιολόγηση Αναστοχασμος Μαθήματα.
Αρχιτεκτονικός Σχεδιασμός
HTML.
Διαχείριση Έργου Οργάνωση, σχεδιασμός και προγραμματισμός έργων ανάπτυξης λογισμικού.
-Στοίβα-Ουρά - Πλεονεκτήματα πινάκων -Δομές δεδομένων δευτερεύουσας μνήμης -Πληροφορική και δεδομένα -Παραδείγματα-Προβλήματα ψευδοκώδικα.
Διαδικασία ανάπτυξης Προσδιορισμός απαιτήσεων Αρχιτεκτονικός Σχεδιασμός Λεπτομερής Σχεδιασμός Κωδικοποίηση Έλεγχος Παράδοση Συστήματος Λειτουργία - Συντήρηση.
Τεχνολογία ΛογισμικούSlide 1 Τυπική Εξειδίκευση u Τεχνικές για σαφή εξειδίκευση λογισμικού.
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος γ
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 6: Java Collections Εβδομάδα 6: Συλλογές δεδομένων στην Java.
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 4: Exceptions Εβδομάδα 4: Εξαιρέσεις [Exceptions]
Ανάλυση του λευκού φωτός και χρώματα
-17 Προσδοκίες οικονομικής ανάπτυξης στην Ευρώπη Σεπτέμβριος 2013 Δείκτης > +20 Δείκτης 0 a +20 Δείκτης 0 a -20 Δείκτης < -20 Σύνολο στην Ευρωπαϊκή Ένωση:
+21 Προσδοκίες οικονομικής ανάπτυξης στην Ευρώπη Δεκέμβριος 2013 Δείκτης > +20 Δείκτης 0 να +20 Δείκτης 0 να -20 Δείκτης < -20 Σύνολο στην Ευρωπαϊκή Ένωση:
Μηχανική Μάθηση και Εξόρυξη Γνώσης
Βαρόμετρο ΕΒΕΘ - Καταναλωτές Σεπτέμβριος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι.
Η ποιότητα της πληροφορίας στο εκπαιδευτικό υλικό που χρησιμοποιείται ή διανέμεται μέσω του Internet Χρήστος Σαβρανίδης Πανεπιστήμιο Ιωαννίνων Τμήμα ΦΠΨ.
Αναγνώριση Προτύπων.
Κεφάλαιο 2ο Πεπερασμένα αυτόματα.
Τι είναι Ανάλυση Τι είναι Συστήματα Πληροφορικής
ΙΣΟΛΟΓΙΣΜΟΣ ΒΑΣΕΙ Δ.Λ.Π. (ΕΝΑΡΞΗΣ)
ΑΠΕΙΚΟΝΙΣΗ ΕΝΝΟΙΩΝ 1. 2 Χρήστης Στόχος Ταμίας διενέργεια πώλησης διενέργεια ενοικίασης εισαγωγή ταμείου εξαγωγή ταμείου * 1 Μοντέλο Πεδίου Προβλήματος.
Αποκεντρωμένη Διοίκηση Μακεδονίας Θράκης ∆ιαχείριση έργων επίβλεψης µε σύγχρονα µέσα και επικοινωνία C2G, B2G, G2G Γενική Δ/νση Εσωτερικής Λειτουργίας.
ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ
Βαρόμετρο ΕΒΕΘ Μάρτιος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι του Νομού Θεσσαλονίκης”
2006 GfK Praha CORRUPTION CLIMATE IN EUROPE % % % %0 - 10% % % % % % ΚΛΙΜΑ ΔΙΑΦΘΟΡΑΣ Η.
Βαρόμετρο ΕΒΕΘ Μάρτιος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι του Νομού Θεσσαλονίκης”
13ο Πανελλήνιο Συνέδριο Ακαδημαϊκών Βιβλιοθηκών – Κέρκυρα Οκτωβρίου 2004 Το σύστημα COINE για την προβολή της πολιτιστικής κληρονομιάς και την υποστήριξη.
Προγραμματισμός ΙΙ Διάλεξη #6: Απλές Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
Βαρόμετρο ΕΒΕΘ Μάρτιος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι του Νομού Θεσσαλονίκης”
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
Δομές Δεδομένων 1 Στοίβα. Δομές Δεδομένων 2 Στοίβα (stack)  Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή – πρώτη εξαγωγή)  Περιορισμένος.
ΕΙΣΑΓΩΓΗ ΣΤΑ ΓΕΩΓΡΑΦΙΚΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΩΝ
Ο ΗΛΕΚΤΡΟΝΙΚΟΣ ΥΠΟΛΟΓΙΣΤΗΣ
Τεχνολογία ΛογισμικούSlide 1 Σχεδιασμός Λογισμικού u Ανάπτυξη λύσης που ικανοποιεί τις απαιτήσεις λογισμικού.
Τεχνολογία ΛογισμικούSlide 1 Αλγεβρική Εξειδίκευση u Καθορισμός τύπων αφαίρεσης σε όρους σχέσεων μεταξύ τύπων λειτουργιών.
Συνδυαστικά Κυκλώματα
Μοντέλα Συστημάτων Παρουσιάσεις των συστημάτων των οποίων οι απαιτήσεις αναλύονται.
Προγραμματισμός ΙΙ Διάλεξη #5: Εντολές Ανάθεσης Εντολές Συνθήκης Δρ. Νικ. Λιόλιος.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Κληρονομικότητα.
Ανάπτυξη Πρωτοτύπου Λογισμικού
Lists– Λίστες 1. Αυτό-αναφορικές δομές Τα μέλη μίας δομής μπορεί να είναι οποιουδήποτε τύπου, ακόμα και δείκτες σε δομές του ίδιου τύπου. Χρησιμοποιώντας.
Αξιοπιστία Λογισμικού
2-1 Ανάλυση Αλγορίθμων Αλγόριθμος Πεπερασμένο σύνολο εντολών που, όταν εκτελεστούν, επιτυγχάνουν κάποιο επιθυμητό αποτέλεσμα –Δεδομένα εισόδου και εξόδου.
Βαρόμετρο ΕΒΕΘ - Καταναλωτές Μάρτιος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι.
Σχεδιασμός Προσανατολισμένος σε Λειτουργίες
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
Τεχνολογία Λογισμικού
+19 Δεκέμβριος 2014 Δείκτης > +20 Δείκτης 0 έως +20 Δείκτης 0 έως -20 Δείκτης < -20 Συνολικά της ΕΕ: +5 Δείκτης > +20 Δείκτης 0 έως +20 Δείκτης 0 έως -20.
ΤΑ ΔΟΝΤΙΑ ΜΑΣ.
Λεξικό, Union – Find Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Βαρόμετρο ΕΒΕΘ Σεπτέμβριος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι του Νομού.
Κεφάλαιο 10 – Υποπρογράμματα
Τεχνολογία ΛογισμικούSlide 1 Εξειδίκευση Βασισμένη σε Μοντέλο u Τυπική εξειδίκευση λογισμικού με ανάπτυξη μαθηματικού μοντέλου για το σύστημα.
Τεχνολογία ΛογισμικούSlide 1 Τεχνολογία Απαιτήσεων u Καθορίζει τι θέλει ο πελάτης από ένα σύστημα λογισμικού.
ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Αντικειμενοστραφής προγραμματισμός Web Site: ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ.
Κατηγορίες και Προδιαγραφές Λογισμικού Η/Υ (Software)
Ανάλυση και σχεδιασμόσ πληροφοριακών συστημάτων
ΣΥΣΤΗΜΑ ΠΟΙΟΤΗΤΑΣ ΛΟΓΙΣΜΙΚΟΥ (QUALITY SYSTEM)
Μεταγράφημα παρουσίασης:

Επαναχρησιμοποίηση Λογισμικού Κατασκευή λογισμικού από επαναχρησιμοποιήσιμα στοιχεία.

Στόχοι Συζήτηση των πλεονεκτημάτων και μειονεκτημάτων της επαναχρησιμοποίησης λογισμικού Περιγραφή της ανάπτυξης με και για επαναχρησιμοποίηση Συζήτηση χαρακτηριστικών των βασικών επαναχρησιμοποιήσιμων στοιχείων Περιγραφή μεθόδων για ανάπτυξη εφαρμογών που μπορούν να μετακινηθούν

Θέματα Ανάπτυξη λογισμικού με επαναχρησιμοποίηση Ανάπτυξη λογισμικού για επαναχρησιμοποίηση Επαναχρησιμοποίηση βασισμένη σε γεννήτρια Μεταφερσιμότητα εφαρμογής

Τύποι Επαναχρησιμοποιήσιμων Στοιχείων Επαναχρησιμοποίηση Συστήματος Εφαρμογής Συνολικά ένα σύστημα εφαρμογής μπορεί να χρησιμοποιηθεί σε διαφορετική μηχανή. Αυτό ονομάζεται portability μηχανής Επαναχρησιμοποίηση υπο - συστήματος Κύρια υποσυστήματα όπως το σύστημα αναγνώρισης προτύπων μπορούν να επαναχρησιμοποιηθούν Επαναχρησιμοποίηση τμημάτων ή αντικειμένων Το επαναχρησιμοποιήσιμο στοιχείο είναι συλλογή συναρτήσεων ή procedures Επαναχρησιμοποίηση συνάρτησης Το επαναχρησιμοποιήσιμο στοιχείο είναι απλά ένα στοιχείο

Πρακτική Επαναχρησιμοποίησης Επαναχρησιμοποίηση Συστήματος Εφαρμογής Ευρέως διαδεδομένο. Είναι κοινή πρακτική για εταιρείες ανάπτυξης συστημάτων (π.χ. Microsoft) να έχουν διαθέσιμα τα προϊόντα τους σε διαφορετικές πλατφόρμες Επαναχρησιμοποίηση Υποσυστήματος και τμήματος Οι μηχανικοί λογισμικού κάνουν χρήση προηγούμενης δουλείας. Μικρή συστηματική επανάχρηση αλλά αυξανόμενη διάδοση της επαναχρησιμοποίησης Επαναχρησιμοποίηση Συνάρτησης Συχνό σε μερικά πεδία εφαρμογών (π.χ. μηχανική) όπως έχουν αναπτυχθεί ειδικές βιβλιοθήκες.

Τέσσερα Θέματα Επαναχρησιμοποίησης Ανάπτυξη Λογισμικού με Επαναχρησιμοποίηση Ανάπτυξη λογισμικού με δοσμένη βάση επαναχρησιμοποιήσιμων στοιχείων Ανάπτυξη Λογισμικού για Επαναχρησιμοποίηση Πως σχεδιάζουμε βασικά στοιχεία λογισμικού για επαναχρησιμοποίηση Επαναχρησιμοποίηση βασισμένη σε γεννήτρια Επαναχρησιμοποίηση ειδική σε πεδίο μέσω παραγωγής εφαρμογής Επαναχρησιμοποίηση Συστήματος Εφαρμογής Πως γράφουμε συστήματα εφαρμογών τα οποία μπορούν να μεταφερθούν από την μία πλατφόρμα στην άλλη

Ανάπτυξη Λογισμικού με Επαναχρησιμοποίηση Προσπάθειες για μεγιστοποίηση της χρήσης υπαρχόντων στοιχείων Τα στοιχεία αυτά πρέπει να προσαρμόζονται σε μία νέα εφαρμογή Λιγότερα στοιχεία πρέπει να προδιαγράφονται, σχεδιάζονται και προγραμματίζονται Τα συνολικά κόστη ανάπτυξης με αυτόν τον τρόπο μειώνονται

Άλλα Πλεονεκτήματα Η αξιοπιστία του συστήματος αυξάνεται Το συνολικό ρίσκο μειώνεται Μπορεί να γίνει αποτελεσματική χρήση από ειδικούς Τα οργανωτικά πρότυπα μπορούν να ενσωματωθούν σε επαναχρησιμοποιήσιμα στοιχεία Ο χρόνος ανάπτυξης λογισμικού ελαττώνεται

Ανάπτυξη με Επαναχρησιμοποίηση Διαδικασίας

Απαιτήσεις για Επαναχρησιμοποίηση Πρέπει να είναι δυνατόν να βρούμε επαναχρησιμοποιήσιμα στοιχεία σε μία βάση δεδομένων στοιχείων Τα άτομα τα οποία θα επαναχρησιμοποιήσουν στοιχεία πρέπει να μπορούν να κατανοήσουν τα στοιχεία και να πιστεύουν ότι ικανοποιούν τις ανάγκες τους Τα στοιχεία πρέπει να έχουν τεκμηρίωση που να φαίνεται πως μπορούν να επαναχρησιμοποιηθούν και το πιθανό κόστος επαναχρησιμοποίησης

Ανάπτυξη Καθοδηγούμενη από την Επαναχρησιμοποίηση Αντί να θεωρούμε την επαναχρησιμοποίηση μετά την προδιαγραφή του λογισμικού, η προδιαγραφή πρέπει να παίρνει υπόψη της την ύπαρξη επαναχρησιμοποιήσιμων στοιχείων Η προσέγγιση αυτή είναι ευρέως διαδεδομένη στον σχεδιασμό ηλεκτρονικών, ηλεκτρικών και μηχανολογικών συστημάτων Εάν γίνεται αποδεκτή για λογισμικό θα πρέπει να αυξήσουμε σημαντικά την αναλογία των στοιχείων που επαναχρησιμοποιούνται

Ανάπτυξη Καθοδηγούμενη από Επαναχρησιμοποίηση

Προβλήματα Επαναχρησιμοποίησης Δύσκολη η ποσοτικοποίηση κόστους και ωφελειών από την ανάπτυξη με επαναχρησιμοποίηση Τα CASE εργαλεία δεν υποστηρίζουν ανάπτυξη με επαναχρησιμοποίηση. Δεν μπορούν να ολοκληρωθούν με συστήματα βιβλιοθήκης στοιχείων Μερικοί μηχανικοί λογισμικού προτιμούν να ξαναγράφουν από το να επαναχρησιμοποιούν στοιχεία Οι υπάρχουσες τεχνικές για κατηγοριοποίηση, καταλογοποίηση και ανάκτηση στοιχείων δεν είναι ώριμες. Το κόστος για την εύρεση καταλλήλων στοιχείων είναι πολύ υψηλό.

Ανάπτυξη Λογισμικού για Επαναχρησιμοποίηση Τα στοιχεία λογισμικού δεν είναι αυτόματα επαναχρησιμοποιήσιμα. Πρέπει να τροποιηθούν για να γίνουν επαναχρησιμοποιήσιμα από εφαρμογές Η ανάπτυξη λογισμικού για επαναχρησιμοποίηση είναι μία διαδικασία ανάπτυξης που παίρνει υπάρχοντα στοιχεία και βοηθά στην γενίκευση και τεκμηρίωσή τους για να χρησιμοποιηθούν σε περιοχή εφαρμογών 7

Ανάπτυξη για Επαναχρησιμοποίηση Το κόστος ανάπτυξης για επαναχρησιμοποιήσιμα στοιχεία είναι υψηλότερο από το κόστος ισοδύναμης ανάπτυξης. Αυτό το επιπλέον κόστος είναι κόστος οργάνωσης παρά κόστος έργου Τα βασικά στοιχεία απαιτούν περισσότερο χώρο και έχουν μεγαλύτερους χρόνους εκτέλεσης από τα ειδικά ισοδύναμά τους

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

Διαδικασία Επαύξησης της Δυνατότητας Επαναχρησιμοποίησης

Επαναχρησιμοποίηση Ειδική για το Πεδίο Τα στοιχεία μπορούν ευκολότερα να επαναχρησιμοποιηθούν για το πεδίο εφαρμογής για το οποίο αρχικά είχαν αναπτυχθεί καθόσον αντικατοπτρίζουν ιδέες και σχέσεις του πεδίου Η ανάλυση πεδίου σχετίζεται με την μελέτη του πεδίου για την εξεύρεση των βασικών χαρακτηριστικών Με αυτή την γνώση τα στοιχεία μπορούν να γενικευτούν για επαναχρησιμοποίηση στο πεδίο αυτό

Επαναχρησιμοποίηση στο Ειδικό Πεδίο Τα επαναχρησιμοποιήσιμα στοιχεία ενσωματώνουν έννοιες αφαίρεσης του πεδίου Για να είναι επαναχρησιμοποιήσιμη, μία αφαίρεση θα πρέπει να είναι πλήρης Η αφαίρεση θα πρέπει να παραμετροποιηθεί (τουλάχιστον σε κάποιο εύρος) για να επιτρέπεται εισαγωγή σε διαφορετικά συστήματα με ειδικές απαιτήσεις 9

Το Πεδίο Αφαίρεσης Δομών Δεδομένων Καλά κατανοητό πεδίο εφαρμογής Σημαντικό ως βάση για πολλούς τύπους συστημάτων λογισμικού Οι απαιτήσεις για επαναχρησιμοποιήσιμες δομές δεδομένων αφαίρεσης έχουν δημοσιευθεί από διαφορετικούς συγγραφείς (π.χ. Booch) Έχει δημιουργηθεί σχήμα ταξινόμησης για τέτοια στοιχεία

Γενίκευση ADS (Abstract Data Structures) Σημαίνει προσθήκη λειτουργιών σε κάποιο στοιχείο για κάλυψη του πεδίου Οι λειτουργίες που απαιτούνται περιλαμβάνουν Λειτουργίες πρόσβασης Λειτουργίες δημιουργού Λειτουργίες I/O Λειτουργίες σύγκρισης Λειτουργίες επανάληψης, εάν το στοιχείο είναι συλλογή στοιχείων

Μοντέλο Επαναχρησιμοποιήσιμων ADS

Οδηγίες Επαναχρησιμοποίησης Υλοποίηση δομών δεδομένων ως βασικών πακέτων Παροχή λειτουργιών για την δημιουργία και αντιστοίχιση στιγμών Παροχή μηχανισμού για να δείξουμε αν μία λειτουργία είναι επιτυχής ή όχι Ελαχιστοποίηση της πληροφορίας που ορίζεται στην εξειδίκευση του στοιχείου

Οδηγίες Επαναχρησιμοποίησης Υλοποίηση λειτουργιών ως συναρτήσεων που όταν αποτυγχάνουν επιστρέφουν δείκτη λάθους ως παράμετρο εξόδου Παρέχουν ένα τελεστή ισότητας για σύγκριση δομών Παρέχουν έναν επαναλήπτη ο οποίος επιτρέπει σε ένα στοιχείο συλλογής να είναι επισκέψιμο αποτελεσματικά χωρίς να ενημερώνεται το στοιχείο

Παράδειγμα Επαναχρησιμοποιήσιμου Στοιχείου Διασυνδεδεμένη λίστα στοιχείων όπου κάθε στοιχείο διατηρεί δείκτη στο επόμενο στοιχείο στην λίστα Συνήθως υλοποιείται σε συστήματα εφαρμογών αλλά τα στοιχεία τα οποία είναι εξειδικευμένα σε εφαρμογές σπάνια είναι βασικά και αντανακλούν τις ειδικές ανάγκες της εφαρμογής Οι λειτουργίες της διασυνδεδεμένης λίστας είναι συνήθως ανεξάρτητες από τον τύπο του στοιχείου στην λίστα

Βασικό Πακέτο Διασυνδεδεμένης λίστας See portrait slide

Λειτουργίες Πρόσβασης -- true if the list has no elements function Is_empty (L: LIST) return BOOLEAN ; -- returns the number of elements in the list function Size_of (L: LIST ) return NATURAL ; -- true if a list element is the same as E function Contains (E: ELEMENT; L: LIST ) return BOOLEAN ; -- returns the first list element procedure Head (L: LIST; E: in out ELEMENT ; Error_level: out STATUS ) ; -- removes the first list element and returns the remaining list procedure Tail (L: LIST; Outlist: in out LIST ;

Λειτουργίες Δημιουργού See portrait slides

Λειτουργίες I/O -- print onto standard output procedure Print_list (L: LIST; Error_level: out STATUS ) ; procedure Write_list (F: TEXT_IO.FILE_TYPE ; L: LIST; Error_level: out STATUS ) ; procedure Read_list (F: TEXT_IO.FILE_TYPE ; Outlist: out LIST ; Error_level: out STATUS ) ;

Λειτουργίες Επανάληψης procedure Iterator_initialise (L: LIST; Iter: in out ITERATOR; Error_status: in out STATUS) ; procedure Go_next (L: LIST; Iter: in out ITERATOR; procedure Eval (L: List; Iter: in out ITERATOR; Val: out ELEMENT; Error_status: in out STATUS) ; function At_end (L: LIST; Iter: ITERATOR) return BOOLEAN ;

Στοιχείο Διασυνδεδεμένης Λίστας στην C++ See portrait slides

Επαναχρησιμοποίηση που Εξαρτάται από την Γλώσσα Οι οδηγίες επαναχρησιμοποίησης για αφαιρέσεις πεδίου είναι ανεξάρτητες από την γλώσσα υλοποίησης Όμως μερικές οδηγίες επαναχρησιμοποίησης είναι εξαρτώμενες από την γλώσσα Στην Ada, μην περνάτε μεγέθη διανυσμάτων ως παράμετρο σε επαναχρησιμοποιήσιμα στοιχεία τα οποία επενεργούν σε διανύσματα. Χρήση του ενσωματωμένου χαρακτηριστικού για εύρεση του μεγέθους διανύσματος ΣτήνC++, πάντα να περνάμε το μέγεθος διανύσματος ως παράμετρο σε επαναχρησιμοποιήσιμα στοιχεία που επενεργούν σε διανύσματα

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

Επαναχρησιμοποίηση και Κληρονομικότητα Τα αντικείμενα είναι επαναχρησιμοποιήσιμα διότι περιλαμβάνουν κατάσταση και σχετικές λειτουργίες. Επίσης μπορεί να είναι αυτοδύναμα χωρίς εξωτερικές εξαρτήσεις Κληρονομικότητα σημαίνει ότι μία κλάση κληρονομεί χαρακτηριστικά και λειτουργίες από μία υπερ - κλάση. Στην ουσία αυτά επαναχρησιμοποιούνται Πολλαπλή κληρονομικότητα επιτρέπει πολλά αντικείμενα να λειτουργούν ως κλάση βάσης ώστε χαρακτηριστικά και λειτουργίες να επαναχρησιμοποιούνται από πολλές πηγές

Πλέγμα Κλάσεων

Προβλήματα Κληρονομικότητας Όπως αναπτύσσονται οι κλάσεις στοιχείων, το πλέγμα κληρονομικότητας γίνεται πολύπλοκο με ύπαρξη αντιγράφων στο πλέγμα. Απαιτείται οργάνωση Για την κατανόηση ενός στοιχείου, πολλές κλάσεις στην ιεραρχία θα πρέπει να εξεταστούν και κατανοηθούν Σε πολλές περιπτώσεις πιθανό να είναι αδύνατο να αποφευχθεί κληρονομικότητα μη απαραίτητης λειτουργικότητας

Επαναχρησιμοποίηση Βασισμένη σε Γεννήτρια Γεννήτριες προγραμμάτων συμπεριλαμβάνουν την επαναχρησιμοποίηση προτύπων και αλγορίθμων Είναι ενσωματωμένοι στην γεννήτρια και παραμετροποιούνται με εντολές χρήστη. Το πρόγραμμα παράγεται τότε αυτόματα Οι μεταγλωττιστές είναι παραγωγοί προγραμμάτων όπου τα επαναχρησιμοποιήσιμα πρότυπα είναι τμήματα κώδικα που αντιστοιχούν σε εντολές γλώσσας υψηλού επιπέδου 4

Επαναχρησιμοποίηση μέσω Παραγωγής Προγράμματος 5

Τύποι Γεννητριών Προγραμμάτων Παραγωγοί εφαρμογών για επεξεργασία επιχειρησιακών δεδομένων Λεκτικοί αναλυτές για την επεξεργασία γλώσσας Γεννήτριες κώδικα σε εργαλεία CASE Η επαναχρησιμοποίηση που βασίζεται σε γεννήτριες είναι πολύ αποτελεσματική ως προς το κόστος αλλά η εφαρμογή της είναι περιορισμένη σε μικρό αριθμό πεδίων εφαρμογής

Μεταφερσιμότητα Συστήματος Εφαρμογής Η μεταφερσιμότητα είναι ειδική περίπτωση επαναχρησιμοποίησης όπου ολόκληρη η εφαρμογή επαναχρησιμοποιείται σε διαφορετική πλατφόρμα Η μεταφερσιμότητα ενός προγράμματος είναι το μέτρο του όγκου εργασίας που απαιτείται για να δουλέψει το έργο στο νέο περιβάλλον

Θέματα Μεταφερσιμότητας Συστήματος Μεταφορά Η φυσική μετακίνηση του κώδικα και των σχετικών δεδομένων από το ένα περιβάλλον στο άλλο Αυτό επιτρέπεται να γίνει με ανταλλαγή δεδομένων μέσω δικτύου που κάνει τα πράγματα πολύ ευκολότερα Προσαρμογή Οι αλλαγές που απαιτούνται για να κάνουν το πρόγραμμα να δουλεύει σε διαφορετικό περιβάλλον

Διεπαφές Προγράμματος Εφαρμογής

Εξαρτήσεις Μεταφερσιμότητας Εξαρτήσεις από την αρχιτεκτονική μηχανής Εξαρτήσεις από την αναπαράσταση πληροφορίας και την οργάνωσή της Εξαρτήσεις λειτουργικού συστήματος Εξαρτήσεις από χαρακτηριστικά λειτουργικού συστήματος Run-time προβλήματα συστήματος Εξαρτήσεις από ένα ειδικό run-time σύστημα υποστήριξης Προβλήματα βιβλιοθήκης Εξαρτήσεις από ένα ειδικό σύνολο βιβλιοθηκών

Ανάπτυξη για Μεταφερσιμότητα Απομόνωση τμημάτων του συστήματος που είναι εξαρτώμενα από εξωτερικές δειεπαφές του συστήματος. Οι διεπαφές υλοποιούνται ως αντικείμενα ή σύνολα αφαιρετικών δομών δεδομένων Ορισμός διεπαφής μεταφερσιμότητας για απόκρυψη αρχιτεκτονικής μηχανής και χαρακτηριστικών λειτουργικού συστήματος Για μεταφερσιμότητα προγράμματος μόνο ο κώδικας της διεπαφής μεταφοράς απαιτείται να ξαναγραφεί

Διεπαφή για Μεταφερσιμότητα

Εξαρτήσεις από την Αρχιτεκτονική Μηχανής Το πρόγραμμα βασίζεται στο σχήμα αναπαράστασης δεδομένων που υποστηρίζεται από μία ειδική αρχιτεκτονική μηχανής Συνήθη προβλήματα είναι: Η ακρίβεια πραγματικών αριθμών Η αρίθμηση των Bits στην αναπαράσταση των αριθμών Μπορεί να αντιμετωπισθεί με την χρήση αφαιρετικών τύπων δεδομένων. Υποστηρίζονται διαφορετικές αναπαραστάσεις

Μεταφέρσιμο Στοιχείο Μετρητή Replace with portrait slide

Εξαρτήσεις από το Λειτουργικό Σύστημα Το πρόγραμμα βασίζεται στην χρήση εικι9κών κλήσεων στο λειτουργικό σύστημα όπως εργαλεία για την υποστήριξη διαχείρισης διαδικασίας Το πρόγραμμα εξαρτάται από το ειδικό σύστημα οργάνωσης αρχείων που υποστηρίζεται από το λειτουργικό σύστημα

Διαχείριση Μεταφερσιμότητας Διαδικασίας Replace with portrait slide

Υλοποίηση Διεπαφής Μεταφερσιμότητας

Πρότυπα Τα πρότυπα είναι μορφές συμφωνίας που ελαχιστοποιούν το ποσό της μεταβλητότητας στα συστήματα λογισμικού Με βάση την ανάπτυξη προτύπων από το 1980 η μεταφερσιμότητα υλοποιείται πολύ ευκολότερα τώρα Κατά κανόνα, όσο τα πρότυπα αναπτύσσονται τα ετερογενή συστήματα αναπτύσσονται όπου μέρη ενός προγράμματος τρέχουν σε διαφορετικές μηχανές

Υπάρχοντα Πρότυπα Πρότυπα γλωσσών προγραμματισμού Ada, Pascal, C, C++, FORTRAN. Πρότυπα λειτουργικών συστημάτων UNIX, MS-DOS (de-facto standard), MS Windows Πρότυπα δικτύων TCP/IP protocols, X400, X500, Sun NFS, OSI layered model. HTML, WWW Πρότυπα συστήματος Window X-windows. Motif toolkit

Σημαντικά Σημεία Η επαναχρησιμοποίηση λογισμικού σημαίνει χρήση στοιχείων που έχουν αναπτυχθεί σε μία εφαρμογή σε μία διαφορετική εφαρμογή Η συστηματική επαναχρησιμοποίηση ελαχιστοποιεί ρίσκο διαχείρισης και βελτιώνει την αξιοπιστία λογισμικού Η ανάπτυξη με επαναχρησιμοποίηση βασίζεται σε βιβλιοθήκη από επαναχρησιμοποιήσιμα στοιχεία Τα στοιχεία πρέπει να γενικευτούν για επαναχρησιμοποίηση

Σημαντικά Σημεία Οι τύποι δεδομένων αφαίρεσης και τα αντικείμενα είναι ενθυλακώσεις επαναχρησιμοποιήσιμων στοιχείων Η επαναχρησιμοποίηση που βασίζεται στην γεννήτρια εξαρτάται από την χρήση προτύπων πεδίου Η μεταφερσιμότητα εφαρμογής είναι μορφή επαναχρησιμοποίησης όπου όλη η εφαρμογή επαναχρησιμοποιείται σε διαφορετική πλατφόρμα Η μεταφερσιμότητα επιτυγχάνεται με ανάπτυξη σύμφωνα με πρότυπα και απομόνωση εξαρτήσεις πλατφόρμας