Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού
|
|
- Θεράπων Αξιώτης
- 5 χρόνια πριν
- Προβολές:
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 Τεχνολογία Λογισμικού & Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Ανάλυση Συστημάτων Object Diagrams Διαγράμματα Αντικειμένων
Διαβάστε περισσότεραΑνάλυση Πληροφοριακών Συστημάτων. Εαρινό Εξάμηνο 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 στον Κώδικα Μέρος Α περιεχόμενα παρουσίασης Κλάσεις Ισότητα αντικειμένων Μονόδρομες συσχετίσεις με πολλαπλότητα «ένα» Μονόδρομες συσχετίσεις με πολλαπλότητα «πολλά» Συλλογές από το σχέδιο στον
Διαβάστε περισσότεραpublic void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);
Κληρονομικότητα Η κληρονομικότητα (inheritance) αποτελεί έναν από τους χαρακτηριστικότερους μηχανισμούς των αντικειμενοστρεφών γλωσσών προγραμματισμού. Επιτρέπει την δημιουργία μιας νέας κλάσης απορροφώντας
Διαβάστε περισσότεραΑΝΑΛΥΣΗ ΑΠΑΙΤΗΣΕΩΝ ανάλυση απαιτήσεων Σε αυτό το μάθημα θα ασχοληθούμε με : Δημιουργία μοντέλων
ΑΝΑΛΥΣΗ ΑΠΑΙΤΗΣΕΩΝ Οι Μηχανικοί Λογισμικού παράγουν μοντέλα που βοηθούν στη διατύπωση των απαιτήσεων με τη μορφή προδιαγραφών. Η εργασία της παραγωγής μοντέλων περιγράφεται ως ανάλυση απαιτήσεων. Η ανάλυση
Διαβάστε περισσότεραΕργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 4 ο Εργαστήριο -
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 3 ο ΕΞΑΜΗΝΟ Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 4 ο Εργαστήριο - ΕΠΙΜΕΛΕΙΑ ΜΑΘΗΜΑΤΟΣ: Πρέντζα Ανδριάννα ΕΠΙΜΕΛΕΙΑ ΕΡΓΑΣΤΗΡΙΟΥ: Στουγιάννου
Διαβάστε περισσότεραΔιαγράμματα UML στην Ανάλυση. Μέρος Β Διαγράμματα Κλάσεων Διαγράμματα Αντικειμένων
Διαγράμματα UML στην Ανάλυση Μέρος Β Διαγράμματα Κλάσεων Διαγράμματα Αντικειμένων περιεχόμενα παρουσίασης Διαγράμματα κλάσεων Διαγράμματα αντικειμένων διαγράμματα κλάσεων Χρησιμοποιούνται στην ανάλυση
Διαβάστε περισσότεραΤεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)
Τεχνολογία Λογισμικού Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
Διαβάστε περισσότεραΤεχνολογία Λογισμικού
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού 20/11/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr State Diagrams Διαγράμματα Καταστάσεων 1 Διαγράμματα UML Διάγραμμα
Διαβάστε περισσότεραΑνάλυση Πληροφοριακών Συστημάτων. «Βασικές Έννοιες Αντικειμενοστρεφούς Προγραμματισμού Διαγράμματα κλάσεων» Βασίλειος Καρακόιδας
Ανάλυση Πληροφοριακών Συστημάτων «Βασικές Έννοιες Αντικειμενοστρεφούς Προγραμματισμού Διαγράμματα κλάσεων» Βασίλειος Καρακόιδας 7 12 2005 Περιεχόμενα Παρουσίασης Βασικές Έννοιες Αντικειμενοστραφούς προγραμματισμού
Διαβάστε περισσότεραUML: Unified modelling language
UML: Διαγράμματα UML: Unified modelling language Γλώσσα μοντελοποίησης για ανάλυση και σχεδιασμό Παρέχει το συμβολισμό για ανάλυση και σχεδιασμό. Είναι γλώσσα συμβολισμού. Δεν είναι ολόκληρη μεθοδολογία.
Διαβάστε περισσότεραΔιάγραμμα Κλάσεων. Class Diagram
Διάγραμμα Κλάσεων Class Diagram Γενικά Ορίζει τις κλάσεις αντικειμένων σε ένα σύστημα, τις μεθόδους και τις συναρτήσεις τους, και τις συσχετίσεις μεταξύ των κλάσεων. Περιγράφουν την δομή και συμπεριφορά
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου Μεγάλο παράδειγμα Θέλουμε να δημιουργήσουμε ένα λογισμικό για ένα τμήμα πανεπιστημίου. Το τμήμα έχει 4
Διαβάστε περισσότεραΤεχνολογία Λογισμικού & Ανάλυση Συστημάτων
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού & Ανάλυση Συστημάτων 18/11/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων
Διαβάστε περισσότεραΤεχνολογία Λογισμικού & Ανάλυση Συστημάτων 5/12/2016. Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια.
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων 5/12/2016 Τεχνολογία Λογισμικού & Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Ανάλυση Συστημάτων State Diagrams Διαγράμματα Καταστάσεων
Διαβάστε περισσότερα2.1 Αντικειµενοστρεφής προγραµµατισµός
2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί
Διαβάστε περισσότεραΔιαχείριση Πληροφοριακών Συστημάτων
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Διαχείριση Πληροφοριακών Συστημάτων Ενότητα #7: UML Χρήστος Δρόσος Τμήμα Μηχανικών Αυτοματισμού Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές Αντικείμενα ως ορίσματα Μπορούμε να περνάμε αντικείμενα ως ορίσματα σε μία μέθοδο όπως οποιαδήποτε άλλη μεταβλητή
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός
Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Περιεχόμενα Java Classes Java Objects Java
Διαβάστε περισσότεραΠεριεχόμενο του μαθήματος
ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Η Αντικειμενοστρεφής Τεχνολογία Δρ Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 202-203 Περιεχόμενο του μαθήματος Η έννοια
Διαβάστε περισσότεραΕισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #13
Wrapper Classes, Abstract Classes and Interfaces Διάλεξη #13: Μεταβλητές/μέθοδοι κλάσης, αφηρημένες κλάσεις και διαπροσωπείες Μεταβλητές /πεδία κλάσης [class variables] Τα αντικείμενα ανήκουν σε κλάσεις
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java III Το if-else statement Το if-else statement δουλεύει καλά όταν στο condition θέλουμε να περιγράψουμε μια επιλογή με δύο πιθανά ενδεχόμενα.
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε
Διαβάστε περισσότεραΠεριεχόμενο του μαθήματος
ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Απαιτήσεις Λογισμικού Περιπτώσεις χρήσης Δρ Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 2012-2013 1 Περιεχόμενο του μαθήματος
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων Μεγάλο παράδειγμα Θέλουμε να δημιουργήσουμε ένα λογισμικό για ένα τμήμα πανεπιστημίου. Το τμήμα έχει 4 φοιτητές οπού ο καθένας έχει ένα
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα ΑΝΑΦΟΡΕΣ new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Σύνθεση αντικειμένων
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων ΠΑΡΑΔΕΙΓΜΑ ΣΥΝΘΕΣΗΣ Μεγάλο παράδειγμα Θέλουμε να δημιουργήσουμε ένα λογισμικό για ένα τμήμα πανεπιστημίου. Το τμήμα έχει 4 φοιτητές οπού
Διαβάστε περισσότεραΗ κατασκευή αντικειμένων της κλάσης Student μπορεί να πραγματοποιηθεί είτε στη main είτε σε οποιαδήποτε μέθοδο κλάσης:
Αντικειμενοστρεφής Προγραμματισμός Τμήμα Εφαρμοσμένης Πληροφορικής Δημιουργία Κλάσεων/Αντικειμένων/Συσχετίσεων/Συνδέσεων Δημιουργία κλάσεων και αντικειμένων Θεωρούμε ένα υποθετικό σύστημα που αναφέρεται
Διαβάστε περισσότεραΤα διαγράµµατα κλάσεων
1 Ελληνικό Ανοικτό Πανεπιστήµιο Τα διαγράµµατα κλάσεων ρ. Πάνος Φιτσιλής 2 Περιεχόµενα Βασικές έννοιες µοντέλου κλάσεων Βασικές συσχετίσεις Παραδείγµατα 3 ιαγράµµατα κλάσεων (class diagrams) Είναι το βασικότερο
Διαβάστε περισσότεραΜοντελοποίηση δεδομένων με UML Χρήση σε πολυμεσικές εφαρμογές
Μοντελοποίηση δεδομένων με UML Χρήση σε πολυμεσικές εφαρμογές Ελληνικό Ανοικτό Πανεπιστήμιο ΓΤΠ61 Πληροφορική Πολυμέσα Αγγελική Μαζαράκη Τι είναι η UML Είναι μια γραφική γλώσσα μοντελοποίησης συστημάτων.
Διαβάστε περισσότερα. Μεθοδολογία Προγραμματισμού. Abstract Κλάσεις και Interfaces. Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014
.. Μεθοδολογία Προγραμματισμού Abstract Κλάσεις και Interfaces Νικόλαος Πεταλίδης Τμήμα Μηχανικών Η/Υ ΤΕΙ Κεντρικής Μακεδονίας Εισαγωγή Εαρινό Εξάμηνο 2014 Ν. Πεταλίδης (ΤΕΙ Κεντρικής Μακεδονίας) Μεθοδολογία
Διαβάστε περισσότεραΕισαγωγή στην αντικειµενοστρεφή τεχνολογία
1 Ελληνικό Ανοικτό Πανεπιστήµιο Εισαγωγή στην αντικειµενοστρεφή τεχνολογία ρ. Πάνος Φιτσιλής Περιεχόµενα Γιατί µοντελοποιούµε Εισαγωγή στη UML Ένα απλό παράδειγµα 2 Γιατί µοντελοποιούµε; Ησηµασία της µοντελοποίησης
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός
Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Εργαστήριο 2 Βασικοί Τύποι Μεταβλητών Java
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για τον πίνακα είπαμε ότι
Διαβάστε περισσότεραΚεφάλαιο 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 Αριθμητική στο δυαδικό σύστημα (γενικά) Συμπληρωματικά για δυαδικό σύστημα Η πρόσθεση στηρίζεται στους κανόνες: 0 + 0 = 0, 0 + 1 = 1, 1
Διαβάστε περισσότεραΤεχνολογία Λογισμικού & Ανάλυση Συστημάτων 21/11/2016. Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια.
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων 21/11/2016 Τεχνολογία Λογισμικού & Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Ανάλυση Συστημάτων Activity Diagrams Διαγράμματα Δραστηριοτήτων
Διαβάστε περισσότερα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 Τι θα συζητήσουμε σήμερα Αφαιρέσεις στη 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
Οι βασικές έννοιες που θα καλύψουμε Ομαδοποίηση αντικειμένων Εισαγωγή στις συλλογές Γενικές κλάσεις Iterators Συλλογές (ειδικά την ArrayList) Συνεχίζουμε την αναφορά στο θέμα της αφαίρεσης (abstraction)
Διαβάστε περισσότεραΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης
ΠΟΛΥΜΟΡΦΙΣΜΟΣ Λόγω της θεμελιώδους σημασίας της έννοιας του πολυμορφισμού (polymorphism) στην αντικειμενοστρεφή σχεδίαση, κρίνεται σκόπιμο στο σημείο αυτό του βιβλίου να αναλυθεί εκτενέστερα. Ο πολυμορφισμός
Διαβάστε περισσότεραΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι
ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι κ. ΠΕΤΑΛΙΔΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται
Διαβάστε περισσότεραΤο πρόγραμμα 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 Δομές Δεδομένων και Αλγόριθμοι 1 Generic Types Τα Generics έχουν προστεθεί στη JAVA από το 2004 ως μέρος του J2SE 5.0 Με τη χρήση
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη 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 Γενικά χαρακτηριστικά Στοιχεία µοντέλων Συσχετίσεις ιαγράµµατα Παραδείγματα Ορισμός του μοντέλου Αποτελεί µια αφηρηµένη περιγραφή ενός Φυσικού συστήµατος. Αποτελεί ένα σχέδιο για την
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας Στην άσκηση αυτή θα υλοποιήσετε μια κλάση Geometric η οποία διαχειρίζεται μια γεωμετρική ακολουθία ακεραίων
Διαβάστε περισσότερα1 ΕΙΣΑΓΩΓΗ. Πρωταρχικοί Τύποι
1 ΕΙΣΑΓΩΓΗ Η γλώσσα προγραµµατισµού Java είναι ισχυρά τυποποιηµένη (strongly typed), που σηµαίνει ότι κάθε µεταβλητή και κάθε έκφραση έχει κάποιο τύπο, ο οποίος πρέπει να είναι γνωστός κατά το χρόνο της
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 3/4/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Γιατί έλεγχος πρόσβασης? Προστασία ιδιωτικής πληροφορίας
Διαβάστε περισσότεραΕργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 8 ο & 9 ο Εργαστήριο -
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 3 ο ΕΞΑΜΗΝΟ Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 8 ο & 9 ο Εργαστήριο - ΕΠΙΜΕΛΕΙΑ ΜΑΘΗΜΑΤΟΣ: Πρέντζα Ανδριάνα ΕΠΙΜΕΛΕΙΑ ΕΡΓΑΣΤΗΡΙΟΥ:
Διαβάστε περισσότερα09 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών. Εαρινό εξάμηνο
09 Η γλώσσα UML I Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών Εαρινό εξάμηνο 2017 18 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Unified Modeling Language
Διαβάστε περισσότερα3 Αλληλεπίδραση Αντικειμένων
Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός μνήμης Αντικείμενα παράμετροι String Interning
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός μνήμης Αντικείμενα παράμετροι String Interning Αποθήκευση αντικειμένων Οι θέσεις μνήμης των αντικειμένων κρατάνε μια διεύθυνση στο
Διαβάστε περισσότερα2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων
2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει
Διαβάστε περισσότεραΕργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 3 ο ΕΞΑΜΗΝΟ Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 6 ο Εργαστήριο - ΕΠΙΜΕΛΕΙΑ ΜΑΘΗΜΑΤΟΣ: Πρέντζα Ανδριάννα ΕΠΙΜΕΛΕΙΑ ΕΡΓΑΣΤΗΡΙΟΥ: Στουγιάννου
Διαβάστε περισσότεραΕισαγωγή στη γλώσσα UML
Κεφάλαιο 1 o Εισαγωγή στη γλώσσα UML 1.1 Προσθέτοντας μια νέα μέθοδο Στις πρώτες εποχές των υπολογιστών, οι προγραμματιστές συνήθιζαν να περιορίζονται στην ανάλυση σε βάθος των προβλημάτων που αντιμετώπιζαν.
Διαβάστε περισσότεραI (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.
I (JAVA) Ονοματεπώνυμο: Α. Μ.: + ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. + 1 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 2/3) 2 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 3/3)
Διαβάστε περισσότερα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 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις Γαβαλάς Δαμιανός
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Έλεγχος ισότητας για Strings: Διαβάζουμε το String option και θέλουμε ένα loop να συνεχίσει
Διαβάστε περισσότεραΤεχνολογία Λογισμικού
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού 9/10/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων UML - Unified
Διαβάστε περισσότεραΠεριεχόμενα. ΚΕΦΑΛΑΙΟ 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
Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών Φθινόπωρο 2006 HΥ351 Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων Information Systems Analysis and Design Ημερομηνία: 15/12/2006 Θεματική Ενότητα: OCL
Διαβάστε περισσότεραΠληροφοριακά Συστήματα Διοίκησης Ενότητα 1: Βασικές Αρχές Αντικειμενοστραφούς Σχεδίασης Συστημάτων και Εφαρμογών (1ο Μέρος)
Πληροφοριακά Συστήματα Διοίκησης Ενότητα 1: Βασικές Αρχές Αντικειμενοστραφούς Σχεδίασης Συστημάτων και Εφαρμογών (1ο Μέρος) Γρηγόριος Μπεληγιάννης Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης
Διαβάστε περισσότερα02 Αντικειμενοστρεφής Προγραμματισμός
02 Αντικειμενοστρεφής Προγραμματισμός Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Εαρινό εξάμηνο 2016 17 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Αντικειμενοστρέφεια Στον προγραμματισμό object
Διαβάστε περισσότεραΟΔΗΓΙΕΣ ΓΙΑ ΧΡΗΣΗ ΤΟΥ ΕΡΓΑΛΕΙΟΥ RATIONAL ROSE
ΟΔΗΓΙΕΣ ΓΙΑ ΧΡΗΣΗ ΤΟΥ ΕΡΓΑΛΕΙΟΥ RATIONAL ROSE Το path που ακολουθούμε για να ανοίξουμε το εργαλείο είναι: Start All Programs Lab Programs Rational Software Rational Rose Enterprise Edition 1 ο ΔΙΑΓΡΑΜΜΑ:
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 11: Χειρισμός Σφαλμάτων Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΜοντελοποίηση Συστημάτων. Διαγράμματα Κλάσεων ClassDiagrams
Μοντελοποίηση Συστημάτων Διαγράμματα Κλάσεων ClassDiagrams Διαγράμματα Κλάσεων Χρησιμοποιούνται στα βήματα: Ανάλυση απαιτήσεων Π.Σ. Σχεδιασμός Π.Σ. Είναι στατικά διαγράμματα που δείχνουν: Κλάσεις Ιδιότητες
Διαβάστε περισσότεραΑντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η
Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η μέθοδος main(), εμφάνιση μηνυμάτων, Java προγράμματα που εκτελούν αριθμητικές πράξεις 2 Ανατομία ενός προγράμματος
Διαβάστε περισσότεραI (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.
I (JAVA) Ονοματεπώνυμο: Α. Μ.: + ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην. + 1 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 2/3) 2 ΦΥΛΛΟ ΑΠΑΝΤΗΣΕΩΝ (σελ. 3/3)
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ
Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ Κων. Κόκκινος Μεταβλητές-1 Οι μεταβλητές αποτελούν θέσεις μνήμης στις οποίες αποθηκεύονται τιμές αντίστοιχες
Διαβάστε περισσότεραΚλάσεις. Τροποποιητές, ιασυνδέσεις, Πακέτα. Τροποποιητές ελέγχου προσπέλασης µεταβλητών και µεθόδων
Κλάσεις Τροποποιητές, ιασυνδέσεις, Πακέτα Τροποποιητές ελέγχου προσπέλασης µεταβλητών και µεθόδων Υπάρχουν 4τροποποιητές: default, public, private, protected. Default: εν προηγείται τροποποιητής του ονόµατος
Διαβάστε περισσότεραΤεχνολογία Λογισμικού
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Τεχνολογία Λογισμικού 14/11/2016 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Μοντέλα Παράστασης
Διαβάστε περισσότερα2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008
Παράδειγμα: Μηχανή για Εισιτήρια 2 Ορισμός Κλάσεων Σύνταξη κλάσης: πεδία, κατασκευαστές, μέθοδοι Ένας αυτόματος εκδότης εισιτηρίων είναι μια μηχανή που δέχεται χρήματα και εκδίδει ένα εισιτήριο. Εκδίδει
Διαβάστε περισσότεραπεριεχόμενα παρουσίασης Actors Σενάρια Περιεχόμενο περιπτώσεων χρήσης Πρότυπα περιπτώσεων χρήσης Διαγράμματα περιπτώσεων χρήσης
Περιπτώσεις Χρήσης περιεχόμενα παρουσίασης Actors Σενάρια Περιεχόμενο περιπτώσεων χρήσης Πρότυπα περιπτώσεων χρήσης Διαγράμματα περιπτώσεων χρήσης περιπτώσεις χρήσης Τι θα κάνει το λογισμικό για κάποιον
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (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 Ένας ακέραιος μεγαλύτερος του 1 είναι πρώτος αν έχει ακριβώς δύο διαιρέτες (τη μονάδα και τον εαυτό του). Πρόβλημα: έλεγχος
Διαβάστε περισσότεραΑντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων
Αντικείµενα ηµιουργία και χρησιµοποίηση αντικειµένων ηµιουργία αντικειµένων Για να δηµιουργήσω ένα νέο αντικείµενο χρησιµοποιώ τον τελεστή new µε τοόνοµατηςκλάσηςαπότηνοποίαθέλωναδηµιουργήσωένααντικείµενο,
Διαβάστε περισσότεραΔιαγράμματα UML για την τεκμηρίωση της Αρχιτεκτονικής
Διαγράμματα UML για την τεκμηρίωση της Αρχιτεκτονικής περιεχόμενα παρουσίασης Διαγράμματα πακέτων Διαγράμματα συστατικών Διαγράμματα παράταξης Το μοντέλο των 4+1 όψεων τεκμηρίωση αρχιτεκτονικής και UML
Διαβάστε περισσότεραΕισαγωγή στον Προγ/μό Η/Υ
Εισαγωγή στον Προγ/μό Η/Υ Ενότητα 7 2ο μέρος: Επιπλέον έννοιες σχετικά με αντικείμενα Διδάσκων: Μιχάλης Τίτσιας Περιεχόμενα Τι μπορεί να περιέχει μια τάξη Μέθοδοι τάξης και σταθερές τάξης Πολυμορφισμός
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα μέσα σε αντικείμενα Αντικείμενα ως επιστρεφόμενες τιμές Αντικείμενα με πίνακες
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα μέσα σε αντικείμενα Αντικείμενα ως επιστρεφόμενες τιμές Αντικείμενα με πίνακες ANTIKEIMENA MEΣΑ ΣΕ ΑΝΤΙΚΕΙΜΕΝΑ Αντικείμενα μέσα σε αντικείμενα Εκτός
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Υπάρχουσες κλάσεις και αντικείμενα στην Java Strings Wrapper Classes Δομές
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Υπάρχουσες κλάσεις και αντικείμενα στην Java Strings Wrapper Classes Δομές ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΤΙΚΕΙΜΕΝΑ Κλάση Μια κλάση είναι μία αφηρημένη περιγραφή αντικειμένων
Διαβάστε περισσότεραΔιάθρωση. HΥ351 Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων Information Systems Analysis and Design
Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών Φθινόπωρο 2007 HΥ35 Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων Information Systems Analysis and Design Διάθρωση Άσκηση : Multiplicity constraints using
Διαβάστε περισσότερα