Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού"

Transcript

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

2 Class Diagrams Διαγράμματα Κλάσεων

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

4 Κλάση συσχέτισης (Association Class) Όταν τα γνωρίσματα ή οι λειτουργίες δεν εμφανίζονται σε μία μεμονωμένη κλάση αλλά στη συσχέτιση μεταξύ δύο κλάσεων Τότε κλάση συσχέτισης! Θέλουμε να διατηρήσουμε πληροφορία που είναι συγκεκριμένη για αυτή τη συσχέτιση, αλλά όχι για κάθε μία από τις κλάσεις που συμμετέχουν Class A Class B Class Y

5 Κλάση συσχέτισης (Association Class) -name -age Person * employment 0..1 Company -name Συσχέτιση Λεπτομέρειες πρόσληψης ενός υπαλλήλου που εργάζεται σε μία εταιρία -name -age Person * employment 0..1 Company -name Κλάση συσχέτισης Employment -salary -startdate -end Date Κλάση συσχέτισης: μπορεί να υπάρχει το πολύ ένα στιγμιότυπο της κλάσης συσχέτισης μεταξύ οποιουδήποτε ζεύγους συσχετισμένων αντικειμένων

6 Κλάση συσχέτισης (Association Class) Student -name -student# 0..* 1..* Course -name Κλάση συσχέτισης Enrollment -enrollmentdate Enroll Drop Cancel Κλάση συσχέτισης: μπορεί να υπάρχει το πολύ ένα στιγμιότυπο της κλάσης συσχέτισης μεταξύ οποιουδήποτε ζεύγους συσχετισμένων αντικειμένων ανεξάρτητα από πολλαπλότητες και στα δύο άκρα

7 Προάγοντας την κλάση συσχέτισης σε κανονική κλάση -name -age Person * employment 0..1 Company -name Employment -salary -startdate -end Date Υλοποίηση κλάσης συσχέτισης σε γλώσσες προγραμματισμού /employer * 0..1 Employment Person Company -salary -name * 1 -startdate -name -age -end Date

8 Προάγοντας την κλάση συσχέτισης σε κανονική κλάση -name -age Person Ισοδύναμα??? * employment 0..1 Employment -salary -startdate -end Date Company -name ΟΧΙ!!!!!! Αυτό το διάγραμμα δεν μπορεί να αναπαραστήσει την περίπτωση ενός ατόμου που έχει εργαστεί για την ίδια εταιρία σε διαφορετικές περιόδους /employer * 0..1 Employment Person Company -salary -name * 1 -startdate -name -age -end Date Αυτό μπορεί!

9 Κλάση συσχέτισης Περιορισμός κλάσεων συσχέτισης Person * knows * Programming Language Level Person 2..* attends * Meeting Role

10 Κλάση συσχέτισης Man preacher 1 my husband my wife 1 1 Woman performed services 1..* Marriage date place Μονογαμικός γάμος ως κλάση συσχέτισης Η κλάση συσχέτισης είναι πλήρης κλάση Μπορεί να έχει λειτουργίες, ιδιότητες, συσχετίσεις Παράδειγμα η κλάση «Marriage» μπορεί να έχει μία συσχέτιση με την εκκλησία όπου έγινε η τελετή, ή με το άτομο που τέλεσε την τελετή

11 Κλάση συσχέτισης Man preacher 1 my husband my wife 1..* 1 Woman performed services 1..* Marriage date place Πολυγαμικός γάμος ως κλάση συσχέτισης Τότε θέλουμε περισσότερα στιγμιότυπα της κλάσης συσχέτισης, τόσα όσες οι συσχετίσεις! Δεν μπορούμε να έχουμε 2 στιγμιότυπα του Marriage που να συσχετίζουν ακριβώς τα ίδια αντικείμενα!

12 Κλάση συσχέτισης Man preacher 1 my husbands my wife 1..* 1 Woman performed services 1..* Marriage date place Πολυγαμικός γάμος ως κλάση συσχέτισης John: Man one: Marriage Mary: Woman Bob: Man two: Marriage

13 Παράδειγμα με συσχετίσεις σε Java Department -teachers 1..* Teacher -president 1 Έχουμε μία κλάση «Teacher», η οποία αφορά έναν εκπαιδευτικό Κάθε εκπαιδευτικός έχει ένα όνομα που είναι αλφαριθμητικό (String) Επειδή ο εκπαιδευτικός δεν έχει την υποχρέωση να γνωρίζει το τμήμα στο οποίο ανήκει μια και δεν υπάρχει πλοηγησιμότητα από την κλάση «Teacher» προς την κλάση «Department», η κλάση «Teacher» δεν αναφέρεται καθόλου στην κλάση «Department».

14 Παράδειγμα με συσχετίσεις σε Java Η κλάση «Teacher» διαθέτει τις μεθόδους: equals, που χρησιμοποιείται για τον έλεγχο ισότητας μεταξύ δύο εκπαιδευτικών και επιστρέφει true αν τα ονόματά τους είναι ίδια hashcode, που επιστρέφει τον κωδικό κατακερματισμού (hash code) του εκπαιδευτικού getname που επιστρέφει το όνομα του εκπαιδευτικού Οι μέθοδοι equals και hashcode αποτελούν υπερβάσεις των αντίστοιχων μεθόδων της υπερκλάσης «Object» που επεκτείνουν όλες οι κλάσεις της Java και παρέχονται εδώ για να μπορούν τα αντικείμενα της κλάσης «Teacher» να περιέχονται σε συλλογές (π.χ. σε Set). Αυτό θα χρειαστεί στην κλάση «Department»

15 Παράδειγμα με συσχετίσεις σε Java Κώδικας της κλάσης «Teacher» public class Teacher { private String name; // Κατασκευαστής: θέτει το όνομα στην τιμή της παραμέτρου name public Teacher(String name) { } this.name = name; // Μέθοδος επιστροφής του ονόματος του εκπαιδευτικού public String getname() { } return name; // Δύο εκπαιδευτικοί αν έχουν το ίδιο όνομα public boolean equals(object o) { } Teacher t = (Teacher) o; return t.name == this.name; // 0 κωδικός κατακερματισμού (hash code) των εκπαιδευτικών είναι ίσος με τον κωδικο κατακερματισμού του ονόματός τους public int hashcode() { } return name.hashcode();

16 Παράδειγμα με συσχετίσεις σε Java Η κλάση «Department» έχει: ένα όνομα τμήματος που είναι απλή ιδιότητα δύο συσχετίσεις με την κλάση «Teacher»: Η πρώτη αφορά τον πρόεδρο του τμήματος (president) Η δεύτερη αφορά τους εκπαιδευτικούς του τμήματος (teachers) Η υποχρέωση να γνωρίζει η κλάση «Department» τους εκπαιδευτικούς μας αναγκάζει να προσθέσουμε κατάλληλες μεθόδους έτσι ώστε να είναι δυνατή η: Προσθήκη εκπαιδευτικού (μέθοδος addteacher) Διαγραφή εκπαιδευτικού (μέθοδος removeteacher) Εύρεση εκπαιδευτικού (findteacher)

17 Παράδειγμα με συσχετίσεις σε Java Η υποχρέωση να γνωρίζει η κλάση «Department» τον εκπαιδευτικό που είναι πρόεδρος του τμήματος μας υποχρεώνει να δηλώσουμε τις κατάλληλες μεθόδους: Προσθήκη προέδρου (μέθοδος setpresident) Ανάκτηση προέδρου (μέθοδος getpresident) Για να επιβεβαιώσουμε την ορθή λειτουργία των μεθόδων αυτών, έχουμε βάλει μία μέθοδο εμφάνισης των εκπαιδευτικών (μέθοδος printteachers) και μία κύρια μέθοδο {main)

18 Παράδειγμα με συσχετίσεις σε Java Παρατηρήστε ότι για τον πρόεδρο (president) χρησιμοποιείται μία απλή μεταβλητή τύπου Teacher Για τους εκπαιδευτικούς (teachers) χρησιμοποιείται μία συλλογή (πιο συγκεκριμένα ένα Set) επειδή είναι πολλοί (πολλαπλότητα * ) Ο λόγος χρήσης ενός Set και όχι κάποιας άλλης συλλογής (π.χ. List) είναι ότι δεν μας ενδιαφέρει η διάταξη των αντικειμένων και δεν θέλουμε διπλές εμφανίσεις εκπαιδευτικών Το δεύτερο διασφαλίζεται με τη χρήση της κλάσης «Set», μια και η μέθοδος add σε ένα set επιστρέφει false αν η μέθοδος equals του αντικειμένου που εισάγεται επιστρέφει true για οποιοδήποτε αντικείμενο είναι ήδη στο σύνολο: δηλαδή, αν το αντικείμενο υπάρχει ήδη στο σύνολο. Αυτός είναι και ο λόγος που δηλώσαμε στην κλάση «Teacher» τη μέθοδο equals

19 Παράδειγμα με συσχετίσεις σε Java Κώδικας της κλάσης «Department» import java.util.hashset; import java.util.iterator; import Java.util.Set; public class Department { private Teacher president; // Ο πρόεδρος του τμήματος private Set<Teacher> teachers; // Σύνολο από αντικείμενα Teacher private String name; // To όνομα του τμήματος // Κατασκευαστής public Department(String name) { this.name = name; this.teachers = new HashSet<Teacher>(); }

20 Παράδειγμα με συσχετίσεις σε Java Κώδικας της κλάσης «Department» // Μέθοδος προσθήκης νέου εκπαιδευτικού public boolean addteacher(teacher t) { } return teachers.add(t); // Μέθοδος διαγραφής εκπαιδευτικού public boolean removeteacher(teacher t) { return teachers.remove{t}; } // Μέθοδος εύρεσης εκπαιδευτικού public boolean findteacher(teacher t) { return teachers.contains (t); } // Μέθοδος που oρίζει τον πρόεδρο του τμήματος public void setpresident {Teacher t) { this.president = t;

21 Παράδειγμα με συσχετίσεις σε Java Κώδικας της κλάσης «Department» // Μέθοδος που επιστρέφει τον πρόεδρο του τμήματος public Teacher getpresident() { } return president; // Μέθοδος εμφάνισης εκπαιδευτικών public void printteachers() { Iterator<Teacher> iterator = teachers.iterator(); while fiterator.hasnext()) { Teacher t = iterator.next(); System.out.printIn(t.getName()) } }

22 Παράδειγμα με συσχετίσεις σε Java Κώδικας της κλάσης «Department» // Κύρια μέθοδος public static void main(string args[]) { Teacher george = new Teacher( Γιώργος Γεωργίου ); Teacher george1 = new Teacher("Γιώργος Γεωργίου ); Department dept = new Department("Τμήμα DDS"); dept.addteacher(george); // Αυτή η εισαγωγή θα αποτύχει // γιατί ο εκπαιδευτικός ανήκει ήδη στο set teachers boolean ok = dept.addteacher(george1); if (!ok) { } System.out.println("Η εισαγωγή απέτυχε"); // Δοκιμή αν το set δουλεύει σωστά System.out.println("Εκπαιδευτικoί:"); dept.printteachers(); // Ανάθεση και ανάκτηση του προέδρου dept.setpresident(george); System.out.println("Πρόεδρος: + dept.getpresident().getname( ) ) ; }}

23 Παραγόμενες συσχετίσεις & ιδιότητες (derived associations & properties) Μπορούν να υπολογιστούν από άλλες Συσχετίσεις / Ιδιότητες Π.χ. υπολογίζουμε το Person.age από το Person.birthDate Συμβολισμός: βάζουμε το / πριν το όνομά τους προοπτική προδιαγραφής (specification) Τα παραγόμενα χαρακτηριστικά (derived features) υποδηλώνουν περιορισμούς μεταξύ των τιμών. Δεν καθορίζουν με ακρίβεια τι αποθηκεύεται και τι υπολογίζεται. Απλά λένε στον προγραμματιστή να σεβαστεί αυτόν τον περιορισμό. προοπτική υλοποίησης (implementation) Συχνά υλοποιούνται για λόγους ταχύτητας (π.χ. για αποφυγή επαναϋπολογισμού)

24 Παραγόμενες συσχετίσεις & ιδιότητες (derived associations & properties) TimePeriod -start : Date -end : Date -/duration : Quantity /employer Derived association * 0..1 Derived property -name -age Person Employment salary -startdate * 1 -end Date Company -name

25 Παγωμένο (frozen) Περιορισμός που χαρακτηρίζει μία ιδιότητα (property) ή ένα άκρο συσχέτισης (association end) - Συμβολισμός: {frozen} Σε αυτήν την περίπτωση η τιμή (της ιδιότητας/άκρου συσχέτισης) δεν αλλάζει κατά τη διάρκεια ύπαρξης του σχετικού αντικειμένου Η αρχική του τιμή (ακόμα και null) διατηρείται Συνήθως οι τιμές αυτές ορίζονται από τους κατασκευαστές των κλάσεων Αν ο περιορισμός εφαρμοστεί σε κλάση τότε: Όλα τα γνωρίσματα και άκρα συσχέτισης που σχετίζονται με αυτήν την κλάση παγιώνονται Frozen Read Only Π.χ. Ένα γνώρισμα age (που είναι παραγόμενο) μπορεί να είναι read-only αλλά όχι frozen

26 Αφαιρετικές (αφηρημένες) κλάσεις Παρέχουν κώδικα για κάποιες λειτουργίες ΑΛΛΑ αφήνουν άλλες λειτουργίες χωρίς κώδικα υλοποίησης (''αφαιρετικές ") Οι υποκλάσεις προσδιορίζουν τις χωρίς υλοποίηση λειτουργίες Συγκεκριμένες (concrete) υποκλάσεις Οι συγκεκριμένες υποκλάσεις: κληρονομούν τα συγκεκριμένα και αφαιρετικά στοιχεία των υπερκλάσεών τους και ταυτόχρονα συγκεκριμενοποιούν παρέχοντας την κατάλληλη υλοποίηση τα αφαιρετικά στοιχεία

27 Αφαιρετική κλάση με συγκεκριμένη υποκλάση -linecolor : Color +draw() Shape -upperleft : Point -height : double -width : double +draw() Square Το όνομα της αφαιρετικής κλάσης και οι αφαιρετικές λειτουργίες γράφονται με πλάγια γράμματα Αφαιρετική κλάση για ένα «Shape» (σχήμα) Αφαιρετική λειτουργία draw() για τη σχεδίαση του σχήματος Η συγκεκριμένη υποκλάση για ένα τετράγωνο (η κλάση «Square») κληρονομεί τα συγκεκριμένα μέρη της κλάσης «Shape» και υλοποιεί τα αφαιρετικά στοιχεία (τη λειτουργία draw).

28 Αφαιρετικές κλάσεις και Διασύνδεση (interface) Παρέχει ένα σύνολο λειτουργιών οι οποίες είναι στο σύνολο τους αφαιρετικές Μια διασύνδεση δεν έχει δεδομένα, κατάσταση, αλλά ούτε συσχετίσεις με πλοηγισιμότητα από τη διασύνδεση προς το άλλο άκρο της συσχέτισης ΑΥΤΟ αποτελεί συνέπεια της έλλειψης δεδομένων η πλοηγησιμότητα συνεπάγεται την υποχρέωση της γνώσης των αντικειμένων της συσχετιζόμενης κλάσης και άρα ύπαρξη δεδομένων.

29 Αφαιρετικές κλάσεις και Διασύνδεση (interface) Κάποια κλάση που πραγματοποιεί (realizes) τη διασύνδεση έχει την υποχρέωση να υλοποιήσει όλες τις λειτουργίες της διασύνδεσης Το "κέρδος" για την κλάση είναι ότι τα αντικείμενά της θα έχουν τον τύπο της διασύνδεσης και επομένως θα μπορούν να χρησιμοποιηθούν όπου αναμένονται αντικείμενα του τύπου της διασύνδεσης Κλάσεις που δεν έχουν καμία σχέση μεταξύ τους (π.χ. δεν ανήκουν στην ίδια ιεραρχία τύπων) μπορούν να υλοποιήσουν μια διασύνδεση και να ωφεληθούν από λειτουργίες που ενεργούν σε αντικείμενα αυτής της διασύνδεσης.

30 Αφαιρετικές κλάσεις και Διασύνδεση (interface) Σχέση Πραγματοποίησης/Υλοποίησης (Realization/implements) Σε μία σχέση πραγματοποίησης, μία οντότητα (διεπαφή) καθορίζει μια λειτουργικότητα και οι άλλες οντότητες (κλάσεις) υλοποιούν αυτή τη λειτουργικότητα

31 Αφαιρετικές κλάσεις και Διασύνδεση (interface) Συμβολισμός στη UML 1. Σύμβολο κλάσης και λέξη-κλειδί «Interface» πάνω από το όνομα της κλάσης Διαμέρισμα ιδιοτήτων: ή δεν υπάρχει ή είναι κενό Μια κλάση που υλοποιεί τη διασύνδεση συσχετίζεται με αυτήν με το σύμβολο της πραγματοποίησης (realization), όπως στη γενίκευση, αλλά με γραμμή που είναι διακεκομμένη 2. Ένας μικρός άδειος κύκλος με το όνομα της διασύνδεσης κάτω από τον κύκλο Η πραγματοποίηση της διασύνδεσης με την κλάση απεικονίζεται με μία γραμμή που συνενώνει την κλάση που πραγματοποιεί τη διασύνδεση με το μικρό άδειο κύκλο που συμβολίζει τη διασύνδεση

32 Αφαιρετικές κλάσεις και Διασύνδεση (interface) Μία διασύνδεση που υλοποιείται με το συμβολισμό της κλάσης και δύο κλάσεις που πραγματοποιούν τη διασύνδεση

33 Αφαιρετικές κλάσεις και Διασύνδεση (interface) Εναλλακτικός συμβολισμός για να δείξουμε ότι η κλάση «Baby» υλοποιεί τη διασύνδεση «CryingObject». Εξαιτίας της ομοιότητάς του με γλυφιτζούρι (lollipop), ο συμβολισμός αυτός αναφέρεται ορισμένες φορές και ως συμβολισμός lollipop.

34 Αφαιρετικές κλάσεις και Διασύνδεση (interface) Μία κλάση μπορεί να πραγματοποιεί περισσότερες από μία διασυνδέσεις Άλλες κλάσεις μπορεί να είναι εξαρτημένες από υποσύνολα αυτών των διασυνδέσεων (π.χ. κάποια κλάση ενδέχεται να χρησιμοποιεί λειτουργίες μόνο από μία διασύνδεση μιας άλλης κλάσης, η οποία πραγματοποιεί περισσότερες από μία διασυνδέσεις)

35 Αφαιρετικές κλάσεις και Διασύνδεση (interface) Η κλάση «Baby» υλοποιεί τη διασύνδεση «CuteObject», που παρέχει τη λειτουργία takepicture (φωτογράφιση από φωτογραφική μηχανή) Ένα αντικείμενο της κλάσης «Speaker» ελέγχει την ένταση του κλάματος του μωρού χρησιμοποιώντας τη διασύνδεση «CryingObject» Ένα αντικείμενο της κλάσης «Camera» φωτογραφίζει το μωρό χρησιμοποιώντας τη διασύνδεση «CuteObject»

36 Αφαιρετικές κλάσεις και Διασύνδεση (interface) Οι κλάσεις «Speaker» και «Camera» μπορούν να ελέγξουν τον ήχο και να πάρουν φωτογραφίες οποιωνδήποτε αντικειμένων υλοποιούν τις διασυνδέσεις «CryingObject» και «CuteObject» ΔΕΝ εξαρτώνται από το αντικείμενο «Baby» Η κλάση «Speaker» λειτουργεί και με ένα αντικείμενο της κλάσης «BluesSinger» επειδή υλοποιεί τη διασύνδεση «CryingObject»

37 Αφαιρετικές κλάσεις και Διασύνδεση (interface) Διαμερισμός λειτουργιών μιας κλάσης σε διασυνδέσεις και Ελεγχόμενος τρόπος με τον οποίο άλλες κλάσεις εξαρτώνται από συγκεκριμένα υποσύνολα των διασυνδέσεων και μόνο από αυτά Μία από τις σημαντικότερες τεχνικές για την κατασκευή πολύπλοκων συστημάτων λογισμικού ΓΙΑΤΙ??? Εφόσον μία κλάση δεν χρησιμοποιεί όλες τις λειτουργίες μίας άλλης κλάσης αλλά μόνο ένα καλά καθορισμένο υποσύνολο των λειτουργιών αυτών (μόνο αυτές τις λειτουργίες που παρέχει η διασύνδεση την οποία χρησιμοποιεί) μπορούμε να ελέγξουμε καλύτερα τη διαδικασία των αλλαγών στο λογισμικό (change management, διαχείριση αλλαγών)

38 Αφαιρετικές κλάσεις και Διασύνδεση (interface) Αν αλλάξει η μορφή ή η σημασία της λειτουργίας controlvolume, που παρέχει η διασύνδεση «CryingObject»: ΔΕΝ ανησυχούμε για την κλάση «Camera» (η κλάση αυτή δεν χρησιμοποιεί τη διασύνδεση «CryingObject») Ανησυχούμε για πιθανές αλλαγές στην κλάση «Speaker»

39 Αφαιρετικές κλάσεις και Διασύνδεση (interface) <<interface>> List equals add get implementation (provides interface) Abstract List abstract class equals get add abstract method (no implementation)

40 Abstract κλάσεις και Διασύνδεση (interface) Μία διασύνδεση δεν περιέχει υλοποίηση λειτουργιών Ενώ μια αφηρημένη κλάση μπορεί να παρέχει και την υλοποίηση κάποιων λειτουργιών. Στις διασυνδέσεις και στις αφηρημένες κλάσεις δεν μπορούν να δηλωθούν αντικείμενα. Μια κλάση που κληρονομεί από μια αφηρημένη κλάση πρέπει να υλοποιήσει όλες τις αφηρημένες λειτουργίες της αφηρημένης υπερκλάσης της διαφορετικά θα είναι και αυτή αφηρημένη.

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

42 Παραμετρικές κλάσεις Σημαντικό πλεονέκτημα: ύπαρξη ισχυρού ελέγχου τύπων στις γλώσσες προγραμματισμού που παρέχουν παραμετρικές κλάσεις Δηλαδή??? Μπορεί κάποιος να δηλώσει μία ουρά από «Persons» αντί για μία γενική ουρά από «Objects» Αυτό παρέχει ασφάλεια τύπων κατά τη διάρκεια της μεταγλώττισης γιατί ο μεταγλωττιστής θα εντοπίσει ως συντακτικό λάθος τις απόπειρες εισαγωγής στην ουρά στοιχείων με τύπο ασύμβατο από αυτόν που χρησιμοποιήθηκε για τη δέσμευση της παραμέτρου: π.χ. απόπειρα εισαγωγής ενός «String» σε μία ουρά από αντικείμενα τύπου «Person»

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

44 Παραμετρικές κλάσεις Δήλωση για ένα γενικό πίνακα στοιχείων Παραμετρική κλάση «Array» ο τύπος Τ των δεδομένων του πίνακα το μέγεθος Ν του πίνακα δίνονται ως παράμετροι Για το Τ παραλείπεται ο τύπος, οπότε θεωρείται πως είναι τύπος του συστήματος (π.χ. «Person» αν πρόκειται για έναν πίνακα από αντικείμενα τύπου «Person»). To πλήθος των στοιχείων είναι ένας ακέραιος αριθμός και για αυτό καθορίζεται ο τύπος της παραμέτρου Ν ως int.

45 Παραμετρικές κλάσεις Χρήση Τ, Ν στις δηλώσεις των ιδιοτήτων και των λειτουργιών της κλάσης Η ιδιότητα elements είναι τύπου Τ και έχει πολλαπλότητα 1..Ν, όπου το συγκεκριμένο πλήθος (Ν) θα καθοριστεί από την τιμή του Ν κατά τη δέσμευση Η λειτουργία add δέχεται ένα στοιχείο τύπου Τ ως παράμετρο

46 Παραμετρικές κλάσεις Οι παραμετρικές κλάσεις δεν μπορούν να χρησιμοποιηθούν για τη δημιουργία αντικειμένων Για να προκύψουν συγκεκριμένες κλάσεις, από τις οποίες να μπορούν να δημιουργηθούν αντικείμενα, πρέπει να δεσμευθούν οι παράμετροι σε συγκεκριμένους τύπους, τιμές κ.λπ. Π.χ. δεν μπορούμε να δημιουργήσουμε πίνακα με στοιχεία τύπου Τ Πρέπει να δημιουργήσουμε πίνακα με στοιχεία κάποιου συγκεκριμένου τύπου (π.χ. «Person») Αυτές οι συγκεκριμένες κλάσεις ονομάζονται δεσμευμένα στοιχεία (Bound Elements)

47 Παραμετρικές κλάσεις Η δέσμευση αυτή μπορεί να γίνει με δύο τρόπους: με τη δήλωση ενός υπονοούμενου (implicit) δεσμευμένου στοιχείου της παραμετρικής κλάσης ή με τη δήλωση ενός επώνυμου δεσμευμένου στοιχείου της παραμετρικής κλάσης Για να δείξουμε ότι πρόκειται για δέσμευση της παραμετρικής κλάσης, στο σύμβολο της εξάρτησης γράφουμε τη λέξη-κλειδί «bind» και δίνουμε τη λίστα με τις τιμές των παραμέτρων μέσα σε παρενθέσεις, με τη σειρά που δηλώθηκαν στην παραμετρική κλάση.

48 Παραμετρικές κλάσεις α) Δήλωση ανώνυμου δεσμευμένου στοιχείου για την κλάση «Array», που αφορά έναν πίνακα από αντικείμενα τύπου «Person» με μέγεθος 50 β) Απεικόνιση του ίδιου δεσμευμένου στοιχείου με τη χρήση νέας επώνυμης κλάσης που εξαρτάται από την παραμετρική κλάση «Array».

49 Προσδιορισμένες συσχετίσεις (Qualified associations) Όταν υλοποιούμε συσχετίσεις μιας κλάσης με πολλαπλότητα μεγαλύτερη του 1, να μπορούμε περιορίσουμε τη συσχέτιση έτσι ώστε με τη χρήση κάποιας ιδιότητας να ταυτοποιούμε τα αντικείμενα που συμμετέχουν στη συσχέτιση στο άλλο άκρο της συσχέτισης

50 Προσδιορισμένες συσχετίσεις (Qualified associations) Βαθμολόγιο μαθήματος Περιέχει γραμμές και κάθε γραμμή αφορά ένα φοιτητή γραμμές * φοιτητής Βαθμολόγιο Γραμμή βαθμολογίου Φοιτητής 1 Σωστό????

51 Προσδιορισμένες συσχετίσεις (Qualified associations) γραμμές * φοιτητής Βαθμολόγιο Γραμμή βαθμολογίου Φοιτητής 1 ΟΧΙ! Κάθε γραμμή του βαθμολογίου ΠΡΕΠΕΙ να αφορά ένα διαφορετικό φοιτητή Το διάγραμμα δείχνει ότι κάθε γραμμή του βαθμολογίου αφορά ένα φοιτητή ΔΕΝ μας λέει όμως ότι αφορά διαφορετικό φοιτητή Θα μπορούσε να υπάρξει στιγμιότυπο του συστήματος όπου δύο διαφορετικές γραμμές του ίδιου βαθμολογίου θα αφορούσαν τον ίδιο φοιτητή

52 Προσδιορισμένες συσχετίσεις (Qualified associations) Order Order line Product 1 1..* Amount:Num * 1 id:string γρ1: OrderLine Amount=2 π1: Order γρ2: OrderLine Amount=4 γρ3: OrderLine Amount=1 πρ1: Product id= X πρ2: Product id= Y πρ3: Product id= X Το ίδιο προϊόν ( X ) εμφανίζεται σε δύο παραγγελιογραμμές

53 Προσδιορισμένες συσχετίσεις (Qualified associations) Βαθμολόγιο φοιτητής : Φοιτητής γραμμή 0..1 Γραμμή Βαθμολογίου Λύση: Προσδιορισμένη συσχέτιση Η κλάση «Βαθμολόγιο» έχει πολλές γραμμές αλλά με το προσδιοριστικό φοιτητής στην αρχή της συσχέτισης επισημαίνουμε πως για κάθε αντικείμενο της κλάσης «Φοιτητής» υπάρχει μία ή καμία γραμμή στο βαθμολόγιο (κλάση «Γραμμή Βαθμολογίου»)

54 Προσδιορισμένες συσχετίσεις (Qualified associations) Βαθμολόγιο φοιτητής : Φοιτητής γραμμή 0..1 Γραμμή Βαθμολογίου Συμβολισμός: Παραλληλόγραμμο στην κλάση που αποτελεί την πηγή της συσχέτισης μέσα στην οποία αναγράφεται το προσδιοριστικό Το προσδιοριστικό χρησιμοποιείται για τον προσδιορισμό των αντικειμένων που συμμετέχουν στη συσχέτιση στο άλλο άκρο της συσχέτισης

55 Προσδιορισμένες συσχετίσεις (Qualified associations) Βαθμολόγιο φοιτητής : Φοιτητής γραμμή 0..1 Γραμμή Βαθμολογίου Εδώ πολλαπλότητα 0..1 (δηλαδή προαιρετική) Αν η πολλαπλότητα ήταν 1, τότε θα ήταν υποχρεωτική, θα έπρεπε δηλαδή για κάθε αντικείμενο της κλάσης «Φοιτητής» να υπάρχει οπωσδήποτε μία γραμμή στο βαθμολόγιο (αντικείμενο της κλάσης «Γραμμή Βαθμολογίου»)

56 Προσδιορισμένες συσχετίσεις (Qualified associations) Order Product line item 0..1 Order line Amount: Num Σε μια παραγγελία υπάρχει το πολύ μια παραγγελιογραμμή για κάθε προϊόν Order Product line item 1 Order line Amount: Num Σε μια παραγγελία υπάρχει ακριβώς μια παραγγελιογραμμή για κάθε προϊόν Order Product line item * Order line Amount: Num Σε μια παραγγελία μπορεί να υπάρχει καμία, μία ή περισσότερες παραγγελιογραμμές για κάθε προϊόν

57 Προσδιορισμένες συσχετίσεις (Qualified associations) Order Product line item * Order line Amount: Num Σε μια παραγγελία μπορεί να υπάρχει καμία, μία ή περισσότερες παραγγελιογραμμές για κάθε προϊόν Αυτό επιτρέπει την κατάσταση: γρ1: OrderLine Amount=2 π1: Order γρ2: OrderLine Amount=4 γρ3: OrderLine Amount=1 πρ1: Product id= X πρ2: Product id= Y πρ3: Product id= X

58 Εξαρτήσεις (dependencies) Συμβολίζονται με διακεκομμένα βέλη και συνδέουν ένα διαγραμματικό στοιχείο από το οποίο ξεκινούν που ονομάζεται στοιχείο προέλευση με ένα άλλο διαγραμματικό στοιχείο στο οποίο καταλήγουν που ονομάζεται στοιχείο προορισμός Αν μεταβληθεί το στοιχείο προέλευση θα πρέπει πιθανώς να αλλάξει και το στοιχείο προορισμός Παράδειγμα στις παραμετρικές κλάσεις: εξάρτηση με τη λέξη κλειδί «bind» που χρησιμοποιείται για να συνδέσουμε ένα δεσμευμένο στοιχείο με την παραμετρική του κλάση

59 Παραμετρικές κλάσεις α) Δήλωση ανώνυμου δεσμευμένου στοιχείου για την κλάση «Array», που αφορά έναν πίνακα από αντικείμενα τύπου «Person» με μέγεθος 50 β) Απεικόνιση του ίδιου δεσμευμένου στοιχείου με τη χρήση νέας επώνυμης κλάσης που εξαρτάται από την παραμετρική κλάση «Array».

60 Εξαρτήσεις (dependencies) Οι εξαρτήσεις ΔΕΝ είναι μεταβατικές Αν η κλάση «Α» εξαρτάται από τη «Β» και η «Β» από τη «Γ», ΔΕΝ σημαίνει πως η «Α» εξαρτάται από τη «Γ» Αυτό είναι σημαντικό γιατί αν αλλάξουμε τη «Γ» τότε ενδέχεται να αλλάξει η «Β» που εξαρτάται από αυτήν Ενδέχεται όμως η «Α» να μην χρειάζεται να αλλάξει αν οι αλλαγές που έγιναν στη «Β» δεν επηρεάζουν την «Α» Αν ισχύει αυτό, τότε η «Α» παραμένει ως έχει και οι άλλες κλάσεις που εξαρτώνται απο αυτήν δεν χρειάζεται να ελεγχθούν

61 Παράδειγμα εξάρτησης κλήσης λειτουργίας Διάγραμμα κλάσεων που απεικονίζει κάποιες κλάσεις που μας επιτρέπουν να βρούμε τον καλύτερο φοιτητή («student») για ένα μάθημα («course»)

62 Παράδειγμα εξάρτησης κλήσης λειτουργίας Για να ανακτήσει η λειτουργία getbestname() της «Course» το όνομα του καλύτερου φοιτητή: Εύρεση καλύτερου «CourseRecord» (εγγραφή φοιτητή σε μάθημα) - αυτό με την υψηλότερη βαθμολογία Κλήση λειτουργίας getstudent() σε αυτό το «CourseRecord» για να ανακτήσει το αντικείμενοφοιτητής με την υψηλότερη βαθμολογία

63 Παράδειγμα εξάρτησης κλήσης λειτουργίας Η ανάκτηση του ονόματος του καλύτερου φοιτητή γίνεται με την κλήση της λειτουργίας getname() σε αυτό το αντικείμενο student Η κλάση «Course» δεν συσχετίζεται άμεσα με την κλάση «Student» υπάρχει ΟΜΩΣ εξάρτηση της «Course» από τον «Student» διότι καλεί μία λειτουργία σε αυτήν

64 Παράδειγμα εξάρτησης κλήσης λειτουργίας Αν η λειτουργία αλλάξει όνομα, η κλάση «Course» θα πρέπει να μεταγλωττιστεί Εξάρτηση: διακεκομμένο βέλος από την κλάση «Course» στην κλάση «Student» και λέξη-κλειδί «call» για να δείξουμε ότι η εξάρτηση αφορά την κλήση μιας λειτουργίας

65 Είδη κλάσεων Κλάσεις οντοτήτων: αναπαριστούν οντότητες (απτές ή αφηρημένες) του πραγματικού κόσμου Συνοριακές κλάσεις (boundary classes): αναλαμβάνουν την επικοινωνία μίας κλάσης οντοτήτων με τον εξωτερικό κόσμο (χρήστη, άλλες κλάσεις κλπ) αρχικά, συνήθως έχουμε μία Σ.Κ. για κάθε Κ.Ο. Κλάσεις ελέγχου (control classes): αναλαμβάνουν τον έλεγχο της ροής εργασιών αρχικά συνήθως έχουμε μία για κάθε περίπτωση χρήσης

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

67 Συνοψίζοντας... Το διάγραμμα χρήσιμο στην επικοινωνία με τον πελάτη για να: (α) βεβαιωθούμε ότι έχουμε κατανοήσει και μοντελοποιήσει ορθά τον κόσμο της εφαρμογής (β) ζητήσουμε διευκρινήσεις και επιπλέον λεπτομέρειες για κάποια σημεία του (γ) έχουμε ένα κοινό σημείο αναφοράς και συμφωνίας με τον πελάτη

68 Συνοψίζοντας... Κατά τη μετάβαση από την ανάλυση στη σχεδίαση και υλοποίηση συμπλήρωση και εκλέπτυνση περιγραφής κλάσεων και συσχετίσεών τους (προσθήκη γνωρισμάτων, λειτουργιών,...). Χρήση UML για τη δήλωση των κλάσεων: Kαλή εποπτική εικόνα σχεδίου Έλεγχος για το αν το διάγραμμα καλύπτει τις απαιτήσεις Διερεύνηση εναλλακτικών τρόπων μοντελοποίησης Εντοπισμός λαθών Εύκολη επέκταση αν απαραίτητη Γρήγορες αλλαγές λόγω γραφικού περιβάλλοντος Σε επόμενο στάδιο Εξειδίκευση διαγράμματος κλάσεων βάσει γλώσσας προγραμματισμού

69 Πηγές Ε. Κιουντούζης, Μεθοδολογίες Ανάλυσης και Σχεδιασμού Πληροφοριακών Συστημάτων,Εκδόσεις Α.Σταμούλη, Αθήνα 2002 Γιάννης Τζίτζικας. Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων, Πανεπιστήμιο Κρήτης Shari Lawrence Pfleeger. Τεχνολογία Λογισμικού: Θεωρία και Πράξη, τόμος 1, Κλειδάριθμος, Αθήνα, 2003 Leszek A. Maciaszek, Requirements Analysis and System Design (2nd edition), Addison Wesley, 2005 A.Dennis, B. Haley Wixom, D. Tegarden, Systems Analysis and Design with UML Version 2.0 (2nd edition) Wiley, 2005 Booch G., Rumbaugh J., Jacobson I. Unified Modeling Language User Guide. Addison- Wesley Professional 2 Edition, ISBN Pascal Roques, UML in Practice, John Wiley, 2004 UML Fundamentals & OOAD UML 2.0, Αφροδίτη Τσαλγατίδου. Εισαγωγή στη UML, Καποδιστριακό Πανεπιστήμιο Αθηνών Αντικειμενοστρεφής Ανάπτυξη Λογισμικού με τη UML, επιμέλεια Π. Φιτσιλής, Κλειδάριθμος 2006 Ιωάννης Γαβιώτης. Πληροφοριακά Συστήματα Μοντελοποίηση με UML, Πανεπιστήμιο Αιγαίου

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 14/11/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Class Diagrams Διαγράμματα Κλάσεων Άξονες

Διαβάστε περισσότερα

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

Τεχνολογία Λογισμικού Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού 06/11/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Class Diagrams Διαγράμματα Κλάσεων 1 Διαγράμματα UML Διάγραμμα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Ανάλυση Πληροφοριακών Συστημάτων. Εαρινό Εξάμηνο Lec08 09/04/2019 Διδάσκων: Γεώργιος Χρ. Μακρής Ανάλυση Πληροφοριακών Συστημάτων Εαρινό Εξάμηνο 2018-2019 Lec08 09/04/2019 Διδάσκων: Γεώργιος Χρ. Μακρής Διαγράμματα Κλάσεων Τα βασικά στοιχεία Διαλέξεις παρουσιάσεις Το υλικό του μαθήματος στηρίζεται

Διαβάστε περισσότερα

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 7/11/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Class Diagrams Διαγράμματα Κλάσεων Άξονες

Διαβάστε περισσότερα

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

Τεχνολογία Λογισμικού Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού 3/12/2018 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Physical Diagrams Διαγράμματα Υλοποίησης Διαγράμματα UML Διάγραμμα

Διαβάστε περισσότερα

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

Τεχνολογία Λογισμικού Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού 26/11/2018 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr State Diagrams Διαγράμματα Καταστάσεων Διαγράμματα UML Διάγραμμα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 31/10/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Class Diagrams Διαγράμματα Κλάσεων Διαγράμματα

Διαβάστε περισσότερα

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

Από τη UML στον Κώδικα. Μέρος Α Από τη UML στον Κώδικα Μέρος Α περιεχόμενα παρουσίασης Κλάσεις Ισότητα αντικειμένων Μονόδρομες συσχετίσεις με πολλαπλότητα «ένα» Μονόδρομες συσχετίσεις με πολλαπλότητα «πολλά» Συλλογές από το σχέδιο στον

Διαβάστε περισσότερα

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

public void printstatement() { System.out.println(Employee:  + name +  with salary:  + salary); Κληρονομικότητα Η κληρονομικότητα (inheritance) αποτελεί έναν από τους χαρακτηριστικότερους μηχανισμούς των αντικειμενοστρεφών γλωσσών προγραμματισμού. Επιτρέπει την δημιουργία μιας νέας κλάσης απορροφώντας

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 4 ο Εργαστήριο - ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 3 ο ΕΞΑΜΗΝΟ Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 4 ο Εργαστήριο - ΕΠΙΜΕΛΕΙΑ ΜΑΘΗΜΑΤΟΣ: Πρέντζα Ανδριάννα ΕΠΙΜΕΛΕΙΑ ΕΡΓΑΣΤΗΡΙΟΥ: Στουγιάννου

Διαβάστε περισσότερα

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

Διαγράμματα UML στην Ανάλυση. Μέρος Β Διαγράμματα Κλάσεων Διαγράμματα Αντικειμένων Διαγράμματα UML στην Ανάλυση Μέρος Β Διαγράμματα Κλάσεων Διαγράμματα Αντικειμένων περιεχόμενα παρουσίασης Διαγράμματα κλάσεων Διαγράμματα αντικειμένων διαγράμματα κλάσεων Χρησιμοποιούνται στην ανάλυση

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Τεχνολογία Λογισμικού Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού 20/11/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr State Diagrams Διαγράμματα Καταστάσεων 1 Διαγράμματα UML Διάγραμμα

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

UML: Unified modelling language

UML: Unified modelling language UML: Διαγράμματα UML: Unified modelling language Γλώσσα μοντελοποίησης για ανάλυση και σχεδιασμό Παρέχει το συμβολισμό για ανάλυση και σχεδιασμό. Είναι γλώσσα συμβολισμού. Δεν είναι ολόκληρη μεθοδολογία.

Διαβάστε περισσότερα

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

Διάγραμμα Κλάσεων. Class Diagram Διάγραμμα Κλάσεων Class Diagram Γενικά Ορίζει τις κλάσεις αντικειμένων σε ένα σύστημα, τις μεθόδους και τις συναρτήσεις τους, και τις συσχετίσεις μεταξύ των κλάσεων. Περιγράφουν την δομή και συμπεριφορά

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου Μεγάλο παράδειγμα Θέλουμε να δημιουργήσουμε ένα λογισμικό για ένα τμήμα πανεπιστημίου. Το τμήμα έχει 4

Διαβάστε περισσότερα

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων

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

Διαβάστε περισσότερα

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

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 5/12/2016. Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια. Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων 5/12/2016 Τεχνολογία Λογισμικού & Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Ανάλυση Συστημάτων State Diagrams Διαγράμματα Καταστάσεων

Διαβάστε περισσότερα

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

2.1 Αντικειµενοστρεφής προγραµµατισµός 2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί

Διαβάστε περισσότερα

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

Διαχείριση Πληροφοριακών Συστημάτων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Διαχείριση Πληροφοριακών Συστημάτων Ενότητα #7: UML Χρήστος Δρόσος Τμήμα Μηχανικών Αυτοματισμού Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές Αντικείμενα ως ορίσματα Μπορούμε να περνάμε αντικείμενα ως ορίσματα σε μία μέθοδο όπως οποιαδήποτε άλλη μεταβλητή

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Περιεχόμενα Java Classes Java Objects Java

Διαβάστε περισσότερα

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

Περιεχόμενο του μαθήματος ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Η Αντικειμενοστρεφής Τεχνολογία Δρ Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 202-203 Περιεχόμενο του μαθήματος Η έννοια

Διαβάστε περισσότερα

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

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #13 Wrapper Classes, Abstract Classes and Interfaces Διάλεξη #13: Μεταβλητές/μέθοδοι κλάσης, αφηρημένες κλάσεις και διαπροσωπείες Μεταβλητές /πεδία κλάσης [class variables] Τα αντικείμενα ανήκουν σε κλάσεις

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java III Το if-else statement Το if-else statement δουλεύει καλά όταν στο condition θέλουμε να περιγράψουμε μια επιλογή με δύο πιθανά ενδεχόμενα.

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε

Διαβάστε περισσότερα

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

Περιεχόμενο του μαθήματος ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Απαιτήσεις Λογισμικού Περιπτώσεις χρήσης Δρ Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 2012-2013 1 Περιεχόμενο του μαθήματος

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων Μεγάλο παράδειγμα Θέλουμε να δημιουργήσουμε ένα λογισμικό για ένα τμήμα πανεπιστημίου. Το τμήμα έχει 4 φοιτητές οπού ο καθένας έχει ένα

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα ΑΝΑΦΟΡΕΣ new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων ΠΑΡΑΔΕΙΓΜΑ ΣΥΝΘΕΣΗΣ Μεγάλο παράδειγμα Θέλουμε να δημιουργήσουμε ένα λογισμικό για ένα τμήμα πανεπιστημίου. Το τμήμα έχει 4 φοιτητές οπού

Διαβάστε περισσότερα

Η κατασκευή αντικειμένων της κλάσης Student μπορεί να πραγματοποιηθεί είτε στη main είτε σε οποιαδήποτε μέθοδο κλάσης:

Η κατασκευή αντικειμένων της κλάσης Student μπορεί να πραγματοποιηθεί είτε στη main είτε σε οποιαδήποτε μέθοδο κλάσης: Αντικειμενοστρεφής Προγραμματισμός Τμήμα Εφαρμοσμένης Πληροφορικής Δημιουργία Κλάσεων/Αντικειμένων/Συσχετίσεων/Συνδέσεων Δημιουργία κλάσεων και αντικειμένων Θεωρούμε ένα υποθετικό σύστημα που αναφέρεται

Διαβάστε περισσότερα

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

Τα διαγράµµατα κλάσεων 1 Ελληνικό Ανοικτό Πανεπιστήµιο Τα διαγράµµατα κλάσεων ρ. Πάνος Φιτσιλής 2 Περιεχόµενα Βασικές έννοιες µοντέλου κλάσεων Βασικές συσχετίσεις Παραδείγµατα 3 ιαγράµµατα κλάσεων (class diagrams) Είναι το βασικότερο

Διαβάστε περισσότερα

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

Μοντελοποίηση δεδομένων με UML Χρήση σε πολυμεσικές εφαρμογές Μοντελοποίηση δεδομένων με UML Χρήση σε πολυμεσικές εφαρμογές Ελληνικό Ανοικτό Πανεπιστήμιο ΓΤΠ61 Πληροφορική Πολυμέσα Αγγελική Μαζαράκη Τι είναι η UML Είναι μια γραφική γλώσσα μοντελοποίησης συστημάτων.

Διαβάστε περισσότερα

. Μεθοδολογία Προγραμματισμού. Abstract Κλάσεις και Interfaces. Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014

. Μεθοδολογία Προγραμματισμού. Abstract Κλάσεις και Interfaces. Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014 .. Μεθοδολογία Προγραμματισμού Abstract Κλάσεις και Interfaces Νικόλαος Πεταλίδης Τμήμα Μηχανικών Η/Υ ΤΕΙ Κεντρικής Μακεδονίας Εισαγωγή Εαρινό Εξάμηνο 2014 Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία

Διαβάστε περισσότερα

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

Εισαγωγή στην αντικειµενοστρεφή τεχνολογία 1 Ελληνικό Ανοικτό Πανεπιστήµιο Εισαγωγή στην αντικειµενοστρεφή τεχνολογία ρ. Πάνος Φιτσιλής Περιεχόµενα Γιατί µοντελοποιούµε Εισαγωγή στη UML Ένα απλό παράδειγµα 2 Γιατί µοντελοποιούµε; Ησηµασία της µοντελοποίησης

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Εργαστήριο 2 Βασικοί Τύποι Μεταβλητών Java

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για τον πίνακα είπαμε ότι

Διαβάστε περισσότερα

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

Κεφάλαιο 2ο. Κατανοώντας την αντικειμενοστρέφεια Περιεχόμενα Πρόλογος... 11 Κεφάλαιο 1ο. Εισαγωγή στη γλώσσα UML 1.1 Προσθέτοντας μια νέα μέθοδο...13 1.2 Πως αναπτύχθηκε η UML...14 1.3 Κατανοώντας την UML...15 1.4 Αναγνωρίζοντας τα επί μέρους τμήματα

Διαβάστε περισσότερα

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 24/10/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Use Case Models & Diagrams Μοντέλα και

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Εισαγωγή. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Εισαγωγή Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική Θεσσαλονίκη, Σεπτέμβριος 2013 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07 Αριθμητική στο δυαδικό σύστημα (γενικά) Συμπληρωματικά για δυαδικό σύστημα Η πρόσθεση στηρίζεται στους κανόνες: 0 + 0 = 0, 0 + 1 = 1, 1

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Wrapper Classes, Abstract Classes and Interfaces

Wrapper Classes, Abstract Classes and Interfaces Wrapper Classes, Abstract Classes and Interfaces Εβδοµάδα 3: Κλάσεις συσκευαστές, αφηρηµένες κλάσεις και διαπροσωπείες Αντικείµενα και µη-αντικείµενα Η Java παρέχει τύπους αντικειµένων και απλούς τύπους

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 15: Σχεδίαση Εφαρμογών Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; Εισαγωγή Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; 1. Σελίδα μαθήματος Εγγραφή Ο κάθε φοιτητής πρέπει να κάνει εγγραφή στη σελίδα του μαθήματος στην πλατφόρμα e-class

Διαβάστε περισσότερα

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

Μέθοδοι. Υποσυστήµατα και πακέτα. Μοντέλα αντικειµενοστραφούς σχεδίασης. Αντικειµενοστραφής Σχεδίαση. Στα πρώτα στάδια της ανάλυσης Αντικειµενοστραφής Σχεδίαση Αντώνης Καραγεώργος Τµήµα Μηχανικών Η/Υ και ικτύων Πανεπιστήµιο Θεσσαλίας karageorgos@inf.uth.gr Μέθοδοι Στα πρώτα στάδια της γράφουµε µόνο τα ονόµατα των µεθόδων Γράφουµε τις

Διαβάστε περισσότερα

Abstract classes, Interfaces ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA

Abstract classes, Interfaces ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Abstract classes, Interfaces ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Τι θα συζητήσουμε σήμερα Αφαιρέσεις στη Java Abstract μέθοδοι και abstract κλάσεις Interfaces (=διασυνδέσεις, διεπαφές) Instanceof Παραδείγματα κώδικα Αφηρημένες

Διαβάστε περισσότερα

Κλάσεις και Αντικείµενα

Κλάσεις και Αντικείµενα Κλάσεις και Αντικείµενα Γρηγόρης Τσουµάκας Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Κλάσεις και Αντικείµενα 2 Τα αντικείµενα σε µια αντικειµενοστρεφή γλώσσα προγραµµατισµού, µοντελοποιούν

Διαβάστε περισσότερα

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

Τεχνολογία Λογισμικού Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού 13/11/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Activity Diagrams Διαγράμματα Δραστηριοτήτων Διαγράμματα UML

Διαβάστε περισσότερα

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Αρχές Τεχνολογίας Λογισμικού Εργαστήριο Κωδικός Μαθήματος: TP323 Ώρες Εργαστηρίου: 2/εβδομάδα (Διαφάνειες Νίκου Βιδάκη) 1 JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο?

Διαβάστε περισσότερα

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

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #15 Οι βασικές έννοιες που θα καλύψουμε Ομαδοποίηση αντικειμένων Εισαγωγή στις συλλογές Γενικές κλάσεις Iterators Συλλογές (ειδικά την ArrayList) Συνεχίζουμε την αναφορά στο θέμα της αφαίρεσης (abstraction)

Διαβάστε περισσότερα

ΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης

ΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης ΠΟΛΥΜΟΡΦΙΣΜΟΣ Λόγω της θεμελιώδους σημασίας της έννοιας του πολυμορφισμού (polymorphism) στην αντικειμενοστρεφή σχεδίαση, κρίνεται σκόπιμο στο σημείο αυτό του βιβλίου να αναλυθεί εκτενέστερα. Ο πολυμορφισμός

Διαβάστε περισσότερα

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

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι κ. ΠΕΤΑΛΙΔΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται

Διαβάστε περισσότερα

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth. Το πρόγραμμα HelloWorld.java Σχόλια στη Java HelloWorld Παύλος Εφραιμίδης pefraimi ee.duth.gr Java Το πρόγραμμα HelloWorld 1 Java Το πρόγραμμα HelloWorld 2 Σχόλια στη Java ΗγλώσσαJava υποστηρίζει

Διαβάστε περισσότερα

Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι

Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Generic Types Τα Generics έχουν προστεθεί στη JAVA από το 2004 ως μέρος του J2SE 5.0 Με τη χρήση

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java III Ισότητα Strings class StringTest public static void main(string args[]) String x1 = "java"; String y1 = "java"; System.out.println("1.

Διαβάστε περισσότερα

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

UML. Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις. Παραδείγματα ΕΙΣΑΓΩΓΗ ΣΤΗ UML UML Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις ιαγράµµατα Παραδείγματα Ορισμός του μοντέλου Αποτελεί µια αφηρηµένη περιγραφή ενός Φυσικού συστήµατος. Αποτελεί ένα σχέδιο για την

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας Στην άσκηση αυτή θα υλοποιήσετε μια κλάση Geometric η οποία διαχειρίζεται μια γεωμετρική ακολουθία ακεραίων

Διαβάστε περισσότερα

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι

1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι 1 ΕΙΣΑΓΩΓΗ Η γλώσσα προγραµµατισµού Java είναι ισχυρά τυποποιηµένη (strongly typed), που σηµαίνει ότι κάθε µεταβλητή και κάθε έκφραση έχει κάποιο τύπο, ο οποίος πρέπει να είναι γνωστός κατά το χρόνο της

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 3/4/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Γιατί έλεγχος πρόσβασης? Προστασία ιδιωτικής πληροφορίας

Διαβάστε περισσότερα

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

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 8 ο & 9 ο Εργαστήριο - ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 3 ο ΕΞΑΜΗΝΟ Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 8 ο & 9 ο Εργαστήριο - ΕΠΙΜΕΛΕΙΑ ΜΑΘΗΜΑΤΟΣ: Πρέντζα Ανδριάνα ΕΠΙΜΕΛΕΙΑ ΕΡΓΑΣΤΗΡΙΟΥ:

Διαβάστε περισσότερα

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

09 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών. Εαρινό εξάμηνο 09 Η γλώσσα UML I Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών Εαρινό εξάμηνο 2017 18 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Unified Modeling Language

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός μνήμης Αντικείμενα παράμετροι String Interning

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός μνήμης Αντικείμενα παράμετροι String Interning ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός μνήμης Αντικείμενα παράμετροι String Interning Αποθήκευση αντικειμένων Οι θέσεις μνήμης των αντικειμένων κρατάνε μια διεύθυνση στο

Διαβάστε περισσότερα

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

Διαβάστε περισσότερα

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

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 3 ο ΕΞΑΜΗΝΟ Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 6 ο Εργαστήριο - ΕΠΙΜΕΛΕΙΑ ΜΑΘΗΜΑΤΟΣ: Πρέντζα Ανδριάννα ΕΠΙΜΕΛΕΙΑ ΕΡΓΑΣΤΗΡΙΟΥ: Στουγιάννου

Διαβάστε περισσότερα

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

Εισαγωγή στη γλώσσα UML Κεφάλαιο 1 o Εισαγωγή στη γλώσσα UML 1.1 Προσθέτοντας μια νέα μέθοδο Στις πρώτες εποχές των υπολογιστών, οι προγραμματιστές συνήθιζαν να περιορίζονται στην ανάλυση σε βάθος των προβλημάτων που αντιμετώπιζαν.

Διαβάστε περισσότερα

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. I (JAVA) Ονοματεπώνυμο: Α. Μ.: + ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. + 1 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 2/3) 2 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 3/3)

Διαβάστε περισσότερα

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

08 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο 08 Η γλώσσα UML I Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Χειμερινό εξάμηνο 2017 18 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Unified Modeling Language

Διαβάστε περισσότερα

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις Γαβαλάς Δαμιανός

Διαβάστε περισσότερα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Έλεγχος ισότητας για Strings: Διαβάζουμε το String option και θέλουμε ένα loop να συνεχίσει

Διαβάστε περισσότερα

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

Τεχνολογία Λογισμικού Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού 9/10/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων UML - Unified

Διαβάστε περισσότερα

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

Περιεχόμενα. ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στη UML... 19 Περιεχόμενα ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στη UML... 19 1.1 Εισαγωγή... 19 1.2 Η γλώσσα UML... 20 1.2.1 Μεθοδολογίες ανάπτυξης λογισμικού... 21 1.2.2 Τύποι διαγραμμάτων της UML... 22 1.3 Διαγράμματα της UML... 24

Διαβάστε περισσότερα

Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων

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

Διαβάστε περισσότερα

Φροντιστήριο 7. Ημερομηνία: 15/12/2006 Θεματική Ενότητα: OCL

Φροντιστήριο 7. Ημερομηνία: 15/12/2006 Θεματική Ενότητα: OCL Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών Φθινόπωρο 2006 HΥ351 Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων Information Systems Analysis and Design Ημερομηνία: 15/12/2006 Θεματική Ενότητα: OCL

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

02 Αντικειμενοστρεφής Προγραμματισμός 02 Αντικειμενοστρεφής Προγραμματισμός Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Εαρινό εξάμηνο 2016 17 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Αντικειμενοστρέφεια Στον προγραμματισμό object

Διαβάστε περισσότερα

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

ΟΔΗΓΙΕΣ ΓΙΑ ΧΡΗΣΗ ΤΟΥ ΕΡΓΑΛΕΙΟΥ RATIONAL ROSE ΟΔΗΓΙΕΣ ΓΙΑ ΧΡΗΣΗ ΤΟΥ ΕΡΓΑΛΕΙΟΥ RATIONAL ROSE Το path που ακολουθούμε για να ανοίξουμε το εργαλείο είναι: Start All Programs Lab Programs Rational Software Rational Rose Enterprise Edition 1 ο ΔΙΑΓΡΑΜΜΑ:

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 11: Χειρισμός Σφαλμάτων Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

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

Μοντελοποίηση Συστημάτων. Διαγράμματα Κλάσεων ClassDiagrams Μοντελοποίηση Συστημάτων Διαγράμματα Κλάσεων ClassDiagrams Διαγράμματα Κλάσεων Χρησιμοποιούνται στα βήματα: Ανάλυση απαιτήσεων Π.Σ. Σχεδιασμός Π.Σ. Είναι στατικά διαγράμματα που δείχνουν: Κλάσεις Ιδιότητες

Διαβάστε περισσότερα

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις 2 Ανατομία ενός προγράμματος

Διαβάστε περισσότερα

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. I (JAVA) Ονοματεπώνυμο: Α. Μ.: + ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. + 1 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 2/3) 2 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 3/3)

Διαβάστε περισσότερα

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ Κων. Κόκκινος Μεταβλητές-1 Οι μεταβλητές αποτελούν θέσεις μνήμης στις οποίες αποθηκεύονται τιμές αντίστοιχες

Διαβάστε περισσότερα

Κλάσεις. Τροποποιητές, ιασυνδέσεις, Πακέτα. Τροποποιητές ελέγχου προσπέλασης µεταβλητών και µεθόδων

Κλάσεις. Τροποποιητές, ιασυνδέσεις, Πακέτα. Τροποποιητές ελέγχου προσπέλασης µεταβλητών και µεθόδων Κλάσεις Τροποποιητές, ιασυνδέσεις, Πακέτα Τροποποιητές ελέγχου προσπέλασης µεταβλητών και µεθόδων Υπάρχουν 4τροποποιητές: default, public, private, protected. Default: εν προηγείται τροποποιητής του ονόµατος

Διαβάστε περισσότερα

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

Τεχνολογία Λογισμικού Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού 14/11/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Μοντέλα Παράστασης

Διαβάστε περισσότερα

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008 Παράδειγμα: Μηχανή για Εισιτήρια 2 Ορισμός Κλάσεων Σύνταξη κλάσης: πεδία, κατασκευαστές, μέθοδοι Ένας αυτόματος εκδότης εισιτηρίων είναι μια μηχανή που δέχεται χρήματα και εκδίδει ένα εισιτήριο. Εκδίδει

Διαβάστε περισσότερα

περιεχόμενα παρουσίασης Actors Σενάρια Περιεχόμενο περιπτώσεων χρήσης Πρότυπα περιπτώσεων χρήσης Διαγράμματα περιπτώσεων χρήσης

περιεχόμενα παρουσίασης Actors Σενάρια Περιεχόμενο περιπτώσεων χρήσης Πρότυπα περιπτώσεων χρήσης Διαγράμματα περιπτώσεων χρήσης Περιπτώσεις Χρήσης περιεχόμενα παρουσίασης Actors Σενάρια Περιεχόμενο περιπτώσεων χρήσης Πρότυπα περιπτώσεων χρήσης Διαγράμματα περιπτώσεων χρήσης περιπτώσεις χρήσης Τι θα κάνει το λογισμικό για κάποιον

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 18/3/2008

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 18/3/2008 ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 18/3/2008 - Παράδειγμα με switch (το οποίο δείχνει επίσης πότε σε μια άσκηση χρησιμοποιούμε user-input και System.out.println() για έξοδο και πότε χρησιμοποιούμε είσοδο σε μέθοδο

Διαβάστε περισσότερα

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07 Πρώτοι αριθμοί ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07 Ένας ακέραιος μεγαλύτερος του 1 είναι πρώτος αν έχει ακριβώς δύο διαιρέτες (τη μονάδα και τον εαυτό του). Πρόβλημα: έλεγχος

Διαβάστε περισσότερα

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων Αντικείµενα ηµιουργία και χρησιµοποίηση αντικειµένων ηµιουργία αντικειµένων Για να δηµιουργήσω ένα νέο αντικείµενο χρησιµοποιώ τον τελεστή new µε τοόνοµατηςκλάσηςαπότηνοποίαθέλωναδηµιουργήσωένααντικείµενο,

Διαβάστε περισσότερα

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

Διαγράμματα UML για την τεκμηρίωση της Αρχιτεκτονικής Διαγράμματα UML για την τεκμηρίωση της Αρχιτεκτονικής περιεχόμενα παρουσίασης Διαγράμματα πακέτων Διαγράμματα συστατικών Διαγράμματα παράταξης Το μοντέλο των 4+1 όψεων τεκμηρίωση αρχιτεκτονικής και UML

Διαβάστε περισσότερα

Εισαγωγή στον Προγ/μό Η/Υ

Εισαγωγή στον Προγ/μό Η/Υ Εισαγωγή στον Προγ/μό Η/Υ Ενότητα 7 2ο μέρος: Επιπλέον έννοιες σχετικά με αντικείμενα Διδάσκων: Μιχάλης Τίτσιας Περιεχόμενα Τι μπορεί να περιέχει μια τάξη Μέθοδοι τάξης και σταθερές τάξης Πολυμορφισμός

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Υπάρχουσες κλάσεις και αντικείμενα στην Java Strings Wrapper Classes Δομές

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Υπάρχουσες κλάσεις και αντικείμενα στην Java Strings Wrapper Classes Δομές ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Υπάρχουσες κλάσεις και αντικείμενα στην Java Strings Wrapper Classes Δομές ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΤΙΚΕΙΜΕΝΑ Κλάση Μια κλάση είναι μία αφηρημένη περιγραφή αντικειμένων

Διαβάστε περισσότερα

Διάθρωση. HΥ351 Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων Information Systems Analysis and Design

Διάθρωση. HΥ351 Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων Information Systems Analysis and Design Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών Φθινόπωρο 2007 HΥ35 Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων Information Systems Analysis and Design Διάθρωση Άσκηση : Multiplicity constraints using

Διαβάστε περισσότερα