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

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

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

Transcript

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

2 2

3 Αφιερωμένο στην οικογένειά μου και σε όσους με στήριξαν. 3

4 Ευχαριστίες Θα ήθελα να ευχαριστήσω θερμά τον επιβλέποντα καθηγητή μου κ. Γιακουμάκη Εμμανουήλ, καθώς και τους κ. Διαμαντίδη Νίκο και Ζαφείρη Βασίλη για την εμπιστοσύνη που έδειξαν στο πρόσωπό μου, αλλά και την βοήθεια και καθοδήγηση που μου χάρισαν κατά την διάρκεια της εκπόνησης αυτής της διπλωματικής μου εργασίας. 4

5 Περιεχόμενα Περίληψη Εισαγωγή Διασφάλιση Ποιότητας Λογισμικού Η έννοια της ποιότητας Ποιοτικός Έλεγχος Λογισμικού Μοντέλα Ποιότητας και Πρότυπα Μοντέλο του McCall Μοντέλο του Boehm Πρότυπο ISO Μετρικές Λογισμικού Θεωρητικό Εννοιολογικό Υπόβαθρο Πεδία Εφαρμογής Μετρικών Μετρικές Μη-Αντικειμενοστραφούς Λογισμικού Κριτήρια Αξιολόγησης Μετρικών Μετρικές Αντικειμενοστραφούς Λογισμικού Οι Αρχές Οι Μετρικές Διασφάλιση Ποιότητας Λογισμικού Εφαρμογή μετρικών στον κύκλο ζωής λογισμικού Ανάλυση Μετρικών Αντικειμενοστραφούς Προγραμματισμού Traditional metrics Object Oriented Metrics Class Metrics Method Metrics Coupling Metrics Inheritance Metrics System Metrics Chidamber & Kemerer object-oriented metrics MOOD and MOOD2 metrics Μελέτη Μετρικών ανά Πεδίο Εφαρμογής

6 4.4.1 Ελεγξιμότητα (Τestability) Προδιάθεση σφαλμάτων (Fault proneness) Ανασχεδιασμός (Refactoring) Συντηρησιμότητα (Μaintainability) Συμπεράσματα Βιβλιογραφία

7 Περίληψη Η ποιότητα του λογιστικού είναι ένα πολύ σημαντικό στοιχείο ενός λογισμικού συστήματος και είναι ιδιαίτερα εμφανής κυρίως µέσω της απουσίας της. Γι' αυτόν τον λόγω έχουν δαπανηθεί και εξακολουθούν να ξοδεύονται χρήματα και χρόνος είτε ακαδημαϊκά είτε επαγγελματικά για την διασφάλισή της. Η διασφάλιση της ποιότητας του λογισµικού συνδέεται άµεσα µε την έννοια της µετρικής. Οι μετρικές αντικειμενοστραφούς λογισμικού στοχεύουν στην ποσοτικοποίηση χαρακτηριστικών που σχετίζονται με την ποιότητα, το μέγεθος και την πολυπλοκότητα του λογισμικού. Οι μετρικές αποτελούν χρήσιμο εργαλείο για την εκτίμηση της ποιότητας του κώδικα, την πρόβλεψη του κόστους μελλοντικών επεκτάσεών του, καθώς και των εντοπισμό προβληματικών σημείων στα οποία πρέπει να εστιαστούν οι εργασίες συντήρησης. Έτσι, είναι δυνατό να εξαχθούν συμπεράσματα για το κατά πόσο ένα λογισµικό πληρή διάφορα κριτήρια είτε ποιότητας είτε συντηρησιμότητας κάνοντας έτσι πιο εύκολη την απόφαση στο που πρέπει να εστιάσουν είτε κατά την διαδικασία παραγωγής ενός λογισμικού συστήματος είτε κατά την συντήρησή του. Αντικείμενο της παρούσας διπλωματικής εργασίας είναι η αναζήτηση και επισκόπηση των αντικειμενοστραφών μετρικών και την αξιολόγηση της αποτελεσματικότητάς τους στην εκτίμηση και εντοπισμό προβληματικών περιοχών του κώδικα ενός συστήματος λογισμικού. Αρχικά γίνεται μια αναφορά σε όλες τις μετρικές που υπάρχουν μέχρι και σήμερα. Γίνεται μια ανάλυση ορισμένων που έπαιξαν καθοριστικό ρόλο στον τομέα των αντικειμενοστραφών μετρικών. Τέλος εξετάζονται ποιες μετρικές συμβάλουν και πώς σε συγκεκριμένες περιοχές εφαρμογής τους. 7

8 Abstract The quality of software is a very important element of a software system and is particularly evident primarily through its absence. To ensure quality money and time have been spent either academically or professionally. Ensuring software quality is directly related to the meaning of metrics. The object-oriented software metrics aim to quantify characteristics associated with quality, the size and complexity of software. The metrics are a useful tool for assessing the quality of the code, the cost estimate of future extensions, as well as identify bottlenecks that need to focus maintenance. Thus, it is possible to draw conclusions about whether a software meets several criteria of quality or maintainability thus making easier the decision on which should focus either during the production process of a software system either during maintenance. The purpose of this thesis is the search and review of object-oriented metrics and the evaluation of its effectiveness in assessing and identifying problem areas of the code of a software system. Initially there is a reference to all the metrics that exist today. Then there is an analysis of some who played a key role in the field of object-oriented metrics. Finally we review which metrics and how they contribute to their specific application areas. 8

9 1 Εισαγωγή Η παρούσα διπλωματική εργασία είναι μια βιβλιογραφική μελέτη πάνω στις μετρικές αντικειμενοστραφούς προγραμματισμού. Στο πλαίσιο εκπόνησης της και μετά από εκτενή αναζήτηση συγκεντρώθηκαν και αναλύθηκαν βιβλιογραφικές πηγές σχετικά με αντικειμενοστραφείς μετρικές και την χρησιμότητά τους στην διαδικασία ανάπτυξης ή συντήρησης λογισμικού. Πιο συγκεκριμένα για κάθε βιβλιογραφική αναφορά έγινε εξαγωγή και τεκμηρίωση των μετρικών που χρησιμοποιούνται ή προτείνονται. Στη συνέχεια έγινε μια προσπάθεια εντοπισμού του πεδίου εφαρμογής της κάθε μετρικής πχ εκτίμηση testability, fault proneness, ανάγκη για refactoring κτλ. Επίσης, οι μετρικές χαρακτηρίστηκαν όσον αφορά τη θετική ή αρνητική συνδρομή της στον επιτυχή εντοπισμό σημείων κώδικα που εμφανίζουν προβλήματα σχετικά με το πεδίο εφαρμογής της μετρικής. Ο χαρακτηρισμός κάθε μετρικής ορίζεται όπως αυτός προκύπτει από την ανάλυση της αναφοράς όπου εντοπίζεται. Στην παρούσα μελέτη έγινε μια προσπάθεια συνολικής αξιολόγησης κάθε μετρικής όσον αφορά τις περιοχές εφαρμογής της και την θετική, αρνητική ή ουδέτερη συνδρομή τους στον εντοπισμό προβληματικών περιοχών του κώδικα ενός συστήματος Το έναυσμα είναι η εξέταση της ποιότητας του κώδικα, καθώς όμως η τελευταία εξετάζεται διαχρονικά από την κοινότητα της τεχνολογίας λογισμικού με την διαρκή ανάγκη να βρεθεί μια μέθοδος όσο το δυνατόν αντικειμενική και απαλλαγμένη από τις ιδιαιτερότητες του κάθε έργου, η παρούσα μελέτη επιχειρεί να συμβάλλει στην γνώση γύρω από τις αντικειμενοστραφείς μετρικές και την χρησιμότητά τους στην διαδικασία ανάπτυξης ή συντήρησης λογισμικού. Αναλυτικότερα, η διάρθρωση της παρούσης έχει ως εξής: Ξεκινάει με την έννοια της ποιότητας του λογισμικού, καθώς και τον ποιοτικό έλεγχο λογισμικού. Πιο συγκεκριμένα παρουσιάζονται και αναλύονται, όπως αυτά εντοπίζονται στην βιβλιογραφία τα μοντέλα και πρότυπα ποιότητας του McCall, του Boehm καθώς και το πρότυπο 9

10 ISO9126. Στην συνέχεια γίνεται μια εισαγωγή στην έννοια του όρου «μετρική». Παρατίθεται το θεωρητικό και εννοιολογικό υπόβαθρο, όπως αυτό συναντάται στις πηγές. Επίσης εξετάζονται τα πεδία εφαρμογής των μετρικών. Αφού γίνει μια μικρή αναφορά των μη-αντικειμενοστραφών μετρικών, ακολουθεί και γίνεται εκτενέστερη αναφορά στις μετρικές αντικειμενοστραφούς προσδιορισμού όπου αναλύονται οι αρχές τους και εξετάζεται η σχέση τους με την έννοια της διασφάλισης ποιότητας λογισμικού. Η πέμπτη ενότητα εξετάζει την εφαρμογή μετρικών στον κύκλο ζωής λογισμικού αναλύει τις μετρικές αντικειμενοστραφούς προγραμματισμού και τις κατηγοριοποιεί όπως αυτές συναντώνται στην βιβλιογραφία στις ακόλουθες ομάδες: class, method, coupling, inheritance, system, chidamber & Kemer, Mood & Mood2. Τέλος, ακολουθεί η μελέτη των μετρικών ανά πεδίο εφαρμογής τους. Τα πεδία που αναλύονται είναι η ελεγξιμότητα, η προδιάθεση σφαλμάτων, ο ανασχεδιασμός και η συντηρησιμότητα. Η μελέτη κλείνει με την συνοπτική καταγραφή των συμπερασμάτων αυτής. 10

11 2 Διασφάλιση Ποιότητας Λογισμικού 2.1 Η έννοια της ποιότητας Η ποιότητα ως έννοια χρονολογείται πολλούς αιώνες πριν, παρόλα αυτά δεν εντοπίζεται στην βιβλιογραφία ένας σαφής ορισμός που να την περιγράφει. Κάποιοι υποστηρίζουν ότι η ποιότητα ενός προϊόντος γίνεται αντιληπτή μέσω της έλλειψής της, κάτι που από τη μία, δεν ορίζει την ποιότητα και από την άλλη, δεν καθορίζει τα χαρακτηριστικά ενός ποιοτικού προϊόντος. Κατά τον Ελληνικό Οργανισμό Τυποποίησης ως ποιότητα ορίζεται Το σύνολο των χαρακτηριστικών μίας οντότητας που της αποδίδουν την ικανότητα να ικανοποιεί εκφρασμένες και συνεπαγόμενες ανάγκες (πρότυπο ISO 8402). Ωστόσο, πολλοί άλλοι ορισμοί έχουν δοθεί για να περιγράψουν αυτό που γίνεται αντιληπτό ως ποιότητα. Ένας από τους πρώτους διατυπώθηκε από την American Society for Quality Control (ASQC) (αργότερα μετονομάστηκε σε ASQ) και ορίζει ότι Ποιότητα είναι η συλλογή των χαρακτηριστικών και ιδιοτήτων του προϊόντος που σχετίζονται με τη δυνατότητά του να εκπληρώνει τις ζητούμενες ανάγκες των πελατών. Επίσης, ο Phillip Crosby όρισε ως ποιότητα τη συμμόρφωση με τις απαιτήσεις των χρηστών, ενώ ο Joseph Juran την καταλληλότητα προς χρήση. Ο Roger Pressman παραθέτει τον ορισμό του American Heritage Dictionary που περιγράφει την ποιότητα ως ένα χαρακτηριστικό ή μία ιδιότητα, ενώ τη διαχωρίζει σε ποιότητα σχεδίασης (quality of design) και ποιότητα συμμόρφωσης (quality of conformance). Η ποιότητα σχεδίασης αναφέρεται στα χαρακτηριστικά που οι σχεδιαστές αποδίδουν σε ένα αντικείμενο (item) προκείμενου να κατασκευαστεί και η ποιότητα συμμόρφωσης αντιστοιχεί στο βαθμό που οι προδιαγραφές σχεδίασης ακολουθούνται κατά την κατασκευή. Για την περίπτωση του λογισμικού έχει γίνει προσπάθεια ώστε να αναπτυχθούν μέθοδοι διασφάλισης της ποιότητάς του. Ο David Garvin σε ένα άρθρο του που μελετά την ποιότητα 11

12 συμπεραίνει ότι η ποιότητα είναι μία πολύπλοκη και πολυπρόσωπη ιδέα και μπορεί να περιγραφεί από πέντε διαφορετικές πλευρές: 1. Υπερβατική θεώρηση (transcendental view): η ποιότητα είναι κάτι που μπορεί να αναγνωριστεί, αλλά όχι να οριστεί ή να επιτευχθεί πλήρως. 2. Θεώρηση από την πλευρά του χρήστη (user view): η ποιότητα ορίζεται ως καταλληλότητα για χρήση. 3. Κατασκευαστική θεώρηση (manufacturing view): η ποιότητα αντιμετωπίζεται ως η ικανοποίηση των απαιτήσεων και των ιδιαιτεροτήτων του χρήστη. 4. Θεώρηση από την πλευρά του προϊόντος (product view): η ποιότητα ταυτίζεται με τα εσωτερικά χαρακτηριστικά του προϊόντος. 5. Θεώρηση βάσει της αξίας (value-based view): η ποιότητα εξαρτάται από την αξία που κοστολογείται το προϊόν, δηλαδή από το ποσό που διατίθεται να πληρώσει ο χρήστης. Όπως προκύπτει από τις βιβλιογραφικές αναφορές οι πιο διαδεδομένες αντιλήψεις για την ποιότητα είναι η κατασκευαστική και η θεώρηση από την πλευρά του χρήστη, κάτι που αποδεικνύει ότι βασικός παράγοντας για τον καθορισμό της ποιότητας ενός προϊόντος είναι ο ίδιος ο χρήστης. Επίσης, η ποιότητα καθορίζεται από την κοινωνία και από τον κατασκευαστή (Ξένος, 1996). Η συστηματοποίηση των παραπάνω αντιλήψεων οδήγησε στη δημιουργία των μοντέλων ποιότητας, στα οποία η ποιότητα του προϊόντος διασπάται σε ποιοτικά χαρακτηριστικά που μπορούν άμεσα ή έμμεσα να μετρηθούν με τις κατάλληλες μετρικές. 12

13 2.2 Ποιοτικός Έλεγχος Λογισμικού Η ποιότητα λογισμικού αποτελεί μία πολυσυζητημένη έννοια για την οποία έχουν δοθεί πολλοί διαφορετικοί ορισμοί. Όλοι όμως συντείνουν στο ότι η ποιότητα ενός προϊόντος είναι η ικανοποίηση των απαιτήσεων του πελάτη χρήστη. Οι βασικές αρχές της ποιότητας λογισμικού και υλικών προϊόντων είναι κοινές, παρόλα αυτά υπάρχουν ουσιαστικές διαφορές στον τρόπο προσέγγισής τους. Στην παραγωγή υλικών προϊόντων απλώς εντοπίζονται και απορρίπτονται τα κομμάτια που δεν ακολουθούν τις προδιαγραφές, ενώ στο λογισμικό απαιτείται η διασφάλιση της ποιότητας του μοναδικού προϊόντος που θα παραχθεί. Βασικότερο πρόβλημα στη διασφάλιση ποιότητας του λογισμικού είναι η έλλειψη καθορισμού μετρήσιμων στόχων και διαδικασιών μέτρησης του ενδιάμεσου ή/και τελικού προϊόντος λογισμικού. Ο όρος κρίση λογισμικού παρουσιάστηκε από την αρχή της δημιουργίας της Τεχνολογίας Λογισμικού (Software Engineering) και χρησιμοποιήθηκε για να περιγράψει την αντίθεση μεταξύ της ραγδαίας ανάπτυξης των υπολογιστικών συστημάτων και της αδυναμίας συγγραφής προγραμμάτων που να εκμεταλλεύονται στο έπακρο την υπολογιστική αυτή δύναμη. Ο Edsger Dijkstra's αναφέρει: Η κύρια αιτία της κρίσης λογισμικού είναι ότι οι μηχανές έχουν γίνει αρκετές τάξεις μεγέθους ισχυρότερες. Για να το θέσω ευθέως: όσο δεν υπήρχαν καθόλου μηχανές, ο προγραμματισμός δεν αποτελούσε καθόλου πρόβλημα. Όταν είχαμε μερικούς αδύναμους υπολογιστές, ο προγραμματισμός ήταν ένα πρόβλημα μέτριας σημασίας και τώρα που έχουμε γιγαντιαίους υπολογιστές, ο προγραμματισμός έχει γίνει επίσης ένα γιγάντιο πρόβλημα. Ένας ακόμη λόγος που οδήγησε στην κρίση του λογισμικού είναι οι αντικρουόμενες απαιτήσεις των χρηστών. Πιο συγκεκριμένα, οι χρήστες απαιτούν από το λογισμικό, εκτός από εύχρηστο, να παρέχει πλήθος λειτουργιών και δυνατοτήτων, να υλοποιηθεί σε πολύ μικρό χρονικό διάστημα και να έχει πολύ χαμηλό κόστος. 13

14 Έτσι, στην παραγωγή λογισμικού συναντώνται έργα που ξεπερνούν, πολλές φορές κατά πολύ, τον αρχικό τους προϋπολογισμό ή/και τον καθορισμένο χρόνο παράδοσης. Επίσης, σε έργα που υλοποιήθηκαν έτσι ώστε να τηρηθεί το αρχικό χρονοδιάγραμμα και το κόστος να κρατηθεί σε προσυμφωνημένα επίπεδα, το παραγόμενο λογισμικό είναι χαμηλής ποιότητας και σε ορισμένα σημεία δεν ανταποκρίνεται στις απαιτήσεις των χρηστών, ενώ η συντήρησή του αποτελεί επίπονη διαδικασία. Η κρίση του λογισμικού, το μεγάλο ποσοστό των αποτυχημένων έργων και η ανικανότητα συντήρησης όσων επιτυχώς ολοκληρώθηκαν έκαναν επιτακτική την ανάγκη για μια μεθοδολογία διασφάλισης ποιότητας λογισμικού και διεθνών προτύπων τα οποία καθορίζουν πώς πρέπει να εφαρμοστεί ένα πρόγραμμα διασφάλισης ποιότητας στη διαδικασία παραγωγής λογισμικού. 14

15 2.3 Μοντέλα Ποιότητας και Πρότυπα Τα Μοντέλο Ποιότητας όπως αυτά συναντώνται στην βιβλιογραφία είναι σχηματικές απεικονίσεις που βοηθούν στην πιο άμεση κατανόηση του ελέγχου ποιότητας του λογισμικού. Τα μοντέλα ποιότητας διασπούν την ποιότητα σε επιμέρους παράγοντες (οι οποίοι και τη συνθέτουν) ώστε αυτή να γίνεται άμεσα αντιληπτή και εύκολα μετρήσιμη. Τα μοντέλα ποιότητας, εφόσον ορίζουν παράγοντες υψηλού επιπέδου, δίνουν τη δυνατότητα στους μηχανικούς ανάπτυξης λογισμικού να προβλέψουν καλύτερα τη συντήρησή του και στους προγραμματιστές να συνδυάσουν τα εσωτερικά και εξωτερικά χαρακτηριστικά του, ώστε να παράγουν ποιοτικό λογισμικό. Οι παράγοντες ποιότητας ή ποιοτικά χαρακτηριστικά, όπως ονομάζονται διαφορετικά κατηγοριοποιούνται ως προς: Α. Τον τελικό χρήστη στον οποίο απευθύνονται: 1. Λειτουργικότητα (functionality): είναι η δυνατότητα του λογισμικού να παρέχει λειτουργίες που ικανοποιούν δηλωμένες ή/και συνεπαγόμενες ανάγκες υπό συγκεκριμένες συνθήκες. 2. Ευχρηστία (usability): είναι η δυνατότητα του λογισμικού να λειτουργεί αποτελεσματικά και αποδοτικά παρέχοντας ικανοποίηση στους τελικούς χρήστες. Β. Την ομάδα ανάπτυξης: 1. Συντηρησιμότητα (maintainability): είναι το σύνολο των χαρακτηριστικών που σχετίζονται με την προσπάθεια που απαιτείται για να ενσωματωθούν τροποποιήσεις στις απαιτήσεις και να υλοποιηθούν αλλαγές στο λογισμικό. 2. Ελεγξιμότητα (testability): είναι το σύνολο των χαρακτηριστικών που σχετίζονται με την προσπάθεια που απαιτείται για τον έλεγχο του βαθμού στον οποίο το λογισμικό ικανοποιεί τις προδιαγραφές χρήσης και λειτουργίας χωρίς λάθη ή απώλειες. 3. Επαναχρησιμοποιησιμότητα (reusability): είναι το σύνολο των χαρακτηριστικών που σχετίζονται με την απαιτούμενη προσπάθεια για επαναχρησιμοποίηση είτε ενός τμήματος είτε όλου του λογισμικού. 15

16 4. Μεταφερσιμότητα (portability): είναι το σύνολο των χαρακτηριστικών που σχετίζονται με τη δυνατότητα του λογισμικού να μεταφέρεται από ένα περιβάλλον σε άλλο. Γ. Την κοινότητα των χρηστών: 1. Αξιοπιστία (reliability): το σύνολο των χαρακτηριστικών που δίνουν στο λογισμικό τη δυνατότητα να διατηρεί το υψηλό επίπεδο απόδοσής του υπό καθορισμένες συνθήκες και για συγκεκριμένη χρονική περίοδο. 2. Αποδοτικότητα (efficiency): είναι το σύνολο των χαρακτηριστικών που επηρεάζουν την επίδοση του λογισμικού και τους πόρους που χρησιμοποιούνται υπό καθορισμένες συνθήκες. Τα μοντέλα ποιότητας μπορεί να είναι δύο κατευθύνσεων: Α. Με προσέγγιση από πάνω προς τα κάτω (top-down approach): ξεκινά με σκοπούς και ανάγκες υψηλού επιπέδου και παράγει τις μετρήσεις που χρειάζονται για την υποστήριξή τους. (Εικόνα 1) Β. Με προσέγγιση από κάτω προς τα πάνω (bottom-up approach): ξεκινά με μετρήσιμες παρατηρήσεις από όπου προκύπτουν και οι στόχοι. (Εικόνα 2) Εικόνα 1: Προσέγγιση από πάνω προς τα κάτω 16

17 Εικόνα 2: Προσέγγιση από κάτω προς τα πάνω Στη συνέχεια περιγράφονται ορισμένα από τα πιο γνωστά μοντέλα ποιότητας και πρότυπα Μοντέλο του McCall Οι παράγοντες ποιότητας (factors) που προτείνει ο McCall (ή μοντέλο FCM) είναι οι εξής έντεκα: 1. Χρησιμότητα (Usability) 2. Ακεραιότητα (Integrity) 3. Αποδοτικότητα (Efficiency) 4. Ορθότητα (Correctness) 5. Αξιοπιστία (Reliability) 6. Συντηρησιμότητα (Maintainability) 7. Ελεγξιμότητα (Testability) 8. Ευελιξία (Flexibility) 9. Επαναχρησιμοποιησιμότητα (Reusability) 10. Μεταφερσιμότητα (Portability) 11. Διαλειτουργικότητα (Interoperability) Κατά τον McCall οι παράγοντες αυτοί περιγράφουν τη συμπεριφορά του συστήματος, αλλά είναι πολύ υψηλού επιπέδου για να μετρηθούν άμεσα. Για το λόγο αυτό διασπώνται σε χαμηλότερου επιπέδου χαρακτηριστικά που ονομάζονται κριτήρια ποιότητας (quality criteria) και σχετίζονται περισσότερο με την παραγωγή και το σχεδιασμό λογισμικού. 17

18 Τα κριτήρια ποιότητας περιγράφουν εσωτερικά χαρακτηριστικά του προϊόντος, μιας και αυτά είναι που επηρεάζουν τα εξωτερικά του χαρακτηριστικά. Απαιτείται όμως και ένα επιπλέον στάδιο εκλέπτυνσης στο οποίο ένας αριθμός από χαμηλού επιπέδου μετρήσεις αντιστοιχίζεται σε κάθε κριτήριο ποιότητας και ονομάζονται μετρικές (metrics). Τα συστατικά αυτά δίνουν στο μοντέλο του McCall το όνομα FCM (Factors Criteria - Metrics). Για παράδειγμα, για να βρεθεί ο βαθμός ικανοποίησης του παράγοντα μεταφερσιμότητα (portability), αρκεί να μετρήσει κανείς τα κριτήρια ποιότητας αυτοπεριγραφικότητα (selfdescriptiveness), ανεξαρτησία από τη μηχανή (machine independence) και ανεξαρτησία από το λογισμικό του συστήματος (S/W system independence). Η σύνδεση παραγόντων και κριτηρίων ποιότητας φαίνεται στην Εικόνα 3. 18

19 Εικόνα 3: Το μοντέλο FCM 19

20 2.3.2 Μοντέλο του Boehm Το μοντέλο του Boehm (Fenton N. & Pfleeger S, 1994) ακολουθεί παρόμοια ιεραρχική δομή με αυτή του μοντέλου του McCall. Στο μοντέλο του Boehm η ποιότητα της εφαρμογής διασπάται σε πρωταρχικές χρήσεις (primary uses) και κάθε μία από αυτές σε ενδιάμεσες κατασκευές (intermediate constructs) αανάλογες με τους παράγοντες και τα κριτήρια ποιότητας του μοντέλου του McCall. Κάθε μία από τις ενδιάμεσες κατασκευές διασπάται περαιτέρω σε πρωτογενείς κατασκευές (primitive constructs) που μετρούνται άμεσα με μετρικές (metrics). Εικόνα4 : Το μοντέλο Boehm Το μοντέλο του Boehm ακολουθεί τη λογική της εκλέπτυνσης της ποιότητας σε χαρακτηριστικά τα οποία είναι άμεσα μετρήσιμα με την κατάλληλη μετρική, ομοίως με το μοντέλο του McCall. 20

21 Δεν είναι όμως τόσο δομημένο όσο αυτό του McCall. Για παράδειγμα, η γενικευμένη εφαρμογή διασπάται στην πρωταρχική χρήση της συντηρησιμότητας (maintainability) και στην ενδιάμεση κατασκευή της μεταφερσιμότητας (portability) Πρότυπο ISO 9126 Το πρότυπο ISO 9126 είναι το αποτέλεσμα μίας διεθνούς προσπάθειας να αναπτυχθεί ένα πρότυπο για τη μέτρηση της ποιότητας λογισμικού (Kitchenham B. & Pfleeger S., 1996) και βάση του αποτελεί το μοντέλο του McCall. Η αρχική του ονομασία ήταν Software Product Evaluation: Quality Characteristics and Guidelines for their Use (Fenton N. & Pfleeger S.,1994) Σύμφωνα με το πρότυπο αυτό η ποιότητα ορίζεται ως το σύνολο των στοιχείων και των χαρακτηριστικών ενός προϊόντος λογισμικού που επιδρούν στην ικανότητά του να ανταπεξέρχεται και να ικανοποιεί είτε δεδηλωμένες είτε υπονοούμενες ανάγκες(fenton N. & Pfleeger S.,1994) και αποτελείται από έξι ποιοτικά χαρακτηριστικά: 1. Λειτουργικότητα (functionality): σύνολο χαρακτηριστικών που αναφέρονται σε ένα σύνολο λειτουργιών και τις ιδιότητές τους που ικανοποιούν δηλωμένες ή υπονοούμενες ανάγκες. 2. Αξιοπιστία (reliability): σύνολο χαρακτηριστικών που αναφέρονται στην ικανότητα του λογισμικού να έχει υψηλή απόδοση υπό ορισμένες συνθήκες και για συγκεκριμένο χρονικό διάστημα. 3. Χρησιμότητα (usability): σύνολο χαρακτηριστικών που αναφέρονται στην προσπάθεια που απαιτείται από το χρήστη να μάθει και να χρησιμοποιήσει το λογισμικό. 4. Αποδοτικότητα (efficiency): σύνολο χαρακτηριστικών που αναφέρονται στη σχέση μεταξύ της απόδοσης του λογισμικού και του μεγέθους των πόρων που χρησιμοποιεί υπό συγκεκριμένες συνθήκες. 21

22 5. Συντηρησιμότητα (maintainability): σύνολο χαρακτηριστικών που αναφέρονται στην προσπάθεια που απαιτείται ώστε να ενσωματωθούν στο λογισμικό συγκεκριμένες τροποποιήσεις. 6. Μεταφερσιμότητα (portability): σύνολο χαρακτηριστικών που αναφέρονται στην ικανότητα του συστήματος να μεταφερθεί από το ένα περιβάλλον στο άλλο. Το πρότυπο περιέχει και ένα δείγμα διαχωρισμού των ποιοτικών χαρακτηριστικών σε ένα σύνολο από υπο-χαρακτηριστικά (Ξένος, 1996). Η ανάλυση αυτή δεν είναι δεσμευτική, αλλά δηλώνει τη σημασία που αποδίδει το πρότυπο στον περαιτέρω διαχωρισμό των ποιοτικών χαρακτηριστικών προκειμένου να μετρηθεί η ποιότητα (Bache R., Bazzana, G., 1994). Τα υποχαρακτηριστικά αυτά μπορούν να μετρηθούν από ενδείκτες (indicators), οι οποίοι κατασκευάζονται από στοιχεία δεδομένων (data elements). Η ασάφεια στο διαχωρισμό των χαρακτηριστικών και το γεγονός ότι δεν ορίζεται ο τρόπος με τον οποίο μπορούν να μετρηθούν τα υπο-χαρακτηριστικά αποτελεί ένα μειονέκτημα του προτύπου (Kitchenham B. & Pfleeger S., 1996). Η διαφορά του προτύπου ISO 9126 από το μοντέλο του McCall βρίσκεται στην ορολογία που χρησιμοποιείται και στη δομή. Το πρότυπο ISO 9126 είναι πλήρως ιεραρχικό, κάθε υποχαρακτηριστικό ανήκει αυστηρά σε ένα χαρακτηριστικό, αποτελεί εξωτερικό χαρακτηριστικό του προϊόντος και πλήρως ορατό από το χρήστη. Επίσης, το πρότυπο ISO 9126 αντιμετωπίζει την ποιότητα του λογισμικού από την πλευρά του χρήστη, ενώ το μοντέλο του McCall από την πλευρά του προϊόντος. 22

23 των Εικόνα 5: Διαχωρισμός ποιοτικών χαρακτηριστικών σύμφωνα με το πρότυπο ISO

24 3 Μετρικές Λογισμικού Στην παρούσα ενότητα γίνεται εκτενής αναφορά στις έννοιες μέτρηση και της μετρική καθώς και στο πώς μέσω αυτών μπορεί να διασφαλιστεί η ποιότητα του λογισμικού. Παρουσιάζονται, ακόμη, οι βασικότερες μετρικές λογισμικού συναρτησιακού και αντικειμενοστραφούς προγραμματισμού- με έμφαση σε αυτές του αντικειμενοστραφούς προγραμματισμού. 3.1 Θεωρητικό Εννοιολογικό Υπόβαθρο Πολλές φορές στην τεχνολογία λογισμικού οι όροι «μέτρηση» (measure) και «μετρική» (metric) χρησιμοποιούνται ως συνώνυμες. Παρόλα αυτά στην βιβλιογραφία οι όροι αυτοί έχουν ειδοποιό διαφορά. «Μέτρηση» (measure) είναι η αντιστοίχιση ενός μεγέθους με μία τιμή, ενώ μετρική (metric) είναι ποσοτική μέτρηση του βαθμού στον οποίο ένα σύστημα ή τμήμα αυτού έχει ένα χαρακτηριστικό (IEEE Software Engineering Standards). Με μία συλλογή μετρήσεων σχεδιάζονται και αναπτύσσονται οι μετρικές. Ένα σύνολο μετρικών που παρέχουν γνώση για το λογισμικό αποτελεί έναν «ενδείκτη» (indicator)( Ragland B.,1995) Ο Lord Kelvin αναφέρει: «Όταν μπορείς να μετρήσεις αυτό για το οποίο μιλάς και να το εκφράσεις σε αριθμούς, τότε ξέρεις κάτι σχετικά με αυτό. Όταν δε μπορείς να το μετρήσεις και να το εκφράσεις σε αριθμούς, η γνώση σου για αυτό είναι φτωχή και μη ικανοποιητική.» Το ρητό του Kelvin φαίνεται να έχει απόλυτη ισχύ στην περίπτωση ανάλυσης του κύκλου ζωής λογισμικού (Roger S. Pressman, 1997). Σύμφωνα με τον Fenton (1994) ως μετρική ορίζεται μία εμπειρική και αντικειμενική αντιστοίχιση ενός αριθμού ή συμβόλου σε μία οντότητα με σκοπό να χαρακτηρίσει ένα συγκεκριμένο χαρακτηριστικό της. Ο Berard (2002) ορίζει τη μετρική ως μία μονάδα μέτρησης και αναφέρει ότι ο όρος χρησιμοποιείται για να δηλώσει ένα σύνολο μετρήσεων που πραγματοποιούνται πάνω σε συγκεκριμένο αντικείμενο ή διαδικασία. 24

25 Από τα παραπάνω προκύπτει, το συμπέρασμα ότι «μετρική» είναι μία μεθοδολογία μέτρησης που αντιστοιχεί μία τιμή σε κάποια προϋπάρχουσα ιδιότητα του αντικειμένου (P. Perdika, 2005). Για κάθε μετρική υπάρχουν πέντε βαθμίδες μέτρησης: i. η ονομαστική (nominal ii. η τακτική (ordinal) iii. η διαστήματος (interval) iv. η αναλογική (ratio) v. η απόλυτη (absolute) Η ονομαστική (nominal) βαθμίδα μέτρησης είναι αυτή στην οποία η μόνη ιδιότητα μεταξύ των δεδομένων είναι η ισότητα. Στην τακτική (ordinal) βαθμίδα, η ιδιότητα μεταξύ των δεδομένων είναι η ισότητα και η διάταξη, ενώ στην βαθμίδα διαστήματος (interval), οι αποστάσεις μεταξύ των δεδομένων αποτελούν πληροφορία. Στην αναλογική (ratio), έχουν νόημα και οι αναλογίες μεταξύ των δεδομένων, ενώ τέλος στην απόλυτη (absolute) επιτρέπεται και η αρίθμηση των δεδομένων. Σύμφωνα με τον Roger S. Pressman (1997) οι μετρικές χωρίζονται σε: i. μετρικές προϊόντος (product metrics) ii. μετρικές έργου (project metrics) iii. μετρικές διαδικασίας (process metrics) 25

26 Οι μετρικές προϊόντος σχετίζονται με το προϊόν, δηλαδή τον πηγαίο κώδικα ή τις δηλώσεις ελέγχου. Χωρίζονται σε δύο υπο-κατηγορίες: i. τις εσωτερικές και ii. τις εξωτερικές Στις εσωτερικές συγκαταλέγονται ο αριθμός γραμμών (LOC), χρόνος εκτέλεσης, λάθη του κώδικα, ενώ στις εξωτερικές η λειτουργικότητα (functionality), η ποιότητα (quality), η πολυπλοκότητα (complexity), η αποτελεσματικότητα (efficiency), η αξιοπιστία (reliability) και η συντηρησιμότητα (maintainability). Ενδιαφέρον παρουσιάζει η σχέση μεταξύ των εσωτερικών και των εξωτερικών μετρικών και πιο συγκεκριμένα, πώς οι εσωτερικές μετρικές ερμηνεύονται σε εξωτερικές, ώστε να είναι άμεσα μετρήσιμες. Επίσης, οι εσωτερικές μετρικές είναι πιο εύκολα αυτοματοποιήσιμες από τις εξωτερικές μετρικές και επομένως πιο οικονομικές μιας και το να μετρώνται οι γραμμές του κώδικα είναι πολύ εύκολο σε σχέση με το να μετράται το πόσο ευχαριστημένος είναι ο χρήστης από τις υπηρεσίες που προσφέρει το λογισμικό. Ένα ακόμη πλεονέκτημα των εσωτερικών μετρικών είναι ότι έχουν μικρότερη συχνότητα λαθών, γιατί μετρούν πολύ καθορισμένα χαρακτηριστικά του λογισμικού, για παράδειγμα τον αριθμό των γραμμών. Αντίθετα, οι εξωτερικές μετρικές είναι υψηλού επιπέδου, και έτσι βρίσκονται πιο κοντά στην έννοια της ποιότητας. Επιπλέον, τα αποτελέσματά τους είναι άμεσα ερμηνεύσιμα. Οι μετρικές έργου χρησιμοποιούνται για τον καθορισμό στρατηγικής, σχετίζονται με την τακτική εκτέλεσης του έργου και καθορίζουν τη ροή του και τις τεχνικές που θα ακολουθηθούν (Roger S. Pressman, 1997). Οι μετρικές διαδικασίας μετρούν τη διαδικασία κατασκευής ενός προϊόντος, όπως την ανάλυση, το σχεδιασμό, τη συγγραφή κώδικα και τους απαιτούμενους πόρους. Για παράδειγμα, αν αναφερθούμε σε μια εταιρία λογισμικού, οι μετρικές προϊόντος καθορίζονται από ένα άτομο. 26

27 Ο συνδυασμός τους όμως αποτελεί τις μετρικές του έργου που κοινοποιούνται στην ομάδα του έργου. Ο συνδυασμός των τελευταίων αναπτύσσει τις μετρικές διαδικασίας που αποτελούν κτήμα όλης της εταιρίας. Το θέμα είναι πώς μία εταιρία μπορεί να συνδυάσει τις μετρικές από διαφορετικά άτομα-εργαζόμενους ή/και διαφορετικά έργα, ώστε να παράγει τις μετρικές διαδικασίας (P. Perdika, 2005). Μελέτη Περίπτωσης: Εταιρία απασχολεί παράλληλα δύο διαφορετικά τμήματα στα οποία οι εργαζόμενοι καταγράφουν και κατηγοριοποιούν όλα τα λάθη που προκύπτουν κατά τη διάρκεια μίας διαδικασίας. Οι μετρήσεις αυτές συνδυάζονται για να προκύψουν τα εξής αποτελέσματα: Η ομάδα Α βρήκε 100 λάθη κατά τη διαδικασία, ενώ η ομάδα Β 150. Για να βγει συμπέρασμα για το ποια ομάδα είναι πιο αποτελεσματική, θα πρέπει να ληφθούν υπόψη και άλλες παράμετροι, όπως το μέγεθος ή η πολυπλοκότητα των έργων και οι μετρήσεις αυτές να κανονικοποιηθούν. 27

28 3.2 Πεδία Εφαρμογής Μετρικών Σύμφωνα με τη βιβλιογραφία ο βασικότερος στόχος όλων των μετρικών που διεξάγονται σε ένα λογισμικό είναι η διασφάλιση της ποιότητάς του. Για να επιτευχθεί αυτό, όμως, θα πρέπει να υπάρχει ένα «πλάνο ποιότητας» συνολικά σε ολόκληρο το έργο. Η διασφάλιση της ποιότητας, σε συνδυασμό με τις μετρικές που χρησιμοποιούνται, περιλαμβάνει τις παρακάτω πτυχές: Διασφάλιση ποιότητας προϊόντος (product quality assurance): στόχος είναι η ποιότητα του προϊόντος και κατ επέκταση η ικανοποίηση του χρήστη. Διασφάλιση ποιότητας έργου (project quality assurance): στοχεύει i. στην αποτίμηση της κατάστασης του έργου, ii. την επίλυση προβλημάτων πριν αυτά γίνουν κρίσιμα και επηρεάσουν την πορεία του έργου iii. τη ρύθμιση και το διαχωρισμό των εργασιών και iv. την εκτίμηση της ικανότητας των ομάδων να παράγουν «ποιοτικό» λογισμικό. Διασφάλιση ποιότητας διαδικασιών (process quality assurance): βοηθά την εταιρεία να έχει γνώση για την αποτελεσματικότητα των διαδικασιών. Πιο συγκεκριμένα, η μέτρηση κάποιων χαρακτηριστικών του λογισμικού είναι μια διαδικασία απαραίτητη για την εκτίμηση της κατάστασης των έργων, των προϊόντων, των διαδικασιών και των πόρων παραγωγής λογισμικού. Κάθε μέτρηση, όμως, πρέπει να εξυπηρετεί μια συγκεκριμένη ανάγκη, η οποία έχει σαφώς κατανοηθεί και καθοριστεί. Με τις μετρήσεις μπορούν να απαντηθούν ερωτήματα που τίθενται από το διαχειριστή του έργου σχετικά με το κόστος (υλικό και προσπάθεια) σε κάθε φάση ανάπτυξης του, λογισμικού την παραγωγικότητα του προσωπικού, την ποιότητα του πηγαίου κώδικα, την δυνατότητα επαναχρησιμοποίησής του (reusability), τη συντηρησιμότητά του (maintainability), τα περιθώρια 28

29 βελτίωσης, τα λάθη στη σχεδίαση, την ανάπτυξη και τον έλεγχο, καθώς και για προβλέψεις για μελλοντικά προϊόντα με κοινά χαρακτηριστικά. Με βάση το σκοπό για τον οποίο έχουν αναπτυχθεί οι μετρικές μπορούν να διαχωριστούν στις ακόλουθες κατηγορίες: Λειτουργικές Μετρικές (functional metrics) καταλληλότητας (suitability) ακρίβειας (accuracy) διαλειτουργικότητας (interoperability) ελαστικότητας (compliance) ασφάλειας (security) του λογισμικού Μετρικές Αξιοπιστίας (reliability metrics) ωριμότητας (maturity) ανοχής λαθών (fault tolerance) ικανότητας ανάκτησης (recoverability) Μετρικές Χρησιμότητας (usability metrics) Κατανοησιμότητας του λογισμικού (understandability) ικανότητας μάθησης του λογισμικού (learn ability) λειτουργικότητας του λογισμικού (operability) Μετρικές Αποδοτικότητας (efficiency metrics) συμπεριφοράς του συστήματος στο χρόνο (system behavior over time) 29

30 χρήσης των πόρων (usage of resources) Μετρικές Συντηρησιμότητας (maintainability metrics) ικανότητας ανάλυσης (analysis ability) τροποποιησιμότητας (changeability) σταθερότητας (stability) ικανότητας ελέγχου (testability) Μετρικές Μεταφερσιμότητας (portability metrics) προσαρμοστικότητας (adaptability) ικανότητας εγκατάστασης (install ability) συμμόρφωσης (conformance) ικανότητας αντικατάστασης (replace ability) 30

31 3.3 Μετρικές Μη-Αντικειμενοστραφούς Λογισμικού Παρόλο που η παρούσα μελέτη εστιάζεται στην ανάλυση των αντικειμενοστραφών μετρικών λογισμικού, για την σφαιρικότερη και απεικόνιση του θέματος, στην παρούσα ενότητα οι μετρικές λογισμικού που παρουσιάζονται αφορούν μη-αντικειμενοστραφές λογισμικό χωρίς αυτό να σημαίνει ότι κάποιες από αυτές δε μπορούν να χρησιμοποιηθούν και σε κώδικα γραμμένο σε αντικειμενοστραφή γλώσσα προγραμματισμού. Κατατάσσονται στις εσωτερικές μετρικές του τελικού προϊόντος και, επομένως, εστιάζουν σε αυτοματοποιήσιμες μετρήσεις του πηγαίου κώδικα. Ο Roger Pressman (1997), χώρισε τις μετρικές λογισμικού σε κατηγορίες, ανάλογα με τη φάση ανάπτυξης του λογισμικού που εφαρμόζονται, έτσι κατέληξε στις εξής κατηγορίες: Μετρικές μοντέλου ανάλυσης απαιτήσεων: εξετάζουν την ορθότητα και την πληρότητα της ανάλυσης των απαιτήσεων, προκειμένου να γίνει ο σχεδιασμός του τελικού συστήματος. Τέτοιες μετρικές αριθμούνται ελάχιστες στη βιβλιογραφία. Μετρικές για το μοντέλο του σχεδιασμού: αναπτύσσονται για τον έλεγχο του σχεδιασμού του τελικού συστήματος. Εστιάζουν τόσο στο τμήματα (components) του συστήματος, όσο και στη διεπαφή (interface). Μετρικές του πηγαίου κώδικα: αφορούν μετρήσεις πάνω στον κώδικα και αναλύονται στη συνέχεια της ενότητας. Μετρικές ελέγχου (testing): αφορούν στον έλεγχο του λογισμικού. Οι περισσότερες μετρικές εστιάζουν στη διαδικασία του ελέγχου και όχι στα τεχνικά χαρακτηριστικά. Οι μετρικές του ελέγχου προκύπτουν ουσιαστικά από τις μετρικές των τριών προηγούμενων φάσεων. Μετρικές συντήρηση: μετρούν το βαθμό στον οποίο είναι συντηρήσιμο το λογισμικό. Ακολούθως παρουσιάζονται ορισμένες από τις πιο συχνά καταγεγραμμένες στη βιβλιογραφία μετρικές προϊόντος που εφαρμόζονται στον τελικό κώδικα του λογισμικού. 31

32 Extent Of Reuse (Fenton N. & Pfleeger S.,1994) Μετρά το βαθμό επαναχρησιμοποίησης κώδικα σε ένα υπάρχον πρόγραμμα και λαμβάνει τια ακόλουθες πέντε τιμές: i. Reused verbatim (κώδικας που μπορεί να επαναχρησιμοποιηθεί χωρίς καμία αλλαγή) ii. Slightly modified (λιγότερο από 25% κώδικα πρέπει να αλλαχθεί) iii. Extensively modified (25% και περισσότερο του κώδικα πρέπει να αλλαχθεί) iv. New (απαιτείται εντελώς νέος κώδικας) Με τον τρόπο αυτό, για ένα συγκεκριμένο πρόγραμμα ορίζεται το μέγεθος (size) που τροποποιήθηκε σε σχέση με το συνολικό και, επομένως, το ποσοστό επαναχρησιμοποίησης στα τέσσερα επίπεδα. Decision Count (Fenton N. & Pfleeger S.,1994), (Conte S., Dunsmore V. & Shen V., 1986) & (Shepperd M. & Ince D.,1993) Πρόκειται για μετρική που μετρά τη λογική δομή ενός προγράμματος. Ορίζεται από τον αριθμό των δηλώσεων ελέγχου (υπό-συνθήκη δηλώσεις και ανακυκλώσεις). Average Module Length (Fenton N. & Pfleeger S.,1994) Πρόκειται για μία μετρική ελέγχου της τμηματοποίησης ενός προγράμματος και ορίζεται ως το μέσο μήκος των τμημάτων (modules) του. Executable Statements (Fenton N. & Pfleeger S.,1994) Μετρική μεγέθους. Ορίζεται ως τον αριθμό των εκτελέσιμων εντολών (executable statements) ενός προγράμματος. Μετρά τις διαφορετικές εντολές στην ίδια γραμμή ως διαφορετικές και αγνοεί τα σχόλια, τις δηλώσεις δεδομένων και τα headings. Chen Metric (Fenton N. & Pfleeger S.,1994) Πρόκειται για μετρική που εξετάζει την εντροπία ενός προγράμματος. 32

33 Function Count (Conte S., Dunsmore V. & Shen V. 1986) & (Lorenz M. & Kidd J., 1994) Ορίζεται από τον αριθμό των συναρτήσεων (functions) ενός προγράμματος. Συνάρτηση θεωρείται μια συλλογή εκτελέσιμων εντολών που πραγματοποιούν μια συγκεκριμένη εργασία και οι δηλώσεις των παραμέτρων που διαχειρίζονται οι εντολές αυτές. Hausen Metric On Modularity (Fenton N. & Pfleeger S.,1994) Πρόκειται για μετρική της τμηματοποίησης ενός προγράμματος που περιγράφει την ολική τμηματοποίηση σε σχέση με ειδικές της θεωρήσεις. Παραδείγματα υπολογισμού: Μ1=modules/procedures M2=modules/variables Live Variables (Conte S., Dunsmore V. & Shen V. 1986) Στόχος της μετρικής αυτής είναι να χαρακτηρίσει τη ροή των δεδομένων μέσα σε ένα τμήμα (module). Τα δεδομένα (data items) κάθε εντολής ενός προγράμματος ονομάζονται «ζωντανές μεταβλητές» (live variables). H μετρική μετρά για κάθε γραμμή κώδικα πόσες μεταβλητές βρίσκονται σε χρήση και υπολογίζεται, για κάθε διαδικασία, ως εξής: LV = (αριθμός live variables) / (αριθμός εντολών) Lines Of Code (Fenton N. & Pfleeger S.,1994), (Conte S., Dunsmore V. & Shen V. 1986), (Shepperd M. & Ince D., 1993) & (Lorenz M. & Kidd J., 1994) Μετρά τον αριθμό των γραμμών κώδικα. Η μετρική αυτή συναντάται σε πολλές παραλλαγές όπως οι μετρικές που μετράνε τον αριθμό των κενών γραμμών, του εκτελέσιμου κώδικα, των γραμμών του πηγαίου κώδικα, το ποσοστό σχολίων κλπ. 33

34 McCabe s Essential Complexity Measure (Fenton N. & Pfleeger S.,1994) Η μετρική «βασικής πολυπλοκότητας» όπως θα μπορούσε να αποδοθεί ο όρος στα Ελληνικά μετρά το ποσό της δομής σε ένα πρόγραμμα. Για ένα πρόγραμμα με γράφο ροής G, η βασική πολυπλοκότητα ορίζεται ως: ev(g) = v(g) - m όπου v(g) = e n + 2 η κυκλωματική πολυπλοκότητα του γράφου ροής G και m o αριθμός των υπογράφων ροής του γράφου G που είναι D-structured primes (είναι δηλαδή οι εντελώς στοιχειώδεις δομές D0, D1, D2 ή D3). Μετρά πόσο πρέπει να «μειωθεί» o γράφος ροής, δηλαδή να διασπαστεί σε στοιχειώδεις δομές που είναι D-primes. Επί της ουσίας, το ev μετρά την κυκλωματική πολυπλοκότητα αυτού που απομένει μετά την αποσύνθεση όλων των δομημένων υπογράφων ροής. Tree Impurity (Fenton N. & Pfleeger S.,1994) Η μετρική αυτή ορίζει τον αριθμό m(g) από το γράφο G του συστήματος. Ο m(g) ισούται με το πόσο απέχει από ένα δένδρο o γράφος αυτός. Όσο το m τείνει στο μηδέν, τόσο καλύτερος είναι o σχεδιασμός του συστήματος. ReachAbility (Conte S., Dunsmore V. & Shen V. 1986), (Shepperd M. & Ince D., 1993) & (Lorenz M. & Kidd J., 1994) Μετρά τη λογική δομή ενός προγράμματος και σχετίζεται με τον αριθμό των λαθών και τον χρόνο εντοπισμού τους. Όπου: R = πλήθος διαφορετικών τρόπων για να φτάσει κάποιος ένα κόμβο και R = (συνολικό πλήθος μονοπατιών) / (αριθμός κόμβων) 34

35 3.4 Κριτήρια Αξιολόγησης Μετρικών Τα κριτήρια αξιολόγησης των μετρικών ορίζονται και ως μεταμετρικές και κατατάσσονται σε «καταλληλότερες» ή «λιγότερο κατάλληλες». Βιβλιογραφικά, η πρώτη προσπάθεια προσδιορισμού των κριτηρίων εντοπίζεται από τους Conte, Dunsimore & Shen (1986). Παρακάτω παρατίθεται τα κριτήρια αξιολόγησης μετρικών που περιέγραψαν: Αναλυτικότητα (analysability): μετράται κατά πόσο μπορεί να αναλυθεί στατιστικά το αποτέλεσμα κάποιας μετρικής. Απλότητα (simplicity): μετράται το κατά πόσο τα αποτελέσματα μίας μετρικής είναι ερμηνεύσιμα. Καθοδηγησιμότητα (prescriptiveness): εξετάζει εάν το αποτέλεσμα κάποιας μετρικής μπορεί να χρησιμοποιηθεί στην ανάπτυξη ή τη συντήρηση του λογισμικού. Ανθεκτικότητα (robustness): εξετάζεται εάν μία μετρική είναι ευαίσθητη σε αλλαγές παραγόντων που δεν επηρεάζουν την απόδοση του λογισμικού,για παράδειγμα την αναδιάταξη του πηγαίου κώδικα. Εγκυρότητα (validity): μετράται το αν και κατά πόσο μία μετρική μετρά αυτό για το οποίο έχει αναπτυχθεί. Το μειονέκτημα των παραπάνω κριτηρίων είναι ότι κάποια από αυτά μπορούν να υπολογιστούν μόνο υποκειμενικά, κάτι το οποίο δεν είναι επιθυμητό, μιας και έτσι δεν μπορούν να χρησιμεύσουν σε συγκρίσεις προγραμμάτων λογισμικού που έχουν αξιολογηθεί από διαφορετικούς μηχανικούς λογισμικού. 35

36 3.5 Μετρικές Αντικειμενοστραφούς Λογισμικού Οι αρχές του αντικειμενοστραφούς προγραμματισμού διαφέρουν από αυτές του συναρτησιακού, καθώς οι μετρικές που ασχολούνται με το αντικειμενοστραφές λογισμικό θα πρέπει να ακολουθούν τις αρχές αυτές. Βέβαια, υπάρχουν ορισμένες αντικειμενοστραφείς μετρικές που αποτελούν απλά παραλλαγή των μη-αντικειμενοστραφώ. Οι αντικειμενοστραφείς μετρικές εστιάζουν στα σημεία εκείνα του πηγαίου κώδικα που ακολουθούν τις αρχές του αντικειμενοστραφούς προγραμματισμού Οι Αρχές Στον αντικειμενοστραφή προγραμματισμό τον κύριο ρόλο έχουν οι κλάσεις και τα αντικείμενα. Κάθε αντικείμενο έχει μια συμπεριφορά, η οποία καθορίζεται από τις μεθόδους (συναρτήσεις) που αυτό διαθέτει. Μεταξύ των αντικειμένων και των κλάσεων δεν υπάρχουν απλώς σχέσεις καλούντος-καλούμενου, αλλά πλήθος άλλων σχέσεων, όπως ιεραρχίας, συνδέσμου κλπ. Ο αντικειμενοστραφής προγραμματισμός έχει τα δικά του χαρακτηριστικά που επηρεάζουν την ποιότητα του λογισμικού. Θα λέγαμε ότι η ποιότητα αποτελείται από ποιοτικούς παράγοντες και αυτοί απο κριτήρια ποιότητας, τα οποία όμως εξαρτώνται κυρίως από την ύπαρξη ή όχι κάποιων χαρακτηριστικών αντικειμενοστραφούς προγραμματισμού. Οι μετρικές που χρησιμοποιούνται πρέπει να μετρούν κατά πόσο υπάρχουν τα χαρακτηριστικά αυτά, τα οποία και βελτιώνουν την ποιότητα των αντικειμενοστραφών προγραμμάτων. Η σημασία των χαρακτηριστικών του αντικειμενοστραφούς προγραμματισμού και o τρόπος που επιδρούν στην ποιότητα αναλύονται ακολούθως (Ζηκούλη Κ., 2000). Τοπικότητα-Τμηματοποίηση (localization-modularity) Πρόκειται για την ιδιότητα των αντικειμενοστραφών προγραμμάτων να οργανώνονται γύρω από τα αντικείμενα (Booch Gr.,2002)]. Οι αντικειμενοστραφείς μετρικές αναγνωρίζουν το αντικείμενο ως δομική μονάδα των προγραμμάτων και λαμβάνουν υπόψη τη σχέση μεταξύ των αντικειμένων. Στον αντικειμενοστραφή προγραμματισμό ένα αντικείμενο μπορεί να έχει πολλές 36

37 συναρτήσεις και μια συνάρτηση να αναφέρεται σε πολλά αντικείμενα (Fetcke T., Etzkorn L., Bansiya J. & Davis C., Berard E., 2002). Οι Lorenz & Kidd (1994) αναφέρουν ότι μια τυπική μέθοδος ενός αντικειμένου δεν πρέπει να ξεπερνά τις 25 γραμμές, συνεπώς δεν είναι η πολυπλοκότητα της μεθόδου τόσο καθοριστικός παράγοντας στην ποιότητα, όσο το σύνολο της πολυπλοκότητας των μεθόδων της κλάσης, επομένως, o αριθμός των μεθόδων αυτών. Συγκεκριμένα, όσο περισσότερες μεθόδους και ιδιότητες έχει ένα αντικείμενο, τόσο πιο πολύπλοκο είναι, τόσο πιο δύσκολος είναι o έλεγχος του αντικειμένου και του προγράμματος και τόσο περισσότερο χώρο στη μνήμη απαιτεί. Ακόμα, o υπερβολικός αριθμός μεθόδων μιας κλάσης επιβαρύνει τα παιδιά της (sracog.srainc.com, 2016) και μπορεί να σημαίνει ότι η κλάση είναι αρκετά βαθιά στην ιεραρχία, άρα και το αντικείμενο είναι εξαιρετικά εξειδικευμένο και με μικρή δυνατότητα επέκτασης. Η τοπικότητα επηρεάζει την απόδοση του προγράμματος όσον αφορά στην i. ακρίβεια (conciseness), ii. επεκτασιμότητα (expandability), iii. απλότητα (simplicity), iv. συνέπεια (consistency) v. γενικότητα (generality), vi. αυτοπεριγραφικότητα (self-descriptiveness) και vii. τμηματοποίηση (modularity). viii. αποθήκευση (storage efficiency), ix. ανιχνευσιμότητα (traceability), 37

38 Συνδεσιμότητα (coupling) Αποτελεί ένα μέτρο του συνδέσμου ανάμεσα σε δύο οντότητες (κλάσεις) (Rosenberg L.,2002). Υπάρχουν τρεις τρόποι σύνδεσης μεταξύ κλάσεων: i. μέσω της ανταλλαγής μηνυμάτων, ii. όταν μέθοδοι που δηλώνονται στη μια κλάση χρησιμοποιούν μεθόδους ή ιδιότητες της άλλης και iii. μέσω της κληρονομικότητας, ιδιότητας που εισάγει ισχυρότατη σύνδεση (Rosenberg L. & Hyatt L.,2002), (irb.cs.uni-magdeburg.de.,2002). Η ύπαρξη ισχυρής σύνδεσης (coupling) ανάμεσα σε κλάσεις επιβαρύνει τον τμηματοποιημένο (modular) προγραμματισμό και εμποδίζει την κλάση από το να μπορεί να επαναχρησιμοποιηθεί (Rosenberg L.,2002). Μια ακόμα συνέπεια είναι η δυσκολία στην πραγματοποίηση αλλαγών στο πρόγραμμα, καθώς οι αλληλεξαρτήσεις μεταξύ των κλάσεων δυσχεραίνουν τον εντοπισμό των κλάσεων που επηρεάζονται από τις αλλαγές και τον έλεγχο του τελικού κώδικα (sracog.srainc.com, 2016). Συμπαραστατικά, τα κριτήρια που επηρεάζονται από την σύνδεση μεταξύ κλάσεων (class coupling) είναι τα ακόλουθα: i. ακρίβεια (consciseness) ii. συνέπεια (consistency) iii. απλότητα (simplicity) iv. τμηματοποίηση (modularity) v. επεκτασιμότητα (expandability) vi. ανιχνευσιμότητα (traceability) Αυτά επιδρούν με τη σειρά τους i. στην αξιοπιστία (reliability), ii. στην ευκολία ελέγχου (testability) και iii. στην επαναχρησιμοποιησιμότητα (reusability) του λογισμικού. 38

39 Απόκρυψη Πληροφορίας (information hiding) Πρόκειται για την ιδιότητα των κλάσεων να αποκρύπτουν τις λεπτομέρειες που χαρακτηρίζουν τη συμπεριφορά τους (Etzkorn L., Bansiya J. & Davis C.,2002). Όσο περισσότερες μεθόδους διαθέτει η κλάση στις άλλες κλάσεις, δηλαδή όσο μικρότερη ενθυλάκωση υπάρχει, τόσο ισχυρότερη μπορεί να είναι η σύνδεση της κλάσης με τις άλλες. Επιπλέον, η μικρή ενθυλάκωση υπονοεί μικρή συνοχή ανάμεσα στις μεθόδους της κλάσης. Ιεραρχία (hierarchy) Κληρονομικότητα (inheritance) Είναι o μηχανισμός με τον οποίο μια υποκλάση (subclass) κληρονομεί μία ή περισσότερες υπερκλάσεις της (superclass) (Etzkorn L., Bansiya J. & Davis C.,2002). Είναι, επίσης, ένας τρόπος επαναχρησιμοποίησης υπαρχόντων κλάσεων (Rosenberg L.,2002), (Rosenberg L. & Hyatt L.,2002). Όσο χαμηλότερα στην ιεραρχία βρίσκεται μια κλάση τόσο μεγαλύτερο αριθμό μεθόδων «κινδυνεύει» να κληρονομήσει, γεγονός που την καθιστά πιο πολύπλοκη (Rosenberg L.,2002). Γενικότερα παρατηρείται ότι, δέντρα με μεγάλο βάθος δηλώνουν προβλήματα στο σχεδιασμό του συστήματος, αν και ταυτόχρονα σημαίνουν ότι έχει γίνει επαναχρησιμοποίηση μεθόδων και ιδιοτήτων, πράγμα επιθυμητό. Ακόμη, οι κλάσεις με μεγάλο αριθμό παιδιών απαιτούν περισσότερο χρόνο για να ελεγχθούν. Γενικά, μεγαλύτερο βάθος είναι πιο επιθυμητό από μεγαλύτερο πλάτος στο δένδρου, μιας και έτσι μπορεί να επιτευχθεί o επιθυμητός βαθμός επαναχρησιμοποιησιμότητας(nimbus.sdsu.edu). Επιπροσθέτως, οι κλάσεις δεν πρέπει να έχουν τον ίδιο αριθμό υποκλάσεων, ενώ οι κλάσεις που βρίσκονται υψηλότερα στην ιεραρχία πρέπει να έχουν περισσότερες υποκλάσεις από αυτές που βρίσκονται χαμηλότερα (nimbus.sdsu.edu).. Οι τελευταίες είναι πιο εξειδικευμένες και με μικρή ευκολία επέκτασης. Τέλος, πολλαπλή κληρονομικότητα επιδρά αρνητικά στο σχεδιασμό ενός συστήματος (Shin, T., Chung, C., Wang, C. & Wai, W. 2002). 39

40 Συμπερασματικά, η κληρονομικότητα (inheritance) μπορεί να επιδράσει i. στην ανιχνευσιμότητα (traceability), ii. την πληρότητα (completeness), iii. την απλότητα (simplicity), iv. την επεκτασιμότητα (expandability), v. την αυτοπεριγραφικότητα (selfdescriptiveness), vi. τη συντηρησιμότητα (maintainability), vii. την ευκολία ελέγχου (testability) viii. και την επαναχρησιμοποιησιμότητα (reusability) του αντικειμενοστραφούς λογισμικού. Συνοχή (cohesion) Συνοχή είναι η ιδιότητα ενός αντικειμένου να αποτελεί μια αυτόνομη οντότητα και είναι χαρακτηριστικό της καλής υποδιαίρεσης των κλάσεων (class subdivision Rosenberg L., 2002). Ακόμη, μπορεί να οριστεί ως o βαθμός στον οποίον οι μέθοδοι μιας κλάσης συνεργάζονται αποτελεσματικά προκειμένου να παρέχουν μια καλά ορισμένη συμπεριφορά στο αντικείμενο (Rosenberg L. & Hyatt L., 2002). Η συνοχή σχετίζεται με απόκρυψη δεδομένων, καθώς όσο μεγαλύτερη συνοχή έχει μια κλάση σε τόσο μεγαλύτερο βαθμό υπάρχει η αρχή αυτή και τόσο πιο καλά έχει υλοποιηθεί το εσωτερικό της κλάσης. Από την άλλη η έλλειψη συνοχής ή χαμηλή συνοχή στην κλάση σημαίνει αύξηση της πολυπλοκότητας και της πιθανότητας σφαλμάτων κατά τη διαδικασία της υλοποίησης (Rosenberg L., Stapko R. & Gallo Al.,2002) και υποδεικνύει ότι η κλάση θα μπορούσε να διαιρεθεί σε δύο υποκλάσεις με μεγαλύτερη συνοχή. Υψηλή συνοχή σημαίνει καλή υποδιαίρεση της κλάσης και αυτονομία στη συμπεριφορά του αντικειμένου. Η συνοχή επηρεάζει τις ακόλουθες: i. συνέπεια (consistency) ii. αυτοπεριγραφικότητα (self-descriptiveness) iii. τάση για λάθη (error proneness) 40

41 iv. πληρότητα (completeness) v. τμηματικότητα (modularity) vi. απλότητα (simplicity) vii. ανιχνευσιμότητα (traceability) Αφαιρετικότητα (abstraction) Αφαιρετικότητα είναι ο μηχανισμός που επιτρέπει στον αρχιτέκτονα λογισμικού να εστιάζει στις απαραίτητες λεπτομέρειες ενός τμήματος του λογισμικού (component) και να μην απασχολείται με λεπτομέρειες χαμηλού επιπέδου. 41

42 3.5.2 Οι Μετρικές Κατά τον Roger Pressman (1997), οι αντικειμενοστραφείς μετρικές χωρίζονται σε κατηγορίες, ανάλογα με τη φάση ανάπτυξης του λογισμικού που εφαρμόζονται. Οι φάσεις που εντοπίζει ο Pressman είναι οι ακόλουθες: i. Φάση ανάλυσης απαιτήσεων ii. Φάση σχεδιασμού iii. Φάση ανάπτυξης iv. Φάση ελέγχου v. Φάση συντήρησης Πέρα από τον προσδιορισμό των φάσεων χωρίζει τις μετρικές σε: Μετρικές Κλάσης (class-oriented metrics) Οι μετρικές κλάσης ασχολούνται με τις λειτουργίες (operations) και τα γνωρίσματα (attributes) μίας κλάσης, τις σχέσεις της κλάσης με τις υποκλάσεις και την κληρονομικότητα, καθώς και τις σχέσεις της κλάσης με άλλες κλάσεις. Στην κατηγορία αυτή, πιο γνωστές βιβλιογραφικά καταγεγραμμένες μετρικές παρατίθενται ακολούθως. CK Metrics Suite (Chidamber S. R., Kemerer C. F.,1994): αποτελείται από τις εξής μετρικές: i. Number of Children ii. Coupling between Object Classes, iii. Response for a Class iv. Depth of the Inheritance Tree v. Lack of Cohesion in Methods vi. Weighted Methods per Class 42

43 Οι μέθοδοι αυτές αναλύονται στη συνέχεια. Metrics by Lorenz and Kidd (Lorenz M. & Kidd J.,1994): οι σημαντικότερες από τις μετρικές που προτείνουν οι Lorenz και Kidd αναλύονται ακολούθως. Μετρικές Λειτουργίας (operation-oriented metrics) Οι σημαντικότερες μετρικές που εντοπίζονται στην κατηγορία αυτή είναι (Lorenz M. & Kidd J.,1994): α) Average Operation Size, β) Operation Complexity και γ) Average Number of Parameter per operation. Ανάλυση αυτών ακολουθεί. Μετρικές Αντικειμενοστραφούς Λογισμικού Percent of Potential Method uses actually reused. Ορίζεται ως: PP = (αριθμός πραγματικών συνολικών χρήσεων μεθόδου) / (αριθμός πιθανών χρήσεων της μεθόδου) Weighted Class Size. Ορίζεται ως: weighted class size = Number Of Ancestors + Total Method Size Weighted Methods per Class (Chidamber S. R., Kemerer C. F.,1994). Ορίζεται ως το άθροισμα της πολυπλοκότητας των μεθόδων μίας κλάσης και υπολογίζεται από τον τύπο: WMC = Σ ci 43

44 όπου ci η πολυπλοκότητα της μεθόδου i. Ratio of Methods per Class. Μετρά τον αριθμό των μεθόδων ανά κλάση. Total Method Size. Μετρά το συνολικό μέγεθος μιας κλάσης, αθροίζοντας το μέγεθος των μεθόδων της. Class Coupling (Lorenz M. & Kidd J.,1994) & (Chidamber S. R., Kemerer C. F.,1994). Μετρά τον αριθμό των κλάσεων που συνδέονται και το ποσό της σύνδεσης μιας κλάσης με τις άλλες. Direct Class Coupling. Μετρά το πλήθος των κλάσεων με τις οποίες μια κλάση είναι συνδεδεμένη, συμπεριλαμβανομένων και των κλάσεων που συνδέονται άμεσα με δηλώσεις κοινών μεταβλητών και μεταβίβαση μηνυμάτων. Depth of the Inheritance Tree (Chidamber S. R., Kemerer C. F.,1994). Ορίζεται ως το μέγιστο μήκος από τη ρίζα σε ένα κόμβο του δένδρου. Όσο μεγαλύτερο είναι το νούμερο αυτό, τόσο μεγαλύτερη είναι και η πολυπλοκότητα του συστήματος. Average Method Size (Lorenz M. & Kidd J.,1994) Υπολογίζει το μέσο μήκος των μεθόδων ενός συστήματος. Class Size (Lorenz M. & Kidd J.,1994). Μετρά το μέγεθος μίας κλάσης. Ορίζεται ως ο συνολικός αριθμός των λειτουργιών (total number of operations) ή ο συνολικός αριθμός των γνωρισμάτων (number of attributes). Class Cohesion (Lorenz M. & Kidd J.,1994). Μετρά τη συνοχή μιας κλάσης, κάτι που καθορίζεται από τις σχέσεις μεταξύ των μεθόδων της. System Size in Classes. Μετρά το συνολικό αριθμό των κλάσεων στο σύστημα. 44

45 Internal Privacy. Αναφέρεται στη χρήση συναρτήσεων που ενεργούν πάνω στα στιγμιότυπα μιας κλάσης. Number of Independent Classes. Μετρά τον αριθμό των κλάσεων που δεν ανήκουν σε κάποια ιεραρχία και δε κληρονομούνται από καμία κλάση στο σύστημα. Number of Multiple Inheritance. Μετρά τον αριθμό των στιγμιότυπων που υπάρχει πολλαπλή κληρονομικότητα. Number of Ancestors. Μετρά τον αριθμό των διακριτών κλάσεων τις οποίες μια κλάση κληρονομεί. Number of Children (Chidamber S. R., Kemerer C. F.,1994). Ορίζεται ως ο αριθμός των υποκλάσεων από τις οποίες αποτελείται μία κλάση. Όσο μεγαλύτερος είναι ο αριθμός αυτός, τόσο εξασθενεί η αφαιρετικότητα της κλάσης-γονέα, ενώ αποδεικνύει ότι κάποιες υποκλάσεις δε θα πρέπει να θεωρούνται παιδιά της συγκεκριμένης κλάσης-γονέα. Lack of Cohesion in Methods (Fenton N. & Pfleeger S.,1994) & (Chidamber S. R., Kemerer C. F.,1994). Η συνοχή μιας κλάσης ορίζεται από το πόσο στενά σχετίζονται οι τοπικές μέθοδοι της κλάσης με τα τοπικά στιγμιότυπα των ιδιοτήτων της. Για μια κλάση η μετρική αυτή ορίζεται ως το πλήθος των μη επικαλυπτόμενων τοπικών μεθόδων της κλάσης. Length of OO Program (Fenton N. & Pfleeger S.,1994). Η μέτρηση του μήκους του προγράμματος βασίζεται στον αριθμός των κλάσεων και των μεθόδων που αυτό διαθέτει. Number of Hierarchies. Μετρά τον αριθμό των διακριτών ιεραρχιών κλάσεων στο σύστημα. Number of Inline Methods. Μετρά τον αριθμό των inline μεθόδων μιας κλάσης. 45

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΙΠΛΩΜΑ ΕΙ ΙΚΕΥΣΗΣ «ΕΠΙΣΤΗΜΗ & ΤΕΧΝΟΛΟΓΙΑ ΥΠΟΛΟΓΙΣΤΩΝ» ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΙΠΛΩΜΑ ΕΙ ΙΚΕΥΣΗΣ «ΕΠΙΣΤΗΜΗ & ΤΕΧΝΟΛΟΓΙΑ ΥΠΟΛΟΓΙΣΤΩΝ» ιπλωµατική Εργασία ιεξαγωγή µετρήσεων ποιότητας µε στόχο τη βελτίωση

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τεχνολογία Λογισμικού ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα #1 : Εισαγωγή Σταμέλος Ιωάννης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

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

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

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

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

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

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

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

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

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

Πτυχιακή εργασία του φοιτητή Ρούμπου Γεώργιου ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

Πτυχιακή εργασία του φοιτητή Ρούμπου Γεώργιου ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Πτυχιακή εργασία του φοιτητή Ρούμπου Γεώργιου ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Εμπειρική μελέτη ανασκόπησης της εφαρμογής των Α/Σ μετρικών στις βιβλιοθήκες λογισμικού (APIs) Του φοιτητή Ρούμπος Γιώργος Αρ. Μητρώου: ΑΜ

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

Αρχιτεκτονική Λογισμικού

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

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

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

Τεχνολογία Λογισμικού Τεχνολογία Λογισμικού Προαπαιτήσεις Γνώση Αρχών Προγραμματισμού Γνώση Γλώσσας Προγραμματισμού (C++, Java, Pascal) Χρήση Η/Υ (Σχεδίαση, Επεξ. Κειμένου) Κριτική και Συνθετική Ικανότητα Σκοπός μαθήματος Γνωριμία

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

Ποιότητα Λογισμικού και Πιστοποίηση

Ποιότητα Λογισμικού και Πιστοποίηση Ποιότητα Λογισμικού και Πιστοποίηση Πιστοποιήση: - Διεργασιών Λογισμικού - Προϊόντων Λογισμικού Ι. Σταμέλος Καθηγητής Τεχνολογίας Λογισμικού Τμ. Πληροφορικής Α.Π.Θ. Ποιότητα Λογισμικού Ένας ορισμός (από

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 4 : Τεχνολογία λογισμικού. Δρ.

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 4 : Τεχνολογία λογισμικού. Δρ. 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Πληροφορική II Ενότητα 4 : Τεχνολογία λογισμικού Δρ. Γκόγκος Χρήστος 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Χρηματοοικονομικής

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

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

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

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

Στο στάδιο ανάλυσης των αποτελεσµάτων: ανάλυση ευαισθησίας της λύσης, προσδιορισµός της σύγκρουσης των κριτηρίων.

Στο στάδιο ανάλυσης των αποτελεσµάτων: ανάλυση ευαισθησίας της λύσης, προσδιορισµός της σύγκρουσης των κριτηρίων. ΠΕΡΙΛΗΨΗ Η τεχνική αυτή έκθεση περιλαµβάνει αναλυτική περιγραφή των εναλλακτικών µεθόδων πολυκριτηριακής ανάλυσης που εξετάσθηκαν µε στόχο να επιλεγεί η µέθοδος εκείνη η οποία είναι η πιο κατάλληλη για

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

Πίνακας Περιεχομένων. μέρος A 1 Εισαγωγή στην Τεχνολογία Λογισμικού

Πίνακας Περιεχομένων. μέρος A 1 Εισαγωγή στην Τεχνολογία Λογισμικού Πρόλογος...21 μέρος A Εισαγωγή στην Τεχνολογία Λογισμικού 1 Εισαγωγή στην Τεχνολογία Λογισμικού 1.1 Το λογισμικό...25 1.1.1 Ο ρόλος και η σημασία του λογισμικού...26 1.1.2 Οικονομική σημασία του λογισμικού...28

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

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

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

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

Εισαγωγή στην Τεχνολογία Λογισμικού

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

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

Σεμινάριο Τελειοφοίτων. 6- Εμπειρική μέτρηση & ανάλυση

Σεμινάριο Τελειοφοίτων. 6- Εμπειρική μέτρηση & ανάλυση Σεμινάριο Τελειοφοίτων 6- Εμπειρική μέτρηση & ανάλυση Πόσο συχνά; Πόσο μεγάλο; Πόσο αντιπροσωπευτικό; Πως αλληλεπιδρούν οι μεταβλητές X και Y; Ποια είναι η αιτιώδης συνάφεια μεταξύ των φαινομένων Α και

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

Απαιτήσεις Λογισμικού

Απαιτήσεις Λογισμικού Απαιτήσεις Λογισμικού περιεχόμενα παρουσίασης Τι είναι οι απαιτήσεις Δραστηριότητες προσδιορισμού απαιτήσεων Η εξαγωγή απαιτήσεων τι είναι οι απαιτήσεις Πριν βρούμε τη λύση πρέπει να καταλάβουμε το πρόβλημα.

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

(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++):

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

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420)

Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Ανάπτυξη & Σχεδίαση Λογισμικού (ΗΥ420) Διάλεξη 8: Σχεδίαση Συστήματος Σχεδίαση Συστήματος 2 Διεργασία μετατροπής του προβλήματος σε λύση. Από το Τί στο Πώς. Σχέδιο: Λεπτομερής περιγραφή της λύσης. Λύση:

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

Αξιολόγηση Σταθερότητας Open Source με χρήση Μετρικών

Αξιολόγηση Σταθερότητας Open Source με χρήση Μετρικών Μεταπτυχιακή εργασία Αξιολόγηση Σταθερότητας Open Source με χρήση Μετρικών Καλύβα Δήμητρα (Α.Μ.: 582) ΜΔΕ: Επιστήμη και Τεχνολογία Υπολογιστών Επιβλέπων καθηγητής: Μιχάλης Ξένος Ευχαριστίες Θα ήθελα να

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΟΙΚΟΝΟΜΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΑΜΕΣΕΣ ΞΕΝΕΣ ΕΠΕΝΔΥΣΕΙΣ ΣΕ ΕΥΡΩΠΑΙΚΕΣ ΧΩΡΕΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΟΙΚΟΝΟΜΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΣΤΗΝ ΟΙΚΟΝΟΜΙΚΗ ΚΑΙ ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΣΤΡΑΤΗΓΙΚΗ ΑΜΕΣΕΣ ΞΕΝΕΣ ΕΠΕΝΔΥΣΕΙΣ ΣΕ ΕΥΡΩΠΑΙΚΕΣ ΧΩΡΕΣ Αθανάσιος Νταραβάνογλου Διπλωματική

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

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

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

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

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Αξιολόγηση των Σχεδιαστικών Προτύπων και της Ποιότητας του Λογισμικού μέσω Μετρικών, στις Περιπτώσεις Προσθήκης Λειτουργικότητας και

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Αξιολόγηση των Σχεδιαστικών Προτύπων και της Ποιότητας του Λογισμικού μέσω Μετρικών, στις Περιπτώσεις Προσθήκης Λειτουργικότητας και ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Αξιολόγηση των Σχεδιαστικών Προτύπων και της Ποιότητας του Λογισμικού μέσω Μετρικών, στις Περιπτώσεις Προσθήκης Λειτουργικότητας και Αναδόμησης του Κώδικα Η πτυχιακή περιλαμβάνει τα παρακάτω:

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

Υποδείγματα Ανάπτυξης

Υποδείγματα Ανάπτυξης Υποδείγματα Ανάπτυξης περιεχόμενα παρουσίασης Αποσύνθεση Αφαίρεση Μοντελοποίηση Η δεδομένο λειτουργική προσέγγιση Η αντικειμενοστρεφής προσέγγιση αποσύνθεση Όταν επιχειρούμε τη λύση ενός προβλήματος, πρώτα

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

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

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

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

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

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

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

þÿ¼ ½ ±Â : ÁÌ» Â Ä Å ÃÄ ²µ þÿä Å ÃÇ»¹º Í Á³ Å

þÿ¼ ½ ±Â : ÁÌ» Â Ä Å ÃÄ ²µ þÿä Å ÃÇ»¹º Í Á³ Å Neapolis University HEPHAESTUS Repository School of Economic Sciences and Business http://hephaestus.nup.ac.cy Master Degree Thesis 2015 þÿ ½»Åà Äɽ µ½½ ¹Î½ Ä Â þÿ±¾¹»ì³ à  º±¹ Ä Â þÿ±à ĵ»µÃ¼±Ä¹ºÌÄ Ä±Â

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

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

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

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

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

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

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

Αρχές Προγραμματισμού Υπολογιστών

Αρχές Προγραμματισμού Υπολογιστών Αρχές Προγραμματισμού Υπολογιστών Ανάπτυξη Προγράμματος Β ΕΠΑΛ Τομέας Πληροφορικής Βελώνης Γεώργιος Καθηγητής Πληροφορικής ΠΕ20 Κύκλος ανάπτυξης προγράμματος/λογισμικού Η διαδικασία ανάπτυξης λογισμικού,

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

Ελληνικό Ανοικτό Πανεπιστήµιο. Βασικές έννοιες αντικειµενοστρεφούς τεχνολογίας. ρ. Πάνος Φιτσιλής

Ελληνικό Ανοικτό Πανεπιστήµιο. Βασικές έννοιες αντικειµενοστρεφούς τεχνολογίας. ρ. Πάνος Φιτσιλής 1 Ελληνικό Ανοικτό Πανεπιστήµιο Βασικές έννοιες αντικειµενοστρεφούς τεχνολογίας ρ. Πάνος Φιτσιλής Περιεχόµενα Βασικές έννοιες αντικειµενοστεφούς τρόπου ανάπτυξης Τι είναι κλάση Τι είναι αντικείµενο 2 Βασικές

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

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

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

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

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

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

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή.

4. Συντακτικό μιας γλώσσας είναι το σύνολο των κανόνων που ορίζει τις μορφές με τις οποίες μια λέξη είναι αποδεκτή. ΑΕσΠΠ-Κεφ6. Εισαγωγή στον προγραμματισμό 1 ΣΩΣΤΟ ΛΑΘΟΣ 1. Οι γλώσσες προγραμματισμού αναπτυχθήκαν με σκοπό την επικοινωνία ανθρώπου μηχανής. 2. Αλγόριθμος = Πρόγραμμα + Δομές Δεδομένων 3. Ένα πρόγραμμα

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

Στρατηγική Αξιολόγησης κατά την Υλοποίηση Εκπαιδευτικού Λογισμικού

Στρατηγική Αξιολόγησης κατά την Υλοποίηση Εκπαιδευτικού Λογισμικού Στρατηγική Αξιολόγησης κατά την Υλοποίηση Εκπαιδευτικού Λογισμικού Μαρία Καραβελάκη, Γεώργιος Παπαπαναγιώτου, Γιάννα Κοντού INTE*LEARN Αγν.Στρατιώτη 46, Καλλιθέα τηλ. 95 91 853, fax. 95 72 098, e-mail:

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

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

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

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

Μοντέλο συστήματος διαχείρισης της ποιότητας

Μοντέλο συστήματος διαχείρισης της ποιότητας Μοντέλο συστήματος διαχείρισης της ποιότητας Διαρκής βελτίωση του Συστήματος Διαχείρισης της Ποιότητας Ευθύνη της Διοίκησης Πελάτες Πελάτες Διαχείριση Πόρων Μέτρηση, ανάλυση και βελτίωση Ικανοποίηση Απαιτήσεις

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

Προγραμματισμός και Επιλογή Συστημάτων

Προγραμματισμός και Επιλογή Συστημάτων Ενότητα 4 Προγραμματισμός και Επιλογή Συστημάτων Πληροφοριακά Συστήματα Διοίκησης ΙI Νίκος Καρακαπιλίδης 4-1 Μαθησιακοί στόχοι Κατανόηση των διαδικασιών προσδιορισμού και επιλογής έργων ανάπτυξης ΠΣ Κατανόηση

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

Διδακτική Προσέγγιση για Διασφάλιση Ποιότητας Πηγαίου Κώδικα Λογισμικού με Βελτιστοποίηση των Μετρικών του

Διδακτική Προσέγγιση για Διασφάλιση Ποιότητας Πηγαίου Κώδικα Λογισμικού με Βελτιστοποίηση των Μετρικών του 6 ο Πανελλήνιο Συνέδριο «Διδακτική της Πληροφορικής» Φλώρινα, 20-22 Απριλίου 2012 Διδακτική Προσέγγιση για Διασφάλιση Ποιότητας Πηγαίου Κώδικα Λογισμικού με Βελτιστοποίηση των Μετρικών του Μ. Μπασδαβάνος

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

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

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

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΑΝΑΛΥΣΗ Rational Unified Process. Ιωάννης Σταμέλος Βάιος Κολοφωτιάς Πληροφορική

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

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

ΚΥΚΛΟΣ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ και ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ

ΚΥΚΛΟΣ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ και ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ ΚΥΚΛΟΣ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ και ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ Ο κύκλος ζωής λογισµικού (συνοπτικά) Η παραδοσιακή φάση ανάπτυξης του κύκλου ζωής λογισµικού Φάση καθορισµού απαιτήσεων (1/2) ΤΙ πρέπει να κάνει το

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

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

ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΕΝΙΣΧΥΣΗ ΤΩΝ ΚΟΜΒΩΝ ΟΠΛΙΣΜΕΝΟΥ ΣΚΥΡΟΔΕΜΑΤΟΣ ΜΕ ΒΑΣΗ ΤΟΥΣ ΕΥΡΩΚΩΔΙΚΕΣ Σχολή Μηχανικής και Τεχνολογίας Πτυχιακή εργασία ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΕΝΙΣΧΥΣΗ ΤΩΝ ΚΟΜΒΩΝ ΟΠΛΙΣΜΕΝΟΥ ΣΚΥΡΟΔΕΜΑΤΟΣ ΜΕ ΒΑΣΗ ΤΟΥΣ ΕΥΡΩΚΩΔΙΚΕΣ Σωτήρης Παύλου Λεμεσός, Μάιος 2018 i ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ

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

Μάθημα «Υπηρεσίες Ηλεκτρονικής Υγείας»

Μάθημα «Υπηρεσίες Ηλεκτρονικής Υγείας» Μάθημα «Υπηρεσίες Ηλεκτρονικής Υγείας» M. Σπανάκης, Μ. Τσικνάκης Εαρινό Εξάμηνο 2014 Μάθημα 1 Παρουσίαση Εργασίας και Εισαγωγή στην ανάλυση απαιτήσεων Εισαγωγή Αρχική συζήτηση αναφορικά με την ανάλυση

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

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

ΟΙ ΠΟΛΙΤΙΣΤΙΚΟΙ ΟΡΓΑΝΙΣΜΟΙ ΣΤΟ ΙΑ ΙΚΤΥΟ ΗΜΕΡΙ Α ΠΡΟΒΟΛΗΣ ΚΑΙ ΕΝΗΜΕΡΩΣΗΣ Βυζαντινό και Χριστιανικό Μουσείο 07 εκεµβρίου, 2004 ΟΙ ΠΟΛΙΤΙΣΤΙΚΟΙ ΟΡΓΑΝΙΣΜΟΙ ΣΤΟ ΙΑ ΙΚΤΥΟ ιοργάνωση: Ίδρυµα Μελετών Λαµπράκη σε συνεργασία µε την Ευρωπαϊκή πρωτοβουλία

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

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams Αλέκα Σεληνιωτάκη Ηράκλειο, 26/06/12 aseliniotaki@csd.uoc.gr ΑΜ: 703 1. Περίληψη Συνεισφοράς

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

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Μάθημα 10: Ανάπτυξη ΠΣ Μαρίνος Θεμιστοκλέους Email: mthemist@unipi.gr Ανδρούτσου 150 Γραφείο 206 Τηλ. 210 414 2723 Ώρες Γραφείου: Δευτέρα 11-12 πμ Ενδεικτικά Περιεχόμενα Εργασίας

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

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος Κεφάλαιο 2.3: Προγραμματισμός 1 2.3.1 Αναφορά σε γλώσσες προγραμματισμού και «Προγραμματιστικά Υποδείγματα» 2.3.1.1 Πρόγραμμα και Γλώσσες Προγραμματισμού Πρόγραμμα: σύνολο εντολών που χρειάζεται να δοθούν

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

Μεθοδολογίες Παραγωγής Λογισµικού

Μεθοδολογίες Παραγωγής Λογισµικού Μεθοδολογίες Παραγωγής Λογισµικού Βασικά Γενικά Μοντέλα Μοντέλο καταρράκτη (waterfall model) Ξεχωριστές φάσεις καθορισµού απαιτήσεων και ανάπτυξης, επικύρωσης, εξέλιξης Εξελικτική ανάπτυξη (evolutionary

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

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Διαδικασίες παραγωγής λογισμικού Περιεχόμενα Παρουσίαση μοντέλων διεργασίας ανάπτυξης λογισμικού Περιγραφή τριών γενικών μοντέλων διεργασίας ανάπτυξης λογισμικού Γενική περιγραφή των διαδικασιών που περιλαμβάνονται

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

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

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

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

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

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

Εισαγωγή στη Δασική Πληροφορική

Εισαγωγή στη Δασική Πληροφορική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Εισαγωγή στη Δασική Πληροφορική Ενότητα 3: Θεωρία, Ανάλυση και Σχεδιασμός Πληροφοριακών Συστημάτων Ζαχαρούλα Ανδρεοπούλου Δασολογίας &

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

Εργαλεία Ανάπτυξης Εφαρμογών Internet I

Εργαλεία Ανάπτυξης Εφαρμογών Internet I Εργαλεία Ανάπτυξης Εφαρμογών Internet I 5: Αρχές σχεδιασμού και τρόποι οργάνωσης ιστοσελίδων Σταύρος Καμμάς Περιεχόμενα Χαρακτηριστικά Ιδιαιτερότητες Δυνατότητες Περιορισμοί εισαγωγή στην HTML Μορφή δομή

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

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

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

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

Συγγραφή ερευνητικής πρότασης

Συγγραφή ερευνητικής πρότασης Συγγραφή ερευνητικής πρότασης 1 o o o o Η ερευνητική πρόταση είναι ένα ιδιαίτερα σημαντικό τμήμα της έρευνας. Η διατύπωσή της θα πρέπει να είναι ιδιαίτερα προσεγμένη, περιεκτική και βασισμένη στην ανασκόπηση

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

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

Ανάλυση Συστηµάτων και Τεχνολογία Λογισµικού ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΜΑΤΙΚΗΣ Ανάλυση Συστηµάτων και Τεχνολογία Λογισµικού Μάρα Νικολαϊδου Αντικείµενο & Σκοπός Παρουσίαση και ανάλυση όλων των σταδίων της διαδικασίας ανάπτυξης

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

Συστήματα Πληροφοριών Διοίκησης

Συστήματα Πληροφοριών Διοίκησης ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Τεχνολογικό Εκπαιδευτικό Ίδρυμα Πειραιά Συστήματα Πληροφοριών Διοίκησης Ενότητα 2: Γενική θεώρηση και κατάταξη συστημάτων πληροφοριών διοίκησης Διονύσιος Γιαννακόπουλος, Καθηγητής Τμήμα

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

Διαφορές single-processor αρχιτεκτονικών και SoCs

Διαφορές single-processor αρχιτεκτονικών και SoCs 13.1 Τα συστήματα και η επικοινωνία μεταξύ τους γίνονται όλο και περισσότερο πολύπλοκα. Δεν μπορούν να περιγραφούνε επαρκώς στο επίπεδο RTL καθώς αυτή η διαδικασία γίνεται πλέον αρκετά χρονοβόρα. Για αυτό

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

Διαχείριση Έργων Πληροφορικής

Διαχείριση Έργων Πληροφορικής Διαχείριση Έργων Πληροφορικής Μελέτη Σκοπιμότητας Feasibility Study Μ. Τσικνάκης Ε. Μανιαδή, Α. Μαριδάκη Μάθημα στο eclass Ονομασία: ΔΙΑΧΕΙΡΙΣΗ ΕΡΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΑΡΙΝΟ 2017 Κωδικός Μαθήματος στο eclass:

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

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΜΑΤΙΚΗΣ Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού Μάρα Νικολαϊδου Δραστηριότητες Διαδικασιών Παραγωγής Λογισµικού Καθορισµός απαιτήσεων και εξαγωγή προδιαγραφών

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

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.

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

Εννοιολογική Ομοιογένεια

Εννοιολογική Ομοιογένεια Ιόνιο Πανεπιστήμιο Τμήμα Αρχειονομίας Βιβλιοθηκονομίας Εργαστήριο Ψηφιακών Βιβλιοθηκών και Ηλεκτρονικής Δημοσίευσης Εννοιολογική Ομοιογένεια Αξιοποίηση Ταξινομικών Συστημάτων Γεωργία Προκοπιάδου, Διονύσης

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

Σχεδιασµός βασισµένος σε συνιστώσες

Σχεδιασµός βασισµένος σε συνιστώσες Σχεδιασµός βασισµένος σε συνιστώσες 1 Ενδεικτικά περιεχόµενα του κεφαλαίου Ποια είναι τα "άτοµα", από τα οποία κατασκευάζονται οι υπηρεσίες; Πώς οργανώνουµε τις συνιστώσες σε ένα αρµονικό σύνολο; Τι είναι

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

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

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

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

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα). Κ08 Δομές Δεδομένων και Τεχνικές Προγραμματισμού Διδάσκων: Μανόλης Κουμπαράκης Εαρινό Εξάμηνο 2016-2017. Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

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

Οδηγός. Σχολιασμού. Διπλωματικής Εργασίας

Οδηγός. Σχολιασμού. Διπλωματικής Εργασίας ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Μεταπτυχιακό Δίπλωμα Ειδίκευσης: «Σπουδές στην Εκπαίδευση» Οδηγός Σχολιασμού Διπλωματικής Εργασίας (βιβλιογραφική σύνθεση) ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: «ΕΞΕΛΙΞΗ ΤΟΥ ΠΑΙΔΙΟΥ ΣΤΟ ΚΟΙΝΩΝΙΚΟ

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

Εισαγωγή, Βασικές Έννοιες, Οφέλη και Κίνδυνοι

Εισαγωγή, Βασικές Έννοιες, Οφέλη και Κίνδυνοι Εισαγωγή, Βασικές Έννοιες, Οφέλη και Κίνδυνοι Ευθύμιος Ταμπούρης tambouris@uom.gr Επιστημονική Επιχειρηματική Χρήση των Η/Υ Η επιστημονική κοινότητα ασχολείται με τη λύση πολύπλοκων μαθηματικών προβλημάτων

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

6. Διαχείριση Έργου. Έκδοση των φοιτητών

6. Διαχείριση Έργου. Έκδοση των φοιτητών 6. Διαχείριση Έργου Έκδοση των φοιτητών Εισαγωγή 1. Η διαδικασία της Διαχείρισης Έργου 2. Διαχείριση κινδύνων Επανεξέταση Ερωτήσεις Αυτοαξιολόγησης Διαχείριση του έργου είναι να βάζεις σαφείς στόχους,

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

Πολιτική Ποιότητας & Σ.Ο.Π.Ε.Π Αξιολόγηση Έργου

Πολιτική Ποιότητας & Σ.Ο.Π.Ε.Π Αξιολόγηση Έργου Πολιτική Ποιότητας & Σ.Ο.Π.Ε.Π Αξιολόγηση Έργου Σύνταξη Δημήτριος Τσέλιος Πρακτική Άσκηση ΤΕΙ Λάρισας Υποέργο 02 Ε 2.21 Περιεχόμενα ΕΙΣΑΓΩΓΗ 2 Ι. ΣΤΡΑΤΗΓΙΚΗ ΚΑΙ ΠΟΛΙΤΙΚΗ ΠΟΙΟΤΗΤΑΣ ΓΙΑ ΤΟ ΕΡΓΟ ΤΗΣ Π.Α 2

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

Β.δ Επιλογή των κατάλληλων εμπειρικών ερευνητικών μεθόδων

Β.δ Επιλογή των κατάλληλων εμπειρικών ερευνητικών μεθόδων Β.δ Επιλογή των κατάλληλων εμπειρικών ερευνητικών μεθόδων Νίκος Ναγόπουλος Για τη διεξαγωγή της κοινωνικής έρευνας χρησιμοποιούνται ποσοτικές ή/και ποιοτικές μέθοδοι που έχουν τις δικές τους τεχνικές και

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

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

ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ Αντικειμενοστραφής προγραμματισμός Web Sites:

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

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1 Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα Προγραμματισμός II 1 lalis@inf.uth.gr Χρήση λογισμικού που ήδη υπάρχει Τα πολύπλοκα συστήματα αναπτύσσονται σταδιακά, «χτίζοντας» πάνω σε υπάρχουσα λειτουργικότητα

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

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

ΠΙΛΟΤΙΚΗ ΕΦΑΡΜΟΓΗ ΑΥΤΟΝΟΜΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΛΟΗΓΗΣΗΣ ΓΙΑ ΤΗΝ ΠΑΡΑΓΩΓΗ ΥΨΗΛΗΣ ΑΝΑΛΥΣΗΣ ΟΡΘΟΦΩΤΟΓΡΑΦΙΩΝ ΓΕΩΡΓΙΚΩΝ ΕΚΤΑΣΕΩΝ Σχολή Μηχανικής & Τεχνολογίας Τμήμα Πολιτικών & Μηχανικών Γεωπληροφορικής Μεταπτυχιακή διατριβή ΠΙΛΟΤΙΚΗ ΕΦΑΡΜΟΓΗ ΑΥΤΟΝΟΜΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΛΟΗΓΗΣΗΣ ΓΙΑ ΤΗΝ ΠΑΡΑΓΩΓΗ ΥΨΗΛΗΣ ΑΝΑΛΥΣΗΣ ΟΡΘΟΦΩΤΟΓΡΑΦΙΩΝ ΓΕΩΡΓΙΚΩΝ

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

Ιεραρχική αναλυση αποφασεων Analytic hierarchy process (AHP)

Ιεραρχική αναλυση αποφασεων Analytic hierarchy process (AHP) Ιεραρχική αναλυση αποφασεων Analytic hierarchy process (AHP) Εισαγωγή Παρουσιάστηκε από τον Thomas L. Saaty τη δεκαετία του 70 Μεθοδολογία που εφαρμόζεται στην περιοχή των Multicriteria Problems Δίνει

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

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

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΥΓΕΙΑΣ ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΣΤΗΜΩΝ ΥΓΕΙΑΣ Πτυχιακή Εργασία Η ΣΧΕΤΙΖΟΜΕΝΗ ΜΕ ΤΗΝ ΥΓΕΙΑ ΠΟΙΟΤΗΤΑ ΖΩΗΣ ΑΤΟΜΩΝ ΜΕ ΝΕΑΝΙΚΗ ΙΔΙΟΠΑΘΗ ΑΡΘΡΙΤΙΔΑ Όνομα Φοιτήτριας: Μαρία Θωμά Αριθμός φοιτητικής ταυτότητας:2010221455

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

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1

Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1 Κεφάλαιο 6 ο Εισαγωγή στον Προγραμματισμό 1 Ποιες γλώσσες αναφέρονται ως φυσικές και ποιες ως τεχνητές; Ως φυσικές γλώσσες αναφέρονται εκείνες οι οποίες χρησιμοποιούνται για την επικοινωνία μεταξύ ανθρώπων,

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

Κεφάλαιο 2: Έννοιες και Ορισμοί

Κεφάλαιο 2: Έννοιες και Ορισμοί ΔΙΟΙΚΗΣΗ ΟΛΙΚΗΣ ΠΟΙΟΤΗΤΑΣ Ε.ΜΙΧΑΗΛΙΔΟΥ - 1 Κεφάλαιο 2: Έννοιες και Ορισμοί Η επιτυχία των επιχειρήσεων βασίζεται στην ικανοποίηση των απαιτήσεων των πελατών για: - Ποιοτικά και αξιόπιστα προϊόντα - Ποιοτικές

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

Διαχείριση Πολιτισμικών Δεδομένων

Διαχείριση Πολιτισμικών Δεδομένων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Διαχείριση Πολιτισμικών Δεδομένων Ενότητα 6: Εισαγωγή στις Βάσεις Δεδομένων Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και

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

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

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

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

Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων ιαχείριση ικτύων ρ.αρίστη Γαλάνη Ακαδημαϊκό Έτος

Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων ιαχείριση ικτύων ρ.αρίστη Γαλάνη Ακαδημαϊκό Έτος Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων ιαχείριση ικτύων ρ.αρίστη Γαλάνη Ακαδημαϊκό Έτος 2016-2017 Πρότυπο διαχείρισης ISO/OSI Ένα περιβάλλον OSI μπορεί να αποτελείται από ετερογενή «ανοικτά» διασυνδεδεμένα

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

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βήματα προς τη δημιουργία εκτελέσιμου κώδικα

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Βήματα προς τη δημιουργία εκτελέσιμου κώδικα Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Βήματα προς τη δημιουργία εκτελέσιμου κώδικα Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Βήματα προς τη δημιουργία εκτελέσιμου κώδικα

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

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 1: Εισαγωγή Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο

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

Τεχνολογία Λογισµικού Ι Κεφάλαιο 5

Τεχνολογία Λογισµικού Ι Κεφάλαιο 5 ΕΛΛΗΝΙΚΟ ΑΝΟΙΧΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Πρόγραµµα σπουδών "ΠΛΗΡΟΦΟΡΙΚΗ" - Θ.Ε. ΠΛΗ11 Τεχνολογία Λογισµικού Ι Κεφάλαιο 5 Βασίλειος Βεσκούκης ιδάκτωρ Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών v.vescoukis@cs.ntua.gr

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

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Ανάλυση και ο Σχεδιασµός στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Ανάλυση και ο Σχεδιασµός στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής 1 Ελληνικό Ανοικτό Πανεπιστήµιο Η και ο στην Ενοποιηµένη ιαδικασία ρ. Πάνος Φιτσιλής Περιεχόµενα Γενικές αρχές ανάλυσης και σχεδιασµού Τα βήµατα της ανάλυσης και του σχεδιασµού Συµπεράσµατα 2 3 Η ανάλυση

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

Σημειώσεις στο μάθημα «Στοιχεία Προγραμματισμού σε Γραφικό Περιβάλλον»

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

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

ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ. «ΔΙΟΙΚΗΣΗ της ΥΓΕΙΑΣ» ΑΞΙΟΛΟΓΗΣΗ ΚΑΙ ΔΙΑΧΕΙΡΙΣΗ ΝΟΣΟΚΟΜΕΙΑΚΟΥ ΠΡΟΣΩΠΙΚΟΥ

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

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

«Σχεδιασμός, Οργάνωση, Εκτέλεση, Ηγεσία, Επικοινωνία, και Αξιολόγηση Δράσεων που αναλαμβάνουν τα στελέχη»

«Σχεδιασμός, Οργάνωση, Εκτέλεση, Ηγεσία, Επικοινωνία, και Αξιολόγηση Δράσεων που αναλαμβάνουν τα στελέχη» 1 ο ΠΡΟΓΡΑΜΜΑ ΕΠΙΜΟΡΦΩΣΗΣ ΣΤΕΛΕΧΩΝ ΑΘΛΗΤΙΚΟΥ ΟΡΓΑΝΙΣΜΟΥ «Σχεδιασμός, Οργάνωση, Εκτέλεση, Ηγεσία, Επικοινωνία, και Αξιολόγηση Δράσεων που αναλαμβάνουν τα στελέχη» Thanos Kriemadis, Ph.D., M.B.A. Professor

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

Σκοπός του μαθήματος

Σκοπός του μαθήματος ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Εισαγωγή Βασικές Έννοιες Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 2012-2013 1 Σκοπός του μαθήματος Η απόκτηση των γνώσεων

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

ΣΤΑΤΙΣΤΙΚΗ ΕΠΙΧΕΙΡΗΣΕΩΝ ΕΙΔΙΚΑ ΘΕΜΑΤΑ. Κεφάλαιο 10. Εισαγωγή στην εκτιμητική

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ανάπτυξη μιας προσαρμοστικής πολιτικής αντικατάστασης αρχείων, με χρήση

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

Οργανωσιακός Σχεδιασμός και Ανάπτυξη Ανθρωπίνου Δυναμικού

Οργανωσιακός Σχεδιασμός και Ανάπτυξη Ανθρωπίνου Δυναμικού Οργανωσιακός Σχεδιασμός και Ανάπτυξη Ανθρωπίνου Δυναμικού ΔΗΜΗΤΡΙΟΣ ΒΑΡΟΥΤΑΣ ΑΝΤΩΝΙΟΣ ΚΑΡΓΑΣ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΟΙΚΟΝΟΜΙΚΗ ΚΑΙ ΔΙΟΙΚΗΣΗ ΤΩΝ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΏΝ ΔΙΚΤΥΩΝ 2016-2017 Περίγραμμα Μαθήματος

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

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

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

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

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

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

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

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

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

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