Ανάλυση Πληροφοριακών Συστημάτων. «Βασικές Έννοιες Αντικειμενοστρεφούς Προγραμματισμού Διαγράμματα κλάσεων» Βασίλειος Καρακόιδας

Σχετικά έγγραφα
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Εισαγωγή. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Από τη UML στον Κώδικα. Μέρος Β

Διάγραμμα Κλάσεων. Class Diagram

Ανάλυση Πληροφοριακών Συστημάτων. «Διαγράμματα περιπτώσεων χρήσης» Βασίλειος Καρακόιδας

Διαχείριση Πληροφοριακών Συστημάτων

Τεχνολογία λογισμικού στην πράξη

Διαγράμματα UML για την τεκμηρίωση της Αρχιτεκτονικής

UML. Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις. Παραδείγματα

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

UML: Unified modelling language

08 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο

Αντικειμενοστρεφής Προγραμματισμός

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Εισαγωγή στην αντικειµενοστρεφή τεχνολογία

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ ΥΛΟΠΟΙΗΣΗ ΣΤΟΙΧΕΙΩΝ ΑΝΑΛΥΣΗΣ UML ΜΕ JAVA. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

Η γλώσσα μοντελοποίησης UML. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

Ειδικά θέματα τεχνολογίας λογισμικού

Διάλεξη 11: Αντικειμενοστρεφής Σχεδιασμός ΙII

Διαγράμματα UML στην Ανάλυση. Μέρος Β Διαγράμματα Κλάσεων Διαγράμματα Αντικειμένων

Τα διαγράµµατα κλάσεων

Εισαγωγή στη UML. Περιεχόμενα. Γενικά χαρακτηριστικά. Στοιχεία μοντέλων. Συσχετίσεις. Διαγράμματα. Παραδείγματα. Γλώσσες Προδιαγραφής 1

ΑΝΑΛΥΣΗ ΑΠΑΙΤΗΣΕΩΝ ανάλυση απαιτήσεων Σε αυτό το μάθημα θα ασχοληθούμε με : Δημιουργία μοντέλων

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 8 ο & 9 ο Εργαστήριο -

ΟΔΗΓΙΕΣ ΓΙΑ ΧΡΗΣΗ ΤΟΥ ΕΡΓΑΛΕΙΟΥ RATIONAL ROSE

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

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 21/11/2016. Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια.

Ανάλυση Πληροφοριακών Συστημάτων. «Εισαγωγή στην UML» Βασίλειος Καρακόιδας

Η γλώσσα μοντελοποίησης UML. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 7

Μοντελοποίηση δεδομένων με UML Χρήση σε πολυμεσικές εφαρμογές

09 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών. Εαρινό εξάμηνο

Ανάλυση Πληροφοριακών Συστημάτων. Εαρινό Εξάμηνο Lec08 09/04/2019 Διδάσκων: Γεώργιος Χρ. Μακρής

Από τη UML στον Κώδικα. Μέρος Α

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 2: Βασικές Αρχές Αντικειμενοστραφούς Σχεδίασης Συστημάτων και Εφαρμογών (2ο Μέρος)

3 Αλληλεπίδραση Αντικειμένων

Περιεχόμενο του μαθήματος

Δομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα.

ΣΥΣΧΕΤΙΣΕΙΣ ΚΛΑΣΕΩΝ (Class relationships)

Θέματα εξετάσεων. Τύπος: B

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 4 ο Εργαστήριο -

Εισαγωγή στη γλώσσα UML

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

Μοντελοποίηση Συστημάτων. Διαγράμματα Κλάσεων ClassDiagrams

Διαγράμματα Αλληλεπίδρασης. Διαγράμματα Ακολουθίας Διαγράμματα Συνεργασίας

Διάλεξη 10: Αντικειμενοστρεφής Σχεδιασμός ΙI. Διδάσκων: Παναγιώτης Ανδρέου

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #13

Αντικειµενοστραφής Προγραµµατισµός

Διαγράμματα Κλάσεων στη Σχεδίαση

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Μέθοδοι. Υποσυστήµατα και πακέτα. Μοντέλα αντικειµενοστραφούς σχεδίασης. Αντικειµενοστραφής Σχεδίαση. Στα πρώτα στάδια της ανάλυσης

Εισαγωγή στη UML. Περιεχόµενα. Γενικά χαρακτηριστικά. Στοιχεία µοντέλων. Συσχετίσεις. ιαγράµµατα. Παραδείγµατα. Γλώσσες Προδιαγραφής

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα

Αντικειμενοστρεφής Προγραμματισμός

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Constructors

Διασυνδέσεις / Διεπαφές. Παναγιώτης Σφέτσος, PhD

Περιεχόμενα. ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στη UML... 19

Wrapper Classes, Abstract Classes and Interfaces

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Παράδειγμα χρήσης κληρονομικότητας

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

Αντικειμενοστρεφής Προγραμματισμός

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

02 Αντικειμενοστρεφής Προγραμματισμός

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ. Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής

Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής T.E.I. ΘΕΣΣΑΛΟΝΙΚΗΣ

Αντικειµενοστρεφής Προγραµµατισµός

(Απλή) Κληρονομικότητα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)

ΟΝΤΟΚΕΝΤΡΙΚΟΣ ΠΡΟΓΡ/ΣΜΟΣ C++

Κλάσεις. Κατηγορίες Αντικειµένων. Κλάσεις. Φυσικά Αντικείµενα. Χώρος = Οµάδα Φυσικών Αντικειµένων. Πρόγραµµα = Οµάδα

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ

09 Η γλώσσα UML II. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο

Φροντιστήριο 3. Ημερομηνία: 22/11/2006 Θεματική Ενότητα: Δομική Μοντελοποίηση Θέμα: Διαγράμματα Κλάσεων

Οντοκεντρικός Προγραμματισμός

Θέµατα εξετάσεων µε απαντήσεις

ΕΚΦΩΝΗΣΗ ΥΠΟΧΡΕΩΤΙΚΗΣ ΕΡΓΑΣΙΑΣ σε UML

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

Παύλος Εφραιµίδης. Java. Κληρονοµικότητα

Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών Φθινόπωρο οµική Μοντελοποίηση Class Diagrams

Περιεχόμενο του μαθήματος

Πληροφοριακά Συστήματα Διοίκησης Ενότητα 1: Βασικές Αρχές Αντικειμενοστραφούς Σχεδίασης Συστημάτων και Εφαρμογών (1ο Μέρος)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές) Ένα μεγάλο παράδειγμα.

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Έλεγχος ισότητας String Interning Αποαναφοροποίηση - dereferencing

public void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);

Κληρονομικότητα. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Java Κληρονομικότητα 1

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

Κεφάλαιο 2ο. Κατανοώντας την αντικειμενοστρέφεια

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων

Αντικειμενοστρεφής Προγραμματισμός

ΓΡΑΠΤΗ ΕΞΕΤΑΣΗ ΣΤΟ ΜΑΘΗΜΑ "ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΣΧΕ ΙΑΣΜΟΣ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ" ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ ιδάσκων: Β.Βεσκούκης

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

Τι είναι η UML. H UML (Unified Modeling Language) είναι µιά γλώσσα µοντελοποίησης γιά

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

Αντικειμενοστρεφής Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES

Transcript:

Ανάλυση Πληροφοριακών Συστημάτων «Βασικές Έννοιες Αντικειμενοστρεφούς Προγραμματισμού Διαγράμματα κλάσεων» Βασίλειος Καρακόιδας 7 12 2005

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

Διαγράμματα της UML Διάγραμμα περιπτώσεων χρήσης (use case diagram) Διαγράμματα δομής Διάγραμμα κλάσεων (class diagram) Διάγραμμα αντικειμένων (object diagram) Διαγράμματα συμπεριφοράς Διάγραμμα καταστάσεων (statechart diagram) Διάγραμμα δραστηριοτήτων (activity diagram) Διαγράμματα αλληλεπίδρασης Διάγραμμα ακολουθίας (sequence diagram) Διάγραμμα συνεργασίας (collaboration diagram) Διαγράμματα δομής υλοποίησης Διάγραμμα εξαρτημάτων (component diagram) Διάγραμμα ανάπτυξης (deployment diagram)

Χρήση Διαγραμμάτων Διεργασία Ανάλυση απαιτήσεων Σχεδιασμός Τεκμηρίωση Διάγραμμα Διάγραμμα περιπτώσεων χρήσης (use case) Διάγραμμα δραστηριοτήτων (activity) Διάγραμμα κλάσεων (class) Διάγραμμα καταστάσεων (statechart) Διάγραμμα κλάσεων (class diagram) Διαγράμματα αλληλεπίδρασης (Sequence/Collaboration) Διάγραμμα εξαρτημάτων (component) Διάγραμμα ανάπτυξης (deployment) Διάγραμμα καταστάσεων (statechart) Όλα τα διαγράμματα Απεικονίζει Οπτική χρήστη στην συμπεριφορά του συστήματος Δραστηριότητες χρήστη αλληλεπίδραση με το σύστημα Βασικές οντότητες συστήματος και σχέσεις τους Κύκλος ζωής σημαντικών δραστηριοτήτων Εσωτερική δομή συστήματος Αλληλεπίδραση των κλάσεων του συστήματος Απεικόνιση του συστήματος σε επαναχρησιμοποιούμενα τμήματα Φυσική απεικόνιση του λογισμικού Κύκλος ζωής βασικών κλάσεων Διαγραμματική υποστήριξη στην τεκμηρίωση του λογισμικού

Κλάσεις Περιγράφουν μια διακριτή οντότητα του συστήματος που μοντελοποιείται Καθορίζεται ένα σύνολο αντικειμένων με κατάσταση και συμπεριφορά Κατάσταση = Χαρακτηριστικά και Σχέσεις Συμπεριφορά = Μεθόδους

Κλάσεις (2) Medicine name : String cost : float FPA : float requiresprescript ion : boolean getcost() : float setfpa(percent age : float) : void Class Name Attributes Operations

Κλάσεις (3) Public class Medicine { private String name; private float cost, FPA; private boolean requiresprescription; public float getcost() { return cost; } } public void setfpa(float percentage) { this.fpa = percentage; }

Διεπαφή Περιγραφή συμπεριφοράς χωρίς υλοποίηση ή κατάσταση Περιέχει μεθόδους, αλλά δεν έχει χαρακτηριστικά ή σχέσεις Η συμπεριφορά μιας διεπαφής μπορεί να υλοποιείται από μια ή περισσότερες κλάσεις

Διεπαφή Reservable InterfaceName updatereserves(quantity : int) : int isavailable() : boolean Operations

Διεπαφή

Διεπαφή public interface Reservable { public int updatereserves(int quantity); public boolean isavailable(); }

Διεπαφή

Διεπαφή Public ReservableImpl implements Reservable { private int quantity; private boolean available = true; public int updatereserves(int quantity) { this.quantity = quantity; return this.quantity; } } public boolean isavailable() { return available; }

Είδη Σχέσεων Συσχέτιση (Association) Σύνθεση (Aggregation/Composition) Γενίκευση (Generalization) Εξάρτηση (Dependency)

Συσχέτιση Κάθε πελάτης είναι ασφαλισμένος σε ένα ή περισσότερα ασφαλιστικά ταμεία Ένα παραστατικό περιλαμβάνει ακριβώς ένα αγοραστή Ένα παραστατικό περιλαμβάνει 1 ή περισσότερα είδη προς πώληση

Συσχέτιση

Σύνθεση (Composition) PrintPage 1 1 1 Header Body Footer Μια σελίδα εκτύπωσης έχει κεφαλίδα, κυρίως σώμα εκτύπωσης και υποσέλιδο

Σύνθεση (Composition) public class PrintPage { public Header header; public Body body; public Footer footer; }

Σύνθεση (Composition)

Σύνθεση (Aggregation) Order 1 Supplier 1..* Item Aggregation: Μια παραγγελία έχει ένα προμηθευτή και ένα ή περισσότερα προϊόντα

Σύνθεση (Aggregation) public Order { public Supplier supplier; public Item[] items; }

Σύνθεση (Aggregation)

Γενίκευση Item Medicine Cosmet ic Κάθε φάρμακο είναι ένα είδος προϊόντος. Κάθε καλλυντικό είναι ένα είδος προϊόντος.

Γενίκευση (2) public class Medicine extends Item {} public class Cosmetic extends Item {} Public class Item {}

Εξάρτηση Σχέση εξάρτησης μεταξύ των Class1, Class2. Αν αλλάξει η Class2, τότε πιθανό να χρειάζεται αλλαγή και η Class1.

Άσκηση public class Class1 {} public interface Interface1 { public int getint(); } public class Class2 implements Interface1 { public Class1 instance1; } public class Class3 { public Class1[] instance1; public Class2 instance2; } public Class1[] getinstance1() { return instance1; } public Class2 getinstance2() { return instance2; }

Άσκηση public class Wheel {} public class Engine {} public class Gear {} public class Driver {} public interface Car {} public class Mercedes implements Car { public Wheel[] wheels = new Wheel[4]; public Engine engine; public Gear gear; public Driver driver; }