Σχεδίαση Κλάσεων και Μεθόδων (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 ( 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) Τι είναι αντικείμενο?

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

The Simply Typed Lambda Calculus

The Simply Typed Lambda Calculus Type Inference Instead of writing type annotations, can we use an algorithm to infer what the type annotations should be? That depends on the type system. For simple type systems the answer is yes, and

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

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) Τι είναι αντικείμενο? Ανάλυση αντικειμένων Πραγματικά αντικείμενα Καταστάσεις Συμπεριφορές Αντικείμενα στον προγραμματισμό

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

Dynamic types, Lambda calculus machines Section and Practice Problems Apr 21 22, 2016

Dynamic types, Lambda calculus machines Section and Practice Problems Apr 21 22, 2016 Harvard School of Engineering and Applied Sciences CS 152: Programming Languages Dynamic types, Lambda calculus machines Apr 21 22, 2016 1 Dynamic types and contracts (a) To make sure you understand the

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

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

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

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

Instruction Execution Times

Instruction Execution Times 1 C Execution Times InThisAppendix... Introduction DL330 Execution Times DL330P Execution Times DL340 Execution Times C-2 Execution Times Introduction Data Registers This appendix contains several tables

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

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

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων Εξάμηνο 7 ο Procedures and Functions Stored procedures and functions are named blocks of code that enable you to group and organize a series of SQL and PL/SQL

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

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.

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

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 12: Συνοπτική Παρουσίαση Ανάπτυξης Κώδικα με το Matlab Σαμαράς Νικόλαος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

Block Ciphers Modes. Ramki Thurimella

Block Ciphers Modes. Ramki Thurimella Block Ciphers Modes Ramki Thurimella Only Encryption I.e. messages could be modified Should not assume that nonsensical messages do no harm Always must be combined with authentication 2 Padding Must be

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

derivation of the Laplacian from rectangular to spherical coordinates

derivation of the Laplacian from rectangular to spherical coordinates derivation of the Laplacian from rectangular to spherical coordinates swapnizzle 03-03- :5:43 We begin by recognizing the familiar conversion from rectangular to spherical coordinates (note that φ is used

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

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

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

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

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

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

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?

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

Every set of first-order formulas is equivalent to an independent set

Every set of first-order formulas is equivalent to an independent set Every set of first-order formulas is equivalent to an independent set May 6, 2008 Abstract A set of first-order formulas, whatever the cardinality of the set of symbols, is equivalent to an independent

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

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

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

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

Overview. Transition Semantics. Configurations and the transition relation. Executions and computation

Overview. Transition Semantics. Configurations and the transition relation. Executions and computation Overview Transition Semantics Configurations and the transition relation Executions and computation Inference rules for small-step structural operational semantics for the simple imperative language Transition

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

Στο εστιατόριο «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

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

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

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

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

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

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

Lecture 2. Soundness and completeness of propositional logic

Lecture 2. Soundness and completeness of propositional logic Lecture 2 Soundness and completeness of propositional logic February 9, 2004 1 Overview Review of natural deduction. Soundness and completeness. Semantics of propositional formulas. Soundness proof. Completeness

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

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

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

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

HOMEWORK 4 = G. In order to plot the stress versus the stretch we define a normalized stretch:

HOMEWORK 4 = G. In order to plot the stress versus the stretch we define a normalized stretch: HOMEWORK 4 Problem a For the fast loading case, we want to derive the relationship between P zz and λ z. We know that the nominal stress is expressed as: P zz = ψ λ z where λ z = λ λ z. Therefore, applying

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

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

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

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

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

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

Other Test Constructions: Likelihood Ratio & Bayes Tests

Other Test Constructions: Likelihood Ratio & Bayes Tests Other Test Constructions: Likelihood Ratio & Bayes Tests Side-Note: So far we have seen a few approaches for creating tests such as Neyman-Pearson Lemma ( most powerful tests of H 0 : θ = θ 0 vs H 1 :

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

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 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 ΑΚΑ

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

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) =

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

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

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

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

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

2016 IEEE/ACM International Conference on Mobile Software Engineering and Systems

2016 IEEE/ACM International Conference on Mobile Software Engineering and Systems 2016 IEEE/ACM International Conference on Mobile Software Engineering and Systems Multiple User Interfaces MobileSoft'16, Multi-User Experience (MUX) S1: Insourcing S2: Outsourcing S3: Responsive design

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

the total number of electrons passing through the lamp.

the total number of electrons passing through the lamp. 1. A 12 V 36 W lamp is lit to normal brightness using a 12 V car battery of negligible internal resistance. The lamp is switched on for one hour (3600 s). For the time of 1 hour, calculate (i) the energy

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

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

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

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

PARTIAL NOTES for 6.1 Trigonometric Identities

PARTIAL NOTES for 6.1 Trigonometric Identities PARTIAL NOTES for 6.1 Trigonometric Identities tanθ = sinθ cosθ cotθ = cosθ sinθ BASIC IDENTITIES cscθ = 1 sinθ secθ = 1 cosθ cotθ = 1 tanθ PYTHAGOREAN IDENTITIES sin θ + cos θ =1 tan θ +1= sec θ 1 + cot

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

Προσομοίωση BP με το Bizagi Modeler

Προσομοίωση BP με το Bizagi Modeler Προσομοίωση BP με το Bizagi Modeler Α. Τσαλγατίδου - Γ.-Δ. Κάπος Πρόγραμμα Μεταπτυχιακών Σπουδών Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών 2017-2018 BPMN Simulation with Bizagi Modeler: 4 Levels

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

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

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

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κουστική εξέταση Στο πρώτο μέρος της

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

C.S. 430 Assignment 6, Sample Solutions

C.S. 430 Assignment 6, Sample Solutions C.S. 430 Assignment 6, Sample Solutions Paul Liu November 15, 2007 Note that these are sample solutions only; in many cases there were many acceptable answers. 1 Reynolds Problem 10.1 1.1 Normal-order

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 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: Elements of Syntactic Structure Το περιεχόμενο του μαθήματος διατίθεται με άδεια

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

Κατανεμημένα Συστήματα. 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

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

3.4 SUM AND DIFFERENCE FORMULAS. NOTE: cos(α+β) cos α + cos β cos(α-β) cos α -cos β

3.4 SUM AND DIFFERENCE FORMULAS. NOTE: cos(α+β) cos α + cos β cos(α-β) cos α -cos β 3.4 SUM AND DIFFERENCE FORMULAS Page Theorem cos(αβ cos α cos β -sin α cos(α-β cos α cos β sin α NOTE: cos(αβ cos α cos β cos(α-β cos α -cos β Proof of cos(α-β cos α cos β sin α Let s use a unit circle

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

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

Εκτεταμένη περίληψη Περίληψη 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

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

Lecture 2: Dirac notation and a review of linear algebra Read Sakurai chapter 1, Baym chatper 3

Lecture 2: Dirac notation and a review of linear algebra Read Sakurai chapter 1, Baym chatper 3 Lecture 2: Dirac notation and a review of linear algebra Read Sakurai chapter 1, Baym chatper 3 1 State vector space and the dual space Space of wavefunctions The space of wavefunctions is the set of all

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

Section 7.6 Double and Half Angle Formulas

Section 7.6 Double and Half Angle Formulas 09 Section 7. Double and Half Angle Fmulas To derive the double-angles fmulas, we will use the sum of two angles fmulas that we developed in the last section. We will let α θ and β θ: cos(θ) cos(θ + θ)

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

Phys460.nb Solution for the t-dependent Schrodinger s equation How did we find the solution? (not required)

Phys460.nb Solution for the t-dependent Schrodinger s equation How did we find the solution? (not required) Phys460.nb 81 ψ n (t) is still the (same) eigenstate of H But for tdependent H. The answer is NO. 5.5.5. Solution for the tdependent Schrodinger s equation If we assume that at time t 0, the electron starts

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

Concrete Mathematics Exercises from 30 September 2016

Concrete Mathematics Exercises from 30 September 2016 Concrete Mathematics Exercises from 30 September 2016 Silvio Capobianco Exercise 1.7 Let H(n) = J(n + 1) J(n). Equation (1.8) tells us that H(2n) = 2, and H(2n+1) = J(2n+2) J(2n+1) = (2J(n+1) 1) (2J(n)+1)

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

Section 8.3 Trigonometric Equations

Section 8.3 Trigonometric Equations 99 Section 8. Trigonometric Equations Objective 1: Solve Equations Involving One Trigonometric Function. In this section and the next, we will exple how to solving equations involving trigonometric functions.

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

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

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

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

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-Στόχοι:

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

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

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

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

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

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

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

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

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

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

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

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

Δημιουργία Λογαριασμού Διαχείρισης 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 Δημιουργία Λογαριασμού Διαχείρισης Επιχειρηματικής Τηλεφωνίας μέσω της ιστοσελίδας

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

ίκτυο προστασίας για τα Ελληνικά αγροτικά και οικόσιτα ζώα 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

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

Architecture οf Integrated Ιnformation Systems (ARIS)

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

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

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

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

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

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

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

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

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

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

Example Sheet 3 Solutions

Example Sheet 3 Solutions Example Sheet 3 Solutions. i Regular Sturm-Liouville. ii Singular Sturm-Liouville mixed boundary conditions. iii Not Sturm-Liouville ODE is not in Sturm-Liouville form. iv Regular Sturm-Liouville note

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

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

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

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

Assalamu `alaikum wr. wb.

Assalamu `alaikum wr. wb. LUMP SUM Assalamu `alaikum wr. wb. LUMP SUM Wassalamu alaikum wr. wb. Assalamu `alaikum wr. wb. LUMP SUM Wassalamu alaikum wr. wb. LUMP SUM Lump sum lump sum lump sum. lump sum fixed price lump sum lump

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

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

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

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 Ανάλυση απαιτήσεων Λειτουργικές απαιτήσεις: τι

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

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

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

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

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

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

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

Χρειάζεται να φέρω μαζί μου τα πρωτότυπα έγγραφα ή τα αντίγραφα; Asking if you need to provide the original documents or copies Ποια είναι τα κριτήρια

Χρειάζεται να φέρω μαζί μου τα πρωτότυπα έγγραφα ή τα αντίγραφα; Asking if you need to provide the original documents or copies Ποια είναι τα κριτήρια - University Θα ήθελα να εγγραφώ σε πανεπιστήμιο. Stating that you want to enroll Θα ήθελα να γραφτώ για. Stating that you want to apply for a course ένα προπτυχιακό ένα μεταπτυχιακό ένα διδακτορικό πλήρους

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

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

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

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

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

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

5.4 The Poisson Distribution.

5.4 The Poisson Distribution. The worst thing you can do about a situation is nothing. Sr. O Shea Jackson 5.4 The Poisson Distribution. Description of the Poisson Distribution Discrete probability distribution. The random variable

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

Mean bond enthalpy Standard enthalpy of formation Bond N H N N N N H O O O

Mean bond enthalpy Standard enthalpy of formation Bond N H N N N N H O O O Q1. (a) Explain the meaning of the terms mean bond enthalpy and standard enthalpy of formation. Mean bond enthalpy... Standard enthalpy of formation... (5) (b) Some mean bond enthalpies are given below.

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

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

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

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

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

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

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

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

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

The challenges of non-stable predicates

The challenges of non-stable predicates The challenges of non-stable predicates Consider a non-stable predicate Φ encoding, say, a safety property. We want to determine whether Φ holds for our program. The challenges of non-stable predicates

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

Οδηγίες Αγοράς Ηλεκτρονικού Βιβλίου Instructions for Buying an ebook

Οδηγίες Αγοράς Ηλεκτρονικού Βιβλίου Instructions for Buying an ebook Οδηγίες Αγοράς Ηλεκτρονικού Βιβλίου Instructions for Buying an ebook Βήμα 1: Step 1: Βρείτε το βιβλίο που θα θέλατε να αγοράσετε και πατήστε Add to Cart, για να το προσθέσετε στο καλάθι σας. Αυτόματα θα

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

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

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

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

Εισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #12 Διάγραμμα κλάσεων [Class diagram] Διάλεξη #12: Υπο-τύποι και πολυμορφισμός [sub-typing and polymorphism] Database Music Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή

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

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

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

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

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

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

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

Chapter 6: Systems of Linear Differential. be continuous functions on the interval

Chapter 6: Systems of Linear Differential. be continuous functions on the interval Chapter 6: Systems of Linear Differential Equations Let a (t), a 2 (t),..., a nn (t), b (t), b 2 (t),..., b n (t) be continuous functions on the interval I. The system of n first-order differential equations

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

Statistical Inference I Locally most powerful tests

Statistical Inference I Locally most powerful tests Statistical Inference I Locally most powerful tests Shirsendu Mukherjee Department of Statistics, Asutosh College, Kolkata, India. shirsendu st@yahoo.co.in So far we have treated the testing of one-sided

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

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α: 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 Μέθοδοι Στα πρώτα στάδια της γράφουµε µόνο τα ονόµατα των µεθόδων Γράφουµε τις

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

ΚΒΑΝΤΙΚΟΙ ΥΠΟΛΟΓΙΣΤΕΣ

ΚΒΑΝΤΙΚΟΙ ΥΠΟΛΟΓΙΣΤΕΣ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε. ΚΒΑΝΤΙΚΟΙ ΥΠΟΛΟΓΙΣΤΕΣ Πτυχιακή Εργασία Φοιτητής: ΜIΧΑΗΛ ΖΑΓΟΡΙΑΝΑΚΟΣ ΑΜ: 38133 Επιβλέπων Καθηγητής Καθηγητής Ε.

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

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

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

About these lecture notes. Simply Typed λ-calculus. Types

About these lecture notes. Simply Typed λ-calculus. Types About these lecture notes Simply Typed λ-calculus Akim Demaille akim@lrde.epita.fr EPITA École Pour l Informatique et les Techniques Avancées Many of these slides are largely inspired from Andrew D. Ker

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