Ο Σκοπός της Τεχνολογίας Λογισμικού Δρ. Μαρία Ι. Ανδρέου.

Slides:



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

© 2002 Thomson / South-Western Slide 2-1 Κεφάλαιο 2 Διαγράμματα και Γραφήματα Περιγράφικής Στατιστικής.
«Κυβερνητικές προτάσεις για το Ασφαλιστικό» © VPRC – Μάρτιος / Δ.1 © VPRC – Μάρτιος 2008 ΚΥΒΕΡΝΗΤΙΚΕΣ ΠΡΟΤΑΣΕΙΣ ΓΙΑ ΤΟ ΑΣΦΑΛΙΣΤΙΚΟ.
Ερωτηματολόγιο Συλλογής Απαιτήσεων Εφαρμογών Υψηλών Επιδόσεων
Μάρτιος 2011 Βαρόμετρο ΕΒΕΘ - Καταναλωτές. “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι.
Αλέξανδρος Σαχινίδης, ΜΒΑ, Ph.D. ΙΟΥΝΙΟΣ 2009
ΜοντελοποίησηΈργα ΜαθήματαΑξιολόγηση Αναστοχασμος Μαθήματα.
7.5.2 Αντικειμενοστραφής προγραμματισμός
Διαχείριση Έργων Πληροφορικής
Διαχείριση Έργου Οργάνωση, σχεδιασμός και προγραμματισμός έργων ανάπτυξης λογισμικού.
Διαδικασία Προσέγγισης της Διαχείρισης Έργου
Διαδικασία ανάπτυξης Προσδιορισμός απαιτήσεων Αρχιτεκτονικός Σχεδιασμός Λεπτομερής Σχεδιασμός Κωδικοποίηση Έλεγχος Παράδοση Συστήματος Λειτουργία - Συντήρηση.
Χαρακτηριστικά συνθετικής κίνησης 1 Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα.
Κεφάλαιο 6 Υλοποίηση Γλωσσών Προγραμματισμού
Μοντέλα Κύκλου-Ζωής Λογισμικού SOFTWARE LIFE-CYCLE MODELS
Μεθοδολογίες και Εργαλεία Ανάλυσης και Σχεδιασμού Π.Σ. Σπύρος Κοκολάκης ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ.
HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ
Αρχή της ενσωμάτωσης Η εσωτερική κατάσταση ενός αντικειμένου πρέπει να είναι τροποποιήσιμη μόνο μέσω της δημόσιας διασύνδεσής του.
Ανάλυση του λευκού φωτός και χρώματα
-17 Προσδοκίες οικονομικής ανάπτυξης στην Ευρώπη Σεπτέμβριος 2013 Δείκτης > +20 Δείκτης 0 a +20 Δείκτης 0 a -20 Δείκτης < -20 Σύνολο στην Ευρωπαϊκή Ένωση:
+21 Προσδοκίες οικονομικής ανάπτυξης στην Ευρώπη Δεκέμβριος 2013 Δείκτης > +20 Δείκτης 0 να +20 Δείκτης 0 να -20 Δείκτης < -20 Σύνολο στην Ευρωπαϊκή Ένωση:
Βαρόμετρο ΕΒΕΘ - Καταναλωτές Σεπτέμβριος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι.
Κεφάλαιο 2ο Πεπερασμένα αυτόματα.
ΒΑΡΟΜΕΤΡΟ ΕΒΕΘ – ΣΕΠΤΕΜΒΡΙΟΣ 2014 AD – HOC ΕΡΩΤΗΣΕΙΣ.
Σύμφωνα με τον ΣΕΒ, αναμένεται να παρουσιάσουν ζήτηση μέχρι το 2020 Πηγή:
ΙΣΟΛΟΓΙΣΜΟΣ ΒΑΣΕΙ Δ.Λ.Π. (ΕΝΑΡΞΗΣ)
Καλώς ήρθατε στις Οικονομικές Επιστήμες
Εξάσκηση στην προπαίδεια
ΑΠΕΙΚΟΝΙΣΗ ΕΝΝΟΙΩΝ 1. 2 Χρήστης Στόχος Ταμίας διενέργεια πώλησης διενέργεια ενοικίασης εισαγωγή ταμείου εξαγωγή ταμείου * 1 Μοντέλο Πεδίου Προβλήματος.
Συντάχθηκε για λογαριασμό του Τηλεοπτικού Σταθμού ΑΝΤ1 Οκτώβριος 2011 © ΚΥΠΡΙΑΚΟ ΒΑΡΟΜΕΤΡΟ.
Αποκεντρωμένη Διοίκηση Μακεδονίας Θράκης ∆ιαχείριση έργων επίβλεψης µε σύγχρονα µέσα και επικοινωνία C2G, B2G, G2G Γενική Δ/νση Εσωτερικής Λειτουργίας.
ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ
Η επιρροή του χώρου εργασίας των σχολικών τάξεων στη μάθηση
Βαρόμετρο ΕΒΕΘ Μάρτιος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι του Νομού Θεσσαλονίκης”
1/5/ ΧΡΗΣΕΙΣ ΤΗΣ ΗΛΙΑΚΗΣ ΑΝΤΙΝΟΒΟΛΙΑΣ 1/5/ (πηγή: HELIOAKMI).
2006 GfK Praha CORRUPTION CLIMATE IN EUROPE % % % %0 - 10% % % % % % ΚΛΙΜΑ ΔΙΑΦΘΟΡΑΣ Η.
Βαρόμετρο ΕΒΕΘ Μάρτιος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι του Νομού Θεσσαλονίκης”
13ο Πανελλήνιο Συνέδριο Ακαδημαϊκών Βιβλιοθηκών – Κέρκυρα Οκτωβρίου 2004 Το σύστημα COINE για την προβολή της πολιτιστικής κληρονομιάς και την υποστήριξη.
Βαρόμετρο ΕΒΕΘ Σεπτέμβριος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι του Νομού.
Βαρόμετρο ΕΒΕΘ Μάρτιος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι του Νομού Θεσσαλονίκης”
Σοφία Τζελέπη, App Inventor ΜΕΡΟΣ B’ Σοφία Τζελέπη,
Λ. Κηφισίας 3, Μαρούσιτηλ.: τηλ.: ΧΟΡΗΓΟΣ: Μέλος του δικτύου :
Δομές Δεδομένων 1 Στοίβα. Δομές Δεδομένων 2 Στοίβα (stack)  Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή – πρώτη εξαγωγή)  Περιορισμένος.
Dr. Holbert Νικ. Α. Τσολίγκας Χρήστος Μανασής
Τεχνολογία ΛογισμικούSlide 1 Αλγεβρική Εξειδίκευση u Καθορισμός τύπων αφαίρεσης σε όρους σχέσεων μεταξύ τύπων λειτουργιών.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Χειμερινό Εξάμηνο (Ε') - Κωδ. Μαθήματος:
Μοντέλα Συστημάτων Παρουσιάσεις των συστημάτων των οποίων οι απαιτήσεις αναλύονται.
1 HMMY Τεχνολογία Λογισμικού Διδάσκων Κώστας Κοντογιάννης Αναπλ. Καθηγητής, Ε.Μ.Π.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Κληρονομικότητα.
Ανάπτυξη Πρωτοτύπου Λογισμικού
2-1 Ανάλυση Αλγορίθμων Αλγόριθμος Πεπερασμένο σύνολο εντολών που, όταν εκτελεστούν, επιτυγχάνουν κάποιο επιθυμητό αποτέλεσμα –Δεδομένα εισόδου και εξόδου.
Βαρόμετρο ΕΒΕΘ - Καταναλωτές Μάρτιος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι.
ΟΠΑ - Τεχνολογία Λογισμικού - Εμμ. Γιακουμάκης
Διαχείριση Ψηφιακών Πνευματικών Δικαιωμάτων Ηλεκτρονική Δημοσίευση Στέλλα Λάμπουρα Ιούνιος 2004.
Ανάλυση Συστημάτων ( site) Υπευθ. Καθηγ.: Τσαλγατίδου Αφροδίτη.
1 Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Πανεπιστήμιο Πατρών ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ (C++) Τάξεις και Αφαίρεση Δεδομένων.
+19 Δεκέμβριος 2014 Δείκτης > +20 Δείκτης 0 έως +20 Δείκτης 0 έως -20 Δείκτης < -20 Συνολικά της ΕΕ: +5 Δείκτης > +20 Δείκτης 0 έως +20 Δείκτης 0 έως -20.
ΤΑ ΔΟΝΤΙΑ ΜΑΣ.
Βαρόμετρο ΕΒΕΘ Σεπτέμβριος “Η καθιέρωση ενός αξιόπιστου εργαλείου καταγραφής του οικονομικού, επιχειρηματικού και κοινωνικού γίγνεσθαι του Νομού.
Τεχνολογία ΛογισμικούSlide 1 Τεχνολογία Απαιτήσεων u Καθορίζει τι θέλει ο πελάτης από ένα σύστημα λογισμικού.
 Κύριο αντικείμενο της μελέτης είναι ο καθορισμός της μεθοδολογίας, των προτύπων (standards) και των διαδικασιών (procedures) για τις πρώτες και πιο.
Αρχές Τεχνολογίας Λογισμικού Εργαστήριο 1: Εισαγωγή.
Μέρος 1 Εισαγωγή στα Πληροφοριακά Συστήματα. 22/9/20162 Περιεχόμενα  Βασικές έννοιες Πληροφοριακών Συστημάτων  Απαιτήσεις των σύγχρονων επιχειρήσεων.
ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Αντικειμενοστραφής προγραμματισμός Web Site: ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ.
Επίσημος ορισμός Ποιότητας (πρότυπο ISO 8402) Σύνολο χαρακτηριστικών μιας οντότητας για την ικανοποίηση εκφρασμένων και συνεπαγόμενων αναγκών. Αντικείμενο.
Χειρισμός Χρόνου και Μεθοδολογίες Προσομοίωσης
ΣΥΣΤΗΜΑ ΠΟΙΟΤΗΤΑΣ ΛΟΓΙΣΜΙΚΟΥ (QUALITY SYSTEM)
Διάταξη τίτλου Σχεδιασμός Πεδίου Εφαρμογής του Έργου.
Σκοπός Η συνοπτική παρουσίαση
Μεταγράφημα παρουσίασης:

Ο Σκοπός της Τεχνολογίας Λογισμικού Δρ. Μαρία Ι. Ανδρέου

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 2 Περιεχόμενα Ιστορικά στοιχεία Οικονομικές πτυχές Συντήρηση Πτυχές απαιτήσεων, ανάλυσης και σχεδιασμού Πτυχές αναφορικά με Ομαδική Εργασία Γιατί δεν υπάρχει φάση  Σχεδιασμού (planning)  Ελέγχου (testing)  Τεκμηρίωσης (documentation) Το αντικειμενοστρεφές (object oriented) παράδειγμα Ορολογία (terminology) Θέματα Ηθικής

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 3 Ιστορικά Στοιχεία 1968 NATO Software Engineering conference, Garmisch, Γερμανία  Στόχος: Να λύσει την κρίση στο λογισμικό (software crisis) η οποία περιλαμβάνει ανάμεσα σε άλλα την παράδοση του Λογισμικού: Με καθυστέρηση Υπερ-εκτιμημένο Με λάθη

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 4 Standish Group Data Δεδομένα σε έργα (projects) που ολοκληρώθηκαν το % Ολοκληρώθηκαν με καθυστέρηση, με υπέρβαση κόστους, και με παράληψη κάποιων μερών 23% Ακυρώθηκαν 28% Επιτυχής

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 5 Cutter Consortium Data 2002: έρευνα σε information technology οργανισμούς  78% έχουν εμπλακεί σε διαμάχες που κατέληξαν σε δίκη  Από τους οργανισμούς που πήγαν σε δίκη σε 67% από τις διαμάχες, η λειτουργικότητα των πληροφοριακών συστημάτων που παραδόθηκαν δεν ικανοποιούσαν τις αξιώσεις των κατασκευαστών Σε 56% από τις διαμάχες, η ημερομηνία παράδοσης που καθορίσθηκε μετατέθηκε πολλαπλές φορές. Σε 45% από τις διαμάχες, το ελάττωμα ήταν τόσο σοβαρό που τον πληροφοριακό σύστημα που παραδόθηκε ΔΕΝ ήταν χρήσιμο.

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 6 Συμπεράσματα για την Κρίση του Λογισμικού Η κρίση του Λογισμικού ΔΕΝ έχει ξεπεραστεί. Ίσως ο όρος Ύφεση Λογισμικού (software depression) να την αντιπροσωπεύει καλύτερα  Μεγαλύτερη διάρκεια  Μη ασφαλής προγνώσεις

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 7 Οικονομικές Πτυχές Έστω ότι, οι νέες μέθοδοι κωδικοποίησης (coding method), CM new, είναι 10 φορές πιο γρήγορες από αυτές που χρησιμοποιούνται ήδη, CM old.  Μήπως θα έπρεπε να χρησιμοποιηθούν αυτές;  Η κοινή λογική θα έδινε την απάντηση: Φυσικά  Η απάντηση στην τεχνολογία λογισμικού είναι: Εξαρτάται από το κόστος εκπαίδευσης (training) Εξαρτάται από τις επιδράσεις της εισαγωγής της νέας τεχνολογίας Εξαρτάται από το πως επηρεάζουν οι CM new την συντήρηση

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 8 Πτυχές Συντήρησης Το μοντέλο του κύκλου ζωής (Life-cycle model)  Τα βήματα (φάσεις) που ακολουθούμε όταν δημιουργούμε λογισμικό  Μια θεωρητική περιγραφή του τι πρέπει να γίνει Κύκλος ζωής  Τα πραγματικά βήματα που εκτελούνται σε ένα συγκεκριμένο προϊόν

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 9 Waterfall Life-Cycle model Το κλασικό μοντέλο (Classical model) Η φάση των Απαιτήσεων (requirements phase) 2. Η φάση της Ανάλυσης (analysis, specification phase) 3. Η φάση του σχεδιασμού (design phase) 4. Η φάση της υλοποίησης (implementation phase) 5. Συντήρηση μετά την παράδοση (postdelivery maintenance) 6. Αποχώρησης (retirement)

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 10 Οι τυπικές Κλασικές Φάσεις Requirements phase  Διερεύνηση της βασικής ιδέας  Εκμαίευση των απαιτήσεων του χρήστη Analysis (specification) phase  Ανάλυση των απαιτήσεων του χρήστη  Σύνταξη του εγγράφου προδιαγραφών (specification document)  Σύνταξη του σχεδίου διαχείρισης του έργου λογισμικού (software project management plan)  «τι υποτίθεται ότι θα κάνει το προϊόν»

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 11 Οι τυπικές Κλασικές Φάσεις συνέχ. Design phase  Αρχιτεκτονικό σχέδιο  Λεπτομερής σχεδιασμός  «Πως το προϊόν επιτυγχάνει το στόχο του» Implementation phase  Κωδικοποίηση (coding)  Έλεγχος μονάδων (unit testing)  Ενσωμάτωση (integration)  Έλεγχος αποδοχής (acceptance testing)

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 12 Οι τυπικές Κλασικές Φάσεις συνέχ. Postdelivery maintenance  Συντήρηση διόρθωσης (corrective maintenance)  Τελειοποίηση συντήρησης (perfective maintenance)  Συντήρηση προσαρμογής (adaptive maintenance) Retirement

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 13 Κλασικές και Μοντέρνες μορφές Συντήρησης Κλασική συντήρηση  Μοντέλο Ανάπτυξη-και μετά-Συντήρηση Αυτός είναι ένας χρονικός ορισμός (βασισμένος στο χρόνο)  Η ταξινόμηση στην ανάπτυξη ή στη συντήρηση εξαρτάται από το πότε γίνεται μια δραστηριότητα

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 14 Παραδείγματα με βάση τον Κλασικό Ορισμό Συντήρησης Έστω ότι, ένα λάθος ανακαλύπτεται και διορθώνεται μια μέρα μετά που το προϊόν λογισμικού έχει εγκατασταθεί.  Classical maintenance Έστω ότι το ίδιο λάθος εντοπίζεται και διορθώνεται μια μέρα πριν την εγκατάσταση  Classical development

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 15 Παραδείγματα με βάση τον Κλασικό Ορ. Συντήρισης συνεχ Έστω ότι ένα προϊόν λογισμικού έχει εγκατασταθεί  Και ο πελάτης θέλει να εμπλουτίσει τη λειτουργικότητα του Classical (perfective) maintenance Αν ο πελάτης ζητήσει αυτή την αλλαγή πριν την εγκατάσταση του προϊόντος  Classical development

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 16 Θέματα σχετικά με Classical maintenance Ο λόγος για τον οποίο στα πιο πάνω παραδείγματα μια δραστηριότητα κάποιες φορές παρουσιάζεται σαν μέρος την φάσης Classical development και κάποιες άλλες σαν μέρος της φάσης Classical maintenance είναι  Το γεγονός ότι ορίσαμε σαν συντήρηση (maintenance) τις δραστηριότητες που γίνονται μετά την εγκατάσταση του προϊόντος. Δηλ. Με βάση το χρόνο Πως θα χαρακτηρίζαμε (σε ποια φάση θα κατατάσσαμε) δραστηριότητες που γίνονται για επέκταση ήδη υπαρχόντων λογισμικών  Ανάπτυξη μεγάλων λογισμικών προϊόντων ξεκινώντας από το μηδέν είναι σχεδόν σπάνια περίπτωση στις μέρες μας.  Η Επαναχρησιμοποίηση είναι αρκετά διαδεδομένη.

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 17 Ορισμός Modern Maintenance Το 1995, the international standards organization and international electrotechnical commission όρισαν τη συντήρηση (maintenance) λειτουργικά (operationally). Modern Maintenance Definition  Η διαδικασία η οποία λαμβάνει χώρα όταν ένα μέρος του λογισμικού τροποποιείται εξαιτίας κάποιου προβλήματος ή λόγο ανάγκης βελτίωσης ή προσαρμογής. Με όρους του ορισμού του ISO/IEC  Maintenance συμβαίνει όποτε το λογισμικό τροποποιείται  Ανεξάρτητα από το πότε έγινε χρονικά η τροποποίηση (πριν ή μετά την εγκατάσταση του λογισμικού) Ο ορισμός του ISO/IEC έχει υιοθετηθεί και από την ΙΕΕΕ και ΕΙΑ

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 18 Ο όρος maintenance τι θα σημαίνει τελικά για μας Postdelivery maintenance  Αφορά αλλαγές στο λογισμικό μετά την παράδοση και την εγκατάσταση του [ΙΕΕΕ 1990] Modern maintenance (ή απλά maintenance)  Maintenance για: Διόρθωση, τελειοποίηση ή προσαρμογή που διενεργείται οποιαδήποτε ώρα [ISO/IEC 1995, IEEE/EIA 1998]

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 19 Η σημαντικότητα του Postdelivery Maintenance Κακό λογισμικό αχρηστεύεται Καλό λογισμικό διατηρείται για 10, 20 χρόνια ή και περισσότερα Το λογισμικό είναι ένα μοντέλο της πραγματικότητας η οποία αλλάζει σταθερά

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 20 Ποσοστό του χρόνου (=κόστους) για Postdelivery maintenace (a) μεταξύ (β) μεταξύ Development 33% Postdelivery Maintenance 67% Development 25% Postdelivery Maintenance 75% a b

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 21 Το κόστος στις Κλασικές Φάσεις Διάφορα Projects πιο πρόσφατα Hewlett-Packard projects Requirements and analysis phase 21%18% Design phase18%19% Implementation phase Κοδικοποίηση (και έλεγχο) Ενσωμάτωση 36% 24% 34% 29%

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 22 Συνέπειες από τα σχετικά κόστα των φάσεων Αποτέλεσμα του CT old και CT new Μειώνοντας το κόστος κωδικοποίησης κατά 10% έχουμε το πολύ 0.85% μείωση του συνολικού κόστους  Λαμβάνοντας υπόψη τα έξοδα και την διάσπαση που θα προκύψει Μειώνοντας το κόστος Postdelivery maintenance κατά 10% έχουμε 7.5% μείωση του συνολικού κόστους

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 23 Πτυχές από τις φάσεις: Requirements, Analysis and Design Για να διορθωθεί νωρίς ένα λάθος στον life cycle  Συχνά χρειάζεται να αλλαχθεί μόνο ένα κείμενο Για να διορθωθεί αργά ένα λάθος στον life cycle  χρειάζεται να αλλαχθεί ο κώδικας και η τεκμηρίωση  Πρέπει να ελεγχθεί η αλλαγή από μόνη της  Έλεγχος ξανά του όλου συστήματος  Επανεγκατάταση του προϊόντος στους υπολογιστές των πελατών

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 24

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 25

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 26 Πτυχές από τις φάσεις:Requirements,Analysis,Design συνεχ Ανάμεσα σε 60% και 70% όλων των λαθών σε μεγάλων διαστάσεων προϊόντα είναι στις φάσεις requirements, analysis και design Παράδειγμα:  1.9 λάθη σε κάθε σελίδα των προδιαγραφών (specifications)  0.9 σε κάθε σελίδα του σχεδιασμού (design)  0.3 σε κάθε σελίδα στην κωδικοποίηση (coding)

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 27 Συμπεράσματα Είναι αναγκαίο να βελτιωθούν οι τεχνικές των requirements, analysis και design  Για να μπορούμε να εντοπίζουμε τα λάθη όσο πιο νωρίς γίνεται.  Για να μειώσουμε το συνολικό αριθμό λαθών Συνεπώς ολόκληρου του κόστους

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 28 Πτυχές από τον Προγραμματισμό σε Ομάδα Το hardware είναι φθηνό  Μπορούμε να δημιουργήσουμε προϊόντα που είναι πολύ μεγάλα για να γραφτούν από ένα άνθρωπο Το λογισμικό δημιουργείται από ομάδες  Προβλήματα αλληλεπίδρασης ανάμεσα σε τμήματα  Προβλήματα επικοινωνίας ανάμεσα στα μέλη της ομάδας

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 29 Γιατί δεν υπάρχει Planning Phase; Δεν μπορούμε να κάνουμε πλάνο στην αρχή του project  Δεν ξέρουμε ακόμα τι ακριβώς είναι αυτό που θα κατασκευαστεί

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 30 Ενέργειες για τη δημιουργία πλάνου στο Κλασικό Παράδειγμα Στην αρχή του project γίνεται προκαταρτικό πλάνο για τις φάσεις requirements και analysis Το πλάνο για την διαχείριση του software project (software project management plan SPMP) συντάσσεται όταν ο πελάτης υπογράψει τις προδιαγραφές. Ο διευθυντής πρέπει να παρακολουθεί το SPMP καθόλη τη διάρκεια του έργου

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 31 Συμπεράσματα Ενέργειες για το πλάνο γίνονται καθόλη τη διάρκεια του life cycle Δεν υπάρχει ξεχωριστή φάση για planning

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 32 Γιατί δεν υπάρχει ξεχωριστή φάση για έλεγχο; Είναι πολύ αργά να ελέγξουμε το προϊόν μετά την ανάπτυξη του και πριν την παράδοση του

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 33 Ενέργειες για έλεγχο στο κλασικό παράδειγμα Επαλύθεση (verification)  Έλεγχος στο τέλος κάθε φάσης Εγκυρότητα  Έλεγχος στο τέλος του project

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 34 Συμπεράσματα Συνεχής ενέργειες ελέγχου πρέπει να γίνονται καθόλη την διάρκεια του life cycle Αυτός ο έλεγχος είναι ευθύνη  Κάθε επαγγελματία προγραμματιστή  Της ομάδας βεβαίωσης για την ποιότητα του λογισμικού (software quality assurance) Δεν υπάρχει ξεχωριστή φάση ελέγχου

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 35 Γιατί δεν υπάρχει ξεχωριστή φάση για τεκμηρίωση Είναι πολύ αργά να γράψουμε την τεκμηρίωση του προϊόντος μετά την ανάπτυξη του και πριν την παράδοση του

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 36 Η τεκμηρίωση πρέπει να γίνεται συνέχεια Είναι πιθανό κάποια άτομα σε θέσεις κλειδιά να φύγουν πριν την ολοκλήρωση του έργου Δεν μπορούμε να προχωρήσουμε σε μια φάση χωρίς να έχουμε την τεκμηρίωση όλων των προηγούμενων φάσεων Δεν μπορούμε να κάνουμε έλεγχο χωρίς να έχουμε την τεκμηρίωση Δεν μπορούμε να κάνουμε συντήρηση χωρίς να έχουμε την τεκμηρίωση

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 37 Συμπεράσματα Ενέργειες τεκμηρίωσης πρέπει να γίνονται παράλληλα με όλες τις άλλες ενέργειες για ανάπτυξη και συντήρηση Δεν υπάρχει ξεχωριστή φάση τεκμηρίωσης

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 38 Το Αντικειμενοστρεφές (Object-Oriented ) Παράδειγμα Το δομημένο (structured) παράδειγμα ήταν επιτυχής στην αρχή. Σε μεγάλα προϊόντα (> 50,000 LOC) όμως,  Η φάση του Postdelivery maintenance δυσκόλεψε (σήμερα είναι το 70% – 80% του συνολικού έργου) Λόγοι: Οι δομημένες μέθοδοι είναι  Οριοθετούμενες με βάση τις δράσεις (actions) (π.χ., μηχανές πεπερασμένων καταστάσεων, διαγράμματα ροής δεδομένων), ή  Οριοθετούμενες με βάση τα δεδομένα (data) (π.χ., διάγραμμα σχέσεων οντοτήτων, Jackson’s μέθοδος);  Άλλα όχι και τα δυο

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 39 Το Object-Oriented Παράδειγμα (συνέχ.) Από κοινού τα δεδομένα και οι δράσεις έχουν την ίδια σημαντικότητα Αντικείμενο (object):  Ένα λογισμικό μέρος/κομμάτι (component) που περιλαμβάνει από κοινού δεδομένα και δράσεις που εκτελούνται πάνω σε αυτά τα δεδομένα. Παράδειγμα:  Τραπεζικός Λογαριασμός Δεδομένα:υπόλοιπο λογαριασμού Δράσεις: κατάθεση, ανάληψη, καθορισμός υπολοίπου.

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 40 Structured έναντι Object-Oriented Παραδείγματος Απόκρυψη Πληροφοριών (information hitting) Design καθοδηγούμενο από τις ευθύνες (responsibilities) Επίπτωση on maintenance, development Figure 1.7

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 41 Απόκρυψη Πληροφοριών - Information Hiding Στην object-oriented version  Η συνεχόμενη γραμμή γύρο από το accountBalance δηλώνει ότι έξω από το αντικείμενο δεν υπάρχει γνώση για το ΠΩΣ υλοποιείται το accountBalance. Στην classical version  Όλα τα μέρη ξέρουν τις λεπτομέρειες της υλοποίησης του account_balance

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 42 Η δύναμη του Object-Oriented Παραδείγματος Με information hiding, η φάση του postdelivery maintenance είναι πιο ασφαλής (εύκολη)  Η πιθανότητα να οδηγηθούμε σε ανεπιθύμητες καταστάσεις ελαττώνεται Η φάση του Development είναι πιο εύκολη  Τα Objects έχουν συνήθως αντίστοιχες ιδιότητες.  Αυτό διευκολύνει την μοντελοποίηση (μια πτυχή κλειδί στο object-oriented paradigm)

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 43 Η δύναμη του Object-Oriented Παραδείγματος (συνέχ.) Καλά-Σχεδιασμένα (Well-designed) objects είναι ξεχωριστές οντότητες  Καθετί που έχει σχέση με object στον πραγματικό κόσμο μοντελοποιείται στο object— encapsulation  Επικοινωνία με τα objects επιτυγχάνεται με αποστολή μηνυμάτων (messages)  Αυτή η ανεξαρτησία επιτυγχάνεται με responsibility- driven design (θα το ορίσουμε στην συνέχεια)

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 44 Η δύναμη του Object-Oriented Παραδείγματος (συνέχ.) Ένα classical product εννοιολογικά συνίσταται από μια απλή μονάδα (παρόλα αυτά υλοποιείται από ένα σύνολο μερών)  Το object-oriented paradigm μειώνει την πολυπλοκότητα, επειδή το product συνίσταται από ανεξάρτητες οντότητες Το object-oriented paradigm προαγάγει την επαναχρησιμοποίηση  Τα Objects είναι ανεξάρτητες οντότητες

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 45 Responsibility-Driven Design Επίσης καλείται design by contract Έστω ότι θέλεις να στείλεις λουλούδια σε μια φίλη σου στο Chicago  Τηλεφώνα στο flowers  Που βρίσκεται flowers ?  Ποιο ανθοπωλείο στο Chicago θα κάνει την παράδοση;  Information hiding  Στείλε ένα μήνυμα στη μέθοδο [action] ενός object χωρίς να έχεις γνώση της εσωτερικής δομής του object

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 46 Classical Phases vs Object-Oriented Workflows ΔΕΝ υπάρχει αντιστοιχία μεταξύ των φάσεων και των workflows Figure 1.8

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 47 Analysis/Design “Hump” Στο Structured paradigm:  Υπάρχει μεγάλη διαφορά ανάμεσα στην analysis (τι) και το design (πως) Στο Object-oriented paradigm:  Τα Objects εισάγονται από την αρχή

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 48 Analysis/Design “Hump” (συνεχ.) Στο classical paradigm  Classical analysis Καθορίζει ΤΙ πρέπει να γίνει  Design Καθορίζει ΠΩΣ πρέπει να γίνει αυτό Αρχιτεκτονικό (Architectural) design — καθορίζει τα μέρη/τμήματα (module) Λεπτομερή (Detailed) design — σχεδιάζει κάθε μέρος/τμήμα

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 49 Removing the “Hump” Στο object-oriented paradigm  Object-oriented analysis Καθορίζει ΤΙ πρέπει να γίνει Καθορίζει τα objects  Object-oriented design Καθορίζει ΠΩΣ πρέπει να γίνει αυτό Σχεδιάζει τα objects Η διαφορά των δυο παραδειγμάτων παρουσιάζεται στην επόμενη διαφάνεια

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 50 Περισσότερη Λεπτομέρεια Εισαγωγή Αντικειμένου Εδώ Figure 1.9

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 51 Object-Oriented Paradigm Modules (objects) εισάγονται ΝΩΡΙΣ από την object-oriented analysis workflow  Αυτό εξασφαλίζει μια ομαλή μετάβαση από την analysis workflow στην design workflow Τα objects υλοποιούνται κατά την implementation workflow  Και πάλιν, η μετάβαση είναι ομαλή

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 52 Η προοπτική του Object-Oriented Paradigm Το object-oriented paradigm ΠΡΕΠΕΙ να χρησιμοποιείται σωστά  Όλα τα παραδείγματα είναι εύκολο να χρησιμοποιηθούν αδόκιμα Όταν χρησιμοποιείται σωστά το object-oriented paradigm μπορεί να λύσει μερικά (άλλα όχι όλα) από τα προβλήματα του classical paradigm

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 53 Η προοπτική του Object-Oriented Paradigm (συνεχ.) Το object-oriented paradigm έχει προβλήματα από μόνο του Το object-oriented paradigm είναι η καλύτερη εναλλαχτική λύση που έχουμε σήμερα  Όμως, είναι σίγουρο ότι θα υπάρξει κάτι στο μέλλον που θα είναι καλύτερο του

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 54 Ορολογία Πελάτης (Client), developer, χρήστης (user) Internal software Contract software Commercial off-the-shelf (COTS) software Open-source software  Linus’s Law

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 55 Ορολογία (συνέχ.) Λογισμικό (Software) Πρόγραμμα (Program), Σύστημα (system), προϊόν (product) Μεθοδολογία (Methodology), Παράδειγμα (paradigm)  Object-oriented paradigm  Classical (traditional) paradigm Τεχνική (Technique)

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 56 Ορολογία (συνεχ.) Mistake, fault, failure, error Ατέλεια (Defect) Bug   “A bug  crept into the code” instead of  “I made a mistake”

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 57 Object-Oriented Ορολογία Το τμήμα Δεδομένων (Data component) of an object  State variable (μεταβλητή κατάστασης)  Instance variable (Java) (μεταβλητή στιγμιότυπου)  Field (C++) (πεδίο)  Attribute (generic) (χαρακτηριστικό) Τμήμα Δράσεων (Action component) of an object  Member function (C++) (συνάρτηση μέλους)  Method (generic) (μέθοδος)

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 58 Object-Oriented Ορολογία (συνεχ.) C++: A member είναι είτε  Attribute (“field”), ή  Method (“member function”) Java: A field είναι είτε  Attribute (“instance variable”), ή  Method

Τεχνολογία Υπολογισμού Δρ. Μαρία Ι. Ανδρέου 59 Θέματα Ηθικής Developers and maintainers πρέπει να είναι  Είναι Σκληρά εργαζόμενοι  Είναι Έξυπνοι  Έχουν συναίσθηση των ευθυνών τους  Είναι Ενημερωμένοι για τις νέες μεθοδολογίες και τεχνικές  Είναι ΗΘΗΚΟΙ IEEE-CS ACM Software Engineering Code of Ethics and Professional Practice