icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

45
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Χειμερινό Εξάμηνο 2006-2007 (Ε') - Κωδ. Μαθήματος: 321- 4002 http://www.icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

description

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Χειμερινό Εξάμηνο 2006-2007 (Ε') - Κωδ. Μαθήματος: 321-4002. http://www.icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης. Δομή μαθήματος. Σύγχρονο Λογισμικό. - PowerPoint PPT Presentation

Transcript of icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Page 1: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

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

ΣΥΣΤΗΜΑΤΩΝ

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

Χειμερινό Εξάμηνο 2006-2007 (Ε') - Κωδ. Μαθήματος: 321-4002 

http://www.icsd.aegean.gr/kotis/softTech06/

Διδάσκων: Κων/νος Κώτης

Page 2: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Δομή μαθήματος

Page 3: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Σύγχρονο Λογισμικό• Βρίσκεται παντού (εφαρμογές σε κάθε

συσκευή της καθημερινότητάς μας)• Είναι ανεξάρτητο από το υλικό («τρέχει»

σχεδόν παντού)• Είναι πολύπλοκο (πολύπλοκες απαιτήσεις)• Είναι απλό στη χρήση (κοντά στον άνθρωπο)• Λειτουργεί σε δίκτυο (τοπικό ή διαδίκτυο)• Γίνεται απαραίτητο (στην επικοινωνία,

εκπαίδευση, συγκοινωνίες, ιατρική, κ.α.)

Page 4: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Σύγχρονο Λογισμικό• Εξελίξεις που έπαιξαν ρόλο στην θεμελίωση της

ανάγκης νέων προσεγγίσεων (Ο-Ο) στην ανάπτυξη λογισμικού:– Αναποτελεσματική η προσήλωση των Κατασκευαστών

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

αξιοποίησής τους σε νέες περιοχές εφαρμογών– Η ανάδειξη του Διαδικτύου νέα πλατφόρμα

εφαρμογών– Η σύγκλιση των επικρατέστερων από τις νέες

αντικειμενοστραφείς προσεγγίσεις ανάπτυξης λογισμικού

Page 5: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Σύγχρονο Λογισμικό• Σε αυτό το πλαίσιο εντάσσονται νέες τάσεις στην

ανάπτυξη του λογισμικού:– Ευέλικτα και παραμετρικά μοντέλα κύκλου ζωής

λογισμικού, προσαρμοζόμενα στα χαρακτηριστικά κάθε συγκεκριμένου περιβάλλοντος-εφαρμογής

– Μη αυστηρά πρότυπα δομής της τεκμηρίωσης (προϊόντα περιγραφής) του λογισμικού

– Τα περιβάλλοντα ανάπτυξης (γλώσσες, βιβλιοθήκες, εργαλεία) έχουν γίνει ιδιαίτερα σύνθετα και ολοκληρωμένα

– Τα εργαλεία CASE πλέον συνεργάζονται με τα περιβάλλοντα ανάπτυξης λογισμικού, υποστηρίζουν την τεκμηρίωση (και επικαιροποίηση) του λογισμικού από τα πρώτα στάδια ανάπτυξης, αυτοματοποιούν ένα μέρος της παραγωγής πηγαίου κώδικα, υποστηρίζουν γενικότερα τον κατασκευαστή.

Page 6: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Δομημένη προσέγγιση Ανάπτυξης

Page 7: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Αδυναμίες της Δομημένης προσέγγισης

• Ανεξαρτησία δεδομένων από τις λειτουργικές μονάδες– Δεν ισχύει στο επίπεδο του πραγματικού κόσμου, όπου

διαχείριση δεδομένων και λειτουργικές μονάδες που επιδρούν σε αυτά είναι άμεσα συνδεδεμένα

• Απεικόνιση οντοτήτων του πραγματικού κόσμου σε συστατικά λογισμικού– Δεν μοντελοποιεί εύκολα και φυσικά την επιχειρησιακή

λογική• Πολυπλοκότητα

– Το νέο λογισμικό είναι πολύπλοκο και δεν μπορεί κανείς εύκολα να το σχεδιάσει με το δομημένο τρόπο

– Τα δεδομένα που διαχειρίζονται τα σύγχρονα λογισμικά είναι πλέον αρκετά πολύπλοκα για να απεικονιστούν με το δομημένο τρόπο

Page 8: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Αδυναμίες της Δομημένης προσέγγισης

– Σε πρακτικό επίπεδο:• Δυσκολία στον προσδιορισμό των απαιτήσεων: ακριβής

περιγραφή πολλών, πολύπλοκων, και αλληλοσυσχετιζόμενων απαιτήσεων με χρήση μετασχηματισμών και ανεξάρτητων δεδομένων

• Δυσκολία στην παρακολούθηση και ενημέρωση μεταβολών στις προδιαγραφές απαιτήσεων

• Δυσκολία στη διαχείριση των μοντέλων, λόγω πλήθους, πολυπλοκότητας, συσχετίσεων, μεταβολών στο χρόνο

• Δυσκολία στη συντήρηση του λογισμικού• Δεν ενθαρρύνεται η επαναχρησιμοποίηση συστατικών

λογισμικού, λόγω μη επιτρεπτής γενίκευσης

Page 9: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Αδυναμίες της Δομημένης προσέγγισης

• Παρόλα αυτά, δεν είναι μια άχρηστη ή εσφαλμένη προσέγγιση

• Η αντικειμενοστραφής προσέγγιση δεν έχει τη λύση σε όλα τα προβλήματα

• Πολλά από τα προβλήματα θα συνεχίζουν να υπάρχουν, ίσως σε μικρότερο βαθμό

• Η αντικειμενοστραφής Τεχνολογία είναι ένα καλύτερο εργαλείο για τους Κατασκευαστές

Page 10: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Αντικειμενοστραφής Τεχνολογία

Ιστορική αναδρομή• Πρώτη ιδέα στην δεκαετία του ’60• Πρώτη γλώσσα Simula-67• ADA, Smalltalk, κ.α.• Πολλές θεωρητικές αναλύσεις με

παρεμφερή ορολογία• Αναφορές στις πρακτικές πλευρές της

προσέγγισης, στον προγραμματισμό• Πρόσφατο μεγάλο ενδιαφέρον

Page 11: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Αντικειμενοστραφής Τεχνολογία

Ορισμοί• Object-oriented = Αντικειμενοστραφής

– «…προσανατολισμένος σε αντικείμενα»– Ανάπτυξη λογισμικού κατά την οποία τα

«αντικείμενα» είναι οι βασικές δομικές μονάδες

• Αντικείμενο (object)– Δομικό συστατικό ενός λογισμικού. Έχει Κατάσταση

(περιγραφή στατικών ιδιοτήτων του αντικειμένου), Συμπεριφορά (τρόπος απόκρισης σε κλήσεις από το περιβάλλον), Ταυτότητα (μοναδική διάκριση του αντικειμένου από τα ομοειδή αντικείμενα).

Page 12: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Αντικειμενοστραφής Τεχνολογία

Ορισμοί• Αντικείμενο (object) από τεχνική άποψη

– …είναι η συγχώνευση των εννοιών «εγγραφή» και της «διαδικασίας ή συνάρτησης»

– Άρα, Δεδομένα + Λειτουργικές μονάδες– Το σύνολο των τιμών των μεταβλητών μιας

Εγγραφής αποτελεί την Κατάσταση αυτής.– Θυμίζουμε: Εγγραφή είναι συλλογή μεταβλητών

μνήμης, που αποτελούν τη δομή της, και παίρνουν συγκεκριμένη τιμή κάθε χρονική στιγμή.

Page 13: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Αντικειμενοστραφής ΤεχνολογίαΟρισμοί• Κλάση (class):

…είναι το σύνολο των αντικειμένων που έχουν την ίδια δομή και την ίδια συμπεριφορά

– Συμπεριφορά της Κλάσης:• Τρόπος απόκρισης σε εξωτερικά ερεθίσματα

– Δομή της Κλάσης:• Ποιες και τι τύπου μεταβλητές περιγράφουν τις ιδιότητες του

αντικειμένου– Κατάσταση της Κλάσης:

• Σύνολο συγκεκριμένων τιμών που παίρνουν οι μεταβλητές αυτές

• Η Κλάση είναι αφηρημένη έννοια, δεν υπάρχει την ώρα εκτέλεσης του λογισμικού. Αυτό που υπάρχει είναι οι μεταβλητές μνήμης και οι τιμές που παίρνουν.

Page 14: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Αντικειμενοστραφής ΤεχνολογίαΟρισμοί• Στιγμιότυπο (instance):

– Κάθε αντικείμενο αποτελεί ένα Στιγμιότυπο (ή αλλιώς Εκδοχή) της Κλάσης στην οποία ανήκει

• Πεδίο (field):– …είναι κάθε μεταβλητή που παριστάνει ένα

χαρακτηριστικό γνώρισμα του Αντικειμένου.– Το σύνολο των τιμών όλων των Πεδίων ενός

αντικειμένου αποτελεί την Κατάσταση αυτού.

Page 15: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Αντικειμενοστραφής ΤεχνολογίαΟρισμοί• Μέθοδος (method):

– Κάθε ενεργό συστατικό λογισμικού (διαδικασία ή συνάρτηση) που υλοποιεί ένα στοιχείο συμπεριφοράς ενός Αντικειμένου.

– Το σύνολο των μεθόδων ενός Αντικειμένου καθορίζει τη Συμπεριφορά του.

• Κελυφοποίηση, απόκρυψη πληροφοριών– Είναι η απόκρυψη λεπτομερειών υλοποίησης ενός

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

Page 16: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Αντικειμενοστραφής Τεχνολογία – Μελέτη Περίπτωσης «Επίκουρος»

Κλάσεις

Στιγμιότυπα

Κλάση

Πεδία(Δομή)

Μέθοδοι

Κατάσταση

Page 17: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Αντικειμενοστραφής ΤεχνολογίαΟρισμοί

• Σχέσεις– Αναγνωρίζονται στο επίπεδο των Κλάσεων– Υλοποιούνται στο επίπεδο των Αντικειμένων

Τύποι Σχέσεων:– Συσχέτιση (association)– Κληρονομικότητα (inheritance)– Συναρμολόγηση (aggregation)

Page 18: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Αντικειμενοστραφής Τεχνολογία• Σχέσεις -Συσχέτιση (association)

– Η πιο γενική σχέση μεταξύ 2 κλάσεων– Χαρακτηρίζεται από:

• Ένα όνομα

• Την πολλαπλότητα (επιτρεπτός αριθμός μελών κάθε μέρους της σχέσης): 1:1, 1:Ν, Ν:Μ

• Το όνομα του Ρόλου που παίζει κάθε μέρος στη συσχέτιση

Page 19: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Αντικειμενοστραφής Τεχνολογία• Σχέσεις - Κληρονομικότητα (inheritance)

– Μία κλάση αποδίδει (κληροδοτεί) στην άλλη τα χαρακτηριστικά της (πέρα από τα δικά της)

– Κλάση Γονέας Κλάση Παιδί– Κληρονομεί Πεδία και Μεθόδους– Ένας Γονέας μπορεί να κληροδοτεί πολλά Παιδιά– Γενικό στο ειδικό (Κληρονομικότητα) vs. Ειδικό στο Γενικό

(Γενίκευση) => Μηχανισμός Ταξινόμησης Οντοτήτων

Τύποι Κληρονομικότητας:– Απλή (single inheritance): Ένας Γονέας κληροδοτεί μία

Κλάση– Πολλαπλή (Multiple): Περισσότεροι Γονείς κληροδοτούν

μία Κλάση

Page 20: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Αντικειμενοστραφής Τεχνολογία• Σχέσεις - Κληρονομικότητα (inheritance)

– Γενικό στο ειδικό (Κληρονομικότητα) vs. Ειδικό στο Γενικό (Γενίκευση) => Μηχανισμός Ταξινόμησης Οντοτήτων

– Απλή (single inheritance): Ένας Γονέας κληροδοτεί μία Κλάση

Γενίκευση

Κληρονομικότητα

Page 21: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Αντικειμενοστραφής Τεχνολογία• Σχέσεις - Συναρμολόγηση (aggregation)

– Εκφράζει τη σύνθεση συνόλων από απλούστερα μέρη

– Δεν είναι Κληρονομικότητα– Είναι ειδική συσχέτιση («αποτελείται_από»)

Page 22: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Συμπεράσματα

• Νέα προσέγγιση, Νέοι Όροι, Νέα συμβολισμοί

• Διαφορετική μοντελοποίηση ενός προβλήματος

• Αντιμετώπιση αδυναμιών της Δομημένης προσέγγισης:

Page 23: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Συμπεράσματα

• Αντιμετώπιση αδυναμιών της Δομημένης προσέγγισης:– Η ομαδοποίηση δεδομένων και λειτουργιών με

την μορφή Κλάσεων, επιτρέπουν την ευκολότερη αντιστοίχησή τους με τις οντότητες-έννοιες του πραγματικού κόσμου.

– Κάθε οντότητα του πραγματικού κόσμου έχει Κατάσταση και Συμπεριφορά, άρα είναι περισσότερο κατανοητό να την παραστήσουμε με ένα σύνθετο και ενιαίο τρόπο (Κλάση) παρά με πολλά ανεξάρτητα μεταξύ τους (δομημένος τρόπος).

Page 24: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Συμπεράσματα

• Αντιμετώπιση αδυναμιών της Δομημένης προσέγγισης:– Πλούτος Σχέσεων στην Αντικειμενοστραφούς

φιλοσοφία– Ανάλυση του προβλήματος σε διαφορετικά

συστατικά στην Αντικ.– Τα δεδομένα γίνονται τα κυρίαρχα στοιχεία της

αναλυτικής σκέψης

Page 25: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Συμπεράσματα

Page 26: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Αντικειμενοστραφής Ανάπτυξη• Ενοποιημένη Προσέγγιση ανάπτυξης λογισμικού

– Προϊόν σύγκλισης 3 επικρατέστερων προσεγγίσεων ανάπτυξης λογισμικού με την Αντικειμενοστραφή τεχνολογία

Unified Process ή

Unified Software DevelopmentMethodology

Unified Model Language

Page 27: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Γενικό Πλαίσιο Αντικ. Αναπτ. Λογισμ.

• Unified Process– Χρησιμοποιεί την UML για την παράσταση των

μοντέλων λογισμικού– Αντιμετωπίζει το λογισμικό ως σύνολο συστατικών που

ικανοποιούν απαιτήσεις χρηστών, βάση των οποίων πραγματοποιεί τις ενέργειες ανάπτυξης

– Αντιμετωπίζει την αρχιτεκτονική του λογισμικού ως κεντρική έννοια στην ανάπτυξη, η οποία είναι δυναμικά αλληλοεξαρτώμενη από τις απαιτήσεις των χρηστών (καθορίζεται από αυτές και τις επηρεάζει)

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

Page 28: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Μοντέλο Κύκλου Ζωής της Ενοποιημένης Προσέγγισης

Page 29: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Μοντέλο Κύκλου Ζωής της Ενοποιημένης Προσέγγισης

• Κύκλος Ανάπτυξης:– Σύλληψη της ιδέας– Επεξεργασία της Λύσης– Κατασκευή

• Πηγαίος κώδικα– Μετάβαση

• Δοκιμαστική λειτουργία• Επαλήθευση ικανοποίησης απαιτήσεων• Διορθώσεις

Τελικό προϊόν του κύκλου είναι μια εκδοχή (release) του λογισμικού

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

Page 30: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Μοντέλο Κύκλου Ζωής της Ενοποιημένης Προσέγγισης

Δεν εκτελούνται όλες οι εργασίες σε κάθε φάση– Σχηματική Αναλογία (ποιοτική) εργασιών ανάπτυξης

σε κάθε φάση

Page 31: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Βασικές Έννοιες

Page 32: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Συμβολισμοί

Page 33: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης

Σημασία των Περιπτώσεων Χρήσης

Page 34: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης
Page 35: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης
Page 36: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης
Page 37: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης
Page 38: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης
Page 39: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης
Page 40: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης
Page 41: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης
Page 42: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης
Page 43: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης
Page 44: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης
Page 45: icsd.aegean.gr/k otis /softTech06/ Διδάσκων: Κων/νος Κώτης