Ποιότητα Λογισμικού. Μετρικές Αντικειμενοστραφούς Σχεδίασης

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

Download "Ποιότητα Λογισμικού. Μετρικές Αντικειμενοστραφούς Σχεδίασης"

Transcript

1 Ποιότητα Λογισμικού Μετρικές Αντικειμενοστραφούς Σχεδίασης 1

2 Η Μέτρηση στην ζωή μας Οι μετρήσεις βρίσκονται στην καρδιά πολλών συστημάτων που επηρεάζουν σημαντικά την ζωή μας Οικονομικά (τιμές, πληθωρισμός, χρηματιστηριακοί δείκτες) Ραντάρ (ανίχνευση στόχων) Ιατρικά (χοληστερίνη, σάκχαρο, δείκτες αίματος), βοηθούν στη διάγνωση παθήσεων/ασθενειών Ατμοσφαιρικά (δείκτες ρύπανσης, καιρικών συνθηκών) Βιομηχανία αυτοκινήτων (ιπποδύναμη,κατανάλωση, αποστάσεις, «συμπεριφορά») Εξετάζονται διαρκώς σε αγώνες αυτοκινήτων Δίχως μετρήσεις είναι αδύνατον να λειτουργήσει η τεχνολογία 2

3 Ποιότητα Λογισμικού ISO / IEC 9126 Functionality Reliability Usability Efficiency Maintainability Portability 3

4 Τι είναι η μέτρηση "Measurement is the process by which numbers or symbols are assigned to attributes of entities in the real world in such a way as to describe them according to clearly defined rules." [Norman Fenton] Μέτρηση ονομάζεται η διαδικασία κατά την οποία οι αριθμοί και τα σύμβολα συνδέονται με ιδιότητες οντοτήτων του πραγματικού κόσμου έτσι ώστε να τα περιγράφουν σύμφωνα με αυστηρά καθορισμένους κανόνες 4

5 Μετρικές Λογισμικού (1/6) "You cannot control what you cannot measure [Τοm De Marco] ''The degree to which you can express something in numbers is the degree to which you really understand it.' [Lord Kelvin] Για την παρακολούθηση, διαχείριση, ποιοτική μελέτη και βελτίωση ΟΠΟΙΟΥΔΗΠΟΤΕ τεχνικού έργου είναι απαραίτητη η έννοια της μέτρησης Η εξαγωγή μέτρων είναι υποκειμενική (π.χ. αξιολόγηση ελκυστικότητας αυτοκινήτου, πολυπλοκότητας λογισμικού) 5

6 Μετρικές Λογισμικού (2/6) Μέτρο: Ποσοτική ένδειξη αριθμού, διαστάσεων, χωρητικότητας, όγκου κτλ προϊόντος ή διαδικασίας Μέτρηση: Διαδικασία υπολογισμού του μέτρου Μετρική: Ποσοτική εκτίμηση του βαθμού κατά τον οποίο ένα σύστημα κατέχει ένα χαρακτηριστικό Αριθμός λαθών σε ένα πρόγραμμα = Μέτρο Συλλογή και καταμέτρηση λαθών = Μέτρηση Συσχετισμός λαθών με κάποιο χαρακτηριστικό, π.χ. ποιότητα (πάνω από 100 λάθη -> κακή ποιότητα, κάτω από 10 λάθη => καλή ποιότητα) = Μετρική 6

7 Μετρικές Λογισμικού (3/6) Μία διαδικασία μέτρησης περιλαμβάνει τις δραστηριότητες: Διατύπωση (Καθορισμός μετρικών) Συλλογή (Συγκέντρωση δεδομένων) Ανάλυση (Υπολογισμός μετρικών) Ερμηνεία (Αξιολόγηση μετρικών) Ανάδραση (Συστάσεις για βελτίωση) 7

8 Μετρικές Λογισμικού (4/6) Αρχές Διατύπωσης Μετρικών: Οι στόχοι των μετρήσεων πρέπει να καθοριστούν πριν από τη συλλογή δεδομένων Σαφής ορισμός των μετρικών Χρήση μετρικών προσαρμοσμένων στα προϊόντα και τις διαδικασίες Αρχές Συλλογής & Ανάλυσης Μετρικών Όπου είναι δυνατό η συλλογή και ανάλυση θα πρέπει να αυτοματοποιείται Χρήση αξιόπιστων στατιστικών τεχνικών για διερεύνηση εσωτερικών και εξωτερικών χαρακτηριστικών (π.χ. συσχετισμός πολυπλοκότητας και αριθμού λαθών) Για κάθε μετρική θα πρέπει να επιδιώκεται ο καθορισμός συγκεκριμένων κανόνων ερμηνείας 8

9 Μετρικές Λογισμικού (5/6) Η ιδανική μετρική θα πρέπει να είναι: Απλή και υπολογίσιμη Εμπειρικά και διαισθητικά πειστική Συνεπής και αντικειμενική Συνεπής ως προς τη χρήση μονάδων Ανεξάρτητη από τη γλώσσα Ουσιαστικός μηχανισμός ανάδρασης 9

10 Μετρικές Λογισμικού (6/6) "Validation of a software measure is the process of ensuring that the measure is a proper numerical characterisation of the claimed attribute; this means showing that the representation condition is satisfied. [Norman Fenton] Μια μέτρηση είναι «καλή» όταν η αριθμητική της τιμή χαρακτηρίζει με ακρίβεια την συγκεκριμένη ιδιότητα του αντικειμένου 10

11 Κατηγοριοποίηση μέτρων λογισμικού Διεργασίες, συλλογές σχετ. δραστηριοτήτων λογισμικού Προϊόντα, παράγωγα από διεργασίες Πόροι, που απαιτούνται από μία δραστηριότητα διεργασίας Σε κάθε κατηγορία διακρίνουμε τα χαρακτηριστικά: Εσωτερικά, μετρούν την ίδια τη κατηγορία (πχ. εφαρμογή) Εξωτερικά, μετρούν πως η κατηγορία σχετίζεται με το περιβάλλον, δηλ. την συμπεριφορά της (εκτέλεση εφαρμογής) 11

12 Κατηγορίες - Χαρακτηριστικά Προϊόντα Σχεδίαση Κώδικας Διεργασίε ς Έλεγχος Πόροι Ομάδες Εσωτερικά Μέγεθος, επαναχρ/ση, σύζευξη, συνοχή Γραμμές κώδικα (LOC), αλγοριθμική πολυπλοκότητα Χρόνος, προσπάθεια, αρ. λαθών Μέγεθος, επίπεδο επικοινωνίας, δομή Εξωτερικά Ποιότητα, πολυπλοκότητα, συντηρησιμότητα Αξιοπιστία, ευχρηστία, συντηρησιμότητα Κόστος, σταθερότητα Παραγωγικότητα, ποιότητα 12

13 Μετρικές μεγέθους Size of the software produced LOC - Lines Of Code KLOC Lines Of Code SLOC Statement Lines of Code (ignore whitespace) Typical Measures: Errors/KLOC, Defects/KLOC, Cost/LOC, Documentation Pages/KLOC 13

14 Μετρικές LOC Easy to use Easy to compute Language & programmer dependent 14

15 Μετρικές πολυπλοκότητας LOC - a function of complexity Language and programmer dependent Halstead s Software Science (entropy measures) n 1 - number of distinct operators n 2 - number of distinct operands N 1 - total number of operators N 2 - total number of operands 15

16 Παράδειγμα if (k < 2) { if (k > 3) x = x*k; } Distinct operators: if ( ) { } > < = * ; Distinct operands: k 2 3 x n 1 = 10 n 2 = 4 N 1 = 13 N 2 = 7 16

17 Halstead s Metrics Amenable to experimental verification [1970s] Program length: N = N 1 + N 2 Program vocabulary: n = n 1 + n 2 Nˆ Estimated length: = n 1 log 2 n 1 + n 2 log 2 n 2 Close estimate of length for well structured programs Nˆ Purity ratio: PR = /N 17

18 Πολυπλοκότητα προγράμματος Volume: V = N log 2 n Number of bits to provide a unique designator for each of the n items in the program vocabulary. Difficulty Program effort: E=D*V 18

19 Object Oriented Metrics Chidamber & Kemerer (1991): Πρότειναν την πρώτη σουίτα αντικειμενοστραφών μετρικών Αρκετές παραλλαγές στη συνέχεια Βασικές Κατηγορίες Μετρικών: Πολυπλοκότητας Κληρονομικότητας Μεγέθους Σύζευξης Συνοχής 19

20 Πολυπλοκότητα (1/2) Ο αριθμός των μεθόδων και η πολυπλοκότητα των μεθόδων μιας κλάσης, είναι ενδεικτικά του πόσος χρόνος και προσπάθεια χρειάζεται για την ανάπτυξη και την συντήρηση της. Όσο μεγαλύτερος είναι ο αριθμός των μεθόδων μιας κλάσης τόσο μεγαλύτερη είναι η εξάρτηση των «παιδιών» της από αυτήν. Οι κλάσεις με μεγάλο αριθμό μεθόδων, πιθανότητα στοχεύουν σε συγκεκριμένους τύπους εφαρμογών και μειώνεται η πιθανότητα επαναχρησιμοποίησης τους. 20

21 Πολυπλοκότητα (2/2) Τρεις μετρικές πολυπλοκότητας Cyclomatic Complexity (CC), πολυπλοκότητα μεθόδου Weighted Method per Class 1 (WMPC1), πολυπλοκότητα κλάσης Weighted Method per Class 2 (WMPC2), πολυπλοκότητα κλάσης Response for Class (RFC), πολυπλοκότητα κλάσης 21

22 Cyclomatic Complexity Από τις παλαιότερες μετρικές, McGabe [1976] Αναπαριστά την γνωστική πολυπλοκότητα της κλάσης. Μετρά το πλήθος των πιθανών μονοπατιών σε ένας αλγόριθμο υπολογίζοντας τις διακριτές περιοχές του διαγράμματος ροής, δηλαδή των αριθμό των if, for και while στο σώμα της μεθόδου. Υπολογίζεται από το διάγραμμα ελέγχου ροής CC = L - N + 2 L: number of links in the control flow graph N:number of nodes in the control flow graph 22

23 Cyclomatic Complexity 23

24 24

25 Cyclomatic Complexity Set of independent paths through the graph (basis set) V(G) = E N + 2 E is the number of flow graph edges N is the number of nodes V(G) = P + 1 P is the number of predicate nodes 25

26 Example i = 0; 1 while (i<n-1) do j = i + 1; 2 while (j<n) do 3 if A[i]<A[j] then 4 swap(a[i], A[j]); 5 end do; 6 i=i+1; 7 end do; 26

27 Flow Graph

28 Computing V(G) V(G) = = 4 V(G) = = 4 Basis Set 1, 7 1, 2, 6, 1, 7 1, 2, 3, 4, 5, 2, 6, 1, 7 1, 2, 3, 5, 2, 6, 1, 7 28

29 class Company { Employee* emp[4]; public: void setemployee(employee* e,int a) {emp[a]=e;} void printall() { for (int i=0;i<4;i++) { cout<<" Name = "<<emp[i]->getname(); cout<<" Type Of Employment = "<<emp[i]->getemptype(); cout<<" Type Of Payment = "<<emp[i]->getpaytype(); emp[i]->calcsalary(); cout<<endl; } } }; 29

30 setemployee CC 1 printall CC 2 30

31 Weighted Method per Class 1 Μετράει την πολυπλοκότητα μίας κλάσης, με βάση την πολυπλοκότητα των μεθόδων της. Η πολυπλοκότητα των μεθόδων μετριέται με χρήση της CC. Ως WMPC1 μιας κλάσης ορίζεται ως ο μέσος όρος ή το άθροισμα των CC όλων της των μεθόδων. Στη διαδικασία δεν περιλαμβάνονται μέθοδοι που κληρονομούνται από υπερκλάσεις. 31

32 class Company { Employee* emp[4]; public: void setemployee(employee* e,int a) {emp[a]=e;} void printall() { for (int i=0;i<4;i++) { cout<<" Name = "<<emp[i]->getname(); cout<<" Type Of Employment = "<<emp[i]->getemptype(); cout<<" Type Of Payment = "<<emp[i]->getpaytype(); emp[i]->calcsalary(); cout<<endl; } } }; WMPC=1.5 32

33 Weighted Method per Class 2 Η συγκεκριμένη μετρική βασίζεται στην υπόθεση ότι μια κλάση με περισσότερες μεθόδους από μία άλλη είναι πιο σύνθετη. Επιπλέον, θεωρεί ότι μια μέθοδος με περισσότερες παραμέτρους από μια άλλη είναι και πιο σύνθετη. Η μετρική αθροίζει τις μεθόδους και τις παραμέτρους των μεθόδων μιας κλάσης. Στη διαδικασία δεν περιλαμβάνονται μέθοδοι που κληρονομούνται από υπερκλάσεις. 33

34 Response for a Class (RFC) Είναι το σύνολο των μεθόδων που μπορούν να κληθούν σε απάντηση ενός μηνύματος προς αντικείμενο κλάσης RFC = RS where RS is the response set for the class Response set of an object { set of all methods that can be invoked in response to a message to the object } 34

35 RFC example 1 public class A { private B ab; } public void methoda1() { return ab.methodb1(); } public void methoda2(c ac) { return ac.methodc1(); } RS = { methoda1, methoda2, methodb1, methodc1} 35

36 RFC example 2 public class A { private B ab; public void methoda1() { return ab.methodb1(); } public void methoda2() { return ab.methodb1(); } } RS = { methoda1, methoda2, methodb1} RS = { methoda1, methoda2, methodb1, methodb1}? 36

37 Κληρονομικότητα Δύο μετρικές κληρονομικότητας Depth of Inheritance Tree (DIT) Number of Child Classes (NOCC) 37

38 Depth of Inheritance Tree Όσο βαθύτερα είναι μια κλάση στην ιεραρχία, τόσο μεγαλύτερος είναι ο αριθμός των μεθόδων που πιθανών να κληρονομεί, γεγονός που κάνει δύσκολη την πρόβλεψη της συμπεριφοράς της. Μεγάλα δέντρα κληρονομικότητας καθιστούν μεγάλη σχεδιαστική πολυπλοκότητα, λαμβάνοντας υπ όψη ότι εμπλέκονται περισσότερες μέθοδοι και κλάσεις. Όσο πιο βαθιά βρίσκεται μία κλάση στην ιεραρχία τόσο πιο μεγάλες είναι οι πιθανότητες επαναχρησιμοποίησης μέσω κληρονομημένων μεθόδων. 38

39 Depth of Inheritance Tree DIT (C0) = 0 DIT (C0 ) = 0 DIT (C1) = 1 DIT (C2) = 2 DIT (C3) = 3 DIT (C4) = 4 39

40 Number of Children Μετράει τον αριθμό των κλάσεων που κληρονομούν την κλάση υπό εξέταση. Μη μηδενική τιμή της μετρικής συνιστά ότι η συγκεκριμένη κλάση επαναχρησιμοποιείται. Παρόλα αυτά, η αφαίρεση της κλάσης μπορεί να είναι φτωχή αν υπάρχουν πάρα πολλές υποκλάσεις. Επιπλέον, υψηλές τιμές της μετρικής δείχνουν ότι θα χρειαστεί αυξημένος αριθμός ελέγχων για κάθε κλάση παιδί. 40

41 Μέγεθος Δύο μετρικές μεγέθους Lines of Code (LOC): Μετρά τον αριθμό των γραμμών κώδικα. Σχόλια και κενές γραμμές δεν υπολογίζονται. Number of Classes (NOC): Μετρά τον αριθμό των κλάσεων του συστήματος. Υπολογίζεται μόνο σε επίπεδο πακέτου ή συστήματος. 41

42 Σύζευξη (1/2) Αυξημένα επίπεδα σύζευξης είναι ανεπιθύμητα σε συστήματα αποτελούμενα από υπό-μονάδες και αποτελούν τροχοπέδη στην επαναχρησιμοποίηση. Όσο πιο ανεξάρτητο είναι ένα αντικείμενο τόσο πιο εύκολα επαναχρησιμοποιείται. Όσο πιο αυξημένη είναι η σύζευξη μεταξύ των αντικειμένων ενός συστήματος, τόσο πιο ευαίσθητο είναι σε αλλαγές σε διάφορα μέρη του σχεδίου. => Δυσκολότερη συντήρηση. 42

43 Σύζευξη (2/2) Τέσσερις μετρικές σύζευξης Coupling Factor (CF), σύζευξη σε επίπεδο συστήματος Coupling Between Objects (CBO), σύζευξη σε επίπεδο κλάσης Fan Out (FO), σύζευξη σε επίπεδο κλάσης Fan In (FI), σύζευξη σε επίπεδο κλάσης 43

44 Coupling Factor Υπολογίζεται μόνο σε επίπεδο συστήματος Υπολογίζεται ως κλάσμα Αριθμητής είναι ο αριθμός των μη κληρονομούμενων συζεύξεων. Παρονομαστής είναι ο μέγιστος αριθμός πιθανών συζεύξεων στο σύστημα. 44

45 Coupling Between Objects Μετράει τον αριθμό των κλάσεων με τις οποίες συνδέεται μια κλάση. 45

46 Fan Out Fan In Κάθε συσχέτιση που λαμβάνετε υπόψη στον υπολογισμό της CBO μπορεί να «έρχεται» ή να «φεύγει» από την κλάση. Ο αριθμός των ακμών που φεύγουν από μια κλάση ονομάζεται Fan-Out Ο αριθμός των ακμών που καταλήγουν σε μια κλάση ονομάζεται Fan-In Μεγάλο Fan-Out => Η κλάση δεν είναι Αυτάρκης Μεγάλο Fan-In => Η κλάση παρέχει μεγάλη λειτουργικότητα 46

47 class Company { Employee* emp[4]; public: void setemployee(employee* e,int a) {emp[a]=e;} void printall() { for (int i=0;i<4;i++) { cout<<" Name = "<<emp[i]->getname(); cout<<" Type Of Employment = "<<emp[i]->getemptype(); cout<<" Type Of Payment = "<<emp[i]->getpaytype(); emp[i]->calcsalary(); cout<<endl; } } }; 47

48 FI 0 FO 1 CBO 1 48

49 Συνοχή Η συνοχή των μεθόδων σε μία κλάση είναι επιθυμητή από την στιγμή που προωθεί την ενθυλάκωση. Η έλλειψη συνοχής υποδηλώνει ότι η κλάση πιθανώς να πρέπει να διασπαστεί σε δύο ή περισσότερες κλάσεις. Η έλλειψη συνοχής αυξάνει την πολυπλοκότητα και την πιθανότητα εμφάνισης λαθών κατά την ανάπτυξη. Τρεις Μετρικές Συνοχής: Lack Of Cohesion of Methods 1 (LOCOM1) Lack Of Cohesion of Methods 2 (LOCOM2) Lack Of Cohesion of Methods 3 (LOCOM3) 49

50 Lack of Cohesion of Methods 1 Θεωρούμε μία κλάση C με μεθόδους M 1, M 2,..., M n Έστω {I i } το σύνολο των μεταβλητών που χρησιμοποιούνται από τη μέθοδο M i. Υπάρχουν n τέτοια σύνολα: {Ι 1 }, {Ι 2 },..., {Ι n } P Q { { I I, I, I P LCOM 0 i i j j I I i i I I j j Q if P Q otherwise 50

51 public PersonDetails { private String firstname; private String surname; private String street; private String city; public PersonDetails() {} //I1 = { } public setname(string f, String s) { //I2 = { firstname, surname } firstname = f; surname = s; } public setaddress(string st, String c) { //I3 = { street, city } street = st; city = c; } public void printaddress() { //I4 = { street, city } System.out.println( street); System.out.println( city); } public void printname() { //I5 = { firstname, surname } System.out.println( firstname + " " + surname); } } 51

52 52

53 class Company { Employee* emp[4]; public: void setemployee(employee* e,int a) {emp[a]=e;} void printall() { for (int i=0;i<4;i++) { cout<<" Name = "<<emp[i]->getname(); cout<<" Type Of Employment = "<<emp[i]->getemptype(); cout<<" Type Of Payment = "<<emp[i]->getpaytype(); emp[i]->calcsalary(); cout<<endl; } } }; 53

54 setemployee - printall LCOM {1} 54

55 Lack of Cohesion of Methods 2 Θεωρούμε μία κλάση C με m μεθόδους M 1, M 2,..., M n Κάθε μέθοδος προσπελάζει a ιδιότητες, Α 1, Α 2,..., Α a Έστω a(m k ) = ο αριθμός των ιδιοτήτων που προσπελάζεται από την μέθοδο M k Έστω m(a k ) = ο αριθμός των μεθόδων που προσπελάζουν την ιδιότητα Α k LOCOM 2 1 a i 1 m( Ai) ma 55

56 Lack of Cohesion of Methods 3 Θεωρούμε μία κλάση C με m μεθόδους M 1, M 2,..., M n Κάθε μέθοδος προσπελάζει a ιδιότητες, Α 1, Α 2,..., Α a Έστω a(m k ) = ο αριθμός των ιδιοτήτων που προσπελάζεται από την μέθοδο M k Έστω m(a k ) = ο αριθμός των μεθόδων που προσπελάζουν την ιδιότητα Α k LOCOM 3 m a m( Ai) i 1 a m 1 56

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

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

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

Ποιότητα Λογισμικού. Μετρικές Αντικειμενοστραφούς Σχεδίασης

Ποιότητα Λογισμικού. Μετρικές Αντικειμενοστραφούς Σχεδίασης Ποιότητα Λογισμικού Μετρικές Αντικειμενοστραφούς Σχεδίασης 1 Η Μέτρηση στην ζωή μας Οι μετρήσεις βρίσκονται στην καρδιά πολλών συστημάτων που επηρεάζουν σημαντικά την ζωή μας Οικονομικά (τιμές, πληθωρισμός,

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

ΠοιότηταΛογισµικού. Μετρικές Αντικειµενοστραφούς Σχεδίασης

ΠοιότηταΛογισµικού. Μετρικές Αντικειµενοστραφούς Σχεδίασης ΠοιότηταΛογισµικού Μετρικές Αντικειµενοστραφούς Σχεδίασης 1 ΗΜέτρησηστηνζωήµας Οι µετρήσεις βρίσκονται στην καρδιά πολλών συστηµάτων που επηρεάζουν σηµαντικά την ζωή µας Οικονοµικά (τιµές, πληθωρισµός,

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

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

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

(McCabe, 1976) (1/4) C = e n + 2p 29/4/2009

(McCabe, 1976) (1/4) C = e n + 2p 29/4/2009 Ανάπτυξη & Σχεδίαση Λογισµικού (ΗΥ420) ιάλεξη 9: Μετρικές Ποιότητας Λογισµικού Μετρικές Προϊόντος: Γραµµές Κώδικα 2 Γραµµές κώδικα Απλό; Αποδοτικό; Καλά ορισµένο; ; Όχι! Καλύτερος ορισµός (π.χ. για C/C++):

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

Έλεγχος Συνένωσης και Διασφάλιση Ποιότητας

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

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

Εμπειρική Μελέτη της Εξέλιξης της Ποιότητας του Κώδικα Ανοιχτού Λογισμικού

Εμπειρική Μελέτη της Εξέλιξης της Ποιότητας του Κώδικα Ανοιχτού Λογισμικού ΑΛΕΞΑΝΔΡΕΙΟ ΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Εμπειρική Μελέτη της Εξέλιξης της Ποιότητας του Κώδικα Ανοιχτού Λογισμικού της φοιτήτριας: Τριανταφυλλίδου

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

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού - Μετρικές

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού - Μετρικές Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού - Μετρικές Τµήµα Διοίκησης Επιχειρήσεων Τει Δυτικής Ελλάδας Μεσολόγγι Δρ. Α. Στεφανή Διάλεξη 3 Μετρικές διαδικασίας Η λογική της βελτίωσης µιας διαδικασίας

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

Comparative Study of API vs. Open-Source Software ZAPROUDI A. PASCHALIA. Supervisor: CHATZHGEORGIOU ALEXANDROS

Comparative Study of API vs. Open-Source Software ZAPROUDI A. PASCHALIA. Supervisor: CHATZHGEORGIOU ALEXANDROS Comparative Study of API vs. Open-Source Software ZAPROUDI A. PASCHALIA Supervisor: CHATZHGEORGIOU ALEXANDROS ΕΙΣΑΓΩΓΗ «Κάθε στοιχείο σε μία βιβλιοθήκη γράφεται για να διατηρηθεί στον χρόνο» J. Tulach.

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

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

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

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

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

Αντικειµενοστραφής Προγραµµατισµός Κλάσεις Αντικειµενοστραφής Προγραµµατισµός Κλάσεις Αντικείµενα Ιεραρχία κλάσεων Κλάσεις. Ιδιότητες Συµπεριφορά Ιδιότητες (Μεταβλητές) Συµπεριφορά (Μέθοδοι) Κληρονοµικότητα Μέθοδοι επικάλυψης Η χρήση του

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

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

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

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

ΕΡΓΟ: Συγκριτική Μελέτη Λογισμικού Βιβλιοθηκών, Λογισμικού Εφαρμογών Ανοικτού Κώδικα και Βιομηχανικού Λογισμικού MIS:

ΕΡΓΟ: Συγκριτική Μελέτη Λογισμικού Βιβλιοθηκών, Λογισμικού Εφαρμογών Ανοικτού Κώδικα και Βιομηχανικού Λογισμικού MIS: ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ, ΔΙΑ ΒΙΟΥ ΜΑΘΗΣΗΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΕΙΔΙΚΗ ΥΠΗΡΕΣΙΑ ΔΙΑΧΕΙΡΙΣΗΣ ΕΠΙΧΕΙΡΗΣΙΑΚΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ ΕΚΠΑΙΔΕΥΣΗ ΚΑΙ ΔΙΑ ΒΙΟΥ ΜΑΘΗΣΗ ΕΠΙΧΕΙΡΗΣΙΑΚΟ ΠΡΟΓΡΑΜΜΑ «ΕΚΠΑΙΔΕΥΣΗ ΚΑΙ

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

Στόχοι της Πτυχιακής

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

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

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

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

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

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. «Ανάπτυξη εργαλείου διαχείρισης έργων λογισμικού» Αρ. Μητρώου: 06/3059

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

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

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού:Γενική Επισκόπηση - επισηµάνσεις

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού:Γενική Επισκόπηση - επισηµάνσεις Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού:Γενική Επισκόπηση - επισηµάνσεις Τµήµα Διοίκησης Επιχειρήσεων Τει Δυτικής Ελλάδας Μεσολόγγι Δρ. Α. Στεφανή Διάλεξη 9 Τι είναι ποιότητα; Ποιότητα

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

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

ΑΛΕΞΑΝΔΡΕΙΟ ΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΑΛΕΞΑΝΔΡΕΙΟ ΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Εμπειρική Μελέτη της Εξέλιξης της Ποιότητας του Κώδικα Ανοιχτού Λογισμικού Τριανταφυλλίδου Νόνα ΑΜ:05/2777

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

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

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

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

ΑΣΚΗΣΕΙΣ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ (inheritance)

ΑΣΚΗΣΕΙΣ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ (inheritance) ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΣΚΗΣΕΙΣ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ (inheritance) ΑΣΚΗΣΗ-1 η κληρονομεί μια λειτουργικότητα της υπερκλάσης. Π.χ. ορίστε την υπερκλάση Superclass με χαρακτηριστικά (1)

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

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

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

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

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού

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

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

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

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017

FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017 FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017 M8 Αντικειμενοστραφής Προγραμματισμός - Ασκήσεις Γεώργιος Παπαλάμπρου Επικ. Καθηγητής ΕΜΠ Εργαστήριο Ναυτικής Μηχανολογίας george.papalambrou@lme.ntua.gr

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

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

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

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

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

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

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

ΑΠΛΗ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ

ΑΠΛΗ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ Μηχανισµός υλοποίησης των σχέσεων γενίκευσης/εξειδίκευσης µεταξύ κλάσεων Η σχέση εξειδίκευσης «υποκλάση-της» (subclass-of)είναι γνωστή σαν σχέση «είναι ένα» (isa) ή «είναι ένα είδος» (ako:

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

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Μοντέλο Οντοτήτων-Συσχετίσεων. Η ανάγκη Διαγράμματα ΟΣ Σύνολα Οντοτήτων-Συσχετίσεων Απεικονίσεις Επεκτάσεις

Μοντέλο Οντοτήτων-Συσχετίσεων. Η ανάγκη Διαγράμματα ΟΣ Σύνολα Οντοτήτων-Συσχετίσεων Απεικονίσεις Επεκτάσεις Η ανάγκη Διαγράμματα ΟΣ Σύνολα Οντοτήτων-Συσχετίσεων Απεικονίσεις Επεκτάσεις Μοντέλα Δεδομένων Μοντέλο: αφαιρετική αναπαράσταση του πραγματικού κόσμου. Μοντέλα βασισμένα σε εγγραφές (record based models)

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

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

Κλάσεις. Κατηγορίες Αντικειµένων. Κλάσεις. Φυσικά Αντικείµενα. Χώρος = Οµάδα Φυσικών Αντικειµένων. Πρόγραµµα = Οµάδα Αντικειµενοστραφής Προγραµµατισµός Αντικείµενα Ιεραρχία κλάσεων. Ιδιότητες Συµπεριφορά Ιδιότητες (Μεταβλητές) Συµπεριφορά (Μέθοδοι) Κληρονοµικότητα Μέθοδοι επικάλυψης Η χρήση του this και του super Αντικειµενοστραφής

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2 Ανασκόπηση Μια εφαρμογή Java είναι ένα σύνολο από συνεργαζόμενες κλάσεις Διάλεξη #2: Αντικείμενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή

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

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6 Ανασκόπηση Μια εφαρµογή Java είναι ένα σύνολο από συνεργαζόµενες κλάσεις Εβδοµάδα 2: Αντικείµενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Προγραµµατισµό,,, Slide 1 Εισαγωγή στον Προγραµµατισµό,,, Slide 2 Ανασκόπηση:

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

ΟΡΓΑΝΙΣΜΟΣ ΒΙΟΜΗΧΑΝΙΚΗΣ ΙΔΙΟΚΤΗΣΙΑΣ

ΟΡΓΑΝΙΣΜΟΣ ΒΙΟΜΗΧΑΝΙΚΗΣ ΙΔΙΟΚΤΗΣΙΑΣ ΟΡΓΑΝΙΣΜΟΣ ΒΙΟΜΗΧΑΝΙΚΗΣ ΙΔΙΟΚΤΗΣΙΑΣ Ο Οργανισμός Βιομηχανικής Ιδιοκτησίας (Ο.Β.Ι.) ιδρύθηκε το 1987 (Ν.1733/1987), είναι νομικό πρόσωπο ιδιωτικού δικαίου, οικονομικά ανεξάρτητο και διοικητικά αυτοτελές.

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

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

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

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

Διερεύνηση της Συσχέτισης Μεταξύ Δεικτών Συντηρησιμότητας και Μετρικών Λογισμικού σε Έργα Ανοικτού Κώδικα

Διερεύνηση της Συσχέτισης Μεταξύ Δεικτών Συντηρησιμότητας και Μετρικών Λογισμικού σε Έργα Ανοικτού Κώδικα Πρόγραμμα Μεταπτυχιακών Σπουδών Ειδίκευσης του Τμήματος Εφαρμοσμένης Πληροφορικής ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Διερεύνηση της Συσχέτισης Μεταξύ Δεικτών Συντηρησιμότητας και Μετρικών Λογισμικού σε Έργα Ανοικτού

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

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

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Πτυχιακή εργασία «ΕΠΙΔΡΑΣΗ ΠΡΟΤΥΠΩΝ ΣΧΕΔΙΑΣΗΣ ΣΤΗ ΠΟΙΟΤΗΤΑ ΤΟΥ ΛΟΓΙΣΜΙΚΟΥ ΜΕΣΩ ΑΝΑΛΥΤΙΚΗΣ

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

Δέντρα Απόφασης (Decision(

Δέντρα Απόφασης (Decision( Δέντρα Απόφασης (Decision( Trees) Το μοντέλο που δημιουργείται είναι ένα δέντρο Χρήση της τεχνικής «διαίρει και βασίλευε» για διαίρεση του χώρου αναζήτησης σε υποσύνολα (ορθογώνιες περιοχές) Ένα παράδειγμα

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

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

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

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

Fractional Colorings and Zykov Products of graphs

Fractional Colorings and Zykov Products of graphs Fractional Colorings and Zykov Products of graphs Who? Nichole Schimanski When? July 27, 2011 Graphs A graph, G, consists of a vertex set, V (G), and an edge set, E(G). V (G) is any finite set E(G) is

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

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Τµήµα Διοίκησης Επιχειρήσεων Τει Δυτικής Ελλάδας Μεσολόγγι Δρ. Α. Στεφανή Διάλεξη 2 2 Agenda Ποιότητα Λογισµικού Εσωτερικές Μετρικές Εξωτερικές Μετρικές

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 Αλγόριθμος: Βήμα προς βήμα διαδικασία για την επίλυση κάποιου προβλήματος. Το πλήθος των βημάτων πρέπει να είναι πεπερασμένο. Αλλιώς: Πεπερασμένη

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

Εισαγωγή στη Σχεδίαση Λογισμικού

Εισαγωγή στη Σχεδίαση Λογισμικού Εισαγωγή στη Σχεδίαση Λογισμικού περιεχόμενα παρουσίασης Τι είναι η σχεδίαση λογισμικού Έννοιες σχεδίασης Δραστηριότητες σχεδίασης Σχεδίαση και υποδείγματα ανάπτυξης λογισμικού σχεδίαση Η σχεδίαση του

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

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

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

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

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

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

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

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

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

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

Πληροφορική 2. Τεχνολογία Λογισμικού

Πληροφορική 2. Τεχνολογία Λογισμικού Πληροφορική 2 Τεχνολογία Λογισμικού 1 2 Κρίση Λογισμικού (1968) Στην δεκαετία του 1970 παρατηρήθηκαν μαζικά: Μεγάλες καθυστερήσεις στην ολοκλήρωση κατασκευής λογισμικών Μεγαλύτερα κόστη ανάπτυξης λογισμικού

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

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

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

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

Υπερπροσαρμογή (Overfitting) (1)

Υπερπροσαρμογή (Overfitting) (1) Αλγόριθμος C4.5 Αποφυγή υπερπροσαρμογής (overfitting) Reduced error pruning Rule post-pruning Χειρισμός χαρακτηριστικών συνεχών τιμών Επιλογή κατάλληλης μετρικής για την επιλογή των χαρακτηριστικών διάσπασης

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

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

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

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

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

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

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

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

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

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

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

Κληρονομικότητα. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Java Κληρονομικότητα 1 Κληρονομικότητα Παύλος Εφραιμίδης pefraimi ee.duth.gr Java Κληρονομικότητα 1 Ιεραρχίες Κλάσεων Στην Java (και γενικότερα στον αντικειμενοστραφή προγραμματισμό) μπορεί από μία να κλάση να δημιουργηθεί

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

Λογισµικό (Software SW) Γλώσσες

Λογισµικό (Software SW) Γλώσσες Λογισµικό (Software SW) Γλώσσες Προγραµµατισµού Οι γενιές των γλωσσών προγραµµατισµού Προβλήµατα που επιλύονται σε ένα περιβάλλον στο οποίο ο άνθρωπος πρέπει να προσαρµόζεται στα χαρακτηριστικά της µηχανής

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

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

Θέματα εξετάσεων. Τύπος: B Θέματα εξετάσεων Τύπος: B Ονοματεπώνυμο: Α.Μ.: Σχολή: Τμήμα: Επιτηρητής: Οδηγίες: Γράψτε τα στοιχεία σας σε αυτήν τη σελίδα Στην κόλλα σας γράψτε τα στοιχεία σας και στην πρώτη γραμμή τον τύπο των θεμάτων

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

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Κλάσεις και Αντικείμενα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Κλάσεις Η γενική μορφή μιας κλάσης είναι η εξής: class class-name { private data and

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

(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.

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

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

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

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

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

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

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

ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΔΙΠΛΩΜΑ ΕΙΔΙΚΕΥΣΗΣ (MSc) στα ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΠΛΩΜΑΤΙKH ΕΡΓΑΣΙΑ

ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΔΙΠΛΩΜΑ ΕΙΔΙΚΕΥΣΗΣ (MSc) στα ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΠΛΩΜΑΤΙKH ΕΡΓΑΣΙΑ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΔΙΠΛΩΜΑ ΕΙΔΙΚΕΥΣΗΣ (MSc) στα ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΠΛΩΜΑΤΙKH ΕΡΓΑΣΙΑ Μετρικές αντικειμενοστραφούς προγραμματισμού και τα πεδία εφαρμογής τους Σμπόνιας Δημήτριος Αριθμός

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

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

Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Τεχνολογία Λογισμικού 8ο Εξάμηνο 2018 19 Unified Modeling Language II Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Μοντελοποίηση δομής Διαγράμματα κλάσεων Class diagrams

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

Γράφηµα (Graph) Εργαστήριο 10. Εισαγωγή

Γράφηµα (Graph) Εργαστήριο 10. Εισαγωγή Εργαστήριο 10 Γράφηµα (Graph) Εισαγωγή Στην πληροφορική γράφηµα ονοµάζεται µια δοµή δεδοµένων, που αποτελείται από ένα σύνολο κορυφών ( vertices) (ή κόµβων ( nodes» και ένα σύνολο ακµών ( edges). Ενας

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

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

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

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

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

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

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

Οδηγίες Συγγραφής και Αξιολόγησης Εργασιών του μαθήματος

Οδηγίες Συγγραφής και Αξιολόγησης Εργασιών του μαθήματος ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Αντικειμενοστρεφής Προγραμματισμός Η/Υ Οδηγίες Συγγραφής και Αξιολόγησης Εργασιών του μαθήματος Το κείμενο αυτό γράφεται με σκοπό να βοηθήσει τους φοιτητές του μαθήματος

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

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

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

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems

HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems Ημερομηνία Παράδοσης: 0/1/017 την ώρα του μαθήματος ή με email: mkarabin@csd.uoc.gr Γενικές Οδηγίες α) Επιτρέπεται η αναζήτηση στο Internet και στην βιβλιοθήκη

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

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

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

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

Elements of Information Theory

Elements of Information Theory Elements of Information Theory Model of Digital Communications System A Logarithmic Measure for Information Mutual Information Units of Information Self-Information News... Example Information Measure

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

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 :

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

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

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

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

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

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΡΟΥΜΠΟΣ ΓΙΩΡΓΟΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΡΟΥΜΠΟΣ ΓΙΩΡΓΟΣ Για τις ανάγκες της Πτυχιακής εργασίας θα μελετηθούν επιστημονικές εργασίες που εξετάζουν : Τις Α/Σ μετρικές Τα APIs ΕΙΣΑΓΩΓΗ Εμπειρικές μελέτες που αφορούν την εφαρμογή

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

int Α[] = {4, 16, 22, 12, 9, 15, 10}; { 4, 9, 10, 12, 15, 16, 22 } Α[0]=4, Α[1]=9, Α[2]=10 { 4, 16,22, 12, 9, 15, 10} { 4, 12, 16, 22, 9, 15,16, 22 }

int Α[] = {4, 16, 22, 12, 9, 15, 10}; { 4, 9, 10, 12, 15, 16, 22 } Α[0]=4, Α[1]=9, Α[2]=10 { 4, 16,22, 12, 9, 15, 10} { 4, 12, 16, 22, 9, 15,16, 22 } ΤΑΞΙΝΟΜΗΣΗ- ΑΣΚΗΣΕΙΣ Οι μέθοδοι ταξινόμησης INSERTION, SELECTION και BUBBLE SORT με την ολοκλήρωσή τους θα έχουν σε κάθε θέση του πίνακα το σωστό στοιχείο x (ταξινόμηση με αύξουσα σειρά δηλ. στην θέση

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

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

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 4 : CLASSES Κων. Κόκκινος Αντικειμενοστραφής Προγραμματισμός Η ιδέα του αντικειμενοστραφούς προγραμματισμού Αυτόνομες οντότητες Στιγμιότυπα οντοτήτων Παράδειγμα

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

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος sfetsos@it.teithe.gr

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός. Παναγιώτης Σφέτσος sfetsos@it.teithe.gr ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός Παναγιώτης Σφέτσος sfetsos@it.teithe.gr ΕΡΓΑΣΤΗΡΙΟ - 3 ΘΕΜΑΤΑ: Κλάσεις Αντικείμενα Δομητές/Κατασκευαστές - Μέθοδοι - Παράμετροι

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

Blum Complexity. Αλγόριθμοι και Πολυπλοκότητα ΙΙ. Παναγιώτης Γροντάς. Δεκέμβριος

Blum Complexity. Αλγόριθμοι και Πολυπλοκότητα ΙΙ. Παναγιώτης Γροντάς. Δεκέμβριος Blum Complexity Αλγόριθμοι και Πολυπλοκότητα ΙΙ Παναγιώτης Γροντάς µπλ Δεκέμβριος 2011 Ιστορικά Στοιχεία Manuel Blum (1938, Caracas Venezuela) Turing Award (1995) Foundations Of Computational Complexity

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

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

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

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

Βασικές Έννοιες Δοµών Δεδοµένων

Βασικές Έννοιες Δοµών Δεδοµένων Δοµές Δεδοµένων Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλήµατος του ευσταθούς ταιριάσµατος Βασικές Έννοιες

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

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

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

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

Βασικά στάδια τυπικής µέτρησης. Απεικόνιση Μέτρησης. Ρόλος της συνθήκης αναπαράστασης. Κλίµακες µετρήσεων. Ονοµαστική κλίµακα.

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

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

Περιεχόµενο. Εµπειρικές σχέσεις για το χαρακτηριστικό ύψος. Μετρήσεις και Μετρικές Λογισµικού. Θεωρία µετρήσεων. Θεωρία Μετρήσεων

Περιεχόµενο. Εµπειρικές σχέσεις για το χαρακτηριστικό ύψος. Μετρήσεις και Μετρικές Λογισµικού. Θεωρία µετρήσεων. Θεωρία Μετρήσεων Περιεχόµενο Μετρήσεις και Μετρικές Λογισµικού Αντώνης Καραγεώργος Τµήµα Μηχανικών Η/Υ και ικτύων Πανεπιστήµιο Θεσσαλίας karageorgos@inf.uth.gr Θεωρία µετρήσεων Μετρικές Λογισµικού: κίνητρα και µοντέλα

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

Επεξεργασία Πολυµέσων. Δρ. Μαρία Κοζύρη Π.Μ.Σ. «Εφαρµοσµένη Πληροφορική» Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο Θεσσαλίας

Επεξεργασία Πολυµέσων. Δρ. Μαρία Κοζύρη Π.Μ.Σ. «Εφαρµοσµένη Πληροφορική» Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο Θεσσαλίας Π.Μ.Σ. «Εφαρµοσµένη Πληροφορική» Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο Θεσσαλίας Ενότητα 3: Επισκόπηση Συµπίεσης 2 Θεωρία Πληροφορίας Κωδικοποίηση Θεµελιώθηκε απο τον Claude

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

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

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

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

Κληρονομικότητα. Κληρονομικότητα (inheritance) είναι ο τρόπος µε τον οποίο μία τάξη μπορεί να κληρονομήσει ιδιότητες και συμπεριφορά από άλλες τάξεις.

Κληρονομικότητα. Κληρονομικότητα (inheritance) είναι ο τρόπος µε τον οποίο μία τάξη μπορεί να κληρονομήσει ιδιότητες και συμπεριφορά από άλλες τάξεις. Κληρονομικότητα (inheritance) είναι ο τρόπος µε τον οποίο μία τάξη μπορεί να κληρονομήσει ιδιότητες και συμπεριφορά από άλλες τάξεις. Μέσω της κληρονομικότητας μπορούμε να δημιουργήσουμε µια νέα τάξη (θυγατρική)

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

Η ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΕΞΕΙΔΙΚΕΥΣΗΣ. Υ7ΐοβάλλεται στην

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

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

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

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

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

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

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

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

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

Αλγόριθμοι Ταξινόμησης Μέρος 3

Αλγόριθμοι Ταξινόμησης Μέρος 3 Αλγόριθμοι Ταξινόμησης Μέρος 3 Μανόλης Κουμπαράκης 1 Ταξινόμηση με Ουρά Προτεραιότητας Θα παρουσιάσουμε τώρα δύο αλγόριθμους ταξινόμησης που χρησιμοποιούν μια ουρά προτεραιότητας για την υλοποίηση τους.

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

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

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

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