Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

ANAΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ Aντικειμενοστρεφής Ανάπτυξη Συστημάτων Εισαγωγή στη UML.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "ANAΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ Aντικειμενοστρεφής Ανάπτυξη Συστημάτων Εισαγωγή στη UML."— Μεταγράφημα παρουσίασης:

1 ANAΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ Aντικειμενοστρεφής Ανάπτυξη Συστημάτων Εισαγωγή στη UML

2 Αντικειμενοστρεφής Ανάπτυξη Συστημάτων  Αντικειμενοστρεφής θεώρηση του πραγματικού κόσμου  Πραγματικός κόσμος: θεωρείται ως ένα σύνολο από αντικείμενα που επικοινωνούν μεταξύ τους ανταλλάσσοντας μηνύματα  Στόχος:  η Μοντελοποίηση Αντικειμένων του πραγματικού κόσμου και της επικοινωνίας τους και ο βαθμιαίος μετασχηματισμός των μοντέλων σε Αντικειμενοστραφές Λογισμικό  Τι χρειάζεται:  Αντικειμενοστρεφής Γλώσσα Μοντελοποίησης (π.χ. UML) -> Αντικειμενοστρεφή Μοντέλα  Αντικειμενοστρεφής Μεθοδολογία Ανάπτυξης (π.χ. Rational Unified Process)  Αντικειμενοστρεφή Εργαλεία Ανάπτυξης  Case Tools, π.χ. Rational Rose, ArgoUML, StarUML  Γλώσσες προγραμματισμού, π.χ. C++, Java  κλπ

3 Τι είναι Αντικείμενο  Αντικείμενο πραγματικού κόσμου: π.χ. ποδήλατο, σκύλος, αυτοκίνητο  Αντικείμενο λογισμικού:  Μοντελοποιεί, αναπαριστά, αντιστοιχεί σε:  Αντικείμενο του πραγματικού κόσμου  Δομές δεδομένων (π.χ. Λίστα, ουρά)  Κάποιο γεγονός  Κάτι αφαιρετικό  Έχει:  χαρακτηριστικά και κατάσταση (μοντελοποιείται με μεταβλητές - στατικό μέρος) και  Συμπεριφορά (μοντελοποιείται με μεθόδους - δυναμικό μέρος)

4 Τι είναι Αντικείμενο (συνέχεια)  Ολα τα αντικείμενα έχουν  χαρακτηριστικά καί βρίσκονται σε μιά κατάσταση. π.χ.  Σκυλί: όνομα, χρώμα, πεινασμένο, κλπ.  Ποδήλατο: 2 τροχοί, χρώμα, αριθμ.ταχυτήτων, παρούσα ταχύτητα κλπ  Συμπεριφορά, π.χ.  Σκυλί: γαβγίζει, τρώει, παίζει, κουνάει την ουρά, κλπ.  Ποδήλατο: φρενάρει, αυξάνει/ελαττώνει ταχύτητα, αλλάζει ταχύτητα κλπ

5 Έννοιες σχετικές με την Αντικείμενοστρεφή Μοντελοποίηση και Υλοποίηση Απόκρυψη Πληροφορίας (information hiding) Απόκρυψη Πληροφορίας (information hiding) Εγκλεισμός (encapsulation) Εγκλεισμός (encapsulation) Επικοινωνία μέσω μυνημάτων Επικοινωνία μέσω μυνημάτων Κλάσεις Αντικειμένων Κλάσεις Αντικειμένων Ιεραρχίες Κλάσεων - Κληρονομικότητα Ιεραρχίες Κλάσεων - Κληρονομικότητα

6 Απόκρυψη Πληροφορίας Δημόσιο Μέρος (Public API) Iδιωτικό Μέρος (Λεπτομέρειες Υλοποίησης)

7 Παράδειγμα Αντικειμένου: ΠΟΔΗΛΑΤΟ ΑλλαξεΤαχύτητα Φρέναρε Ξεκίνα Λεπτομέρειες Υλοποίησης των λειτουργιών

8 Eγκλεισμός (Εncapsulation)  H έννοια του εγκλεισμού (encapsulation)  Πλεονεκτήματα  Αρθρωτά (modular) προγράμματα: Ο πηγαίος κώδικας γιά ένα αντικείμενο μπορεί να γραφτεί καί να συντηρηθεί ανεξάρτητα από άλλα αντικείμενα  Απόκρυψη πληροφορίας (ιδιωτικό μέρος / δημόσιο)

9 Επικοινωνία Μεταξύ Αντικειμένων ΑλλαξεΤαχύτητα Φρέναρε Ξεκίνα Φρέναρε ΠΟΔΗΛΑΤΟ ΠΟΔΗΛΑΤΗΣ ΜΗΝΥΜΑ

10 Μυνήματα  Τα αντικείμενα επικοινωνούν και αλληλεπιδρούν μεταξύ τους αποστέλλοντας μηνύματα.  Επιπλέον πληροφορία που απαιτείται δίνεται ως παράμετροι των μηνυμάτων.  Πλεονεκτήματα  Όλη η αλληλεπίδραση υποστηρίζεται με μεταβίβαση μηνυμάτων.  Τα αντικείμενα δε χρειάζεται να βρίσκονται στην ίδια διεργασία, ούτε καν στον ίδιο υπολογιστή.

11 ΚΛΑΣΗ ΑΝΤΙΚΕΙΜΕΝΩΝ  Μία κλάση είναι ένα σχέδιο, ένα πρότυπο που ορίζει τις κοινές μεταβλητές και μεθόδους όλων των αντικειμένων που ανήκουν στο ίδιο είδος.  Προσοχή: η κλάση δεν είναι σύνολο  Κάθε αντικείμενο είναι στιγμιότυπο μίας κλάσης.

12 ΠΑΡΑΔΕΙΓΜΑ ΚΛΑΣΗΣ: ΠΟΔΗΛΑΤΟ ΑλλαξεΤαχύτητα Φρέναρε Ξεκίνα Δημόσιο Μέρος (Public API) Iδιωτικό Μέρος (Λεπτομέρειες Υλοποίησης) Στατικά Χαρακτηριστικά: ΧΡΩΜΑΜΟΝΤΕΛΟ Δυναμικά ΧαρακτηριστικάΣ ΑΛΛΑΞΕ ΤΑΧΥΤΗΤΑ: (Υλοποίηση)κλπ

13 ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ ΠΟΔΗΛΑΤΟ ΠΟΔΗΛΑΤΟ ΒΟΥΝΟΥΑΓΩΝΙΣΤΙΚΟ ΠΟΔΗΛΑΤΟΠΟΔΗΛΑΤΟ ΠΟΛΗΣ

14 ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ  Υποκλάσεις (subclasses) και υπερκλάσεις (superclasses)  Κάθε υποκλάση:  κληρονομεί τη συμπεριφορά και την κατάσταση της υπερκλάσης της  μπορεί να επανα-ορίσει (override) κληροδοτούμενη συμπεριφορά και κατάσταση  Μπορεί να επεκτείνει την κληροδοτούμενη συμπεριφορά και κατάσταση  Ιεραρχία κλάσεων

15 ΠΛΕΟΝΕΚΤΗΜΑΤΑ ΚΛΗΡΟΝΟΚΙΚΟΤΗΤΑΣ Οι υποκλάσεις προσφέρουν εξειδικευμένη συμπεριφορά από τα κοινά στοιχεία που προσφέρει η υπερκλάση. Επαναχρησιμοποίηση του κώδικα της υπερκλάσης. Οι υποκλάσεις προσφέρουν εξειδικευμένη συμπεριφορά από τα κοινά στοιχεία που προσφέρει η υπερκλάση. Επαναχρησιμοποίηση του κώδικα της υπερκλάσης. Οι προγραμματιστές μπορούν να υλοποιήσουν υπερκλάσεις που λέγονται αφαιρετικές κλάσεις (abstract classes) και ορίζουν γενικευμένη συμπεριφορά. Οι αφαιρετικές κλάσεις ορίζουν και υλοποιούν εν μέρει τη συμπεριφορά. Κάθε προγραμματιστής συμπληρώνει τα χαρακτηριστικά που επιθυμεί. Οι προγραμματιστές μπορούν να υλοποιήσουν υπερκλάσεις που λέγονται αφαιρετικές κλάσεις (abstract classes) και ορίζουν γενικευμένη συμπεριφορά. Οι αφαιρετικές κλάσεις ορίζουν και υλοποιούν εν μέρει τη συμπεριφορά. Κάθε προγραμματιστής συμπληρώνει τα χαρακτηριστικά που επιθυμεί.

16 Τι είναι η UML H UML (Unified Modeling Language) είναι μιά γλώσσα γιά H UML (Unified Modeling Language) είναι μιά γλώσσα γιά Κατάρτιση προδιαγραφών λογισμικού καί δημιουργία καί τεκμηρίωση τμημάτων λογισμικούΚατάρτιση προδιαγραφών λογισμικού καί δημιουργία καί τεκμηρίωση τμημάτων λογισμικού Αναπαράσταση με οπτικό τρόπο (visualization) τμημάτων λογισμικούΑναπαράσταση με οπτικό τρόπο (visualization) τμημάτων λογισμικού Μοντελοποίηση εταιρικών και άλλων συστημάτων που δεν αφορούν λογισμικούΜοντελοποίηση εταιρικών και άλλων συστημάτων που δεν αφορούν λογισμικού

17 ΣΤΟΧΟΙ ΤΗΣ UML ΣΤΟΧΟΙ ΤΗΣ UML H μοντελοποίηση συστημάτων με βάση τις αρχές της αντικειμενοστρεφούς μοντελοποίησης H μοντελοποίηση συστημάτων με βάση τις αρχές της αντικειμενοστρεφούς μοντελοποίησης Η χρήση γλώσσας που μπορεί να χρησιμοποιηθεί τόσο από τον άνθρωπο όσο κι από τις μηχανές Η χρήση γλώσσας που μπορεί να χρησιμοποιηθεί τόσο από τον άνθρωπο όσο κι από τις μηχανές

18 KYKΛΟΣ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ Χρήση UML  Ανάλυση  Εννοιολογικό μοντέλο (UML)  Απαιτήσεις συστήματος (UML)  Σχεδιασμός  Σχεδιασμός συστήματος (UML)  Λεπτομεριακός σχεδιασμός (UML)  Υλοποίηση (UML – διαγράμματα deployment & component)  Κωδικοποίηση  Έλεγχος

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

20 ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΤΩΝ ΜΟΝΤΕΛΩΝ Γενικά αλλά και στη UML  Ακρίβεια  περιγράφουν με ακριβή τρόπο το σύστημα χωρίς ασάφειες και περιθώρια γιά παρερμηνείες  Συνέπεια  διαφορετικές όψεις χρησιμοποιούν όμοια αντικείμενα  Εύκολη επικοινωνία  Με άλλα διαγράμματα  Με τους χρήστες  Ευμετάβλητα  Κατανοητά

21 ΤΜΗΜΑΤΑ της UML Διαγράμματα: περιγράφουν τα περιεχόμενα μιας όψης Oψεις (Views): δείχνουν όψεις του συστήματος που Μοντελοποιούνται Στοιχεία μοντέλου: Kλάσεις, Αντικείμενα, Συσχετίσεις, Καταστάσεις, Πακέτα, Περιπτώσεις Χρήσης, Κόμβοι, Συστατικά, κλπ

22 Συνήθη Στοιχεία του Μοντέλου της UML Κατάσταση Κόμβος (node) Package Component Component Κλάση Γνωρίσματα ΛειτουργίεςΑντικείμενοΓνωρίσματα Λειτουργίες Use Case interface Σημείωση συσχέτιση actor

23 Use-caseView ComponentviewLogicalview DeploymentviewConcurrencyView ΕΙΔΗ ΟΨΕΩΝ της UML

24 UML Διαγράμματα Η UML παρέχει Διαγράμματα: Η UML παρέχει Διαγράμματα: –Περιπτώσεων Χρήσης (use case diagrams) –Κλάσεων (class diagrams) –Αντικειμένων (object diagrams) –Δραστηριοτήτων (activity diagrams) –Mηχανής Καταστάσεων (state machine diagrams) –Ακολουθίας (sequence diagrams) –Eπικοινωνίας (communication diagrams) –Συστατικών (component diagrams) –Aνάπτυξης (deployment diagrams) Τα πρώτα 3 είδη διαγραμμάτων θεωρούνται στατικά διαγράμματα Τα πρώτα 3 είδη διαγραμμάτων θεωρούνται στατικά διαγράμματα Τα 4 που ακολουθούν θεωρούνται δυναμικά διαγράμματα Τα 4 που ακολουθούν θεωρούνται δυναμικά διαγράμματα Tα 2 τελευταία θεωρούνται διαγράμματα υλοποίησης Tα 2 τελευταία θεωρούνται διαγράμματα υλοποίησης

25 Υπογραφή ασφάλειας Στατιστικά στοιχεία πωλήσεων πωλήσεων Στατιστικά στοιχεία πελατών Πελάτης Πράκτορας ασφαλειών Διάγραμμα περιπτώσεων χρήσης USE-CASE DIAGRAM Περιγράφει τη λειτουργικότητα του συστήματος Περιγράφει τη λειτουργικότητα του συστήματος όπως αυτή γίνεται αντιληπτή από τον χρήστη

26 ΔΙΑΓΡΑΜΜΑ ΚΛΑΣΕΩΝ CLASS DIAGRAM ΚΑΤΟΧΟΣ Όνομα: Συμβολοσειρά Ακέραιος ΥΠΟΛΟΓΙΣΤΗΣ όνομα : Συμβολοσειρά Μνήμη : Ακέραιος * : χρησιμοποιεί Ηλικία: Είδη συσχετίσεων μεταξύ κλάσεων: Απλή συσχέτιση, συσχέτιση εξάρτησης, συσχέτιση εξειδίκευσης / κληρονομικότητας, συσχέτιση ομαδοποίησης

27 Παραδείγματα συσχετίσεων μεταξύ κλάσεων Εξάρτηση (dependency) ένα στοιχείο εξαρτάται με κάποιον τρόπο από κάποιο άλλο Εξειδίκευση / Κληρονομικότητα ένα στοιχείο αποτελεί ειδική περίπτωση κάποιου άλλου Απλή Συσχέτιση Ομαδικότητα ένα στοιχείο περιέχει άλλα στοιχεία

28 Bob:ΚΑΤΟΧΟΣ όνομα: ”Bob.j” Ηλικία = 32 Bob’s job PC: YΠΟΛΟΓΙΣΤΗΣ Όνομα: “Dell4” Μνήμη = 64 Bob’s Home: YΠΟΛΟΓΙΣΤΗΣ Όνομα:”Pentium Μνήμη = 32 ΔΙΑΓΡΑΜΜΑ ΑΝΤΙΚΕΙΜΕΝΩΝ ΟBJECT DIAGRAM Δίνει παραδείγματα συγκεκριμένων στιγμιότυπων των κλάσεων και τις μεταξύ τους σχέσεις

29 ΔΙΑΓΡΑΜΜΑ ΔΡΑΣΤΗΡΙΟΤΗΤΩΝ ΑCTIVITY DIAGRAM - Δίνει την ακολουθιακή ροή των δραστηριοτήτων - Περιέχει προσδιορισμούς των μηνυμάτων που στέλνονται Εμφάνισε μύνημα «Δίσκος γεμάτος» Εμφάνισε μύνημα «Εκτύπωση» στην οθόνη Δημιουργησε postscript αρχείου Μετακίνησε κουτιά μηνυμάτων [ Δίσκος γεμάτος ] [ Ελεύθερος χώρος δίσκου ] ΠαράθυροΠελάτη.Εκτύπωση ( ) ^Εκτυπωτής.Εκτύπωση()

30 ΔΙΑΓΡΑΜΜΑ MHXANHΣ ΚΑΤΑΣΤΑΣΕΩΝ State Machine Diagram On first floor Moving up Moving down Idle Moving to 1st floor Go up (floor) arrived arrived arrived Go down (floor) Time out arrived

31 :Computer:PrinterServer:Printer:Queue Print (file) [printer free] Print(file) [printer busy] Store(file) ΔΙΑΓΡΑΜΜΑ AΚΟΛΟΥΘΙΑΣ SEQUENCE DIAGRAM

32 :Computer :PrinterServer :Queue :Printer 1:Print(file) [printer busy] 1.2: Store(file) [printer free] 1.1: Print(file) ΔΙΑΓΡΑΜΜΑ ΕΠΙΚΟΙΝΩΝΙΑΣ COΜΜUNICATION DIAGRAM (παλαιό Collaboration Diagram)

33 ΔΙΑΓΡΑΜΜΑ ΣΥΣΤΑΤΙΚΩΝ COMPONENT DIAGRAM Δείχνει τα συστατικά μέρη του κώδικα και τη φυσική τους δομή Window Handler (wind.cpp) Comm Handler (comm.hnd) Main Class (main.cpp) Window Handler (wind.obj) Comm Handler (commhnd.obj) Main Class (main.obj) Graphic lib (graphic.dll) Client Program (client.exe)

34 ΔΙΑΓΡΑΜΜΑ ΑΝΑΠΤΥΞΗΣ DEPLOYMENT DIAGRAM -> Δείχνει τους υπολογιστές και τις συσκευές (κόμβους) καθώς και τον τύπο των συνδέσεων ->Εκτελέσιμα αντικείμενα φανερώνουν ποιες μονάδες λογισμικού εκτελούνται σε κάθε κόμβο Client A: Compaq Pro PC ApplicationServer: Silicon Graphics «TCP/IP» «TCP/IP» DatabaseSERVER:VAX «Decnet» Client B: Client B: Compaq Pro PC

35 ΕΙΔΗ UML ΔΙΑΓΡΑΜΜΑΤΩΝ Στατικά Δυναμικά Υλοποίησης Διαγράμματα αντικειμένων και κλάσεων Kαταστάσεων, Ακολουθίας, Συνεργασίας, Δραστηριοτήτων Εξαρτημάτων, ανάπτυξης Εσωτερική όψη Εξωτερική όψη Use case διάγραμμα

36 ΕΙΔΗ UML ΔΙΑΓΡΑΜΜΑΤΩΝ ΣτατικήΌψη ΔυναμικήΌψη ΌψηΥλοποίησης Διαγράμματα αντικειμένων και κλάσεων Kαταστάσεων, Ακολουθίας, Συνεργασίας,Δραστηριοτήτων Εξαρτημάτων, ανάπτυξης Λειτουργική Όψη Use case διάγραμμα

37 ΦΑΣΗ ΑΝΑΛΥΣΗΣ Αναλυση Απαιτήσεων Συστήματος Διαγράμματα UML Use case, class, object, activity ΦΑΣΗ ΣΧΕΔΙΑΣΗΣ Eπεκτείνει το μοντέλο ανά- λυσης σε μια λειτουργικά τεχνική λύση Διαγράμματα UML Class, Sequence, State, Activity, Component ΦΑΣΗ ΥΛΟΠΟΙΗΣΗΣ Το μοντέλο είναι τώρα ο κώδικας του προγράμματος που υλοποιεί το σύστημα ΦΑΣΗ ΠΡΑΓΜΑΤΩΣΗΣ Περιγράφει πως το σύστημα αναπτύσσεται σε φυσική αρχιτεκτονική Διαγράμματα UML Deployment, Collaboration ΜΟΝΤΕΛΟΠΟΙΩΝΤΑΣ ΜΕ UML

38 ΕΠΕΚΤΕΙΝΟΝΤΑΣ ΤΗ UML Στερεότυπα: Στερεότυπα: ορίζουν ένα νέο είδος στοιχείου μοντέλου βασισμένο σ’ ένα υπάρχον στοιχείο μοντέλου. Είναι λοιπόν σαν ένα υπάρχον στοιχείο μοντέλου, με κάποια επιπλέον στοιχεία ορίζουν ένα νέο είδος στοιχείου μοντέλου βασισμένο σ’ ένα υπάρχον στοιχείο μοντέλου. Είναι λοιπόν σαν ένα υπάρχον στοιχείο μοντέλου, με κάποια επιπλέον στοιχεία Tagged values: Tagged values: Τα στοιχεία μπορούν να έχουν ιδιότητες που περιέχουν ζευγάρια τιμών σχετικά με επιπλέον πληροφορίες Τα στοιχεία μπορούν να έχουν ιδιότητες που περιέχουν ζευγάρια τιμών σχετικά με επιπλέον πληροφορίες Περιορισμοί: Περιορισμοί: Θέτουν κάποια βάση που περιορίζει είτε τη χρήση του στοιχείου είτε τη σημασία του Θέτουν κάποια βάση που περιορίζει είτε τη χρήση του στοιχείου είτε τη σημασία του

39 ΣΤΕΡΕΟΤΥΠΑ «Actor» ΠελάτηςΠελάτης Πελάτης Ο πελάτης είναι μια κλάση με το στερεότυπο «Actor» Το στερεότυπο προσθέτει επιπλέον σημασιολογικές πληροφορίες σχετικά με την κλάση. Εδώ η κλάση εκπροσωπεί έναν εξωτερικό χρήστη του συστήματος

40 Tagged values και περιορισμοί Εργαλείο {abstract} {συγγραφ.=“Hee”} {κατάσταση=draft} Τιμή: ακέραιος Ημ.λήξης: ημερ. O συγγραφέας και η κατάσταση είναι γνωρίσματα ορισμένα από τον χρήστη ΟμάδαΗλικιωμένωνΠολιτών Άτομο {Ατομο.Ηλικία>60} Περιορισμοί *

41 ΛΕΙΤΟΥΡΓΙΕΣ ΤΩΝ ΕΡΓΑΛΕΙΩΝ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ (Case Tools) tΣχεδιασμός διαγραμμάτων που εξασφαλίζουν τη σωστή χρήστη των στοιχείων του μοντέλου tΑποθήκευση δεδομένων - Αν το όνομα μιας κλάσης αλλάζει σ’ ένα διάγραμμα, η αλλαγή αυτή διαδίδεται και στα υπόλοιπα tΥποστήριξη εισαγωγής / εξαγωγής ενός στοιχείου μεταξύ διαγραμμάτων κι επέκταση της περιγραφής του στοιχείου tΥποστήριξη πολλών χρηστών - να δουλεύουν πολλοί χρήστες ταυτόχρονα tΔημιουργία κώδικα

42 ΑΛΛΕΣ ΛΕΙΤΟΥΡΓΙΕΣ ΤΩΝ CASE TOOLS tΑντίστροφη παραγωγή μοντέλων (reverse engineering) tδηλαδή από τον κώδικα να παράγουμε μοντέλα tΣυμβατότητα με άλλα εργαλεία tΠ.χ. editor, μεταγλωττιστές κι άλλα επιχειρησιακά εργαλεία tΚάλυψη όλων των φάσεων ανάπτυξης tαπό τη φάση περιγραφής του συστήματος στην παραγωγή κώδικα tΔιαλειτουργικότητα ανάμεσα στα μοντέλα tΈνα μοντέλο διαγραμμάτων θα πρέπει να έχει τη δυνατότητα να εισάγεται από το ένα εργαλείο στο άλλο


Κατέβασμα ppt "ANAΛΥΣΗ ΣΥΣΤΗΜΑΤΩΝ Aντικειμενοστρεφής Ανάπτυξη Συστημάτων Εισαγωγή στη UML."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google