Σχεδίαση Κλάσεων και Μεθόδων (Class and Method Design)

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

Download "Σχεδίαση Κλάσεων και Μεθόδων (Class and Method Design)"

Transcript

1 HY351 - Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων CS351 - Information Systems Analysis and Design ΗΥ351: Ανάλυση και Σχεδίαση Πληροφοριακών Συστημάτων Information Systems Analysis and Design Σχεδίαση Κλάσεων και Μεθόδων (Class and Method Design) Γιάννης Τζίτζικας ιάλεξη : 14 Ημερομηνία : Θέμα : U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 1 ΑπόταΜοντέλαΑνάλυσηςσταΜοντέλαΣχεδίασης Υψηλού επιπέδου επιχειρηματικές ανάγκες καταγεγραμμένες στην Πρόταση Συστήματος Καθορισμός Απαιτήσεων Ανάλυση Αναλυτική Καταγραφή Συγκεκριμένων απαιτήσεων Μοντελοποίηση Μοντελοποίηση Λειτουργική /Δομική/Συμπεριφοράς (Functional/Structural/Behavioral) Σχεδίαση Αναθεώρηση, Εκλέπτυνση Μη Λειτ/κές Ααπαιτήσεις Σχεδίαση Κλάσεων και Μεθόδων Σχεδίαση Επιπέδου Διαχείρισης Δεδομένων Μοντέλα Σχεδίασης Σχεδίαση Επικοινωνίας με Χρήστη Σχεδίαση Φυσικής Αρχιτεκτονικής U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 2

2 ιάρθρωση Γιατί να κάνουμε αναλυτική σχεδίαση κλάσεων και μεθόδων; Σχεδιαστικά Κριτήρια σύζευξη (coupling), συνοχή (cohesion) Αναδομώντας και Βελτιώνοντας το Σχέδιο (Factoring and Optimizing) Αντιστοίχηση κλάσεων προβλήματος σε κλάσεις υλοποίησης Προδιαγραφή μεθόδων [Περιορισμοί και Συμβόλαια (Constraints and Contracts)] Δυνατότητες Επαναχρησιμοποίησης Σχεδιαστικά Μοτίβα (Design Patterns) U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 3 Σχεδίαση Κλάσεων και Μεθόδων: Κίνητρο Class and Method Design: Motivation Ένα από τα σημαντικότερα βήματα στη φάση της σχεδίασης είναι η σχεδίαση των κλάσεων και των μεθόδων Οι αναλυτές πρέπει να δώσουν οδηγίες και συμβουλές στους προγραμματιστές που να εξηγούν ξεκάθαρα τι πρέπει να κάνει στο σύστημα Γιατί να σχεδιάσουμε (πιο λεπτομερώς) τις κλάσεις και μεθόδους; Κάποιοι υποστηρίζουν ότι αφού έχουμε επαναχρησιμοποιούμενες βιβλιοθήκες κλάσεων και έτοιμα εξαρτήματα (off-the-shelf components), ολεπτομερής σχεδιασμός των κλάσεων είναι σπατάλη χρόνου (και άρα δεν πρέπει να χρονοτριβούμε αλλά να ξεκινήσουμε αμέσως την κωδικοποίηση). Παρά ταύτα, η εμπειρία έχει δείξει ότι ο αναλυτική σχεδίαση είναι χρήσιμη παρά τις έτοιμες βιβλιοθήκες Ακόμα και οι προϋπάρχουσες κλάσεις πρέπει να κατανοηθούν, οργανωθούν και συναρμολογηθούν σωστά Επίσης η ομάδα θα πρέπει να δημιουργήσει και τις δικές της κλάσεις (application logic of the system) οι οποίες απαιτούν προσεκτική σχεδίαση U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 4

3 Τι θα μπορούσε να πάει στραβά αν δεν κάνουμε προσεχτικά τη σχεδίαση; What could go wrong without careful design? Τα μοντέλα που προέκυψαν από την φάση ανάλυσης μπορεί να μην μπορούν να υλοποιηθούν από την επιλεγμένη γλώσσα προγραμματισμού Τα αντικείμενα δεν θα μπορούν να επικοινωνούν σωστά, άρα το σύστημα δεν θα λειτουργεί σωστά Μια απρόσεχτη χρήστη στρωμάτων (layers) μπορεί να δημιουργήσει μεγάλη επιβάρυνση στην επικοινωνία (communication overhead) που μπορεί να επιβραδύνει πολύ το σύστημα Μια αλλαγή σε ένα τμήμα του συστήματος μπορεί να απαιτήσει αλλαγές σε πάρα πολλά άλλα σημεία του συστήματος Θα μπορούσαμε να ολοκληρώσουμε/βελτιώσουμε τη σχεδίαση επαναχρησιμοποιώντας σχεδιαστικά μοτίβα. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 5 Η σπουδαιότητα των κλάσεων προβλήματος The importance of problem domain classes Problem Domain Data Management Human Computer Interaction Physical Architecture Foundation Layer Έχουμε ήδη αρχίσει να σχεδιάζουμε τη δομή και την αλληλεπίδραση των κλάσεων του πεδίου προβλήματος (domain model classes). Οι κλάσεις των άλλων επιπέδων (system architecture, HCI, data management) θα εξαρτώνται από τις κλάσεις του στρώματος πεδίου εφαρμογής (problem domain layer). Άρα είναι σημαντικό να σχεδιάσουμε σωστά τις κλάσεις του πεδίου προβλήματος (problem domain classes). U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 6

4 Τι είναι η λεπτομερής σχεδίαση κλάσεων και μεθόδων; What is detailed class and method design? Η Μοντελοποίηση της Δομής και της Συμπεριφοράς (που είδαμε στα προηγούμενα μαθήματα) εντάσσεται πράγματι στη «σχεδίαση κλάσεων και μεθόδων» Τι πρέπει να κάνουμε παραπάνω; Πρέπει να θέσουμε στον ευατό μας ερωτήματα της μορφής: Είναι όλες οι κλάσεις που έχουμε ορίσει απαραίτητες; Μήπως μας λείπουν κάποιες; Είναι πλήρως ορισμένες; Μήπως λείπουν γνωρίσματα ή λειτουργίες; Μήπως έχουν περιττά γνωρίσματα ή λειτουργίες; Μήπως υπάρχουν συγκρούσεις κληρονομικότητας; Υπάρχει κάποια αναποτελεσματικότητα (inefficiency) στο σχέδιο, και πωςθαμπορούσαμενατηδιορθώσουμε; Μπορούμε να αντιστοιχίσουμε τις κλάσεις στη γλώσσα προγραμματισμού που θα χρησιμοποιήσουμε; Πως μπορούμε να επαναχρησιμοποιήσουμε κώδικα; U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 7 ραστηριότητες Λεπτομερούς Σχεδίασης Detailed Design Activities Πέραν των προηγουμένων πρέπει να ελέγξουμε ότι τίποτα δεν λείπει από το μοντέλο του προβλήματος οριστικοποιήσουμε την ορατότητα των γνωρισμάτων και λειτουργιών σε κάθε κλάση αποφασίσουμε την υπογραφή της κάθε λειτουργίας κάθε κλάσης ορίσουμε περιορισμούς που πρέπει να σέβονται τα αντικείμενα U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 8

5 Υπενθυμιστικό: Αντικειμενοστρεφισμός, ιαγράμματα Κλάσεων Refresher: Object Orientation, Class Diagrams Encapsulation Hiding the content of the object from outside view Communication only through object s methods Key to reusability Polymorphism Same message triggers different methods in different objects Dynamic binding means specific method is selected at run time Implementation of dynamic binding is language specific Need to be very careful about run time errors Need to ensure semantic consistency Inheritance Single inheritance -- one parent class Multiple inheritance -- multiple parent classes Inheritance conflict There are 3 perspectives for the design of a class diagram (of a conceptual model in general) Conceptual Independent of implementation. This is often called domain model. Specification Based on interfaces of the software, not the implementation Implementation Here we model the implementation classes. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 9 Σχεδιαστικά Κριτήρια Design Criteria

6 Σχεδιαστικά Κριτήρια Design Criteria A good design is one that balances trade-offs to minimize the total cost of the system over its lifetime [Yourdon 91] Γενικά σχεδιαστικά κριτήρια [A] Coupling (σύζευξη) [B] Cohesion (συνεκτικότητα / συνοχή). [C] Connascence Έχουμε ήδη συζητήσει αυτά τα κριτήρια (coupling, cohesion) στο μάθημα 12 (διαστρωμάτωση/πακετοποίηση) Σήμερα θα συζητήσουμε αυτά τα κριτήρια στο επίπεδο των κλάσεων και των μεθόδων U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 11 Σύζευξη και Συνοχή Coupling and Cohesion Σύζευξη (Coupling): μετρά το πόσο εξαρτημένες/ανεξάρτητες είναι οι μονάδες (κλάσεις, αντικείμενα, λειτουργίες) του συστήματος Συνοχή (Cohesion): μετρά το πόσο προσηλωμένη (single-minded) είναι μια μονάδα (κλάση, αντικείμενο, λειτουργία) Πλευρές της σύζευξης και της συνοχής: Σύζευξη Συνοχή αλληλεπίδρασης μεθόδου κληρονομικότηταςκλάσης γενίκευσης Coupling Interaction Inheritance Cohesion method class generalization U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 12

7 [A] Σύζευξη [A] Coupling Όσο μεγαλύτερη είναι η αλληλεξάρτηση τόσο πιθανότερο είναι αλλαγές σε ένα τμήμα του σχεδίου να απαιτούν αλλαγές και σε άλλα τμήματα του σχεδίου Άραθαθέλαμενατηνμειώσουμε προτιμητέο εξαρτήσεις εξαρτήσεις Τύποι σύζευξης: Αλληλεπίδρασης (Interaction) Κληρονομικότητας (Inheritance) U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 13 Σύζευξη> Αλληλεπίδρασης Coupling> Interaction Η σύζευξη αλληλεπίδρασης αφορά την ανταλλαγή μηνυμάτων (message passing) προτιμητέο κλήσεις κλήσεις Law of Demeter [Lieberherr & Holland 89] («Only talk to your immediate friends ) minimize the number of objects that can receive messages from a given object an object could send a message to: itself an object that is contained in an attribute of the object (or one of its superclasses) an object that is passed as a parameter to a method an object that is created by the method an object that is stored in a global variable U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 14

8 Law of Demeter for Functions/Methods Αn object A can request a service (call a method) of an object instance B, but object A cannot reach through object B to access yet another object to request its services. Doing so would mean that object A implicitly requires greater knowledge of object B s internal structure. Instead, B s class should be modified if necessary so that object A can simply make the request directly of object B, and then let object B propagate the request to any relevant subcomponents. If the law is followed, only object B knows its internal structure. More formally, the Law of Demeter for functions requires that a method M of an object O may only invoke the methods of the following kinds of objects: O itself M's parameters any objects created/instantiated within M O's direct component objects In particular, an object should avoid invoking methods of a member object returned by another method. Advantages: The resulting software tends to be more maintainable and adaptable (as objects are less dependent on the internal structure of other objects, object containers can be changed without reworking their callers). Disadvantage: Sometimes it requires writing a large number of small wrapper methods (sometimes referred to as Demeter Transmogrifiers) to propagate method calls to the components. Furthermore, a class s interface can become bulky as it hosts methods for contained classes resulting in a class without a cohesive interface. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 15 6 τύποι Αλληλεπιδραστικής Σύζευξης 6 types of Interaction Coupling No direct coupling The methods do not call one another Data Stamp Control Common or Global Content or Pathological The calling method passes a variable to the called method. If the variable is an object, the entire object is used by the called method to perform its function The calling method passes a composite variable to the called method, but the called method only uses a portion of the object to perform its function The calling method passes a control variable whose value will control the execution of the called method The methods refer to a global data area that is outside the individual objects A method of one object refers to the inside (hidden parts) of another object. This violates the principles of encapsulation (C++ allows this with friends ) Adapted from Dennis et al U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 16

9 Σύζευξη > Αλληλεπίδρασης: Οδηγίες Coupling> Interaction: Guidelines Πρέπει να την περιορίσουμε Εξαίρεση: Ορισμένες φορές κλάσεις που δεν ανήκουν στο μοντέλο προβλήματος πρέπει να ζευγμένες με κλάσεις του μοντέλου προβλήματος e.g. UIPerson can be coupled to Person for optimization the UIPerson could be pathologically coupled to Person class Παρά ταύτα, οι κλάσεις του μοντέλου προβλήματος δεν πρέπει ποτέ να είναι ζευγμένες με κλάσεις που δεν ανήκουν στο μοντέλο προβλήματος Presentation Logic Presentation Logic εξάρτηση Application Logic OK Application Logic εξάρτηση NOT OK U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 17 Σύζευξης>Κληρονομικότητας Coupling>Inheritance Αφορά τις κλάσεις σε μια ιεραρχία γενίκευσης/εξιδείκευσης υπερκλάση υπερκλάση υποκλάση υποκλάση Μερικοί πιστεύουν ότι η υψηλή ζεύξη δεν είναι άσχημη, άλλοι την θεωρούν άσχημη (λόγω των διαφόρων συγκρούσεων κληρονομικότητας που μπορεί να προκύψουν) Σχετικά ερωτήματα Πρέπει να μπορεί μια μέθοδος ορισμένη σε μια υποκλάση να καλέσει μια μέθοδο της υπερκλάσης; Πρέπει μια μέθοδος μιας υποκλάσης να αναφέρεται σε ένα γνώρισμα της υπερκλάσης; Αυτό βέβαια συχνά εξαρτάται από τη γλώσσα προγραμματισμού Συμβουλή: Να βεβαιωθούμε ότι η κληρονομικότητα χρησιμοποιείται μόνο με σημασία γενίκευσης/εξειδίκευσης (generalization/specialization semantics), δηλαδή υποσυνόλου, και ότι ικανοποιείται η αρχή της υποκατάστασης (substitutability) που θα δούμε αργότερα. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 18

10 [B] Συνοχή [B] Cohesion Συνοχή (Cohesion): μετράτοπόσοπροσηλωμένη(single-minded) είναι μια μονάδα (κλάση, αντικείμενο, λειτουργία) Πρέπει να την μεγιστοποιήσουμε προτιμητέο Τύποι Συνοχής: Μεθόδων Κλάσεων Γενίκευσης/Εξειδίκευσης U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 19 Συνοχή>Μεθόδων Cohesion>Method Μια μέθοδος πρέπει να κάνει μια εργασία (a method should solve a single task) Μια μέθοδος που κάνει πολλές λειτουργίες είναι πιο δύσκολο να κατανοηθεί και να επαναχρησιμοποιηθεί (a method performing multiple functions is more difficult to understand and reuse) Functional Sequential Communicational Procedural Temporal or Classical Logical Coincidental 7 types of method cohesion: A method performs one single task The method combines two functions: the output from the first is used as input to the second The method combines two functions that use the same attributes to execute The method supports multiple weakly related functions The method supports multiple related functions in time (e.g. initialize all attributes) The method supports multiple related functions but the choice of the specific function is chosen based on a control variable that is passed as parameter The method supports multiple unrelated functions Adapted from Dennis et al U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 20

11 Συνοχή>Κλάσεων Cohesion>Class Μια κλάση πρέπει να αναπαριστά ένα «πράγμα» (π.χ. πρόσωπο, αυτοκίνητο) Όλα τα γνωρίσματα και λειτουργίες της κλάσης πρέπει να είναι απαραίτητα για αναπαραστήσουν ένα πράγμα. Δεν πρέπει να υπάρχουν περιττά γνωρίσματα Η συνοχή μιας κλάσης είναι ο βαθμός συνοχής μεταξύ των γνωρισμάτων και των λειτουργιών της κλάσης Guidelines [G. Meyers 78] a class should contain multiple methods that are visible outside of the class and that each visible method only performs a single function (I.e. functional cohesion) a class should have methods that only refer to attributes or other methods defined with the class or its superclasses a class should not have any control-flow couplings between its methods U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 21 4 τύποι συνοχής Κλάσεων 4 types of Class Cohesion Ideal The class has no mixed cohesions Mixed-Role The class has one or more attributes that relate objects of the class to other objects on the same layer (e.g. the problem domain layer), but the attribute(s) have nothing to do with the underlying semantics of the class Mixed-Domain The class has one or more attributes that relate objects of the class to other objects on a different layer. So these attributes have nothing to do with the underlying semantics of the thing that the class represents. Mixed-Instance The class represents different types of objects meaning that different instances only use a portion of the full definition of the class. The class should be decomposed into separate classes. Adapted from Dennis et al U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 22

12 Παράδειγμα: Συνοχή μεθόδων έναντι συνοχής κλάσης Example: Method vs Class Cohesion Employee name address telephone roomnumber roomlength roomwidth Υψηλή συνοχή μεθόδου αλλά Χαμηλή συνοχή κλάσης calculateroomspace() U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 23 Συνοχή>Γενίκευση/Εξειδίκευση Cohesion>Generalization/Specialization Για ποιο λόγο οι κλάσεις μιας ιεραρχίας κληρονομικότητας συνδέονται; Η σύνδεση τους έχει πράγματι σημασία γενίκευσης/εξιδείκευσης (generalization/specialization semantics); Ή μήπως συνδέονται μόνο για λόγους επαναχρησιμοποίησης; Σε ποιο βαθμό μια υποκλάση πράγματι χρειάζεται αυτά που κληρονομεί; U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 24

13 Για ποιο λόγο οι κλάσεις μιας ιεραρχίας κληρονομικότητας συνδέονται; Uses of Inheritance for Specialization: The child class is a special case of the parent class; in other words, the child class is a subtype of the parent class Specification: The parent class defines behavior that is implemented in the child class but not in the parent class Construction: The child class makes use of the behavior provided by the parent class, but is not a subtype of the parent class Extension: The child class adds new functionality to the parent class, but does not change any inherited behavior Limitation: The child class restricts the use of some of the behavior inherited from the parent class Combination: The child class inherits behavior from two or more parent classes U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 25 Συνοχή>Γενίκευση/Εξειδίκευση Cohesion>Generalization/Specialization Vehicle servicedate maximumaltitude takeoffspeed checkaltitude() takeoff() Πολύ Χαμηλή Συνοχή Κληρονομικότητας LandVehicle registrationdate register() U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 26

14 Παράδειγμα: Αναδόμηση για ικανοποίηση της αρχής LSP Example: Restructuring for satisfying LSP Αρχή Υποκατάσταστης του Liskov (Liskov Substitution Principle, LSP) Σε μια ιεραρχία κλάσεων πρέπει να είναι δυνατόν να μεταχειριστούμε ένα εξειδικευμένο αντικείμενο ωσάν να ήταν ένα βασικό (γενικό) αντικείμενο ChequeAccount accountnum balance credit debit Account accountnum balance credit MortgageAccount interestrate calculateinterest debit ChequeAccount debit MortgageAccount interestrate calculateinterest debit U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 27 Παράδειγμα (1/3) class Rectangle { public: void setwidth(double w) {itswidth=w;} void setheight(double h){itsheight=h;} double getarea() {return itsheight * itswidth;} private: double itswidth; double itsheight; }; class Square: public Rectangle { }; void Square::setWidth(double w) { Rectangle::setWidth(w); Rectangle::setHeight(w); }; void Square::setHeight(double w) { Rectangle::setWidth(w); Rectangle::setHeight(w); }; U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 28

15 Παράδειγμα(2/3) void f(rectangle* r) { r->setwidth(32); } Παραβίαση της LSP: Ησυνάρτησηf δεν θα λειτουργήσει σωστά εάν το r είναι τετράγωνο (αν είναι στιγμυότυπο της Square) class Rectangle { public: virtual void setwidth(double w) {itswidth=w;} virtual void setheight(double h){itsheight=h;} double getarea() {return itsheight * itswidth;} private: double itswidth; double itsheight; }; Θα μπορούσαμε να διορθώσουμεαυτότοπρόβλημα επιτρέποντας πολυμορφισμό: We could fix this problem by allowing polymorphism U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 29 Παράδειγμα (3/3) void g(rectangle* r) { r->setwidth(5); r->setheight(4); assert(r->getarea()==20); } Θα λειτουργήσει σωστά εάν το r είναι παραλληλόγραμμο Δεν θα λειτουργήσει σωστά εάν το r είναι τετράγωνο Αρα η g() είναι εύθραυστη (fragile) διότι παραβιάσει την LSP Η κλάση Square παραβιάζει την «αναλλοίωτη συνθήκη» της κλάσης Rectangle, ήτοι την ανεξαρτησία μεταξύ πλάτους και ύψους. Αυτή η αναλλοίωτη θα μπορούσε να εκφραστεί στην OCL (που θα δούμε σε επόμενο μάθημα). Συγκεκριμένα θα εκφραζόταν ως μια μετα-συνθήκη (postcondition) της setwidth που λέει το height διατηρεί την τιμή του. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 30

16 Αναδομώντας το Σχέδιο Restructuring the Design Factoring Optimizing Translate to Implementation Language Παραγοντοποίηση Factoring Factoring is the process of separating out aspects of a method or class into a new method or class to simplify the overall design. For example we may realize that some classes of the design share a similar definition. In this case we can factor out the similarities and define a new class. The new class is then related with the existing classes through generalization, aggregation or association. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 32

17 Βελτιώνοντας το Σχέδιο Optimizing the Design Κατανοησιμότητα έναντι Αποδοτικότητας There is a trade-off between understandability and efficiency Η αύξηση της κατανοησιμότητας ενός σχεδίου συχνά οδηγεί σε μείωση τα αποδοτικότητας (inefficiencies) Αν εστιάσουμε μόνο στην αποδοτικότητα συχνά καταλήγουμε σε σχέδια που είναι δύσκολο να κατανοηθούν από κάποιον άλλο Μερικοί τρόποι βελτίωσης της αποδοτικότητας ενός σχεδίου Αναθεώρηση Μονοπατιών Πρόσβασης (Review Access Paths) Αναθεώρηση Γνωρισμάτων (Review Attributes) Χρήση παραγόμενων γνωρισμάτων (derived attributes) όπου κρίνεται απαραίτητο (to cache values) Αναθεώρηση της σειράς εκτέλεσης των εντολών σε μεθόδους που χρησιμοποιούνται συχνά (αυτό ανήκει στη «Σχεδίαση Μεθόδων» που θα δούμε αργότερα) U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 33 Βελτίωση Σχεδίου: Αναθεωρώντας τα Μονοπάτια Πρόσβασης Optimizing the Design: Reviewing the Access Paths Αν ένα μήνυμα πρέπει να διασχίσει ένα μακρύ μονοπάτι και τέτοιου είδους κλήσεις γίνονται συχνά, είναι καλύτερα να δημιουργήσουμε μια πλεονάζουσα άμεση σύνδεση A B C D E F G A B C D E F G a:g U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 34

18 Βελτίωση Σχεδίου: Αναθεωρώντας τα Γνωρίσματα Optimizing the Design: Reviewing the Attributes Αν το γνώρισμα a2 της B χρησιμοποιείται μόνο από τις μεθόδους seta2 και geta2 και μόνο η κλάση A χρησιμοποιεί αυτές τις 2 μεθόδους, τότε το a2 καλύτερα να τοποθετηθεί στην A. A B a2 seta2(val) geta2() A B a2 U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 35 Παρένθεση: AND/XOR για σχέσεις και κλάσεις συσχέτισης Parenthesis: AND/XOR for Relationships (also for associations in class diagrams) Εδώ περιγράφουμε αυτούς τους περιορισμούς σε EntityRelationship diagrams, αλλα γενικά μπορούμε να τους έχουμε και σε διαγράμματα κλάσεων της UML Order XOR contains requests Part Service Μια παραγγελία είτε περιέχει ένα Part ή ένα Service. Ποτέ και τα δύο. Order AND FilledBy Generates Shipment Invoice Για μια παραγγελία, αν υπάρχει τιμολόγιο τότε υπάρχει και αποστολή και το αντίστροφο. For any given order, whenever there is at least one invoice there is also at least one shipment and vice versa. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 36

19 Αντιστοίχηση Κλάσεων Πεδίου Εφαρμογής σε Κλάσεις Υλοποίησης Mapping Problem Domain Classes to Implementation Languages Αντιστοίχηση Κλάσεων Πεδίου Εφαρμογής σε Κλάσεις Υλοποίησης Mapping Problem Domain Classes to Implementation Languages Συγκρούσεις Πολλαπλής Κληρονομικότητας (Multiple Inheritance Conflicts) Απαλοιφή Πολλαπλής Κληρονομικότητας Αν η υλοποίηση γίνει σε μια γλώσσα προγραμματισμού που δεν υποστηρίζει πολλαπλή κληρονομικότητα, τότε πρέπει να την απαλείψουμε από τα διαγράμματα κλάσεων Απαλοιφή Κληρονομικότητας Αν η υλοποίηση γίνει σε μια γλώσσα προγραμματισμού που δεν υποστηρίζει κληρονομικότητα, τότε πρέπει να την απαλείψουμε από τα διαγράμματα κλάσεων Υποστηρίζοντας Πολλαπλή και Δυναμική Ταξινόμηση (Handling Multiple and Dynamic Classification) U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 38

20 Κληρονομικότητα στις Γλώσσες Προγραμματισμού Inheritance in PLs Διαφορετικές γλώσσες αντιμετωπίζουν την κληρονομικότητα διαφορετικά Άρα στη φάση αυτή της σχεδίασης πρέπει να γνωρίζουμε την γλώσσα προγραμματισμού που θα χρησιμοποιήσουμε Feature C++ Eiffel Java multiple inheritance yes yes no Η προσβασιμότητα των κληρονομούμενων στοιχείων επίσης εξαρτάται από τη γλώσσα προγραμματισμού In UML, visibility (private, public, protected) applies to methods and attributes Let A be a class with some private and public attributes and methods. Let B be a class defined as a subclass of class A. What B inherits? In Java, we can answer this question right away. In C++ we should see how B has been declared as subclass of A C++ allows visibility at the class level. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 39 Κληρονομικότητα και Ορατότητα Inheritance and Visibility In C++, class B may have been defined as: class B: public A class B: protected A class B: private A Accessibility rules (C++) The private properties of A are not visible to class B objects (in every case) If base class A is defined as public, the visibility of inherited properties does not change in derived class B (public are still public and protected are still protected) If base class A is defined as protected, the visibility of inherited public properties changes in derived class B to protected If base class A is defined as private, the visibility of inherited public and protected properties changes in derived class B to private. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 40

21 Συγκρούσεις Κληρονομικότητας: Πολλαπλή Κληρονομικότητα Inheritance Conflicts: Multiple Inheritance [1] Two (or more) attributes (or methods) have the same name and semantics [2] Two (or more) attributes (or methods) have the same name but different semantics (homonyms) [3] Two (or more) attributes (or methods) have different names but identical semantics (synonyms) sa a1 a2 sb a1 a3 isa C1 Here we could be in case [1] or [2] U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 41 Συγκρούσεις Κληρονομικότητας: Πολλαπλή Κληρονομικότητα Inheritance Conflicts: Multiple Inheritance [1] Two (or more) attributes (or methods) inherited from different superclasses have the same name and semantics Employee -name -salary Robot -name -fuel name Robot-Employee U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 42

22 Συγκρούσεις Κληρονομικότητας: Πολλαπλή Κληρονομικότητα Inheritance Conflicts: Multiple Inheritance [2] Two (or more) attributes (or methods) have the same name but different semantics (homonyms) Employee Robot Student Teacher -phone -phone -year -department -degree -department Robot-Employee TeachingAssistant Phone (of employee) Phone (of robot s technician) A student of CSD may be assistant to a course of the Math. Dep. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 43 Συγκρούσεις Κληρονομικότητας: Πολλαπλή Κληρονομικότητα Inheritance Conflicts: Multiple Inheritance [3] Two (or more) attributes (or methods) inherited from different superclasses have different names but they have identical semantics (synonyms) Employee Robot Employee Robot -Name -Nickname -id -salary -speciality -serialnum -fuel -type Robot-Employee Name Nickname semantically speaking Robot-Employee Id serialnum speciality type U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 44

23 Απαλοιφή Πολλαπλής Κληρονομικότητας Eliminating Multiple Inheritance Απαλοιφή Πολλαπλής Κληρονομικότητας Μέθοδος 1: Ισοπέδωση των Επιπλέον Υπερκλάσεων sa a1 a2 sb a3 a4 sc a7 a8 sa a1 a2 sc a7 a8 C1 C2 C1 a3 a4 C2 a3 a4 isa Ισοπέδωση της κληρονομικότητας αντιγράφοντας τα γνωρίσματα και τις μεθόδους των επιπλέον υπερκλάσεων σε όλες τις υποκλάσεις τους και τέλος διαγραφή αυτών των υπερκλάσεων από το σχέδιο U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 46

24 Απαλοιφή Πολλαπλής Κληρονομικότητας Μέθοδος 2: Μετατροπή των Επιπλέον Υπερκλάσεων σε Συσχετίσεις Convert the Extra Superclasses to Associations Μετατροπή των επιπλέον υπερκλάσεων σε συσχετίσεις με την κατάλληλη πολλαπλότητα sa a1 a2 sb a3 a4 sc a7 a8 sa a1 a2 sc a7 a8 C1 C2 C1 sb C a a4 isa Υπόθεση: sb μπορεί να είναι είτε συγκεκριμένη (concrete) ή αφηρημένη(abstract). Είναι όλα εντάξει; U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 47 Απαλοιφή Πολλαπλής Κληρονομικότητας Μέθοδος 2: Μετατροπή των Επιπλέον Υπερκλάσεων σε Συσχετίσεις (ΙΙ) sa a1 a2 sb a3 a4 sc a7 a8 sa a1 a2 sc a7 a8 C1 C2 C1 sb C a a4 isa {XOR} Υπόθεση: sb μπορεί να είναι είτε συγκεκριμένη (concrete) ήαφηρημένη(abstract). U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 48

25 Μέθοδος 1 έναντι Μεθόδου 2 sa sc sa sc a1 a2 a7 a8 a1 a2 a7 a8 C1 C2 C1 sb C2 a3 a4 a3 a a a4 {XOR} Μέθοδος 2 θετικό: η (εννοιολογική) κλάση (sb) διατηρείται αρνητικό: αυξάνεται η ανταλλαγή μηνυμάτων και πρέπει να προσέχουμε τον περιορισμό XOR (υπολογιστικά πιο ακριβό) Υπόδειξη: Χρησιμοποιείστε τη μέθοδο 2 μόνο αν η επιπλέον υπερκλάση (sb) είναι concrete (not abstract). Αλλιώς χρησιμοποιείστε τη μέθοδο 1. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 49 Απαλοιφή Κληρονομικότητας Eliminating Inheritance

26 Απαλοιφή Κληρονομικότητας Μέθοδος 1: Ισοπέδωση (Flattening) Έστω ότι οι sa, sb και sc είναι όλες αφηρημένες sa a1 a2 C1 sb a3 a4 C2 sc a7 a8 C1 a1 a2 a3 a4 C2 a3 a4 a7 a8 U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 51 Απαλοιφή Κληρονομικότητας Μέθοδος 2: Μετατροπή όλων των Υπερκλάσεων σε Συσχετίσεις Convert all Superclasses to Associations Έστω ότι οι sa, sb και sc είναι όλες αφηρημένες sa a1 a2 sb a3 a4 sc a7 a8 1 sa a1 a2 sc a7 a8 1 C1 C2 1 C1 sb a a4 C2 1 {XOR} U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 52

27 Απαλοιφή Κληρονομικότητας Μέθοδος 2: Μετατροπή όλων των Υπερκλάσεων σε Συσχετίσεις (2) Έστω ότι οι sa, sb και sc είναι όλες συγκεκριμένες (concrete) sa a1 a2 sb a3 a4 sc a7 a8 1 sa a1 a2 sc a7 a8 1 C1 C C1 sb a a4 C {XOR} U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 53 Πολλαπλή Ταξινόμηση Multiple Classification

28 Πολλαπλή Ταξινόμηση και Συγκρούσεις Multiple classification and conflicts Nixon Diamond Quaker pacifist:yes Republican pacifist:no Nixon is a Quaker. Quakers are typically pacifists. Nixon is a Republican. Republicans are typically not pacifists. What to conclude? * "Nixon is a pacifist." or * "Nixon is not a pacifist."? Nixon instance Of U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 55 Πολλαπλή Ταξινόμηση Multiple Classification Person CrewMember TicketAgent Passenger Έστω ότι βάσει του μοντέλου προβλήματος, ένα μέλος τους πληρώματος μπορεί να είναι και επιβάτης και έστω ότι περιστασιακά μπορεί να εργαστεί και ως πράκτορας εισιτηρίων ΓιανατουλοποιήσουμεαυτόσεJava θα χρειαζόμασταν πολλαπλή και δυναμική ταξινόμηση (multiple and dynamic classification), κάτι το οποίο δεν υποστηρίζεται. Λύση 1: Για να προσπεράσουμε την πολλαπλή ταξινόμηση, μπορούμε να ορίσουμε join classes Person CM TA P CM & TA CM & P TM & P CM & TA & P Αυτή όμως η λύση μπορεί να απαιτήσει τη δημιουργία εκθετικού πλήθους κλάσεων. Και δεν δίνει λύση στην ανάγκη δυναμικής ταξινόμησης U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 56

29 Πολλαπλή Ταξινόμηση (ΙΙ) Multiple Classification (II) Person CrewMember TicketAgent Passenger Έστω ότι βάσει του μοντέλου προβλήματος, ένα μέλος τους πληρώματος μπορεί να είναι και επιβάτης και έστω ότι περιστασιακά μπορεί να εργαστεί και ως πράκτορας εισιτηρίων Λύση 2: Delegation 1 Person CrewMember TicketAgent Passenger Delegation είναι ένας τρόπος επέκτασης της συμπεριφοράς μιας κλάσης χωρίς τη χρήση κληρονομικότητας Είναι χρήσιμη όταν η πολλαπλή και δυναμική ταξινόμηση δεν υποστηρίζεται από τη γλώσσα προγραμματισμού U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 57 Για δική σας εξάσκηση For homework Female Physiotherapist Male sex {complete} Person Role <<dynamic>> patient Nurse Doctor Surgeon FamilyDoctor Patient U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 58

30 Προδιαγραφή Μεθόδων Method Specification Προδιαγραφή Μεθόδων Method Specification Σκοπός: Να δώσουμε επαρκείς πληροφορίες στους προγραμματιστές Δεν υπάρχει καθιερωμένος μορφότυπος για αυτές τις περιγραφές Μερικοί οργανισμοί χρησιμοποιούν φόρμες της μορφής: Method Method Name: Name: Class Class Name: Name: ID: ID: Programmer: Programmer: Date Date due: due: Programming Programming Language: Language: Triggers/Events: Triggers/Events: Arguments Arguments Received: Received: Data Data Type: Type: Notes: Notes: Messages Messages Sent Sent and and Arguments Arguments Passed: Passed: ClassName.MethodName: ClassName.MethodName: DataType: DataType: Notes: Notes: Arguments Arguments Returned: Returned: Data Data Type: Type: Algorithm Algorithm Specification: Specification: Notes: Notes: Notes: Notes: U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 60

31 Προδιαγραφή Μεθόδων Method Specification Method Method Name: Name: Programmer: Programmer: Programming Programming Language: Language: Triggers/Events: Triggers/Events: Class Class Name: Name: ID: ID: Date Date due: due: E.g. event-driven programming Arguments Arguments Received: Received: Data Data Type: Type: Notes: Notes: Messages Messages Sent Sent and and Arguments Arguments Passed: Passed: ClassName.MethodName: ClassName.MethodName: DataType: DataType: Notes: Notes: Recall behavioural modeling (sequence diagrams, communication diagrams) Arguments Arguments Returned: Returned: Data Data Type: Type: Algorithm Algorithm Specification: Specification: Notes: Notes: Notes: Notes: Ψευδοκώδικας (Pseudocode) Δομημένα Αγγλικά (Structured English) Διάγραμμα Δραστηριοτήτων (Activity Diagr U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 61 Περιορισμοί και Συμβόλαια Constraints and Contracts

32 Περιορισμοί και Συμβόλαια Constraints and Contracts Person name age increaseage() employment Company name hire(p:person) fire(p:person) promote(p:person, incr:money) Μπορεί ένας ανήλικος να εργαστεί σε μια εταιρία; Μπορεί μια εταιρία να προσλάβει ένα άτομο που είναι ήδη εργαζόμενος της; Μπορεί μια προαγωγή να μειώσει το μισθό; Ένα σύνολο περιορισμών που εγγυήσεων για κλάσεις και μεθόδους Θα μπορούσαμε να τους εκφράσουμε σε φυσική γλώσσα, δομημένα αγγλικά (ή ελληνικά), ψευδοκώδικα, ή σε μια τυπική γλώσσα (formal language). U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 63 Περιορισμοί και Συμβόλαια Constraints and Contracts Ο σχεδιαστής πρέπει να αποφασίσει πως θα διαχειριστεί μια παραβίαση ενός περιορισμού Διακοπή (abort), Ακύρωση/Επανόρθωση (undo), εναπόθεση στο χρήστη (let user handle it) Ο σχεδιαστής πρέπει να σχεδιάσει τα λάθη (errors) που το σύστημα αναμένεται να διαχειριστεί. Είναι καλύτερα να μην αναθέσουμε αυτό το θέμα στους προγραμματιστές Οι παραβιάσεις ενός περιορισμού είναι γνωστές ως εξαιρέσεις (exceptions) σε γλώσσες προγραμματισμού όπως η C++/Java. Στο επόμενο μάθημα θα δούμε μια τυπική γλώσσα (που ονομάζεται OCL) για την έκφραση περιορισμών U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 64

33 υνατότητες Επαναχρησιμοποίησης Opportunities to Reuse Εντοπίζοντας υνατότητες Επαναχρησιμοποίησης Identifying Opportunities for Reuse Θα μπορούσαμε να εκμεταλευτούμε Frameworks Class libraries frameworks tend to be more domain specific. Frameworks may be implemented using class libraries Design Patterns U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 66

34 Εντοπίζοντας υνατότητες Επαναχρησιμοποίησης Identifying Opportunities for Reuse Frameworks Frameworks Is a set of implemented classes that can be used as the basis for implementing the system Most frameworks allow you to create subclasses Frameworks like CORBA and DCOM can be used to specify the physical architecture layer of the system Object-persistence frameworks can be used to add persistence to the problem domain classes and thus specify the data management layer of the system. For instance see Spring (http://www.springframework.org/) U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 67 Σχεδιαστικά Μοτίβα Design Patterns

35 Identifying Opportunities for Reuse Design patterns A pattern is a commonly occurring reusable piece in software system that provides a certain set of functionality. Using patterns in modeling of systems helps in keeping design standardized and more importantly, minimizes the reinventing of the wheel in the system design. How design patterns relate to UML? The patterns need to be captured and documented in a sufficiently descriptive manner so that they can be referred for future use. UML provides the perfect tools to do just this. The class diagram in UML can be used to capture the patterns identified in a system. In addition, UML has a sufficiently extensive and expressive vocabulary to capture the details of patterns. U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 69 Κατηγοριοποίηση Προτύπων Categorizing Patterns Based on how they are to be used, patterns are primarily categorized as: Creational They define mechanisms for instantiating objects. The implementation of the creational pattern is responsible for managing the lifecycle of the instantiated object. Examples: Factory, Singleton Structural They define compositions of objects and their organization to obtain new and varied functionality. Examples: Adapter, Proxy. Behavioral They define interaction between different objects. Examples: Command, Iterator U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 70

36 Behavioral Patterns Command Encapsulate commands in objects so that you control their selection and sequencing, queue them, and othewise manipulate them Example: Design of a Word Processor that supports undoing and redoing commands AbstractCommand doit() undoit() InsertStringCommand «constructor» InsertStringCommand(position:Int, length:int) «misc» doit() undoit() DeleteCommand «constructor» DeleteCommand(position:Int, length:int) «misc» doit() undoit()... U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 71 Behavioral Patterns> Command Design of a Word Processor supporting Undo and Redo materialize each command as an object with do and undo methods. when the user tells the WP to do something instead of performing the command, it creates a new object using the appropriate constructor (e.g, an InsertStringCommand object) it then calls the object s doit method to execute the command The WP also puts the command object in a data structure that allow the WP to maintain a history of what commands have been executed. This allows the WP to undo commands in the reverse order that they were issued by calling their undo methods. AbstractCommand doit() undoit() InsertStringCommand «constructor» InsertStringCommand(position:Int, length:int) «misc» doit() undoit() DeleteCommand «constructor» DeleteCommand(position:Int, length:int) «misc» doit() undoit() U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 72...

37 Behavioral Patterns> Command Design of a Word Processor supporting Undo and Redo Invoker AbstractCommand 0..* < Manages 1 Command Manager 1 doit() undoit() ConcreteCommand 0..* doit() undoit() public abstract class AbstractCommand{ public final static CommandManager manager =new CommandManager(); public abstract boolean doit(); // returns True if successful public abstract boolean undoit(); } U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 73 Behavioral Patterns> Command Design of a Word Processor supporting Undo and Redo (2) AbstractCommand doit() undoit() InsertStringCommand InsertStringCommand (position:int, length:int) doit() undoit() 0..* < Manages 1 Command Manager class InsertStringCommand extends AbstractCommand{ InsertStringCommand(Document doc, int position, String str){ this.document = document; this.position = position; this.str = str; manager.invokecommand(this); } public boolean doit(){ try{ document.insertstringcommand(position, str); } catch (Exception e){ return false; } return true; } U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 74

38 Behavioral Patterns> Command Design of a Word Processor supporting Undo and Redo (3) AbstractCommand 0..* < Manages 1 Command Manager class CommandManager{ private int maxhistorylength = 20; private LinkedList history = new LinkedList(); private LinkedList redolist = new LinkedList(); public void invokecommand(abstractcommand command){ if (command instanceof Undo){ undo(); return; } if (command instanceof Redo){ redo(); return; } } if (command.doit()) { addtohistory(command); } else { history.clear() } if (redolist.size()>0) redolist.clear(); interface Undo { } interface Redo{ } Private void addtohistory(abstractcommand command){ history.addfirst(command); if (history.size() > maxhistorylength) { history.removelast(); } } U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 75 Behavioral Patterns> Command Design of a Word Processor supporting Undo and Redo (4) Command Manager Private void undo(){ if (history.size() >0) { AbstractCommand undocommand; undocommand = (AbstractCommand) history.removefirst(); undocommand.undoit(); redolist.addfirst(undocommand); } } Private void redo(){ if (redolist.size() >0) { AbstractCommand redocommand; redocommand = (AbstractCommand) redolist.removefirst(); redocommand. doit(); history.addfirst (redocommand); } } U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 76

39 Design Patterns Design patterns is a useful mechanism to document and learn about common reusable design approaches. Design patterns can reduce the designing time for building systems and ensure that the system is consistent and stable in terms of architecture and design. The UML class diagrams provide an easy way to capture and document Design patterns Suppose that you want to specify a software component. If that component could be based on a design pattern you could just mention it and give a small description. You don t necessarily have to redefine the pattern (i.e. provide the detailed class diagram and the various interaction diagrams) Some UML tools support design patterns. They have a pre-built catalog of well-known design patterns. The design patterns can be easily pulled in into your design as templates and then customized for your application design. More on patterns at CS352 - Software Engineering You can also see ( it is a university course dedicated to patterns in Java) U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 77 Reading and References Systems Analysis and Design with UML Version 2.0 (2nd edition) by A. Dennis, B. Haley Wixom, D. Tegarden, Wiley, Chapter 10 Requirements Analysis and System Design (2nd edition) by Leszek A. Maciaszek, Addison Wesley, 2005, Chapter 5 and 6 Inheritance Hierarchies in KR and Programming Languages, Lenzerini, Nardi, Simi, 1991 Patterns in Java, Mark Grand, Wiley, 1998 Using Design Patterns in UML, Mandar Chitnis, Pravin Tiwari, & Lakshmi Ananthamurthy Slides of John Mylopoulos, University of Toronto Αντικειμενοστρεφής Σχεδίαση: UML, Αρχές, Πρότυπα και Ευρετικοί Κανόνες, Α. Χατζηγεωργίου, Κλειδάριθμος 2005 U. of Crete, Information Systems Analysis and Design Yannis Tzitzikas 78

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 5: Component Adaptation Environment (COPE)

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 5: Component Adaptation Environment (COPE) EPL 603 TOPICS IN SOFTWARE ENGINEERING Lab 5: Component Adaptation Environment (COPE) Performing Static Analysis 1 Class Name: The fully qualified name of the specific class Type: The type of the class

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

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

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

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

Introduction to Object-Oriented Analysis and Design

Introduction to Object-Oriented Analysis and Design HY 351: Ανάλυση και Σχεδίαση Πληροφοριακών Συστηµάτων CS 351: Information Systems Analysis and Design Introduction to Object-Oriented Analysis and Design Lecture : 3a Date : 4-11-2005 Yannis Tzitzikas

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

(Διαφάνειες Νίκου Βιδάκη)

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

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Αν κάπου κάνετε κάποιες υποθέσεις να αναφερθούν στη σχετική ερώτηση. Όλα τα αρχεία που αναφέρονται στα προβλήματα βρίσκονται στον ίδιο φάκελο με το εκτελέσιμο

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

2 Composition. Invertible Mappings

2 Composition. Invertible Mappings Arkansas Tech University MATH 4033: Elementary Modern Algebra Dr. Marcel B. Finan Composition. Invertible Mappings In this section we discuss two procedures for creating new mappings from old ones, namely,

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

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

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

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Ολοι οι αριθμοί που αναφέρονται σε όλα τα ερωτήματα είναι μικρότεροι το 1000 εκτός αν ορίζεται διαφορετικά στη διατύπωση του προβλήματος. Διάρκεια: 3,5 ώρες Καλή

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

(C) 2010 Pearson Education, Inc. All rights reserved.

(C) 2010 Pearson Education, Inc. All rights reserved. Connectionless transmission with datagrams. Connection-oriented transmission is like the telephone system You dial and are given a connection to the telephone of fthe person with whom you wish to communicate.

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

Démographie spatiale/spatial Demography

Démographie spatiale/spatial Demography ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ Démographie spatiale/spatial Demography Session 1: Introduction to spatial demography Basic concepts Michail Agorastakis Department of Planning & Regional Development Άδειες Χρήσης

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

Πώς μπορεί κανείς να έχει έναν διερμηνέα κατά την επίσκεψή του στον Οικογενειακό του Γιατρό στο Ίσλινγκτον Getting an interpreter when you visit your

Πώς μπορεί κανείς να έχει έναν διερμηνέα κατά την επίσκεψή του στον Οικογενειακό του Γιατρό στο Ίσλινγκτον Getting an interpreter when you visit your Πώς μπορεί κανείς να έχει έναν διερμηνέα κατά την επίσκεψή του στον Οικογενειακό του Γιατρό στο Ίσλινγκτον Getting an interpreter when you visit your GP practice in Islington Σε όλα τα Ιατρεία Οικογενειακού

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

EE512: Error Control Coding

EE512: Error Control Coding EE512: Error Control Coding Solution for Assignment on Finite Fields February 16, 2007 1. (a) Addition and Multiplication tables for GF (5) and GF (7) are shown in Tables 1 and 2. + 0 1 2 3 4 0 0 1 2 3

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

Test Data Management in Practice

Test Data Management in Practice Problems, Concepts, and the Swisscom Test Data Organizer Do you have issues with your legal and compliance department because test environments contain sensitive data outsourcing partners must not see?

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

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

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

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

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

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

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

Στο εστιατόριο «ToDokimasesPrinToBgaleisStonKosmo?» έξω από τους δακτυλίους του Κρόνου, οι παραγγελίες γίνονται ηλεκτρονικά.

Στο εστιατόριο «ToDokimasesPrinToBgaleisStonKosmo?» έξω από τους δακτυλίους του Κρόνου, οι παραγγελίες γίνονται ηλεκτρονικά. Διαστημικό εστιατόριο του (Μ)ΑστροΈκτορα Στο εστιατόριο «ToDokimasesPrinToBgaleisStonKosmo?» έξω από τους δακτυλίους του Κρόνου, οι παραγγελίες γίνονται ηλεκτρονικά. Μόλις μια παρέα πελατών κάτσει σε ένα

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

4.6 Autoregressive Moving Average Model ARMA(1,1)

4.6 Autoregressive Moving Average Model ARMA(1,1) 84 CHAPTER 4. STATIONARY TS MODELS 4.6 Autoregressive Moving Average Model ARMA(,) This section is an introduction to a wide class of models ARMA(p,q) which we will consider in more detail later in this

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

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων Εξάμηνο 7 ο Oracle SQL Developer An Oracle Database stores and organizes information. Oracle SQL Developer is a tool for accessing and maintaining the data

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

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ Α. Διαβάστε τις ειδήσεις και εν συνεχεία σημειώστε. Οπτική γωνία είδησης 1:.

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ Α.  Διαβάστε τις ειδήσεις και εν συνεχεία σημειώστε. Οπτική γωνία είδησης 1:. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ Α 2 ειδήσεις από ελληνικές εφημερίδες: 1. Τα Νέα, 13-4-2010, Σε ανθρώπινο λάθος αποδίδουν τη συντριβή του αεροσκάφους, http://www.tanea.gr/default.asp?pid=2&artid=4569526&ct=2 2. Τα Νέα,

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

TMA4115 Matematikk 3

TMA4115 Matematikk 3 TMA4115 Matematikk 3 Andrew Stacey Norges Teknisk-Naturvitenskapelige Universitet Trondheim Spring 2010 Lecture 12: Mathematics Marvellous Matrices Andrew Stacey Norges Teknisk-Naturvitenskapelige Universitet

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial Introduction Το Javadoc είναι ένα εργαλείο που παράγει αρχεία html (παρόμοιο με τις σελίδες στη διεύθυνση http://docs.oracle.com/javase/8/docs/api/index.html) από τα σχόλια

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

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

ΑΚΑ ΗΜΙΑ ΕΜΠΟΡΙΚΟΥ ΝΑΥΤΙΚΟΥ ΜΑΚΕ ΟΝΙΑΣ ΣΧΟΛΗ ΜΗΧΑΝΙΚΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΑΚΑ ΗΜΙΑ ΕΜΠΟΡΙΚΟΥ ΝΑΥΤΙΚΟΥ ΜΑΚΕ ΟΝΙΑΣ ΣΧΟΛΗ ΜΗΧΑΝΙΚΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ :ΤΥΠΟΙ ΑΕΡΟΣΥΜΠΙΕΣΤΩΝ ΚΑΙ ΤΡΟΠΟΙ ΛΕΙΤΟΥΡΓΙΑΣ ΣΠΟΥ ΑΣΤΡΙΑ: ΕΥΘΥΜΙΑ ΟΥ ΣΩΣΑΝΝΑ ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ : ΓΟΥΛΟΠΟΥΛΟΣ ΑΘΑΝΑΣΙΟΣ 1 ΑΚΑ

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

Math 6 SL Probability Distributions Practice Test Mark Scheme

Math 6 SL Probability Distributions Practice Test Mark Scheme Math 6 SL Probability Distributions Practice Test Mark Scheme. (a) Note: Award A for vertical line to right of mean, A for shading to right of their vertical line. AA N (b) evidence of recognizing symmetry

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

SOAP API. https://bulksmsn.gr. Table of Contents

SOAP API. https://bulksmsn.gr. Table of Contents SOAP API https://bulksmsn.gr Table of Contents Send SMS...2 Query SMS...3 Multiple Query SMS...4 Credits...5 Save Contact...5 Delete Contact...7 Delete Message...8 Email: sales@bulksmsn.gr, Τηλ: 211 850

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

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

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

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

How to register an account with the Hellenic Community of Sheffield.

How to register an account with the Hellenic Community of Sheffield. How to register an account with the Hellenic Community of Sheffield. (1) EN: Go to address GR: Πηγαίνετε στη διεύθυνση: http://www.helleniccommunityofsheffield.com (2) EN: At the bottom of the page, click

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

Ενότητα 2 Εργαλεία για την αναζήτηση εργασίας: Το Βιογραφικό Σημείωμα

Ενότητα 2 Εργαλεία για την αναζήτηση εργασίας: Το Βιογραφικό Σημείωμα CURRICULUM VITAE Ενότητα 2 Εργαλεία για την αναζήτηση εργασίας: Το Βιογραφικό Σημείωμα 1.What is it? Τι είναι αυτό 2.Chronological example of a CV Χρονολογικό Παράδειγμα Βιογραφικού 3.Steps to send your

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

Κατανεμημένα Συστήματα. Javascript LCR example

Κατανεμημένα Συστήματα. Javascript LCR example Κατανεμημένα Συστήματα Javascript LCR example Javascript JavaScript All JavaScript is the scripting language of the Web. modern HTML pages are using JavaScript to add functionality, validate input, communicate

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

CHAPTER 25 SOLVING EQUATIONS BY ITERATIVE METHODS

CHAPTER 25 SOLVING EQUATIONS BY ITERATIVE METHODS CHAPTER 5 SOLVING EQUATIONS BY ITERATIVE METHODS EXERCISE 104 Page 8 1. Find the positive root of the equation x + 3x 5 = 0, correct to 3 significant figures, using the method of bisection. Let f(x) =

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

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

ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΑΛΛΗΛΟΓΡΑΦΙΑ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑ ΣΤΗΝ ΑΓΓΛΙΚΗ ΓΛΩΣΣΑ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΑΛΛΗΛΟΓΡΑΦΙΑ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑ ΣΤΗΝ ΑΓΓΛΙΚΗ ΓΛΩΣΣΑ Ενότητα 1: Elements of Syntactic Structure Το περιεχόμενο του μαθήματος διατίθεται με άδεια

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

Objectives-Στόχοι: -Helping your Child become a fantastic language learner «Βοηθώντας το παιδί σας να γίνει εξαιρετικό στην εκμάθηση γλωσσών» 6/2/2014

Objectives-Στόχοι: -Helping your Child become a fantastic language learner «Βοηθώντας το παιδί σας να γίνει εξαιρετικό στην εκμάθηση γλωσσών» 6/2/2014 -Helping your Child become a fantastic language learner «Βοηθώντας το παιδί σας να γίνει εξαιρετικό στην εκμάθηση γλωσσών» Dr Caroline Linse Queens University, Belfast, Northern Ireland Objectives-Στόχοι:

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

Εκτεταμένη περίληψη Περίληψη

Εκτεταμένη περίληψη Περίληψη PENED Final Report In the frame of PENED program the research that has been conducted as part of the Hybrid Libraries Project had as an outcome the design of a complex software architecture for mobile

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

Section 1: Listening and responding. Presenter: Niki Farfara MGTAV VCE Seminar 7 August 2016

Section 1: Listening and responding. Presenter: Niki Farfara MGTAV VCE Seminar 7 August 2016 Section 1: Listening and responding Presenter: Niki Farfara MGTAV VCE Seminar 7 August 2016 Section 1: Listening and responding Section 1: Listening and Responding/ Aκουστική εξέταση Στο πρώτο μέρος της

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

Section 9.2 Polar Equations and Graphs

Section 9.2 Polar Equations and Graphs 180 Section 9. Polar Equations and Graphs In this section, we will be graphing polar equations on a polar grid. In the first few examples, we will write the polar equation in rectangular form to help identify

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΜΣ «ΠΡΟΗΓΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΚΗΣ» ΚΑΤΕΥΘΥΝΣΗ «ΕΥΦΥΕΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΕΠΙΚΟΙΝΩΝΙΑΣ ΑΝΘΡΩΠΟΥ - ΥΠΟΛΟΓΙΣΤΗ» ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΜΣ «ΠΡΟΗΓΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΚΗΣ» ΚΑΤΕΥΘΥΝΣΗ «ΕΥΦΥΕΙΣ ΤΕΧΝΟΛΟΓΙΕΣ ΕΠΙΚΟΙΝΩΝΙΑΣ ΑΝΘΡΩΠΟΥ - ΥΠΟΛΟΓΙΣΤΗ» ΜΕΤΑΠΤΥΧΙΑΚΗ ΙΑΤΡΙΒΗ ΤΟΥ ΕΥΘΥΜΙΟΥ ΘΕΜΕΛΗ ΤΙΤΛΟΣ Ανάλυση

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

Δημιουργία Λογαριασμού Διαχείρισης Business Telephony Create a Management Account for Business Telephony

Δημιουργία Λογαριασμού Διαχείρισης Business Telephony Create a Management Account for Business Telephony Δημιουργία Λογαριασμού Διαχείρισης Business Telephony Create a Management Account for Business Telephony Ελληνικά Ι English 1/7 Δημιουργία Λογαριασμού Διαχείρισης Επιχειρηματικής Τηλεφωνίας μέσω της ιστοσελίδας

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

ΚΥΠΡΙΑΚΟΣ ΣΥΝΔΕΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY 21 ος ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δεύτερος Γύρος - 30 Μαρτίου 2011

ΚΥΠΡΙΑΚΟΣ ΣΥΝΔΕΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY 21 ος ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δεύτερος Γύρος - 30 Μαρτίου 2011 Διάρκεια Διαγωνισμού: 3 ώρες Απαντήστε όλες τις ερωτήσεις Μέγιστο Βάρος (20 Μονάδες) Δίνεται ένα σύνολο από N σφαιρίδια τα οποία δεν έχουν όλα το ίδιο βάρος μεταξύ τους και ένα κουτί που αντέχει μέχρι

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

Homework 3 Solutions

Homework 3 Solutions Homework 3 Solutions Igor Yanovsky (Math 151A TA) Problem 1: Compute the absolute error and relative error in approximations of p by p. (Use calculator!) a) p π, p 22/7; b) p π, p 3.141. Solution: For

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

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

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

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

Architecture οf Integrated Ιnformation Systems (ARIS)

Architecture οf Integrated Ιnformation Systems (ARIS) Architecture οf Integrated Ιnformation Systems (ARIS) Η αρχιτεκτονική ARIS (ARchitecture οf Integrated information Systems) έχει ως στόχο της την περιγρφή όλων των όψεων ή οπτικών ενός επιχειρηματικού

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

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

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

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

ίκτυο προστασίας για τα Ελληνικά αγροτικά και οικόσιτα ζώα on.net e-foundatio //www.save itute: http:/ toring Insti SAVE-Monit

ίκτυο προστασίας για τα Ελληνικά αγροτικά και οικόσιτα ζώα on.net e-foundatio //www.save itute: http:/ toring Insti SAVE-Monit How to run a Herdbook: Basics and Basics According to the pedigree scheme, you need to write down the ancestors of your animals. Breeders should be able easily to write down the necessary data It is better

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

Ανάλυση και Σχεδιασμός ΠΣ Σχεδίαση: Σχεδίαση Κλάσεων και Μεθόδων

Ανάλυση και Σχεδιασμός ΠΣ Σχεδίαση: Σχεδίαση Κλάσεων και Μεθόδων Ανάλυση και Σχεδιασμός ΠΣ Σχεδίαση: Σχεδίαση Κλάσεων και Μεθόδων Καθ. Κωνσταντίνος Ταραμπάνης, kat@uom.gr Αν. Καθ. Ευθύμιος Ταμπούρης, tambouris@uom.gr 1 Πρόγραμμα Παραδόσεων 1. Φάσεις ΑΣΠΣ και η Φάση

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

Use Cases: μια σύντομη εισαγωγή. Heavily based on UML & the UP by Arlow and Neustadt, Addison Wesley, 2002

Use Cases: μια σύντομη εισαγωγή. Heavily based on UML & the UP by Arlow and Neustadt, Addison Wesley, 2002 Use Cases: μια σύντομη εισαγωγή Heavily based on UML & the UP by Arlow and Neustadt, Addison Wesley, 2002 (γενικές εισαγωγικές ιδέες) ΣΥΛΛΟΓΗ ΑΠΑΙΤΗΣΕΩΝ 2 Ανάλυση απαιτήσεων Λειτουργικές απαιτήσεις: τι

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Όλοι οι αριθμοί που αναφέρονται σε όλα τα ερωτήματα μικρότεροι του 10000 εκτός αν ορίζεται διαφορετικά στη διατύπωση του προβλήματος. Αν κάπου κάνετε κάποιες υποθέσεις

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

Main source: "Discrete-time systems and computer control" by Α. ΣΚΟΔΡΑΣ ΨΗΦΙΑΚΟΣ ΕΛΕΓΧΟΣ ΔΙΑΛΕΞΗ 4 ΔΙΑΦΑΝΕΙΑ 1

Main source: Discrete-time systems and computer control by Α. ΣΚΟΔΡΑΣ ΨΗΦΙΑΚΟΣ ΕΛΕΓΧΟΣ ΔΙΑΛΕΞΗ 4 ΔΙΑΦΑΝΕΙΑ 1 Main source: "Discrete-time systems and computer control" by Α. ΣΚΟΔΡΑΣ ΨΗΦΙΑΚΟΣ ΕΛΕΓΧΟΣ ΔΙΑΛΕΞΗ 4 ΔΙΑΦΑΝΕΙΑ 1 A Brief History of Sampling Research 1915 - Edmund Taylor Whittaker (1873-1956) devised a

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

ΑΠΟΔΟΤΙΚΗ ΑΠΟΤΙΜΗΣΗ ΕΡΩΤΗΣΕΩΝ OLAP Η ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΕΞΕΙΔΙΚΕΥΣΗΣ. Υποβάλλεται στην

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

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

06 Αντικειμενοστρεφής ανάλυση και σχεδιασμός

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

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

Τι είναι η λογική αρχιτεκτονική

Τι είναι η λογική αρχιτεκτονική Τι είναι η λογική αρχιτεκτονική Η ινγηθή αξρηηεθηνληθή είλαη ε πςεινύ επηπέδνπ αθαίξεζεο νξγάλσζε ηνπ ινγηζκηθνύ ζε θιάζεηο ή παθέηα (ή ρώξνπο νλνκάησλ), ππνζπζηήκαηα, θαη επίπεδα. Ολνκάδεηαη ινγηθή αξρηηεθηνληθή

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

Advanced Subsidiary Unit 1: Understanding and Written Response

Advanced Subsidiary Unit 1: Understanding and Written Response Write your name here Surname Other names Edexcel GE entre Number andidate Number Greek dvanced Subsidiary Unit 1: Understanding and Written Response Thursday 16 May 2013 Morning Time: 2 hours 45 minutes

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

Business English. Ενότητα # 9: Financial Planning. Ευαγγελία Κουτσογιάννη Τμήμα Διοίκησης Επιχειρήσεων

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

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

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων Εξάμηνο 7 ο JDBC JDBC is a set of classes and interfaces written in Java that allows Java programs to send SQL statements to a database like Oracle JDBC

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

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

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΝΟΣΗΛΕΥΤΙΚΗΣ ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΝΟΣΗΛΕΥΤΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΨΥΧΟΛΟΓΙΚΕΣ ΕΠΙΠΤΩΣΕΙΣ ΣΕ ΓΥΝΑΙΚΕΣ ΜΕΤΑ ΑΠΟ ΜΑΣΤΕΚΤΟΜΗ ΓΕΩΡΓΙΑ ΤΡΙΣΟΚΚΑ Λευκωσία 2012 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ

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

Συστήματα Διαχείρισης Βάσεων Δεδομένων

Συστήματα Διαχείρισης Βάσεων Δεδομένων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Συστήματα Διαχείρισης Βάσεων Δεδομένων Φροντιστήριο 9: Transactions - part 1 Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών Tutorial on Undo, Redo and Undo/Redo

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

CRASH COURSE IN PRECALCULUS

CRASH COURSE IN PRECALCULUS CRASH COURSE IN PRECALCULUS Shiah-Sen Wang The graphs are prepared by Chien-Lun Lai Based on : Precalculus: Mathematics for Calculus by J. Stuwart, L. Redin & S. Watson, 6th edition, 01, Brooks/Cole Chapter

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

TaxiCounter Android App. Περδίκης Ανδρέας ME10069

TaxiCounter Android App. Περδίκης Ανδρέας ME10069 TaxiCounter Android App Περδίκης Ανδρέας ME10069 Content Android Operating System Development Tools Taxi Counter Algorithm Design Development Process Android Operating System Android is a Linux-based operating

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

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

ΑΡΦΕ ΑΝΣΙΚΕΙΜΕΝΟΣΡΕΥΟΤ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ. Ιωάννης Φατζηλυγερούδης Αναπληρωτής Καθηγητής Τμήμα Μηχ/κών Η/Υ και Πληροφορικής Πανεπιστήμιο Πατρών ΑΡΦΕ ΑΝΣΙΚΕΙΜΕΝΟΣΡΕΥΟΤ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ Ιωάννης Φατζηλυγερούδης Αναπληρωτής Καθηγητής Τμήμα Μηχ/κών Η/Υ και Πληροφορικής Πανεπιστήμιο Πατρών ΜΟΡΥΕ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ Διαδικασιακός ή Διαδικαστικός (Procedural)

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

Βασίλης Χριστοφίδης Επαναληπτική Εξέταση (3 ώρες) Ηµεροµηνία: 21 Σεπτεµβρίου 2012

Βασίλης Χριστοφίδης Επαναληπτική Εξέταση (3 ώρες) Ηµεροµηνία: 21 Σεπτεµβρίου 2012 Πανεπιστήµιο Κρήτης Τµήµα Επιστήµης Υπολογιστών ΗΥ-252 Αντικειµενοστρεφής Προγραµµατισµός Βασίλης Χριστοφίδης Επαναληπτική Εξέταση (3 ώρες) Ηµεροµηνία: 21 Σεπτεµβρίου 2012 Θέμα 1 Θέμα 2 Θέμα 3 Θέμα 4 Θέμα

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

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΒΑΛΕΝΤΙΝΑ ΠΑΠΑΔΟΠΟΥΛΟΥ Α.Μ.: 09/061. Υπεύθυνος Καθηγητής: Σάββας Μακρίδης

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΒΑΛΕΝΤΙΝΑ ΠΑΠΑΔΟΠΟΥΛΟΥ Α.Μ.: 09/061. Υπεύθυνος Καθηγητής: Σάββας Μακρίδης Α.Τ.Ε.Ι. ΙΟΝΙΩΝ ΝΗΣΩΝ ΠΑΡΑΡΤΗΜΑ ΑΡΓΟΣΤΟΛΙΟΥ ΤΜΗΜΑ ΔΗΜΟΣΙΩΝ ΣΧΕΣΕΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «Η διαμόρφωση επικοινωνιακής στρατηγικής (και των τακτικών ενεργειών) για την ενδυνάμωση της εταιρικής

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

Paper Reference. Paper Reference(s) 1776/04 Edexcel GCSE Modern Greek Paper 4 Writing. Thursday 21 May 2009 Afternoon Time: 1 hour 15 minutes

Paper Reference. Paper Reference(s) 1776/04 Edexcel GCSE Modern Greek Paper 4 Writing. Thursday 21 May 2009 Afternoon Time: 1 hour 15 minutes Centre No. Candidate No. Paper Reference(s) 1776/04 Edexcel GCSE Modern Greek Paper 4 Writing Thursday 21 May 2009 Afternoon Time: 1 hour 15 minutes Materials required for examination Nil Paper Reference

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

ΑΓΓΛΙΚΑ Ι. Ενότητα 7α: Impact of the Internet on Economic Education. Ζωή Κανταρίδου Τμήμα Εφαρμοσμένης Πληροφορικής

ΑΓΓΛΙΚΑ Ι. Ενότητα 7α: Impact of the Internet on Economic Education. Ζωή Κανταρίδου Τμήμα Εφαρμοσμένης Πληροφορικής Ενότητα 7α: Impact of the Internet on Economic Education Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως

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

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

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

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

Potential Dividers. 46 minutes. 46 marks. Page 1 of 11

Potential Dividers. 46 minutes. 46 marks. Page 1 of 11 Potential Dividers 46 minutes 46 marks Page 1 of 11 Q1. In the circuit shown in the figure below, the battery, of negligible internal resistance, has an emf of 30 V. The pd across the lamp is 6.0 V and

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

Code Breaker. TEACHER s NOTES

Code Breaker. TEACHER s NOTES TEACHER s NOTES Time: 50 minutes Learning Outcomes: To relate the genetic code to the assembly of proteins To summarize factors that lead to different types of mutations To distinguish among positive,

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ψηφιακή Οικονομία. Διάλεξη 7η: Consumer Behavior Mαρίνα Μπιτσάκη Τμήμα Επιστήμης Υπολογιστών

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ψηφιακή Οικονομία. Διάλεξη 7η: Consumer Behavior Mαρίνα Μπιτσάκη Τμήμα Επιστήμης Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Ψηφιακή Οικονομία Διάλεξη 7η: Consumer Behavior Mαρίνα Μπιτσάκη Τμήμα Επιστήμης Υπολογιστών Τέλος Ενότητας Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί

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

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ηλεκτρονική Υγεία

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ηλεκτρονική Υγεία Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Ηλεκτρονική Υγεία Ενότητα: Use Case - an example of ereferral workflow Αν. καθηγητής Αγγελίδης Παντελής e-mail: paggelidis@uowm.gr Τμήμα Μηχανικών Πληροφορικής

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

ΑΓΓΛΙΚΗ ΓΛΩΣΣΑ ΣΕ ΕΙΔΙΚΑ ΘΕΜΑΤΑ ΔΙΕΘΝΩΝ ΣΧΕΣΕΩΝ & ΟΙΚΟΝΟΜΙΑΣ

ΑΓΓΛΙΚΗ ΓΛΩΣΣΑ ΣΕ ΕΙΔΙΚΑ ΘΕΜΑΤΑ ΔΙΕΘΝΩΝ ΣΧΕΣΕΩΝ & ΟΙΚΟΝΟΜΙΑΣ ΑΓΓΛΙΚΗ ΓΛΩΣΣΑ ΣΕ ΕΙΔΙΚΑ ΘΕΜΑΤΑ ΔΙΕΘΝΩΝ ΣΧΕΣΕΩΝ & ΟΙΚΟΝΟΜΙΑΣ Ενότητα 1β: Principles of PS Ιφιγένεια Μαχίλη Τμήμα Οικονομικών Επιστημών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

Πανεπιστήµιο Πειραιώς Τµήµα Πληροφορικής

Πανεπιστήµιο Πειραιώς Τµήµα Πληροφορικής oard Πανεπιστήµιο Πειραιώς Τµήµα Πληροφορικής Πρόγραµµα Μεταπτυχιακών Σπουδών «Πληροφορική» Μεταπτυχιακή ιατριβή Τίτλος ιατριβής Masters Thesis Title Ονοµατεπώνυµο Φοιτητή Πατρώνυµο Ανάπτυξη διαδικτυακής

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

Example of the Baum-Welch Algorithm

Example of the Baum-Welch Algorithm Example of the Baum-Welch Algorithm Larry Moss Q520, Spring 2008 1 Our corpus c We start with a very simple corpus. We take the set Y of unanalyzed words to be {ABBA, BAB}, and c to be given by c(abba)

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

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

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 1: Αντικειμενοστραφής Προγραμματισμός Εισαγωγή OBJECT-ORIENTED PROGRAMMING ΔΙΔΑΣΚΟΝΤΕΣ: Iωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ

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

ω ω ω ω ω ω+2 ω ω+2 + ω ω ω ω+2 + ω ω+1 ω ω+2 2 ω ω ω ω ω ω ω ω+1 ω ω2 ω ω2 + ω ω ω2 + ω ω ω ω2 + ω ω+1 ω ω2 + ω ω+1 + ω ω ω ω2 + ω

ω ω ω ω ω ω+2 ω ω+2 + ω ω ω ω+2 + ω ω+1 ω ω+2 2 ω ω ω ω ω ω ω ω+1 ω ω2 ω ω2 + ω ω ω2 + ω ω ω ω2 + ω ω+1 ω ω2 + ω ω+1 + ω ω ω ω2 + ω 0 1 2 3 4 5 6 ω ω + 1 ω + 2 ω + 3 ω + 4 ω2 ω2 + 1 ω2 + 2 ω2 + 3 ω3 ω3 + 1 ω3 + 2 ω4 ω4 + 1 ω5 ω 2 ω 2 + 1 ω 2 + 2 ω 2 + ω ω 2 + ω + 1 ω 2 + ω2 ω 2 2 ω 2 2 + 1 ω 2 2 + ω ω 2 3 ω 3 ω 3 + 1 ω 3 + ω ω 3 +

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

Τ.Ε.Ι. ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΠΑΡΑΡΤΗΜΑ ΚΑΣΤΟΡΙΑΣ ΤΜΗΜΑ ΔΗΜΟΣΙΩΝ ΣΧΕΣΕΩΝ & ΕΠΙΚΟΙΝΩΝΙΑΣ

Τ.Ε.Ι. ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΠΑΡΑΡΤΗΜΑ ΚΑΣΤΟΡΙΑΣ ΤΜΗΜΑ ΔΗΜΟΣΙΩΝ ΣΧΕΣΕΩΝ & ΕΠΙΚΟΙΝΩΝΙΑΣ Τ.Ε.Ι. ΔΥΤΙΚΗΣ ΜΑΚΕΔΟΝΙΑΣ ΠΑΡΑΡΤΗΜΑ ΚΑΣΤΟΡΙΑΣ ΤΜΗΜΑ ΔΗΜΟΣΙΩΝ ΣΧΕΣΕΩΝ & ΕΠΙΚΟΙΝΩΝΙΑΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Η προβολή επιστημονικών θεμάτων από τα ελληνικά ΜΜΕ : Η κάλυψή τους στον ελληνικό ημερήσιο τύπο Σαραλιώτου

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

Συντακτικές λειτουργίες

Συντακτικές λειτουργίες 2 Συντακτικές λειτουργίες (Syntactic functions) A. Πτώσεις και συντακτικές λειτουργίες (Cases and syntactic functions) The subject can be identified by asking ποιος (who) or τι (what) the sentence is about.

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

Case 1: Original version of a bill available in only one language.

Case 1: Original version of a bill available in only one language. currentid originalid attributes currentid attribute is used to identify an element and must be unique inside the document. originalid is used to mark the identifier that the structure used to have in the

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

Η λέξη κλειδί this. Γαβαλάς Δαμιανός dgavalas@aegean.gr

Η λέξη κλειδί this. Γαβαλάς Δαμιανός dgavalas@aegean.gr Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #6 η : Η λέξη κλειδί this, υπερφόρτωση μεθόδων, κληρονομικότητα, πολυμορφισμός, υπερκάλυψη, επίπεδα προσπέλασης Γαβαλάς Δαμιανός dgavalas@aegean.gr

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΝΑΥΤΙΛΙΑΚΩΝ ΣΠΟΥΔΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΣΤΗΝ ΝΑΥΤΙΛΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΝΑΥΤΙΛΙΑΚΩΝ ΣΠΟΥΔΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΣΤΗΝ ΝΑΥΤΙΛΙΑ ΝΟΜΙΚΟ ΚΑΙ ΘΕΣΜΙΚΟ ΦΟΡΟΛΟΓΙΚΟ ΠΛΑΙΣΙΟ ΚΤΗΣΗΣ ΚΑΙ ΕΚΜΕΤΑΛΛΕΥΣΗΣ ΠΛΟΙΟΥ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ που υποβλήθηκε στο

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

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

ΠΑΝΔΠΙΣΗΜΙΟ ΜΑΚΔΓΟΝΙΑ ΠΡΟΓΡΑΜΜΑ ΜΔΣΑΠΣΤΥΙΑΚΧΝ ΠΟΤΓΧΝ ΣΜΗΜΑΣΟ ΔΦΑΡΜΟΜΔΝΗ ΠΛΗΡΟΦΟΡΙΚΗ ΠΑΝΔΠΙΣΗΜΙΟ ΜΑΚΔΓΟΝΙΑ ΠΡΟΓΡΑΜΜΑ ΜΔΣΑΠΣΤΥΙΑΚΧΝ ΠΟΤΓΧΝ ΣΜΗΜΑΣΟ ΔΦΑΡΜΟΜΔΝΗ ΠΛΗΡΟΦΟΡΙΚΗ ΑΝΑΠΣΤΞΗ ΓΤΝΑΜΙΚΗ ΙΣΟΔΛΙΓΑ ΓΙΑ ΣΟ ΓΔΝΙΚΟ ΚΑΣΑΣΗΜΑ ΚΡΑΣΗΗ ΓΡΔΒΔΝΧΝ ΜΔ ΣΗ ΒΟΗΘΔΙΑ PHP MYSQL Γηπισκαηηθή Δξγαζία ηνπ Υξήζηνπ

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

class object Database Database Item Item [sub-typing and polymorphism] MusicCD Video MusicCD Video

class object Database Database Item Item [sub-typing and polymorphism] MusicCD Video MusicCD Video ιάγραµµα κλάσεων [Class diagram] Εβδοµάδα 2: Υπο-τύποι και πολυµορφισµός [sub-typing and polymorphism] Database Music Σχεδίαση-Ανάπτυξη Εφαρµογών Πληροφορικής Αντώνιος Συµβώνης, ΕΜΠ, Slide 1 Σχεδίαση-Ανάπτυξη

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

ΓΗΠΛΧΜΑΣΗΚΖ ΔΡΓΑΗΑ ΑΡΥΗΣΔΚΣΟΝΗΚΖ ΣΧΝ ΓΔΦΤΡΧΝ ΑΠΟ ΑΠΟΦΖ ΜΟΡΦΟΛΟΓΗΑ ΚΑΗ ΑΗΘΖΣΗΚΖ

ΓΗΠΛΧΜΑΣΗΚΖ ΔΡΓΑΗΑ ΑΡΥΗΣΔΚΣΟΝΗΚΖ ΣΧΝ ΓΔΦΤΡΧΝ ΑΠΟ ΑΠΟΦΖ ΜΟΡΦΟΛΟΓΗΑ ΚΑΗ ΑΗΘΖΣΗΚΖ ΔΘΝΗΚΟ ΜΔΣΟΒΗΟ ΠΟΛΤΣΔΥΝΔΗΟ ΥΟΛΖ ΠΟΛΗΣΗΚΧΝ ΜΖΥΑΝΗΚΧΝ ΣΟΜΔΑ ΓΟΜΟΣΑΣΗΚΖ ΓΗΠΛΧΜΑΣΗΚΖ ΔΡΓΑΗΑ ΑΡΥΗΣΔΚΣΟΝΗΚΖ ΣΧΝ ΓΔΦΤΡΧΝ ΑΠΟ ΑΠΟΦΖ ΜΟΡΦΟΛΟΓΗΑ ΚΑΗ ΑΗΘΖΣΗΚΖ ΔΤΘΤΜΗΑ ΝΗΚ. ΚΟΤΚΗΟΤ 01104766 ΔΠΗΒΛΔΠΧΝ:ΑΝ.ΚΑΘΖΓΖΣΖ ΗΧΑΝΝΖ

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

ΕΙΣΑΓΩΓΗ ΣΤΗ ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ

ΕΙΣΑΓΩΓΗ ΣΤΗ ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΕΙΣΑΓΩΓΗ ΣΤΗ ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΕΛΕΝΑ ΦΛΟΚΑ Επίκουρος Καθηγήτρια Τµήµα Φυσικής, Τοµέας Φυσικής Περιβάλλοντος- Μετεωρολογίας ΓΕΝΙΚΟΙ ΟΡΙΣΜΟΙ Πληθυσµός Σύνολο ατόµων ή αντικειµένων στα οποία αναφέρονται

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

LESSON 14 (ΜΑΘΗΜΑ ΔΕΚΑΤΕΣΣΕΡΑ) REF : 202/057/34-ADV. 18 February 2014

LESSON 14 (ΜΑΘΗΜΑ ΔΕΚΑΤΕΣΣΕΡΑ) REF : 202/057/34-ADV. 18 February 2014 LESSON 14 (ΜΑΘΗΜΑ ΔΕΚΑΤΕΣΣΕΡΑ) REF : 202/057/34-ADV 18 February 2014 Slowly/quietly Clear/clearly Clean Quickly/quick/fast Hurry (in a hurry) Driver Attention/caution/notice/care Dance Σιγά Καθαρά Καθαρός/η/ο

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

Τμήμα Πολιτικών και Δομικών Έργων

Τμήμα Πολιτικών και Δομικών Έργων Τμήμα Πολιτικών και Δομικών Έργων Πτυχιακή Εργασία: Τοπογραφικό διάγραμμα σε ηλεκτρονική μορφή κεντρικού λιμένα Κέρκυρας και κτιρίου νέου επιβατικού σταθμού σε τρισδιάστατη μορφή και σχεδίαση με AutoCAD

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

Η αλληλεπίδραση ανάμεσα στην καθημερινή γλώσσα και την επιστημονική ορολογία: παράδειγμα από το πεδίο της Κοσμολογίας

Η αλληλεπίδραση ανάμεσα στην καθημερινή γλώσσα και την επιστημονική ορολογία: παράδειγμα από το πεδίο της Κοσμολογίας Η αλληλεπίδραση ανάμεσα στην καθημερινή γλώσσα και την επιστημονική ορολογία: παράδειγμα από το πεδίο της Κοσμολογίας ΠΕΡΙΛΗΨΗ Αριστείδης Κοσιονίδης Η κατανόηση των εννοιών ενός επιστημονικού πεδίου απαιτεί

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

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής Να γραφεί πρόγραμμα το οποίο δέχεται ως είσοδο μια ακολουθία S από n (n 40) ακέραιους αριθμούς και επιστρέφει ως έξοδο δύο ακολουθίες από θετικούς ακέραιους

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

Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής - Εβδομάδα 1

Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής - Εβδομάδα 1 Στόχοι Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής (Αντικειμενοστρεφής Προγραμματισμός) Αντώνιος Συμβώνης www.math.ntua.gr/~symvonis Καλή γνώση βασικών αρχών προγραμματισμού Καλή γνώση βασικών αρχών αντικειμενοστρεφή

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

Chapter 2 * * * * * * * Introduction to Verbs * * * * * * *

Chapter 2 * * * * * * * Introduction to Verbs * * * * * * * Chapter 2 * * * * * * * Introduction to Verbs * * * * * * * In the first chapter, we practiced the skill of reading Greek words. Now we want to try to understand some parts of what we read. There are a

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

Επιβλέπουσα Καθηγήτρια: ΣΟΦΙΑ ΑΡΑΒΟΥ ΠΑΠΑΔΑΤΟΥ

Επιβλέπουσα Καθηγήτρια: ΣΟΦΙΑ ΑΡΑΒΟΥ ΠΑΠΑΔΑΤΟΥ EΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΕΚΠΑΙΔΕΥΤΙΚΟ ΤΕΧΝΟΛΟΓΙΚΟ ΙΔΡΥΜΑ ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΤΜΗΜΑ ΔΗΜΟΣΙΩΝ ΣΧΕΣΕΩΝ & ΕΠΙΚΟΙΝΩΝΙΑΣ Ταχ. Δ/νση : Λεωφ. Αντ.Τρίτση, Αργοστόλι Κεφαλληνίας Τ.Κ. 28 100 τηλ. : 26710-27311 fax : 26710-27312

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

FSM Toolkit Exercises

FSM Toolkit Exercises ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ Τμήμα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Τομέας Τηλεπικοινωνιών Αναπληρωτής Καθηγητής: Αλέξανδρος Ποταμιάνος Ονοματεπώνυμο: Α Μ : ΗΜΕΡΟΜΗΝΙΑ: ΤΗΛ 413 : Συστήματα Επικοινωνίας

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

Αλγόριθμοι και πολυπλοκότητα NP-Completeness (2)

Αλγόριθμοι και πολυπλοκότητα NP-Completeness (2) ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα NP-Completeness (2) Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών NP-Completeness (2) x 1 x 1 x 2 x 2 x 3 x 3 x 4 x 4 12 22 32 11 13 21

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

6.3 Forecasting ARMA processes

6.3 Forecasting ARMA processes 122 CHAPTER 6. ARMA MODELS 6.3 Forecasting ARMA processes The purpose of forecasting is to predict future values of a TS based on the data collected to the present. In this section we will discuss a linear

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

Μέθοδοι μοντελοποίησης

Μέθοδοι μοντελοποίησης Μέθοδοι μοντελοποίησης Ευθύμιος Ταμπούρης tambouris@uom.gr Περιεχόμενα Ο ρόλος των μοντέλων Διαγράμματα Δραστηριοτήτων Διαγράμματα Περιπτώσεων Χρήσης Διαγράμματα Κλάσεων Διαγράμματα Ακολουθίας Διαγράμματα

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

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 11/3/2006

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 11/3/2006 ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 11/3/26 Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Ολοι οι αριθμοί που αναφέρονται σε όλα τα ερωτήματα μικρότεροι το 1 εκτός αν ορίζεται διαφορετικά στη διατύπωση

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

Διάλεξη 16-17: Πολυμορφισμός (Polymorphism) Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 16-17: Πολυμορφισμός (Polymorphism) Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 16-17: Πολυμορφισμός (Polymorphism) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Υπερφόρτωση (Overloading), Μεθόδων (Method Overloading), Τελεστών (Operator Overloading (C++, C#))

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

Σύνθεση και Κληρονομικότητα

Σύνθεση και Κληρονομικότητα Σύνθεση και Κληρονομικότητα Σύνθεση (composition) Κληρονομικότητα (inheritance) Υπερφόρτωση κληρονομημένων μελών Εικονικές συναρτήσεις και Πολυμορφισμός Αφηρημένες (abstract) βασικές κλάσεις 1 Σύνθεση

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

Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: OSPF Cost

Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: OSPF Cost Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: OSPF Cost Πανεπιστήμιο Πελοποννήσου Τμήμα Επιστήμης & Τεχνολογίας Τηλεπικοινωνιών Ευάγγελος Α. Κοσμάτος Basic OSPF Configuration Υλοποίηση Δικτυακών Υποδομών

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

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΡΗΤΗΣ. Σχολή Τεχνολογικών Εφαρμογών Τμήμα Εφαρμοσμένης Πληροφορικής & Πολυμέσων

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΡΗΤΗΣ. Σχολή Τεχνολογικών Εφαρμογών Τμήμα Εφαρμοσμένης Πληροφορικής & Πολυμέσων ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΡΗΤΗΣ Σχολή Τεχνολογικών Εφαρμογών Τμήμα Εφαρμοσμένης Πληροφορικής & Πολυμέσων Πτυχιακή Εργασία Εξερεύνηση / Ανασκαφή σε μεγάλης κλίμακας κοινοτικά δίκτυα του διαδικτύου:

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

Physical DB Design. B-Trees Index files can become quite large for large main files Indices on index files are possible.

Physical DB Design. B-Trees Index files can become quite large for large main files Indices on index files are possible. B-Trees Index files can become quite large for large main files Indices on index files are possible 3 rd -level index 2 nd -level index 1 st -level index Main file 1 The 1 st -level index consists of pairs

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

Chapter 29. Adjectival Participle

Chapter 29. Adjectival Participle Chapter 29 Adjectival Participle Overview (29.3-5) Definition: Verbal adjective Function: they may function adverbially or adjectivally Forms: No new forms because adverbial and adjectival participles

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

ΣΗΜΑΝΤΙΚΗ ΑΝΑΚΟΙΝΩΣΗ ΓΙΑ ΤΗΝ ΔΙΕΘΝΗ ΕΚΘΕΣΗ VEHICLE AND ON-VEHICLE EQUIPMENTS FAIR

ΣΗΜΑΝΤΙΚΗ ΑΝΑΚΟΙΝΩΣΗ ΓΙΑ ΤΗΝ ΔΙΕΘΝΗ ΕΚΘΕΣΗ VEHICLE AND ON-VEHICLE EQUIPMENTS FAIR From: Turkish Embassy - Office Of Commercial Counsellor [mailto:dtati@otenet.gr] Sent: Tuesday, April 12, 2011 1:17 PM To: Turkish Embassy - Office Of Commercial Counsellor Subject: FAIR ANNOUNCEMENT AND

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