Ποιότητα Λογισμικού. Μετρικές Αντικειμενοστραφούς Σχεδίασης
|
|
- Φυλλίδος Αγγελόπουλος
- 8 χρόνια πριν
- Προβολές:
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 Estimated length: N = 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 Iff there is a terminal node 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 Methods 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 Methods per Class 2 Η συγκεκριμένη μετρική βασίζεται στην υπόθεση ότι μια κλάση με περισσότερες μεθόδους από μία άλλη είναι πιο σύνθετη. Επιπλέον, θεωρεί ότι μια μέθοδος με περισσότερες παραμέτρους από μια άλλη είναι και πιο σύνθετη. Η μετρική αθροίζει τις μεθόδους και τις παραμέτρους των μεθόδων μιας κλάσης. Στη διαδικασία δεν περιλαμβάνονται μέθοδοι που κληρονομούνται από υπερκλάσεις. 33
34 Response for a Class (RFC) Είναι το σύνολο των μεθόδων που μπορούν να κληθούν σε απάντηση ενός μηνύματος προς αντικείμενο κλάσης (σε βάθος 1) 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} 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 Αντικειμενοστρεφείς Μετρικές MOOD: Βαθμός Συσχέτισης Υπολογίζει τη συσχέτιση μεταξύ κλάσεων (CF) Εξαιρείται η συσχέτιση λόγω κληρονομικότητας is_client(c i, c j ) = 1 αν η κλάση i έχει σχέση με την j 0 διαφορετικά Σχέση: Κλήση μεθόδου κλάσης j, αναφορά στην κλάση j, προσπέλαση χαρακτηριστικού κλάσης j CF= TC i=1 TC j=1 is client (c i,c j ) TC 2 TC
45 Αντικειμενοστρεφείς Μετρικές MOOD: Παράδειγμα Κλάση Β&Β calendar bedroom customer Transaction reservation payment expense Κλάσεις is_client calendar, bedroom, customer, transaction reservation reservation reservation CF = ( ) / (8 2-8) = 7/56 = 1/8
46 Coupling Between Objects Μετράει τον αριθμό των κλάσεων με τις οποίες συνδέεται μια κλάση. 46
47 Fan Out Fan In Κάθε συσχέτιση που λαμβάνεται υπόψη στον υπολογισμό της CBO μπορεί να «έρχεται» ή να «φεύγει» από την κλάση. Ο αριθμός των ακμών που φεύγουν από μια κλάση ονομάζεται Fan-Out Ο αριθμός των ακμών που καταλήγουν σε μια κλάση ονομάζεται Fan-In Μεγάλο Fan-Out => Η κλάση δεν είναι Αυτάρκης Μεγάλο Fan-In => Η κλάση παρέχει μεγάλη λειτουργικότητα 47
48 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; } } }; 48
49 FI 0 FO 1 CBO 1 49
50 Συνοχή Η συνοχή των μεθόδων σε μία κλάση είναι επιθυμητή από την στιγμή που προωθεί την ενθυλάκωση. Η έλλειψη συνοχής υποδηλώνει ότι η κλάση πιθανώς να πρέπει να διασπαστεί σε δύο ή περισσότερες κλάσεις. Η έλλειψη συνοχής αυξάνει την πολυπλοκότητα και την πιθανότητα εμφάνισης λαθών κατά την ανάπτυξη. Τρεις Μετρικές Συνοχής: Lack Of Cohesion of Methods 1 (LOCOM1) Lack Of Cohesion of Methods 2 (LOCOM2) Lack Of Cohesion of Methods 3 (LOCOM3) 50
51 Lack of Cohesion of Methods 1 Έλλειψη συνοχής στις μεθόδους (Lack of Cohesion Of Methods LCOM) Ποσοτικοποιεί τη συνοχή (την έλλειψή της) στις μεθόδους LCOM = max ( P - Q, 0) Ii: Σύνολο κοινόχρηστων attributes που χρησιμοποιούνται από τη μέθοδο i P: Το σύνολο των κενών τομών ανά δύο των Ii Q: Το σύνολο των μη κενών τομών ανά δύο των Ii 51
52 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); } 52
53 LCOM: max (8 2, 0) = 6 LCOM = max (4 2, 0) = 2 (ignoring constructor) 53
54 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; } } }; 54
55 setemployee - printall LCOM max(0-1,0)=0 55
56 Lack of Cohesion of Methods 2 Θεωρούμε μία κλάση C με : m μεθόδους M 1, M 2,..., M n και a ιδιότητες, Α 1, Α 2,..., Α a Έστω m(a k ) = ο αριθμός των μεθόδων που προσπελάζουν την ιδιότητα Α k LCOM 2 =1 a i=1 m( Ai) ma 56
57 Lack of Cohesion of Methods 3 Θεωρούμε μία κλάση C με m μεθόδους M 1, M 2,..., M n και a ιδιότητες, Α 1, Α 2,..., Α a Έστω m(a k ) = ο αριθμός των μεθόδων που προσπελάζουν την ιδιότητα Α k LCOM 3 =(m a i=1 m 1 m( Ai) a ) 57
58 Παράδειγμα
59 Παράδειγμα
60 Παράδειγμα WMC Κλάση Μέθοδοι point 3 rectangle 3 linklistnode 4 rectanglelist 3 WMC = ¼ *( ) = 3.25 μέθοδοι/κλάση
61 Παράδειγμα DIT: Δεν υπάρχει κληρονομικότητα NOC: Δεν υπάρχει κληρονομικότητα
62 Παράδειγμα Συσχέτιση μεταξύ κλάσεων (CBO) Κλάση Σχετιζόμενες CBO point rectangle 1 rectangle point, rectanglelist2 linklistnode rectanglelist 1 rectanglelist rectangle, linklistnode 2
63 Παράδειγμα RFC Κλάση Σύνολο απόκρισης RFC point point, getx, gety 3 rectangle rectangle, point, length 6 getx, gety, area linklistnode linklistnode, getnext 4 getrectangle, setnext rectanglelist rectanglelist, addrectangle 9 rectangle, setnext, totalarea getrectangle, area, getnext, linklistnode
64 Παράδειγμα LCOM 1 Κλάση LCOM point max (1-2, 0)=0 rectangle max(0-3, 0)=0 linklistnode max(3-4, 0)=0 rectanglelist max(0-3, 0)=0
65 Αντικειμενοστρεφείς Μετρικές MOOD: Visibility Ορατότητα (visibility) TC: Αριθμός κλάσεων στο σύστημα M d (C i ): Αριθμός μεθόδων στην κλάση C i M m,i : Μέθοδος m κλάσης i Is_Visible(M m,i, C j ) = 1 αν i!= j και η Μ m,i είναι διαθέσιμη στη C j 0 διαφορετικά V ( M m,i )= TC j=1 Is Visible ( M m,i,j) TC 1
66 Αντικειμενοστρεφείς Μετρικές MOOD: Εμφώλευση Βαθμός απόκρυψης μεθόδων (MHF) MHF= TC i=1 M d ( C i ) m=1 TC i=1 (1 V ( M m,i )) M d (C i ) Βαθμός απόκρυψης χαρακτηριστικών (AHF) AHF= TC i= 1 A d ( C i ) m=1 TC i=1 (1 V ( A m,i )) A d (C i )
67 Αντικειμενοστρεφείς Μετρικές MOOD: Παράδειγμα TC = 3 Method is_vis(a) is_vis(b) is_vis(c) V(M m,i ) A::x() A::y() B::w() B::z() C::v() MHF = {[(1-1)+(1-1)]+[(1-0)+(1-1)]+(1-0)} / (2+2+1) = 2/5 = 0.4 Attribute A(M m,i ) A.a B.b B.bb C.c AHF = {(1-0)+[(1-0)+(1-0)]+(1-0)} / (1+2+1) = 4/4 = 1.0
68 Αντικειμενοστρεφείς Μετρικές MOOD: Κληρονομικότητα Βαθμός κληρονομικότητας μεθόδων (MIF) M d (C i ): Αριθμός μεθόδων που δηλώθηκαν στην κλάση i M i (C i ): Αριθμός μεθόδων που κληρονομήθηκαν στην κλάση i M α (C i ) = M d (C i ) + Mi(C i ) MIF= Βαθμός κληρονομικότητας χαρακτηριστικών (AIF) Αντίστοιχα AIF= TC i=1 TC i=1 TC i=1 TC i=1 M i (C i ) M a (C i ) A i (C i ) A a (C i )
69 Αντικειμενοστρεφείς Μετρικές MOOD: Παράδειγμα ΚλάσηΜ d M i A d A i A x(), y() a B w(), z(), y() A::x() b, bb A.a C v() B::w(),z(),y() c B.bb A::x() MIF = ( ) / [( ) + ( )] = 5/11 AIF = ( ) / [( ) + ( )] = 2/6 = 1/3
70 Αντικειμενοστρεφείς Μετρικές MOOD: Βαθμός Πολυμορφισμού Μέτρο «δυνατότητας» πολυμορφισμού M o (C i ): Αριθμός overriding μεθόδων κλάσης i M n (C i ): Αριθμός νέων μεθόδων κλάσης i DC(C i ): Αριθμός απογόνων κλάσης i PF= TC i= 1 M o (C i ) TC ( M n (C i ) DC(C i )) i=1
71 Αντικειμενοστρεφείς Μετρικές MOOD: Παράδειγμα Κλάση M n M o DC A x(), y() 2 B w(), z() y() 1 C v() 0 PF = ( ) / (2*2 + 2*1 + 0*1) = 1/6
Ποιότητα Λογισμικού. Μετρικές Αντικειμενοστραφούς Σχεδίασης
Ποιότητα Λογισμικού Μετρικές Αντικειμενοστραφούς Σχεδίασης 1 Η Μέτρηση στην ζωή μας Οι μετρήσεις βρίσκονται στην καρδιά πολλών συστημάτων που επηρεάζουν σημαντικά την ζωή μας Οικονομικά (τιμές, πληθωρισμός,
Διαβάστε περισσότεραΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Μετρικές Αντικειμενοστραφούς Σχεδίασης. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Μετρικές Αντικειμενοστραφούς Σχεδίασης Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική Θεσσαλονίκη, Σεπτέμβριος 2013 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες
Διαβάστε περισσότερα(McCabe, 1976) (1/4) C = e n + 2p 29/4/2009
Ανάπτυξη & Σχεδίαση Λογισµικού (ΗΥ420) ιάλεξη 9: Μετρικές Ποιότητας Λογισµικού Μετρικές Προϊόντος: Γραµµές Κώδικα 2 Γραµµές κώδικα Απλό; Αποδοτικό; Καλά ορισµένο; ; Όχι! Καλύτερος ορισµός (π.χ. για C/C++):
Διαβάστε περισσότεραΠοιότηταΛογισµικού. Μετρικές Αντικειµενοστραφούς Σχεδίασης
ΠοιότηταΛογισµικού Μετρικές Αντικειµενοστραφούς Σχεδίασης 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) Performing Static Analysis 1 Class Name: The fully qualified name of the specific class Type: The type of the class
Διαβάστε περισσότεραΈλεγχος Συνένωσης και Διασφάλιση Ποιότητας
Έλεγχος Συνένωσης και Διασφάλιση Ποιότητας περιεχόμενα παρουσίασης Έλεγχος συνένωσης Συνένωση και οικοδόμηση Ημερήσια οικοδόμηση Συνεχής συνένωση Σχετικές επιδόσεις μεθόδων διασφάλισης ποιότητας Μετρικές
Διαβάστε περισσότερα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) Τι είναι αντικείμενο?
Διαβάστε περισσότεραΑΡΦΕ ΑΝΣΙΚΕΙΜΕΝΟΣΡΕΥΟΤ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ. Ιωάννης Φατζηλυγερούδης Αναπληρωτής Καθηγητής Τμήμα Μηχ/κών Η/Υ και Πληροφορικής Πανεπιστήμιο Πατρών
ΑΡΦΕ ΑΝΣΙΚΕΙΜΕΝΟΣΡΕΥΟΤ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ Ιωάννης Φατζηλυγερούδης Αναπληρωτής Καθηγητής Τμήμα Μηχ/κών Η/Υ και Πληροφορικής Πανεπιστήμιο Πατρών ΜΟΡΥΕ ΠΡΟΓΡΑΜΜΑΣΙΜΟΤ Διαδικασιακός ή Διαδικαστικός (Procedural)
Διαβάστε περισσότεραΕλεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού - Μετρικές
Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού - Μετρικές Τµήµα Διοίκησης Επιχειρήσεων Τει Δυτικής Ελλάδας Μεσολόγγι Δρ. Α. Στεφανή Διάλεξη 3 Μετρικές διαδικασίας Η λογική της βελτίωσης µιας διαδικασίας
Διαβάστε περισσότερα(Διαφάνειες Νίκου Βιδάκη)
(Διαφάνειες Νίκου Βιδάκη) JAVA Inheritance Εβδομάδα Νο. 3 2 Προηγούμενο μάθημα (1/2) Τι είναι αντικείμενο? Ανάλυση αντικειμένων Πραγματικά αντικείμενα Καταστάσεις Συμπεριφορές Αντικείμενα στον προγραμματισμό
Διαβάστε περισσότεραΣύνθεση και Κληρονομικότητα
Σύνθεση και Κληρονομικότητα Σύνθεση (composition) Κληρονομικότητα (inheritance) Υπερφόρτωση κληρονομημένων μελών Εικονικές συναρτήσεις και Πολυμορφισμός Αφηρημένες (abstract) βασικές κλάσεις 1 Σύνθεση
Διαβάστε περισσότερα02 Αντικειμενοστρεφής Προγραμματισμός
02 Αντικειμενοστρεφής Προγραμματισμός Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Εαρινό εξάμηνο 2016 17 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Αντικειμενοστρέφεια Στον προγραμματισμό object
Διαβάστε περισσότεραΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. «Ανάπτυξη εργαλείου διαχείρισης έργων λογισμικού» Αρ. Μητρώου: 06/3059
ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «Ανάπτυξη εργαλείου διαχείρισης έργων λογισμικού» Του φοιτητή Παρασκευά Κουκάρα Επιβλέπων καθηγητής Δεληγιάννης Ιγνάτιος Αρ. Μητρώου: 06/3059 Θεσσαλονίκη 2013 ΠΡΟΛΟΓΟΣ Η παρακάτω εργασία
Διαβάστε περισσότεραpublic void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);
Κληρονομικότητα Η κληρονομικότητα (inheritance) αποτελεί έναν από τους χαρακτηριστικότερους μηχανισμούς των αντικειμενοστρεφών γλωσσών προγραμματισμού. Επιτρέπει την δημιουργία μιας νέας κλάσης απορροφώντας
Διαβάστε περισσότεραΣτόχοι της Πτυχιακής
Αξιολόγηση της επίδρασης της χρήσης προτύπων σχεδίασης στις τιμές των μετρικών αντικειμενοστρεφούς σχεδίασης. Εφαρμογή σε εργαλείο σχεδίασης λογισμικού Βούλγαρης Μιχάλης Στόχοι της Πτυχιακής Επίδραση των
Διαβάστε περισσότεραΠΟΛΥΜΟΡΦΙΣΜΟΣ. 4.1 Κληρονομικότητα και Αρχή της Υποκατάστασης
ΠΟΛΥΜΟΡΦΙΣΜΟΣ Λόγω της θεμελιώδους σημασίας της έννοιας του πολυμορφισμού (polymorphism) στην αντικειμενοστρεφή σχεδίαση, κρίνεται σκόπιμο στο σημείο αυτό του βιβλίου να αναλυθεί εκτενέστερα. Ο πολυμορφισμός
Διαβάστε περισσότεραΑΠΛΗ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ
ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ Μηχανισµός υλοποίησης των σχέσεων γενίκευσης/εξειδίκευσης µεταξύ κλάσεων Η σχέση εξειδίκευσης «υποκλάση-της» (subclass-of)είναι γνωστή σαν σχέση «είναι ένα» (isa) ή «είναι ένα είδος» (ako:
Διαβάστε περισσότεραΕΡΓΟ: Συγκριτική Μελέτη Λογισμικού Βιβλιοθηκών, Λογισμικού Εφαρμογών Ανοικτού Κώδικα και Βιομηχανικού Λογισμικού MIS:
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ, ΔΙΑ ΒΙΟΥ ΜΑΘΗΣΗΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΕΙΔΙΚΗ ΥΠΗΡΕΣΙΑ ΔΙΑΧΕΙΡΙΣΗΣ ΕΠΙΧΕΙΡΗΣΙΑΚΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ ΕΚΠΑΙΔΕΥΣΗ ΚΑΙ ΔΙΑ ΒΙΟΥ ΜΑΘΗΣΗ ΕΠΙΧΕΙΡΗΣΙΑΚΟ ΠΡΟΓΡΑΜΜΑ «ΕΚΠΑΙΔΕΥΣΗ ΚΑΙ
Διαβάστε περισσότεραFORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017
FORTRAN & Αντικειμενοστραφής Προγραμματισμός ΣΝΜΜ 2017 M8 Αντικειμενοστραφής Προγραμματισμός - Ασκήσεις Γεώργιος Παπαλάμπρου Επικ. Καθηγητής ΕΜΠ Εργαστήριο Ναυτικής Μηχανολογίας george.papalambrou@lme.ntua.gr
Διαβάστε περισσότεραΕλεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού:Γενική Επισκόπηση - επισηµάνσεις
Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού:Γενική Επισκόπηση - επισηµάνσεις Τµήµα Διοίκησης Επιχειρήσεων Τει Δυτικής Ελλάδας Μεσολόγγι Δρ. Α. Στεφανή Διάλεξη 9 Τι είναι ποιότητα; Ποιότητα
Διαβάστε περισσότεραΣύνθεση και Κληρονομικότητα
Σύνθεση και Κληρονομικότητα Σύνθεση (composition) Κληρονομικότητα (inheritance) Υπερφόρτωση κληρονομημένων μελών Εικονικές συναρτήσεις και Πολυμορφισμός Αφηρημένες (abstract) βασικές κλάσεις 1 Σύνθεση
Διαβάστε περισσότεραΑΛΕΞΑΝΔΡΕΙΟ ΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ
ΑΛΕΞΑΝΔΡΕΙΟ ΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Εμπειρική Μελέτη της Εξέλιξης της Ποιότητας του Κώδικα Ανοιχτού Λογισμικού Τριανταφυλλίδου Νόνα ΑΜ:05/2777
Διαβάστε περισσότεραΑντικειµενοστραφής Προγραµµατισµός
Κλάσεις Αντικειµενοστραφής Προγραµµατισµός Κλάσεις Αντικείµενα Ιεραρχία κλάσεων Κλάσεις. Ιδιότητες Συµπεριφορά Ιδιότητες (Μεταβλητές) Συµπεριφορά (Μέθοδοι) Κληρονοµικότητα Μέθοδοι επικάλυψης Η χρήση του
Διαβάστε περισσότερα2.1 Αντικειµενοστρεφής προγραµµατισµός
2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός
Αντικειμενοστρεφής Προγραμματισμός Διδάσκουσα: Αναπλ. Καθηγήτρια Ανδριάνα Πρέντζα aprentza@unipi.gr Εργαστηριακός Συνεργάτης: Δρ. Βασιλική Κούφη vassok@unipi.gr Περιεχόμενα Java Classes Java Objects Java
Διαβάστε περισσότεραΕισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #12
Διάγραμμα κλάσεων [Class diagram] Διάλεξη #12: Υπο-τύποι και πολυμορφισμός [sub-typing and polymorphism] Database Music Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή
Διαβάστε περισσότεραΕισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2
Ανασκόπηση Μια εφαρμογή Java είναι ένα σύνολο από συνεργαζόμενες κλάσεις Διάλεξη #2: Αντικείμενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή
Διαβάστε περισσότεραΟντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 1: Αντικειμενοστραφής Προγραμματισμός Εισαγωγή OBJECT-ORIENTED PROGRAMMING ΔΙΔΑΣΚΟΝΤΕΣ: Iωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κληρονομικότητα Παράδειγμα Στο προηγούμενο παράδειγμα οι φοιτητές και οι καθηγητές είχαν κάποια κοινά στοιχεία Και οι δύο είχαν όνομα Και οι δύο είχαν κάποιο
Διαβάστε περισσότεραΔιαγράμματα Κλάσεων στη Σχεδίαση
Διαγράμματα Κλάσεων στη Σχεδίαση περιεχόμενα παρουσίασης Αφηρημένες κλάσεις Ιδιότητες Λειτουργίες Απλοί τύποι Συσχετίσεις Εξάρτηση Διεπαφές αφηρημένες κλάσεις Οι αφηρημένες κλάσεις δεν μπορούν να δημιουργήσουν
Διαβάστε περισσότεραΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007
Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Όλοι οι αριθμοί που αναφέρονται σε όλα τα ερωτήματα μικρότεροι του 10000 εκτός αν ορίζεται διαφορετικά στη διατύπωση του προβλήματος. Αν κάπου κάνετε κάποιες υποθέσεις
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κληρονομικότητα Παράδειγμα Στο προηγούμενο παράδειγμα οι φοιτητές και οι καθηγητές είχαν κάποια κοινά στοιχεία Και οι δύο είχαν όνομα Και οι δύο είχαν κάποιο
Διαβάστε περισσότεραΟντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 2: Η ΓΛΩΣΣΑ JAVA Κληρονομικότητα ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ
Διαβάστε περισσότεραΚληρονομικότητα. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Java Κληρονομικότητα 1
Κληρονομικότητα Παύλος Εφραιμίδης pefraimi ee.duth.gr Java Κληρονομικότητα 1 Ιεραρχίες Κλάσεων Στην Java (και γενικότερα στον αντικειμενοστραφή προγραμματισμό) μπορεί από μία να κλάση να δημιουργηθεί
Διαβάστε περισσότεραΑΣΚΗΣΕΙΣ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ (inheritance)
ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΣΚΗΣΕΙΣ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ (inheritance) ΑΣΚΗΣΗ-1 η κληρονομεί μια λειτουργικότητα της υπερκλάσης. Π.χ. ορίστε την υπερκλάση Superclass με χαρακτηριστικά (1)
Διαβάστε περισσότεραΕισαγωγή σε αντικειμενοστραφή concepts. Και λίγη C#
Εισαγωγή σε αντικειμενοστραφή concepts Και λίγη C# Κλάσεις Κλάση: τύπος δεδομένων που αποτελεί συλλογή πεδίων, ορισμών συναρτήσεων/μεθόδων και ορισμών άλλων τύπων δεδομένων. Αντίστοιχο σκεπτικό με struct
Διαβάστε περισσότεραΟντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA
Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Τι θα συζητήσουμε σήμερα Πώς υλοποιούμε συσχετίσεις μεταξύ κλάσεων απλές και πολλαπλές συσχετίσεις κληρονομικότητα Static, final Overloading Overriding Hiding
Διαβάστε περισσότεραΜέθοδοι. Υποσυστήµατα και πακέτα. Μοντέλα αντικειµενοστραφούς σχεδίασης. Αντικειµενοστραφής Σχεδίαση. Στα πρώτα στάδια της ανάλυσης
Αντικειµενοστραφής Σχεδίαση Αντώνης Καραγεώργος Τµήµα Μηχανικών Η/Υ και ικτύων Πανεπιστήµιο Θεσσαλίας karageorgos@inf.uth.gr Μέθοδοι Στα πρώτα στάδια της γράφουµε µόνο τα ονόµατα των µεθόδων Γράφουµε τις
Διαβάστε περισσότεραΔιερεύνηση της Συσχέτισης Μεταξύ Δεικτών Συντηρησιμότητας και Μετρικών Λογισμικού σε Έργα Ανοικτού Κώδικα
Πρόγραμμα Μεταπτυχιακών Σπουδών Ειδίκευσης του Τμήματος Εφαρμοσμένης Πληροφορικής ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Διερεύνηση της Συσχέτισης Μεταξύ Δεικτών Συντηρησιμότητας και Μετρικών Λογισμικού σε Έργα Ανοικτού
Διαβάστε περισσότεραΕισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6
Ανασκόπηση Μια εφαρµογή Java είναι ένα σύνολο από συνεργαζόµενες κλάσεις Εβδοµάδα 2: Αντικείµενα, Κλάσεις και Μέθοδοι Εισαγωγή στον Προγραµµατισµό,,, Slide 1 Εισαγωγή στον Προγραµµατισµό,,, Slide 2 Ανασκόπηση:
Διαβάστε περισσότεραΕισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #13
Wrapper Classes, Abstract Classes and Interfaces Διάλεξη #13: Μεταβλητές/μέθοδοι κλάσης, αφηρημένες κλάσεις και διαπροσωπείες Μεταβλητές /πεδία κλάσης [class variables] Τα αντικείμενα ανήκουν σε κλάσεις
Διαβάστε περισσότεραΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ.
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Πτυχιακή εργασία «ΕΠΙΔΡΑΣΗ ΠΡΟΤΥΠΩΝ ΣΧΕΔΙΑΣΗΣ ΣΤΗ ΠΟΙΟΤΗΤΑ ΤΟΥ ΛΟΓΙΣΜΙΚΟΥ ΜΕΣΩ ΑΝΑΛΥΤΙΚΗΣ
Διαβάστε περισσότεραΑντικειμενοστρέφεια. Henri Matisse, Harmony in Red, Κωστής Σαγώνας Νίκος Παπασπύρου
Αντικειμενοστρέφεια Henri Matisse, Harmony in Red, 1908 Κωστής Σαγώνας Νίκος Παπασπύρου Ορισμοί αντικειμενοστρέφειας Ποιοι είναι οι ορισμοί των παρακάτω; Αντικειμενοστρεφής
Διαβάστε περισσότεραΚεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού
Διαβάστε περισσότεραΔυναμική μνήμη με πίνακες και λίστες
Δυναμική μνήμη με πίνακες και λίστες Ατζέντα ονομάτων Οι πίνακες βοηθάνε στην εύκολη προσπέλαση, στην σειριοποίηση των δεδομένων για αποθήκευση ή μετάδοση. Απαιτούν ωστόσο είτε προκαταβολική δέσμευση μνήμης
Διαβάστε περισσότεραΔιδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 12: Κληρονομικότητα (Inheritance) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Κληρονομικότητα και Επαναχρησιμοποίηση - Υποκλάσεις/Υπερκλάσεις - Απόκρυψη ονομάτων - Το super, protected
Διαβάστε περισσότεραΕργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 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
Διαβάστε περισσότεραclass object Database Database Item Item [sub-typing and polymorphism] MusicCD Video MusicCD Video
ιάγραµµα κλάσεων [Class diagram] Εβδοµάδα 2: Υπο-τύποι και πολυµορφισµός [sub-typing and polymorphism] Database Music Σχεδίαση-Ανάπτυξη Εφαρµογών Πληροφορικής Αντώνιος Συµβώνης, ΕΜΠ, Slide 1 Σχεδίαση-Ανάπτυξη
Διαβάστε περισσότερα09 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών. Εαρινό εξάμηνο
09 Η γλώσσα UML I Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών Εαρινό εξάμηνο 2017 18 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Unified Modeling Language
Διαβάστε περισσότεραΠρογραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Κλάσεις και Αντικείμενα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Κλάσεις Η γενική μορφή μιας κλάσης είναι η εξής: class class-name { private data and
Διαβάστε περισσότεραΠρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής
Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής Να γραφεί πρόγραμμα το οποίο δέχεται ως είσοδο μια ακολουθία S από n (n 40) ακέραιους αριθμούς και επιστρέφει ως έξοδο δύο ακολουθίες από θετικούς ακέραιους
Διαβάστε περισσότεραk A = [k, k]( )[a 1, a 2 ] = [ka 1,ka 2 ] 4For the division of two intervals of confidence in R +
Chapter 3. Fuzzy Arithmetic 3- Fuzzy arithmetic: ~Addition(+) and subtraction (-): Let A = [a and B = [b, b in R If x [a and y [b, b than x+y [a +b +b Symbolically,we write A(+)B = [a (+)[b, b = [a +b
Διαβάστε περισσότεραΚλάσεις. Κατηγορίες Αντικειµένων. Κλάσεις. Φυσικά Αντικείµενα. Χώρος = Οµάδα Φυσικών Αντικειµένων. Πρόγραµµα = Οµάδα
Αντικειµενοστραφής Προγραµµατισµός Αντικείµενα Ιεραρχία κλάσεων. Ιδιότητες Συµπεριφορά Ιδιότητες (Μεταβλητές) Συµπεριφορά (Μέθοδοι) Κληρονοµικότητα Μέθοδοι επικάλυψης Η χρήση του this και του super Αντικειµενοστραφής
Διαβάστε περισσότεραΕισαγωγή στον Προγ/μό Η/Υ
Εισαγωγή στον Προγ/μό Η/Υ Ενότητα 7 2ο μέρος: Επιπλέον έννοιες σχετικά με αντικείμενα Διδάσκων: Μιχάλης Τίτσιας Περιεχόμενα Τι μπορεί να περιέχει μια τάξη Μέθοδοι τάξης και σταθερές τάξης Πολυμορφισμός
Διαβάστε περισσότεραΚατανεμημένα Συστήματα. 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
Διαβάστε περισσότεραΑνάλυση Πληροφοριακών Συστημάτων. Εαρινό Εξάμηνο Lec08 09/04/2019 Διδάσκων: Γεώργιος Χρ. Μακρής
Ανάλυση Πληροφοριακών Συστημάτων Εαρινό Εξάμηνο 2018-2019 Lec08 09/04/2019 Διδάσκων: Γεώργιος Χρ. Μακρής Διαγράμματα Κλάσεων Τα βασικά στοιχεία Διαλέξεις παρουσιάσεις Το υλικό του μαθήματος στηρίζεται
Διαβάστε περισσότεραΕισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #3
Επισκόπηση Διάλεξη #3: Υλοποίηση μεθόδων Τοπικές μεταβλητές Κλήση μεθόδων Μέθοδοι της κλάσης String Δημιουργία αντικειμένων Στατικές μέθοδοι (μέθοδοι κλάσεων) Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,,
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα Μαθήματα από το πρώτο εργαστήριο Έλεγχος ισότητας για Strings: Διαβάζουμε το String option και θέλουμε ένα loop να συνεχίσει
Διαβάστε περισσότεραΠαύλος Εφραιµίδης. Java. Κληρονοµικότητα
κληρονοµικότητα Παύλος Εφραιµίδης 1 ιεραρχίες κλάσεων Στην (και γενικότερα στον αντικειµενοστρεφή προγραµµατισµό) µπορεί από µία κλάση να δηµιουργηθεί µια νέα κλάση απόγονος που κληρονοµεί όλα τα χαρακτηριστικά
Διαβάστε περισσότεραΔιάγραμμα Κλάσεων. Class Diagram
Διάγραμμα Κλάσεων Class Diagram Γενικά Ορίζει τις κλάσεις αντικειμένων σε ένα σύστημα, τις μεθόδους και τις συναρτήσεις τους, και τις συσχετίσεις μεταξύ των κλάσεων. Περιγράφουν την δομή και συμπεριφορά
Διαβάστε περισσότεραηµιουργία νέου τύπου δεδοµένων από το χρήστη
ηµιουργία νέου τύπου δεδοµένων από το χρήστη program create_a_type type chemical_element character (len=2) integer end type type (chemical_element) type (chemical_element) :: argon,carbon,neon :: Periodic_Table(109)
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΗ ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ
ΕΙΣΑΓΩΓΗ ΣΤΗ ΣΤΑΤΙΣΤΙΚΗ ΑΝΑΛΥΣΗ ΕΛΕΝΑ ΦΛΟΚΑ Επίκουρος Καθηγήτρια Τµήµα Φυσικής, Τοµέας Φυσικής Περιβάλλοντος- Μετεωρολογίας ΓΕΝΙΚΟΙ ΟΡΙΣΜΟΙ Πληθυσµός Σύνολο ατόµων ή αντικειµένων στα οποία αναφέρονται
Διαβάστε περισσότεραAbstract classes, Interfaces ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA
Abstract classes, Interfaces ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Τι θα συζητήσουμε σήμερα Αφαιρέσεις στη Java Abstract μέθοδοι και abstract κλάσεις Interfaces (=διασυνδέσεις, διεπαφές) Instanceof Παραδείγματα κώδικα Αφηρημένες
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07
Πρώτοι αριθμοί ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07 Ένας ακέραιος μεγαλύτερος του 1 είναι πρώτος αν έχει ακριβώς δύο διαιρέτες (τη μονάδα και τον εαυτό του). Πρόβλημα: έλεγχος
Διαβάστε περισσότεραΗ ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΕΞΕΙΔΙΚΕΥΣΗΣ. Υ7ΐοβάλλεται στην
Κατηγοριοποίηση Σχεδιαστικών Προτύπων Αντικειμενοστρεφούς Σχεδίασης Βασισμένη σε Μετρικές Ποιότητας Η ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΕΞΕΙΔΙΚΕΥΣΗΣ Υ7ΐοβάλλεται στην ορισθείσα από την Γενική Συνέλευση Ειδικής Σύνθεσης
Διαβάστε περισσότεραΔέντρα Απόφασης (Decision(
Δέντρα Απόφασης (Decision( Trees) Το μοντέλο που δημιουργείται είναι ένα δέντρο Χρήση της τεχνικής «διαίρει και βασίλευε» για διαίρεση του χώρου αναζήτησης σε υποσύνολα (ορθογώνιες περιοχές) Ένα παράδειγμα
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός Διάλεξη 8 : ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ & ΠΟΛΥΜΟΡΦΙΣΜΟΣ
Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 8 : ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ & ΠΟΛΥΜΟΡΦΙΣΜΟΣ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ (1/3) Στην αρχή της κληρονομικότητας βασίζεται ο σχεδιασμός και η υλοποίηση συστημάτων Η κληρονομικότητα χρησιμοποιείται
Διαβάστε περισσότεραΠληροφοριακά Συστήματα Διοίκησης Ενότητα 1: Βασικές Αρχές Αντικειμενοστραφούς Σχεδίασης Συστημάτων και Εφαρμογών (1ο Μέρος)
Πληροφοριακά Συστήματα Διοίκησης Ενότητα 1: Βασικές Αρχές Αντικειμενοστραφούς Σχεδίασης Συστημάτων και Εφαρμογών (1ο Μέρος) Γρηγόριος Μπεληγιάννης Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διοίκησης
Διαβάστε περισσότεραΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΜΕΤΑΠΤΥΧΙΑΚΟ ΔΙΠΛΩΜΑ ΕΙΔΙΚΕΥΣΗΣ (MSc) στα ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΠΛΩΜΑΤΙKH ΕΡΓΑΣΙΑ
ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΔΙΠΛΩΜΑ ΕΙΔΙΚΕΥΣΗΣ (MSc) στα ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΠΛΩΜΑΤΙKH ΕΡΓΑΣΙΑ «Μετρικές και ποιότητα αντικειμενοστραφούς λογισμικού» Νομικός Ιάκωβος
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial
ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial Introduction Το Javadoc είναι ένα εργαλείο που παράγει αρχεία html (παρόμοιο με τις σελίδες στη διεύθυνση http://docs.oracle.com/javase/8/docs/api/index.html) από τα σχόλια
Διαβάστε περισσότερα(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.
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008
ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 11/3/2008 Κατασκευαστές (Constructors) Ειδικός τύπος μεθόδων, οι οποίες: - είναι public και έχουν το ίδιο όνομα με αυτό της κλάσης - χρησιμοποιούνται για να αρχικοποιήσουν κάποιες
Διαβάστε περισσότεραΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006
Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Ολοι οι αριθμοί που αναφέρονται σε όλα τα ερωτήματα είναι μικρότεροι το 1000 εκτός αν ορίζεται διαφορετικά στη διατύπωση του προβλήματος. Διάρκεια: 3,5 ώρες Καλή
Διαβάστε περισσότεραWrapper Classes, Abstract Classes and Interfaces
Wrapper Classes, Abstract Classes and Interfaces Εβδοµάδα 3: Κλάσεις συσκευαστές, αφηρηµένες κλάσεις και διαπροσωπείες Αντικείµενα και µη-αντικείµενα Η Java παρέχει τύπους αντικειµένων και απλούς τύπους
Διαβάστε περισσότεραΓλώσσες προγραµµατισµού. Ανάπτυξη Συστηµάτων Λογισµικού
ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ http://courses.softlab.ntua.gr/softeng/ ιδάσκοντες: (nickie@softlab.ntua.gr) Βασίλης Βεσκούκης (bxb@softlab.ntua.gr) Γλώσσες Προγραµµατισµού και Ανάπτυξη Συστηµάτων Λογισµικού ΤΛ
Διαβάστε περισσότεραΜοντέλο Οντοτήτων-Συσχετίσεων. Η ανάγκη Διαγράμματα ΟΣ Σύνολα Οντοτήτων-Συσχετίσεων Απεικονίσεις Επεκτάσεις
Η ανάγκη Διαγράμματα ΟΣ Σύνολα Οντοτήτων-Συσχετίσεων Απεικονίσεις Επεκτάσεις Μοντέλα Δεδομένων Μοντέλο: αφαιρετική αναπαράσταση του πραγματικού κόσμου. Μοντέλα βασισμένα σε εγγραφές (record based models)
Διαβάστε περισσότεραΠίνακας Περιεχομένων. μέρος A 1 Εισαγωγή στην Τεχνολογία Λογισμικού
Πρόλογος...21 μέρος A Εισαγωγή στην Τεχνολογία Λογισμικού 1 Εισαγωγή στην Τεχνολογία Λογισμικού 1.1 Το λογισμικό...25 1.1.1 Ο ρόλος και η σημασία του λογισμικού...26 1.1.2 Οικονομική σημασία του λογισμικού...28
Διαβάστε περισσότεραHY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems
HY380 Αλγόριθμοι και πολυπλοκότητα Hard Problems Ημερομηνία Παράδοσης: 0/1/017 την ώρα του μαθήματος ή με email: mkarabin@csd.uoc.gr Γενικές Οδηγίες α) Επιτρέπεται η αναζήτηση στο Internet και στην βιβλιοθήκη
Διαβάστε περισσότεραΑντικειμενοστρεφής Προγραμματισμός
Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων Αντικειμενοστρεφής Προγραμματισμός 3/4/2017 Δρ. Ανδριάνα Πρέντζα Αναπληρώτρια Καθηγήτρια aprentza@unipi.gr Γιατί έλεγχος πρόσβασης? Προστασία ιδιωτικής πληροφορίας
Διαβάστε περισσότεραΕισαγωγή στη Σχεδίαση Λογισμικού
Εισαγωγή στη Σχεδίαση Λογισμικού περιεχόμενα παρουσίασης Τι είναι η σχεδίαση λογισμικού Έννοιες σχεδίασης Δραστηριότητες σχεδίασης Σχεδίαση και υποδείγματα ανάπτυξης λογισμικού σχεδίαση Η σχεδίαση του
Διαβάστε περισσότερα08 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο. Χειμερινό εξάμηνο
08 Η γλώσσα UML I Τεχνολογία Λογισμικού Σχολή Hλεκτρολόγων Mηχανικών & Mηχανικών Yπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Χειμερινό εξάμηνο 2017 18 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Unified Modeling Language
Διαβάστε περισσότεραΥποδείγματα Ανάπτυξης
Υποδείγματα Ανάπτυξης περιεχόμενα παρουσίασης Αποσύνθεση Αφαίρεση Μοντελοποίηση Η δεδομένο λειτουργική προσέγγιση Η αντικειμενοστρεφής προσέγγιση αποσύνθεση Όταν επιχειρούμε τη λύση ενός προβλήματος, πρώτα
Διαβάστε περισσότεραΚληρονομικότητα. Κληρονομικότητα (inheritance) είναι ο τρόπος µε τον οποίο μία τάξη μπορεί να κληρονομήσει ιδιότητες και συμπεριφορά από άλλες τάξεις.
Κληρονομικότητα (inheritance) είναι ο τρόπος µε τον οποίο μία τάξη μπορεί να κληρονομήσει ιδιότητες και συμπεριφορά από άλλες τάξεις. Μέσω της κληρονομικότητας μπορούμε να δημιουργήσουμε µια νέα τάξη (θυγατρική)
Διαβάστε περισσότεραΕισαγωγή στον Αντικειμενοστρέφή Προγραμματισμό Διάλεξη #11
Κληρονομικότητα [inheritance] Διάλεξη #11: Κληρονομικότητα [inheritance] Τι είναι η κληρονομικότητα; Γιατί είναι σημαντική; Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό,, Slide 1 Εισαγωγή στον Αντικειμενοστρεφή
Διαβάστε περισσότεραΑπό τη UML στον Κώδικα. Μέρος Β
Από τη UML στον Κώδικα Μέρος Β περιεχόμενα παρουσίασης Αμφίδρομες συσχετίσεις Συσσωμάτωση Σύνθεση Διαγράμματα ακολουθίας αμφίδρομες συσχετίσεις Μία αμφίδρομη συσχέτιση υλοποιείται με δύο μονόδρομες. Υπάρχει
Διαβάστε περισσότερα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
Διαβάστε περισσότεραΛογισµικό (Software SW) Γλώσσες
Λογισµικό (Software SW) Γλώσσες Προγραµµατισµού Οι γενιές των γλωσσών προγραµµατισµού Προβλήµατα που επιλύονται σε ένα περιβάλλον στο οποίο ο άνθρωπος πρέπει να προσαρµόζεται στα χαρακτηριστικά της µηχανής
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κληρονομικότητα
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κληρονομικότητα Παράδειγμα Στο παράδειγμα με το τμήμα πανεπιστημίου οι φοιτητές και οι καθηγητές είχαν κάποια κοινά στοιχεία Και οι δύο είχαν όνομα Και οι δύο
Διαβάστε περισσότεραΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007
Οδηγίες: Να απαντηθούν όλες οι ερωτήσεις. Αν κάπου κάνετε κάποιες υποθέσεις να αναφερθούν στη σχετική ερώτηση. Όλα τα αρχεία που αναφέρονται στα προβλήματα βρίσκονται στον ίδιο φάκελο με το εκτελέσιμο
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Μέθοδοι Παράδειγμα Θέλουμε ένα πρόγραμμα που να προσομοιώνει την κίνηση ενός αυτοκινήτου, το οποίο κινείται και τυπώνει τη θέση του.
Διαβάστε περισσότεραΟδηγίες Συγγραφής και Αξιολόγησης Εργασιών του μαθήματος
ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Αντικειμενοστρεφής Προγραμματισμός Η/Υ Οδηγίες Συγγραφής και Αξιολόγησης Εργασιών του μαθήματος Το κείμενο αυτό γράφεται με σκοπό να βοηθήσει τους φοιτητές του μαθήματος
Διαβάστε περισσότεραΤεχνολογία Λογισμικού
Τμήμα Πληροφορικής & Τηλεπικοινωνιών, ΕΚΠΑ Τεχνολογία Λογισμικού 8ο Εξάμηνο 2018 19 Unified Modeling Language II Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Μοντελοποίηση δομής Διαγράμματα κλάσεων Class diagrams
Διαβάστε περισσότεραΚαλές επιτυχίες παιδιά στα υπόλοιπα μαθήματά σας και καλές γιορτές!!!!
Πανεπιστήμιο Κύπρου Πολυτεχνική Σχολή Τμήμα Πολιτικών Μηχανικών και Μηχανικών Περιβάλλοντος ΠΠΜ 401: Ανάπτυξη Λογισμικού Εφαρμογών Μηχανικής, 2016 Ακαδημαϊκό Έτος 2016-17, Χειμερινό Εξάμηνο Τελική Εξέταση
Διαβάστε περισσότεραΠληροφορική 2. Τεχνολογία Λογισμικού
Πληροφορική 2 Τεχνολογία Λογισμικού 1 2 Κρίση Λογισμικού (1968) Στην δεκαετία του 1970 παρατηρήθηκαν μαζικά: Μεγάλες καθυστερήσεις στην ολοκλήρωση κατασκευής λογισμικών Μεγαλύτερα κόστη ανάπτυξης λογισμικού
Διαβάστε περισσότεραΟντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA
Οντοκεντρικός Προγραμματισμός ΦΡΟΝΤΙΣΤΗΡΙΟ JAVA Τι θα συζητήσουμε σήμερα Πώς υλοποιούμε συσχετίσεις μεταξύ κλάσεων απλές και πολλαπλές συσχετίσεις κληρονομικότητα Static, final Overloading Overriding Hiding
Διαβάστε περισσότεραΑντικειμενοστρεφής προγραμματισμός Object Oriented Programming (OOP) Σπάχος Κυριάκος Καθηγητής Πληροφορικής ΠΕ19
Αντικειμενοστρεφής προγραμματισμός Object Oriented Programming (OOP) Σπάχος Κυριάκος Καθηγητής Πληροφορικής ΠΕ19 Διαδικασιακός προγραμματισμός Ο Διαδικασιακός προγραμματισμός δίνει έμφαση στις ενέργειες/διεργασίες/εντολές
Διαβάστε περισσότεραΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΡΟΥΜΠΟΣ ΓΙΩΡΓΟΣ
ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΡΟΥΜΠΟΣ ΓΙΩΡΓΟΣ Για τις ανάγκες της Πτυχιακής εργασίας θα μελετηθούν επιστημονικές εργασίες που εξετάζουν : Τις Α/Σ μετρικές Τα APIs ΕΙΣΑΓΩΓΗ Εμπειρικές μελέτες που αφορούν την εφαρμογή
Διαβάστε περισσότεραΤο πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.
Το πρόγραμμα HelloWorld.java Σχόλια στη Java HelloWorld Παύλος Εφραιμίδης pefraimi ee.duth.gr Java Το πρόγραμμα HelloWorld 1 Java Το πρόγραμμα HelloWorld 2 Σχόλια στη Java ΗγλώσσαJava υποστηρίζει
Διαβάστε περισσότερα