ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «Εκμάθηση, δοκιμή και εφαρμογή των εργαλείων της πλατφόρμας OPEN-SME για επαναχρησιμοποίηση κώδικα»

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

Download "ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «Εκμάθηση, δοκιμή και εφαρμογή των εργαλείων της πλατφόρμας OPEN-SME για επαναχρησιμοποίηση κώδικα»"

Transcript

1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «Εκμάθηση, δοκιμή και εφαρμογή των εργαλείων της πλατφόρμας OPEN-SME για επαναχρησιμοποίηση κώδικα» Θεοδωρίδης Γεώργιος Επιβλέπων καθηγητής: Σταμέλος Ιωάννης Θεσσαλονίκη, Οκτώβρης 2012

2 Πρόλογος Η εργασία αυτή αποτελεί την πτυχιακή εργασία του Γεώργιου Θεοδωρίδη και εκπονήθηκε στα πλαίσια του προπτυχιακού προγράμματος σπουδών του τμήματος Πληροφορικής του Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης. Η εκπόνησή της πραγματοποιήθηκε το ακαδημαϊκό έτος Θα ήθελα να ευχαριστήσω θερμά τους επιβλέποντες την πτυχιακή μου εργασία, καθηγητή του Τμήματος Πληροφορικής ΑΠΘ, κ. Ιωάννη Σταμέλο και τον υποψήφιο διδάκτορα Απόστολο Κρητικό για την πολύτιμη καθοδήγησή τους και την άριστη συνεργασία κατά την πραγματοποίηση της εργασίας αυτής. Επίσης, θα ήθελα να ευχαριστήσω θερμά όλους τους συναδέλφους που εργάζονταν εκείνη την περίοδο στο εργαστήριο τεχνολογίας λογισμικού του τμήματος Πληροφορικής του Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης για την πολύτιμη τεχνική υποστήριξη που μου προσέφεραν. Τέλος, θα ήθελα να ευχαριστήσω τη Μητέρα μου Βάσω για τη διαρκή στήριξη και την υπομονή της. Θεσσαλονίκη,

3 3 Πίνακας περιεχομένων Πρόλογος Εισαγωγή Περιγραφή - Στόχοι εργασίας ομή εργασίας Ελεύθερο Λογισμικό και Λογισμικό Ανοιχτού Κώδικα (ΕΛ/ΛΑΚ) Τι είναι το (ΕΛ/ΛΑΚ) Η ιστορία του (ΕΛ/ΛΑΚ) Ελεύθερο Λογισμικό ή Λογισμικό Ανοιχτού Κώδικα Άδειες Ελεύθερου Λογισμικού Γνωστά έργα ΕΛ/ΛΑΚ Κοινότητες και code repositories (αποθετήρια κώδικα) έργων ΕΛ/ΛΑΚ Η εταιρία Ελεύθερου Λογισμικού / Λογισμικού Ανοικτού Κώδικα (ΕΕΛ/ΛΑΚ) Βασικοί στόχοι της ΕΕΛ/ΛΑΚ Η Γλώσσα προγραμματισμού Java Η ιστορία της Java Τα βασικά χαρακτηριστικά της Java Επαναχρησιμοποίηση κώδικα (Software reuse) Τι είναι το Software reuse Επίπεδα software reuse Τύποι software reuse Πλεονεκτήματα και μειονεκτήματα του software reuse Παραδείγματα software reuse Το project OPEN-SME (Open-Source Software Reuse Service for Small-Medium Enterprises) Τι είναι το OPEN-SME Εργαλεία του OPEN-SME OCEAN COPE COMPARE.35 3

4 6. Πειραματική μελέτη Πεδίο εφαρμογής (domain) Science & Engineering Έργα προς μελέτη Αποτελέσματα ανά έργο JHotdraw Components Cogroo Components Jgrapht Components Jfreechart components Συμπεράσματα...61 Βιβλιογραφία

5 5 1. Εισαγωγή 1.1 Περιγραφή - στόχοι εργασίας Αρχικά, ο φοιτητής καλείται να γνωρίσει τα εργαλεία που πρόκειται να χρησιμοποιήσει, τα οποία αποτελούν μέρος την πλατφόρμας OPEN- SME ( και να εκπαιδευτεί στον ορθό τρόπο χρήσης τους. Στη συνέχεια καλείται να εφαρμόσει τα εργαλεία αυτά σε έργα Ελεύθερου Λογισμικού και Λογισμικού Ανοικτού Κώδικα (ΕΛ/ΛΑΚ) των οποίων ο πηγαίος κώδικας είναι γραμμένος σε γλώσσα Java και που ανήκουν σε συγκεκριμένο πεδίο εφαρμογής (στην παρούσα εργασία Science & Engineering) με στόχο την εξαγωγή συστατικών λογισμικού (software components). Τέλος, τα συστατικά λογισμικού που προέκυψαν στο προηγούμενο βήμα θα πρέπει να αντιμετωπισθούν ως ξεχωριστές εφαρμογές και να τεκμηριωθούν ως προς τη λειτουργικότητά τους (component characterization). 1.2 ομή εργασίας Στα κεφάλαια 1 έως 5 γίνεται περιγραφή των βασικών εννοιών και εργαλείων που χρησιμοποιούνται ή εξετάζονται σ αυτήν την εργασία. Στο κεφάλαιο 2, το ελεύθερο λογισμικό και το λογισμικό ανοιχτού κώδικα (ΕΛ/ΛΑΚ) όπου είναι το είδος των έργων που χρησιμοποιήσαμε. Στο κεφάλαιο 3, η γλώσσα προγραμματισμού Java στην οποία είναι γραμμένος ο πηγαίος κώδικας των έργων που χρησιμοποιήσαμε. Στο κεφάλαιο 4, η έννοια του Software Reuse, που είναι κατ ουσία ο σκοπός της εργασίας 5

6 Στο κεφάλαιο 5 με την πλατφόρμα OPEN-SME που είναι το μέσο-εργαλείο με το οποίο πήραμε τα συστατικά λογισμικού που μελετήσαμε στο πειραματικό κομμάτι της εργασίας. Στο κεφάλαιο 6 πραγματοποιείται το πειραματικό σκέλος της εργασίας. Χρησιμοποιούνται συγκεκριμένα έργα λογισμικού από το πεδίο Science & Engineering και γίνεται τεκμηρίωση ως προς την λειτουργικότητα των συστατικών λογισμικού που θα προκύψουν από αυτά τα έργα. Στο κεφάλαιο 7 αποτυπώνονται διάφορα συμπεράσματα και παρατηρήσεις που αφορούν το σύνολο της εργασίας Στις τελευταίες σελίδες παρατίθεται η βιβλιογραφία που χρησιμοποιήθηκε για την εκπόνηση της πτυχιακής. 6

7 7 2. Ελεύθερο Λογισμικό και Λογισμικό Ανοιχτού Κώδικα (ΕΛ/ΛΑΚ) 2.1 Τι είναι το (ΕΛ/ΛΑΚ) Οι όροι "Ελεύθερο Λογισμικό" (Free Software) και "Λογισμικό Ανοικτού Κώδικα" (Open Source Software) αναφέρονται σε προγράμματα των οποίων ο πηγαίος κώδικας είναι προσβάσιμος σε άτομα εκτός της εταιρείας παραγωγής τους και συνεργατών της. Οι όροι αυτοί δεν αναφέρονται σε λογισμικό που απλώς διατίθεται δωρεάν (freeware) καθώς το ελεύθερο λογισμικό/λογισμικό ανοικτού κώδικα μπορεί να έχει τιμή πώλησης (σε κάποιες περιπτώσεις μεγάλη), ενώ αντίθετα υπάρχουν πολλά πακέτα δωρεάν λογισμικού των οποίων ο πηγαίος κώδικας είναι μη προσβάσιμος (κλειστός) σε άτομα εκτός της εταιρείας παραγωγής. Το ελεύθερο λογισμικό όπως ορίζεται από το Ίδρυμα Ελευθέρου Λογισμικού (FSF), είναι λογισμικό που μπορεί να χρησιμοποιηθεί, αντιγραφεί, μελετηθεί, τροποποιηθεί και αναδιανεμηθεί χωρίς περιορισμό. Στον αντίποδα βρίσκεται το "κλειστό" (closed source) λογισμικό, του οποίο ο πηγαίος κώδικας παραμένει κρυφός σε τρίτα άτομα (συμπεριλαμβανομένων των χρηστών του λογισμικού). Το τελευταίο μοντέλο ακολουθούν οι περισσότερες μεγάλες εταιρείες λογισμικού, όπως η Microsoft, η Adobe, η EA Games, η Oracle κλπ. Το ελεύθερο λογισμικό αντιμετωπιζόταν μέχρι το τέλος της δεκαετίας του 90 ως μια ιδεαλιστική προσπάθεια κάποιων "ρομαντικών" που δεν απέβλεπαν σε οικονομικά οφέλη και προτιμούσαν την αναγνώριση στις κοινότητες των χρηστών από μια καλοπληρωμένη θέση σε μια από τις μεγάλες εταιρείες λογισμικού. Σιγά, σιγά όμως, συνειδητοποιώντας ότι το λογισμικό δεν αποτελεί προϊόν αλλά υπηρεσία, το ανοικτό λογισμικό άρχισε να θεωρείται ένα βιώσιμο μοντέλο οικονομικής ανάπτυξης, το οποίο μπορεί να αποφέρει πολύ μεγαλύτερα κέρδη, πιο αξιόπιστες υπηρεσίες και περισσότερες ευκαιρίες απ' ότι το κλειστό λογισμικό. Μετά το 2000, παρατηρείται μια έκρηξη ενδιαφέροντος από μεγάλες εταιρείες, καθώς όλο και περισσότερες "ανοίγουν" πλέον τον κώδικα των προγραμμάτων τους (IBM, Sun, Apple, Google) αλλά και δηλώνουν ανοικτή προτίμηση σε 7

8 προγράμματα ανοικτού κώδικα, αναγνωρίζοντας έτσι την οικονομική βιωσιμότητα του ελεύθερου λογισμικού. Πολλές εταιρίες επιλέγουν το ελεύθερο λογισμικό λόγω του χαμηλότερου αρχικού κεφαλαίου επένδυσης και την ικανότητα να προσαρμόζουν ελεύθερα τα πακέτα εφαρμογών του. Επίσης, μερικές βιομηχανίες (όχι λογισμικού) αρχίζουν να χρησιμοποιούν τεχνικές παρόμοιες με αυτές που χρησιμοποιήθηκαν στην ανάπτυξη του ελεύθερου λογισμικού για τις έρευνές τους και την αναπτυξιακή διαδικασία. Τελευταία, η ιδέα του ανοικτού λογισμικού έχει επεκταθεί και σε άλλους τομείς υπηρεσιών. Έτσι, πλέον, ακούμε για "ανοικτό" hardware (που στην ουσία έγκειται σε δημοσιοποίηση του κώδικα VHDL ή Verilog που παράγει το εν λόγω κύκλωμα), "ελεύθερη" βιβλιογραφία/τεκμηρίωση κ.α. Τα Creative Commons και το free culture movement έχουν επίσης επηρεαστεί σε μεγάλο βαθμό από το κίνημα του ελεύθερου λογισμικού Η ιστορία του (ΕΛ/ΛΑΚ) Στις δεκαετίες του 1950, του 1960, και του 1970, ήταν φυσιολογικό για τους χρήστες των υπολογιστών να έχουν ελευθερίες πάνω στο λογισμικό αντίστοιχες με αυτό που σήμερα ονομάζουμε ελεύθερο λογισμικό. Το Λογισμικό μοιράζονταν ευρέως από τα άτομα που χρησιμοποιούσαν τους υπολογιστές και από τους κατασκευαστές του τεχνικού εξοπλισμού. Για την διευκόλυνση της ανταλλαγής του λογισμικού σχηματίστηκαν οργανώσεις από χρήστες και προμηθευτές (π.χ. η SHARE). Στα τέλη όμως της δεκαετίας του 1960, η εικόνα άλλαξε. Τα κόστη του λογισμικού ανέβαιναν δραματικά, και μια αναπτυσσόμενη βιομηχανία λογισμικού ανταγωνίζονταν με τους κατασκευαστές του εξοπλισμού (Hardware) που προσέφεραν δωρεάν συσκευασμένα προϊόντα λογισμικού (δωρεάν από την άποψη ότι το κόστος περιλαμβάνονταν στο κόστος του εξοπλισμού). Επιπλέον τεχνικός εξοπλισμός που είχε αγοραστεί από ιδιώτες ή επιχειρήσεις απαιτούσε επιπλέον υποστήριξη λογισμικού, και μερικοί πελάτες που είχαν την δυνατότητα να ανταποκριθούν στις ιδιαίτερες ανάγκες του δεν ήθελαν τα κόστη του ελεύθερου λογισμικού να έρχονται ως ενιαία δέσμη με το κόστος των προϊόντων εξοπλισμού υπολογιστών. Στην δικαστική απόφαση για την υπόθεση Ομοσπονδιακό Κράτος των Η.Π.Α. εναντίον της εταιρίας IBM, που αρχειοθετήθηκε στις 17 Ιανουαρίου, 1969, αποφασίστηκε ότι το "λογισμικό σε πακέτο" ήταν εναντίον του ανταγωνισμού. Κι ενώ κάποια λογισμικά θα μπορούσαν πάντα να είναι ελεύθερα, παράλληλα δινόταν η δυνατότητα να 8

9 9 παραχθεί ένα διαρκώς αυξανόμενο σε ποσότητα λογισμικό που ήταν μόνον προς πώληση. Στις δεκαετίας του 1970 και στις αρχές του 1980, η βιομηχανία λογισμικού άρχισε να χρησιμοποιεί τεχνικά μέτρα (όπως την διανομή μόνον δυαδικών αντιγράφων από τα προγράμματα υπολογιστών) για να αποτρέψουν τους χρήστες από την μελέτη και τροποποίηση του λογισμικού. Το 1980 η νομοθεσία για την πνευματική ιδιοκτησία επεκτάθηκε και στα προγράμματα υπολογιστών. To 1983, ο Richard Stallman, για πολλά χρόνια μέλος της κοινότητας των χάκερ στο Εργαστήριο Τεχνητής Νοημοσύνης του MIT, ανακοίνωσε το GNU Project, λέγοντας ότι είχε απογοητευθεί με τα αποτελέσματα που είχε η αλλαγή της κουλτούρας της βιομηχανίας των υπολογιστών και των χρηστών της. Η ανάπτυξη του λογισμικού για το GNU άρχισε τον Ιανουάριο του 1984, και τον Οκτώβριο του 1985 ιδρύθηκε το Ίδρυμα Ελεύθερου Λογισμικού (FSF). [2] Ελεύθερο λογισμικό ή λογισμικό ανοιχτού κώδικα; Αν και οι περισσότεροι άνθρωποι διατυπώνουν στους όρους "Ελεύθερο" και "Ανοικτό" λογισμικό αναφερόμενοι στο ίδιο πράγμα, υπάρχει μια ιδεολογική διαφορά ανάμεσα σε αυτά τα δύο. Σύμφωνα με τον Richard Stallman δεν είναι κάθε λογισμικό ελεύθερο μόνο και μόνο επειδή είναι ανοιχτού κώδικα. Το FSF συστήνει να χρησιμοποιείται καλύτερα ο όρος "ελεύθερο λογισμικό" παρά "λογισμικό ανοιχτού κώδικα" επειδή, αυτός ο τελευταίος όρος και η σχετική καμπάνια προώθησης του εστιάζει κυρίως στα τεχνικά θέματα της ανάπτυξης του λογισμικού, αποφεύγοντας τα θέματα της ελευθερίας των χρηστών. Σύμφωνα με το FSF, οι ελευθερίες που δίνει μια άδεια χρήσης λογισμικού είναι οι εξής: Η ελευθερία να τρέξεις το πρόγραμμα, για οποιονδήποτε σκοπό (freedom 0). Η ελευθερία να διαβάσεις ή να τροποποιήσεις τον πηγαίο κώδικα του προγράμματος (και κατά συνέπεια και το ίδιο το πρόγραμμα) για ιδιωτική χρήση (freedom 1). Η ελευθερία του να αντιγράψεις το αρχικό πρόγραμμα και να το δώσεις σε κάποιον τρίτο (freedom 2). 9

10 Η ελευθερία του να μπορείς να δημοσιοποιείς τροποποιημένες και βελτιωμένες εκδόσεις του προγράμματος σε τρίτα άτομα (freedom 3). Οι περισσότερες άδειες (EULA-End-User Licence Agreement) των προγραμμάτων κλειστού κώδικα δίδουν μόνο το επίπεδο ελευθερίας (freedom 0) και απαγορεύουν ρητά ως ποινικό αδίκημα κατά πνευματικής ιδιοκτησίας τις υπόλοιπες. Θεωρητικά, οποιοδήποτε πρόγραμμα δίνει και το επίπεδο ελευθερίας (freedom 1), θεωρείται ότι εμπίπτει στην κατηγορία του λογισμικού ανοικτού κώδικα, άσχετα με το εάν επιτρέπει τα επίπεδα ελευθερίας (freedom 2) και (freedom 3). Τα προγράμματα τα οποία δίνουν και τα τέσσερα επίπεδα ελευθερίας χρήσης ανήκουν στο ελεύθερο λογισμικό (free ή libre software). Στην πράξη τώρα, η πλειονότητα των προγραμμάτων ανοικτού κώδικα είναι και ελεύθερα, δηλαδή επιτρέπουν (υπό κάποιους όρους) στον χρήστη να τροποποιήσει τον πηγαίο κώδικα του προγράμματος και να τον δώσει σε τρίτα άτομα. Είναι λίγα τα προγράμματα που παρέχουν μεν τον πηγαίο τους κώδικα, απαγορεύουν δε τη δημοσίευσή του (αυτούσιου ή τροποποιημένου) σε τρίτους. Για τον λόγο αυτό, χωρίς να είναι σωστό, για πολλούς οι όροι "ελεύθερο" και "ανοικτό" λογισμικό είναι σχεδόν συνώνυμοι Άδειες Ελεύθερου Λογισμικού Αν και στις περισσότερες περιπτώσεις, ιδιοκτήτης του copyright παραμένει ο αρχικός συγγραφέας του λογισμικού, το αν το λογισμικό μπορεί να αντιγραφεί, να αλλάξει και να πουληθεί σαν κλειστό κ.α. εξαρτώνται από την άδεια (licence) με την οποία έρχεται το εκάστοτε πρόγραμμα, και την οποία είναι υποχρεωμένος να δεχθεί όποιος σκοπεύει να το χρησιμοποιήσει με οποιονδήποτε έμμεσο ή άμεσο τρόπο. Οι κυριότερες άδειες ανοικτού λογισμικού είναι οι εξής (με αλφαβητική σειρά): Apache Licence ημιουργήθηκε από το Apache Foundation και είναι η άδεια υπό την οποία διανέμεται ο εξυπηρετητής HTTP Apache. Είναι μια πολύ αναλυτικά διατυπωμένη άδεια, που ενώ επιτρέπει την αναδιανομή και τροποποίηση του λογισμικού, απαιτεί αυτή να γίνεται υπό την ίδια άδεια, να δείχνονται αναλυτικά ποια αρχεία του πηγαίου κώδικα πείραξε ο χρήστης και απαγορεύει τη χρήση υλικού που σχετίζεται με πατέντες λογισμικού καθώς και τη χρήση ονομάτων και συμβόλων του αρχικού συγγραφέα για 10

11 11 διαφημιστικούς σκοπούς. Τέλος, απαλλάσσει το δημιουργό από κάθε ευθύνη σχετική με τη χρήση του προγράμματος. Apache Licences: Artistic Licence Την συνέταξε ο συγγραφέας της perl, Larry Wall. Η πρώτη της έκδοση ήταν τόσο περίπλοκα διατυπωμένη που πολλοί την κατηγόρησαν ότι δεν είναι άδεια ελεύθερου λογισμικού. Η γλώσσα προγραμματισμού perl αλλά και πολλά modules της ήταν συνδεδεμένα με αυτήν. Η δεύτερη έκδοση είναι πιο σαφώς διατυπωμένη, και δίνει το δικαίωμα ανάγνωσης, τροποποίσης και αναδιανομής του πηγαίου κώδικα/προγράμματος (υπό οποιαδήποτε άδεια), εφόσον διατηρείται η αναφορά στον αρχικό συγγραφέα του προγράμματος, σε περίπτωση που δεν υπάρξει τροποποίηση. Επιπλέον, απαλλάσσει το συγγραφέα από κάθε ευθύνη σχετική με τη χρήση του προγράμματος. Αρχική Artistic Licence: Artistic Licence, 2nd Edition: BSD Licence Η άδεια αυτή αφορά λογισμικό που αναπτύχθηκε αρχικά στο πανεπιστήμιο Berkeley στην Καλιφόρνια των ΗΠΑ. Είναι μια από τις πιο ελεύθερες άδειες, εφόσον επιτρέπει την ανάγνωση, την τροποποίηση και την αναδημοσίευση του προγράμματος υπό οποιαδήποτε άδεια, με ή χωρίς τον πηγαίο κώδικα, σε εμπορικά ή μη εμπορικά πακέτα. Επιπλέον, υπάρχουν τροποποιήσεις της άδειας, που αφορούν όμως μόνο το θέμα της χρήσης του ονόματος του αρχικού συγγραφέα για διαφημιστικούς σκοπούς. Ως αποτέλεσμα της ελευθερίας που δίδει η άδεια για χρήση κώδικα ελεύθερων προγραμμάτων σε προγράμματα κλειστού κώδικα, πολλά κλειστά λειτουργικά συστήματα έχουν κομμάτια βασισμένα στο BSD. Η BSD Licence: GNU General Public Licence (GPL) Γράφτηκε αρχικά από τον Richard Stallman για το GNU project. Επιτρέπει την ανάγνωση, τροποποίηση και αναδιανομή του λογισμικού, μαζί με τον πηγαίο κώδικα του, με τον όρο ότι τροποιημένες ή μη εκδόσεις του θα αναδιανείμονται υπό την ίδια άδεια. Εν ολίγοις, διασφαλίζει ότι οι χρήστες του τροποποιημένου λογισμικού θα απολαμβάνουν τις ίδιες ελευθερίες με το χρήστη του αρχικού λογισμικού. Συνεπώς απαγορεύει την χρήση (ολόκληρου ή τμήματος) του πηγαίου κώδικα του προγράμματος σε κλειστά πακέτα λογισμικού. Αυτό εξασφαλίζεται δίνοντας το copyright του προγράμματος 11

12 στον αρχικό δημιουργό, οπότε σε περίπτωση που κάποιος δε σεβαστεί την GPL μπορεί να μυνηθεί για καταπάτηση πνευματικών δικαιωμάτων. Η GNU GPL έχει κατηγορηθεί από πολλούς ως "ιός" (επειδή θα πρέπει κάθε πρόγραμμα που έχει σχέση με το αρχικό να τη φέρει) και ότι στερεί τη δημιουργία άμεσου κέρδους στον προγραμματιστή. Παρά τις κριτικές αποτελεί τη σημαντικότερη και πιο διαδεδομένη άδεια ελεύθερου λογισμικού. Σημαντικά προγράμματα που τη χρησιμοποιούν είναι ο πυρήνας του Linux, o μεταγλωττιστής gcc, ο επεξεργαστής κειμένου Emacs, ο διερμηνέας της Perl, o Mozilla Firefox, η ΜySQL, το Cygwin, το σύστημα αρχείων ReiserFS και πλέον και η βιβλιοθήκη Qt. Μια πιο ελαστική έκδοση της GPL είναι η GNU Lesser General Public Licence (LGPL). Το 2005 άρχισαν συζητήσεις για την τρίτη έκδοση της άδειας, η οποία δίνει ιδιαίτερη έμφαση σε θέματα πατεντών λογισμικού και DRM. H GNU GPLv3 εκδόθηκε στις 27 Ιουνίου GNU GPL, v3.0: GNU LGPL, v3.0: MIT Licence H άδεια αυτή επιτρέπει την τροποποίηση και την αναδιανομή του προγράμματος με οποιονδήποτε τρόπο, υπό οποιαδήποτε άδεια, για οποιονδήποτε σκοπό. Το πιο γνωστό πρόγραμμα που τη χρησιμοιποιεί είναι ο X Window System (X11) που χρησιμοιείται για το παραθυρικό περιβάλλον στις περισσότερες διανομές Linux, και γι'αυτό η άδεια αυτή ονομάζεται πολλές φορές και X Licence ή X11 Licence. MIT Licence Template: Open Software Licence Ουσιαστικά δίνει τις ίδιες ελευθερίες και τους ίδιους περιορισμούς με την GNU GPL με σημαντική διαφορά τον όρο που αφορά τις πατέντες λογισμικού. Ο όρος αυτός τερματίζει αυτόματα την άδεια και στερεί τον χρήστη από τις ελευθερίες της στην περίπτωση που ο χρήστης μηνύσει οποιοδήποτε λογισμικό που τη χρησιμοποιεί για καταπάτηση πατεντών λογισμικού. Open Software Licence: Γνωστά έργα ΕΛ/ΛΑΚ Το εύρος των πεδίων εφαρμογής των έργων ΕΛ/ΛΑΚ είναι αντίστοιχο με αυτό των προγραμμάτων κλειστού κώδικα και καλύπτουν σχεδόν όλες τις 12

13 13 ανάγκες ακόμα και των πιο απαιτητικών χρηστών (επαγγελματιών και ιδιωτών). Κάποια από τα πιο γνωστά έργα ΕΛ/ΛΑΚ είναι τα παρακάτω: Λειτουργικά Συστήματα (Operating systems) Android λειτουργικό σύστημα για συσκευές κινητής τηλεφωνίας το οποίο τρέχει τον πυρήνα του λειτουργικού Linux. Αρχικά αναπτύχθηκε από την Google και αργότερα από την Open Handset Alliance. Επιτρέπει στους κατασκευαστές λογισμικού να συνθέτουν κώδικα με την χρήση της γλώσσας προγραμματισμού Java, ελέγχοντας την συσκευή μέσω βιβλιοθηκών λογισμικού ανεπτυγμένων από την Google. Η Google δημοσίευσε το μεγαλύτερο μέρος του κώδικα του Android υπό τους όρους της Apache License. FreeBSD προηγμένο λειτουργικό σύστημα που προέρχεται από το BSD UNIX, το οποίο αναπτύχθηκε αρχικά στο Πανεπιστήμιο Berkeley της California. Αναπτύσσεται και συντηρείται από μια μεγάλη ομάδα εθελοντών που ασχολούνται με προγραμματισμό, τεκμηρίωση, προώθηση, διορθώσεις κ.α. Χρησιμοποιείται σε μεγάλο βαθμό σε εξυπηρετητές, σε εταιρίες όπως η Yahoo!, η Sony Ιαπωνίας, η NetCraft και άλλες. Πρόκειται ωστόσο για λειτουργικό γενικής χρήσης, και μπορεί να χρησιμοποιηθεί το ίδιο καλά και για οικιακή χρήση, ως desktop. Linux γενικός όρος αναφοράς σε λειτουργικά συστήματα που βασίζονται στον πυρήνα Linux. Η αρχιτεκτονική του Linux είναι βασισμένη στις αρχές του λειτουργικού Unix αλλά έχει αναπτυχθεί εκ του μηδενός και δεν περιλαμβάνει κώδικα από το Unix. Η ανάπτυξη του Linux είναι χαρακτηριστικό παράδειγμα εθελοντικής συνεργασίας από διαδικτυακές κοινότητες, ενώ όλο το έργο είναι ανοικτού κώδικα και ελεύθερα προσβάσιμο από όλους για αντιγραφή, τροποποίηση ή αναδιανομή χωρίς περιορισμό. Το Linux είναι διαθέσιμο υπό άδειες όπως η GNU General Public License. Το Linux μπορεί να εγκατασταθεί και να λειτουργήσει σε μεγάλη ποικιλία υπολογιστικών συστημάτων, από μικρές συσκευές όπως κινητά τηλέφωνα μέχρι μεγάλα υπολογιστικά συστήματα και υπερυπολιστές. Χρησιμοποιείται κατά κόρον σε διακομιστές, αφού η καταγεγραμμένη χρήση Linux σε διακομιστές για το 2008 ανέρχεται σε 13

14 60% του συνόλου της αγοράς. Οι περισσότεροι προσωπικοί υπολογιστές όμως, λειτουργούν με Mac OS X ή Microsoft Windows, καθώς το αντίστοιχο ποσοστό του Linux είναι σαφώς μικρότερο. Τα τελευταία χρόνια πάντως παρατηρείται άνοδος του Linux και σε προσωπικούς υπολογιστές, χάρη στη δημοφιλή διανομή Ubuntu αλλά και τις περισσότερες λειτουργίες που προσφέρει σε συστήματα με περιορισμένες δυνατότητες όπως τα netbook. ReactOS λειτουργικό σύστημα ανοικτού κώδικα ηλεκτρονικών υπολογιστών, το οποίο στοχεύει να είναι συμβατό με εφαρμογές και οδηγούς υλικού που προορίζονται για τα Microsoft Windows NT στις εκδόσεις 5.x και πάνω (Windows 2000 και τους διαδόχους τους). Αποτελεί συνέχεια μιας προηγούμενης προσπάθειας δημιουργίας ενός κλώνου των Windows 95. Η ανάπτυξή του ξεκίνησε το 1998 και από τότε συνεχίζεται με την προσθήκη χαρακτηριστικών που ήδη υπάρχουν στα Windows. Το ReactOS είναι κυρίως γραμμένο στη γλώσσα προγραμματισμού C, με μερικά στοιχεία του, όπως τον Περιηγητή ReactOS, γραμμένα σε C++. Λογισμικό εφαρμογών (Application software) 7-Zip πρόγραμμα αρχειοθέτησης αρχείων με υψηλό δείκτη συμπίεσης. Στα χαρακτηριστικά του συμπεριλαμβάνονται: Υποστήριξη κρυπτογράφησης 256-bit AES, χρήση πολλαπλών επεξεργαστών, πυρήνων και νημάτων, αποσυμπίεση αρχείων με κατεστραμμένα ονόματα εσωτερικών αρχείων, δημιουργία συμπιεσμένων αρχείων που αποσυμπιέζονται αυτόματα, εξερεύνηση εικονικών δίσκων κ.α. Το πρόγραμμα υποστηρίζει πλήθος τύπων αρχείων συμπίεσης: Blender πρόγραμμα σχεδίασης 3D γραφικών, διανέμεται από την άδεια GNU General Public License. Χρησιμοποιείται για modeling, rigging, προσομοιώσεις νερού, animation, rendering, μη γραμμική επεξεργασία και για δημιουργία αλληλεπιδραστικών 3D εφαρμογών όπως τα βιντεοπαιχνίδια. Είναι διαθέσιμο για όλα τα κύρια λειτουργικά συστήματα. ιαθέτει προχωρημένα εργαλεία για animation, διάφορα εργαλεία για σχεδίαση χαρακτήρων και ρούχων για τον χαρακτήρα, εργαλεία για δημιουργία υλικού καθώς επίσης και τη γλώσσα προγραμματισμού Python για εσωτερικό scripting. 14

15 15 Eclipse πολυ-γλωσσικό περιβάλλον ανάπτυξης λογισμικού που αποτελείται από ένα ολοκληρωμένο περιβάλλον ανάπτυξης (IDE) και ένα επεκτάσιμο plug-in σύστημα. Είναι γραμμένο κυρίως σε Java. Μπορεί να χρησιμοποιηθεί για την ανάπτυξη εφαρμογών σε Java και, μέσω των διαφόρων plug-ins, άλλες γλώσσες προγραμματισμού όπως Ada, C, C + +, COBOL, Haskell, Perl, PHP, Python, Ε, Ruby, Clojure, Groovy, Android κ.α. Μπορεί επίσης να χρησιμοποιηθεί για την ανάπτυξη πακέτων λογισμικού για το Mathematica. Κυκλοφόρησε κάτω από τους όρους της Eclipse Public License. Ήταν ένα από τα πρώτα IDEs που έτρεξε κάτω από το GNU Classpath. Mozilla Firefox web browser. Προήλθε από το Application Suite της Mozilla και η ανάπτυξή του εξακολουθεί να γίνεται κατά μεγάλο ποσοστό από την Mozilla Corporation, ενώ συνεισφέρουν και μεμονωμένοι χρήστες σε μικρότερο βαθμό. Για την απεικόνιση των ιστοσελίδων, ο Firefox χρησιμοποιεί την μηχανή διάταξης Gecko, η οποία εφαρμόζει τα περισσότερα από τα σημερινά πρότυπα του Παγκόσμιου Ιστού. Ο Firefox λειτουργεί σε αρκετές εκδόσεις των Microsoft Windows, στο Mac OS X, στο GNU/Linux, και σε πολλά λειτουργικά συστήματα που προήλθαν από το Unix OpenOffice.org and LibreOffice fork ολοκληρωμένα πακέτα εφαρμογών γραφείου ανοιχτού κώδικα. Περιλαμβάνουν επεξεργαστή κειμένου (Writer), λογιστικό φύλλο (Calc), δημιουργό παρουσιάσεων (Ιmpress), πρόγραμμα σχεδίασης (Draw), διαχείριση βάσεων δεδομένων (Base) και μαθηματικών τύπων (Math). Λειτουργεί σε όλες τις πλατφόρμες (Microsoft Windows, Solaris, Linux, Μac OS). Σχεδιάστηκε με σκοπό να αποτελέσει μια συμβατή και ελεύθερη εναλλακτική του Microsoft Office. Υποστηρίζει το ISO/IEC πρότυπο OpenDocument (ODF) για την ανταλλαγή εγγράφων. 2.2 Κοινότητες και code repositories (αποθετήρια κώδικα) έργων ΕΛ/ΛΑΚ 15

16 Στις κοινότητες και τα site αυτά συμμετέχουν ερευνητικές ομάδες & άτομα που αναπτύσσουν ή συμμετέχουν στην ανάπτυξη πηγαίου κώδικα. Εντός των κοινοτήτων και των hosting sites τα μέλη μιας ομάδας μπορούν να συνεργάζονται εύκολα και απλά πάνω στην ανάπτυξη κώδικα καθώς οι αλλαγές που αποθηκεύει σε κάποιο χρονικό σημείο το ένα μέλος εύκολα και άμεσα ενημερώνονται στην έκδοση που επεξεργάζεται ένα δεύτερο μέλος της ομάδας κ.ο.κ. Στις κοινότητες και τα site αυτά αποθηκεύονται μεγάλες ποσότητες κώδικα, είτε δημόσια είτε ιδιωτικά. Χρησιμοποιούνται κατά βάση από developers open source έργων για να χειριστούν διάφορες εκδόσεις, να προσθέσουν κώδικα κλπ. Συχνά, αυτές οι ιστοσελίδες υποστηρίζουν έλεγχο έκδοσης, εντοπισμό σφαλμάτων, διαχείριση των εκδόσεων, λίστες και wiki με βάση τεκμηρίωσης. Μερικές από τις πιο σημαντικές κοινότητες και hosting sites έργων ΕΛ/ΛΑΚ είναι οι εξής: Apache Software Foundation (ASF) Παλαιότερα γνωστή ως Ομάδα Apache, το ASF ιδρύθηκε το Η ιστορία του ASF συνδέεται με τον εξυπηρετητή HTTP Apache, που άρχισε να αναπτύσσεται το Το ASF παρέχει οργανωτική, νομική και οικονομική υποστήριξη για ένα ευρύ φάσμα των έργων ελεύθερου λογισμικού. Το Ίδρυμα παρέχει ένα καθιερωμένο πλαίσιο για την πνευματική ιδιοκτησία. Μέσα από μια συλλογική και αξιοκρατική διαδικασία ανάπτυξης, τα έργα της Apache είναι ελεύθερα διαθέσιμα προϊόντα λογισμικού που προσελκύουν μεγάλες κοινότητες χρηστών. Η άδεια Apache καθιστά εύκολο σε όλους τους χρήστες, επιχειρηματίες και ιδιώτες, να αναπτύξουν Apache προϊόντα. Το λογισμικό που παράγουν διανέμεται υπό τους όρους της άδειας χρήσης Apache και ως εκ τούτου είναι ελεύθερο και ανοικτού κώδικα λογισμικό (ΕΛ/ΛΑΚ). SourceForge O μεγαλύτερος δικτυακός τόπος φιλοξενίας και διανομής λογισμικού ανοικτού κώδικα. Λειτουργεί ως κεντρικό σημείο για την ανάπτυξη, τον έλεγχο και τη διαχείριση ελεύθερου και ανοιχτού κώδικα λογισμικού. Ήταν το πρώτο που παρείχε την υπηρεσία αυτή δωρεάν σε έργα ανοικτού κώδικα. Το SourceForge φιλοξενεί περισσότερα από έργα (αν και δεν είναι όλα ενεργά) και έχει περισσότερους από 2 εκατομμύρια εγγεγραμμένους χρήστες,. 16

17 17 GitHub To GitHub είναι μια web-based hosting service για έργα ανάπτυξης λογισμικού που χρησιμοποιούν το Git revision control system. To GitHub προσφέρει και πληρωμένα σχέδια για ιδιωτική αποθήκευση, καθώς και δωρεάν λογαριασμούς για έργα ανοικτού κώδικα. Τον Μάιο του 2011, το GitHub ήταν το πιο δημοφιλές open source code repository site. Η ιστοσελίδα παρέχει λειτουργίες κοινωνικής δικτύωσης, όπως feeds, followers και network graph για να δειχτεί πως οι προγραμματιστές εργάζονται στις δικές τους εκδόσεις ενός αποθηκευτικού χώρου. tigris.org To tigris.org είναι μια κοινότητα ανάπτυξης λογισμικού ανοιχτού κώδικα. Φιλοξενεί υπηρεσίες ανάπτυξης λογισμικού όπως web hosting, mailing lists, issue tracking, wiki, download and revision control. Φιλοξενείται από το CollabNet και τρέχει την CollabNet Enterprise Edition. To tigris.org ανταγωνίζεται με το πιο γνωστό SourceForge, αν και επικεντρώνεται κυρίως σε έργα για την από κοινού ανάπτυξη λογισμικού. Launchpad Το Launchpad είναι ενας διαδικτυακός τόπος που επιτρέπει στους χρήστες να αναπτύξουν και να διατηρήσουν το λογισμικό, κυρίως το ελεύθερο λογισμικό. Το Launchpad αναπτύσσεται και συντηρείται από την Canonical Ltd. Τον Ιούλιο του 2011, το Launchpad φιλοξενούσε περισσότερα από έργα. Assembla Το Assembla είναι μια εταιρεία που παρέχει cloud-based εργαλεία για την οργάνωση και τη διαχείριση ανοικτού κώδικα και την εμπορική ανάπτυξη 17

18 λογισμικού. Το Assembla χρησιμοποιείται σήμερα από περισσότερους από χρήστες σε 100 χώρες Η εταιρία Ελεύθερου Λογισμικού / Λογισμικού Ανοικτού Κώδικα (ΕΕΛ/ΛΑΚ) H μη κερδοσκοπική Εταιρεία Ελεύθερου Λογισμικού / Λογισμικού Ανοικτού Κώδικα (ΕΕΛ/ΛΑΚ) ιδρύθηκε το 2008 από 25 Πανεπιστήμια, Ερευνητικά Κέντρα, Τεχνολογικά Ιδρύματα και κοινωφελείς φορείς. Η ΕΕΛ/ΛΑΚ έχει ως κύριο στόχο να συμβάλλει στην προώθηση και ανάπτυξη του Ελεύθερου Λογισμικού, του Ανοιχτού Περιεχομένου και των Τεχνολογιών Ανοιχτής Αρχιτεκτονικής στο χώρο της εκπαίδευσης, του δημόσιου τομέα και των επιχειρήσεων στην Ελλάδα, ενώ παράλληλα φιλοδοξεί να αποτελέσει κέντρο γνώσης και πλατφόρμα διαλόγου για τις ανοιχτές τεχνολογίες. Ανάμεσα στους φορείς που συμμετέχουν στην ΕΕΛ/ΛΑΚ είναι τα πιο πολλά ελληνικά Πανεπιστήμια, Τεχνολογικά Ιδρύματα και Ερευνητικά Κέντρα, ενώ για την υλοποίηση των δράσεων της η ΕΕΛ/ΛΑΚ βασίζεται στην συνεργασία και ενεργή συμμετοχή των μελών της και της ελληνικής κοινότητας χρηστών και δημιουργών Ελεύθερου Λογισμικού, Ανοιχτού Περιεχομένου και Τεχνολογιών Ανοιχτής Αρχιτεκτονικής. Η ΕΕΛ/ΛΑΚ συνεργάζεται με τα Creative Commons και είναι ιδρυτικό μέλος του COMMUNIA Βασικοί στόχοι της ΕΕΛ/ΛΑΚ: - Η συμβολή της στην ευαισθητοποίηση του κοινού σχετικά με τα οφέλη που προκύπτουν από την χρήση και ανάπτυξη του Ελεύθερου Λογισμικού, του Ανοιχτού Περιεχομένου και των Τεχνολογιών Ανοιχτής Αρχιτεκτονικής. - Η έγκυρη και έγκαιρη πληροφόρηση σε θέματα που αφορούν τις ανοιχτές τεχνολογίες στην Ελλάδα και το διεθνή χώρο. - Η συνεργασία με την ισότιμη συμμετοχή όλων των άλλων φορέων που έχουν άμεσο ή έμμεσο ρόλο στη διάδοση και ανάπτυξη του Ελεύθερου Λογισμικού, του Ανοιχτού Περιεχομένου και των Τεχνολογιών Ανοιχτής Αρχιτεκτονικής στην Ελλάδα, όπως μεταξύ άλλων της κοινότητας 18

19 19 προγραμματιστών ΕΛ/ΛΑΚ στην Ελλάδα καθώς και όσων ενδιαφέρονται να αναπτύξουν επιχειρηματική δραστηριότητα που σχετίζεται με το ΕΛ/ΛΑΚ. - Η δημιουργία κέντρων προώθησης για τις ανοιχτές τεχνολογίες στην Ελλάδα, με στόχους: την διοργάνωση εκπαιδευτικών σεμιναρίων, την καταγραφή αναγκών για την εισαγωγή και χρήση του ΕΛ/ΛΑΚ σε διαφορετικούς τομείς καθώς και την καταγραφή των φορέων και των οργανώσεων που ασχολούνται με το ΕΛ/ΛΑΚ στην Ελλάδα. - Ο συντονισμός των ομάδων εθελοντών προγραμματιστών ΕΛ/ΛΑΚ στην Ελλάδα, ώστε να αποτελέσουν τον βασικό κορμό για την ανάπτυξη και υλοποίηση λογισμικού και εφαρμογών. - Η υποστήριξη της ανάπτυξης και προώθησης επιχειρηματικών μοντέλων που βασίζονται στο ΕΛ/ΛΑΚ, καθώς και την ενημέρωση επιχειρήσεων για την υιοθέτηση τους ή για τη μετάβαση τους σε αυτά. - Η προσφορά τεχνικής υποστήριξης εφαρμογών ΕΛ/ΛΑΚ και συγκεκριμένα η δημιουργία υπηρεσίας υποστήριξης (help-desk) για χρήστες και ομάδες ΕΛ/ΛΑΚ, η μέριμνα για εξελληνισμό λογισμικού, η ανάπτυξη γλωσσάριου, καθώς και η συμβολή στην ανάπτυξη εφαρμογών για τις οποίες υπάρχει ζήτηση στην Ελλάδα. - Η συμβολή στο σχεδιασμό, την ανάπτυξη και την προώθηση δράσεων Ανοιχτού Περιεχομένου και Τεχνολογιών Ανοιχτής Αρχιτεκτονικής. [1] 19

20 3. Η Γλώσσα προγραμματισμού Java 3.1 Η ιστορία της Java Η Java είναι μια αντικειμενοστραφής γλώσσα προγραμματισμού που σχεδιάστηκε από την εταιρεία πληροφορικής Sun Microsystems. Στις αρχές της δεκαετίας του 1990, η Sun αναζητούσε το κατάλληλο εργαλείο το οποίο θα ξεπερνούσε τα υπάρχοντα εργαλεία (γλώσσες όπως η C++ και η C) και θα αποτελούσε την πλατφόρμα ανάπτυξης λογισμικού σε μικρο-συσκευές (έξυπνες οικιακές συσκευές έως πολύπλοκα συστήματα παραγωγής γραφικών).. Μετά από διάφορους πειραματισμούς προέκυψε το συμπέρασμα ότι οι υπάρχουσες γλώσσες δεν μπορούσαν να καλύψουν αυτές τις ανάγκες. Ο δημιουργός της Java, James Gosling, έκανε πειραματισμούς πάνω στη C++ και είχε παρουσιάσει κατά καιρούς κάποιες πειραματικές γλώσσες ως πρότυπα για το νέο εργαλείο που αναζητούσαν στην Sun. Τελικά αυτός και οι συνεργάτες του κατέληξαν με μια πρόταση για το επιτελείο της SUN, η οποία ήταν η γλώσσα Oak. Το όνομά της το πήρε από το ομώνυμο δένδρο (βελανιδιά) το οποίο ο Gosling έβλεπε κάθε μέρα από το γραφείο του. H Oak ήταν μία γλώσσα που διατηρούσε μεγάλη συγγένεια με την C++. Παρόλα αυτά είχε πολύ πιο έντονο αντικειμενοστραφή χαρακτήρα σε σχέση με την C++ και χαρακτηριζόταν για την απλότητα της. Οι υπεύθυνοι ανάπτυξης της νέας γλώσσας ανακάλυψαν ότι το όνομα Oak ήταν ήδη κατοχυρωμένο οπότε κατά την διάρκεια μιας εκ των πολλών συναντήσεων σε κάποιο τοπικό καφέ αποφάσισαν να μετονομάσουν το νέο τους δημιούργημα σε Java. Στην αγγλική γλώσσα, Java είναι το φυτό που βγάζει τον καφέ. Η επίσημη εμφάνιση της Java στη βιομηχανία της πληροφορικής έγινε το Μάρτιο του O πρώτος μεταγλωττιστής (compiler) της ήταν γραμμένος στη γλώσσα C από τον James Gosling. Ο A.Van Hoff ξαναγράφει τον μεταγλωττιστή της γλώσσας σε Java, ενώ το εκέμβριο του 1995 πρώτες οι IBM, Borland, Mitsubishi Electronics, Sybase και Symantec ανακοινώνουν σχέδια να χρησιμοποιήσουν τη Java για την δημιουργία λογισμικού. Από εκεί και πέρα η Java ακολουθεί μία ανοδική πορεία και είναι πλέον μία από τις πιο δημοφιλείς γλώσσες στον χώρο της πληροφορικής. Στις 13 Νοεμβρίου του 20

21 η Java έγινε πλέον μια γλώσσα ανοιχτού κώδικα (GPL) όσον αφορά το μεταγλωττιστή (javac) και το πακέτο ανάπτυξης (JDK, Java Development Kit). Στις 27 Απριλίου 2010 η εταιρία λογισμικού Oracle Corporation ανακοίνωσε ότι ήρθε σε συμφωνία για την εξαγορά της Sun Microsystems και των τεχνολογιών (πνευματικά δικαιώματα/ πατέντες) που η δεύτερη είχε στην κατοχή της ή δημιουργήσε. Η συγκεκριμένη συμφωνία θεωρείται σημαντική για το μέλλον της Java και του γενικότερου οικοσυστήματος τεχνολογιών γύρω απο αυτή μιας και ο έμμεσος έλεγχος της τεχνολογίας και η εξέλιξη της περνάει σε άλλα χέρια. 3.2 Τα βασικά χαρακτηριστικά της Java Ένα από τα βασικά πλεονεκτήματα της Java έναντι των περισσότερων άλλων γλωσσών είναι η ανεξαρτησία μεταξύ λειτουργικού συστήματος και πλατφόρμας. Τα προγράμματα που είναι γραμμένα σε Java τρέχουνε ακριβώς το ίδιο σε Windows, Linux, Unix και Macintosh χωρίς να χρειαστεί να ξαναγίνει μεταγλώττιση (compiling) ή να αλλάξει ο πηγαίος κώδικας. Για να επιτευχθεί όμως αυτό χρειαζόταν κάποιος τρόπος έτσι ώστε τα προγράμματα γραμμένα σε Java να μπορούν να είναι «κατανοητά» από κάθε υπολογιστή ανεξάρτητα του είδους του επεξεργαστή αλλά και του λειτουργικού συστήματος. Ο λόγος είναι ότι κάθε κεντρική μονάδα επεξεργασίας κατανοεί διαφορετικό κώδικα μηχανής. Η λύση δόθηκε με την ανάπτυξη της Εικονικής Μηχανής (Virtual Machine ή VM). Η εικονική μηχανή της Java Αφού γραφεί κάποιο πρόγραμμα σε Java, στη συνέχεια μεταγλωτίζετται μέσω του μεταγλωττιστή javac, ο οποίος παράγει έναν αριθμό από αρχεία.class (κώδικας byte ή bytecode). Ο κώδικας byte είναι η μορφή που παίρνει ο πηγαίος κώδικας της Java όταν μεταγλωττιστεί. Όταν πρόκειται να εκτελεστεί η εφαρμογή σε ένα μηχάνημα, το Java Virtual Machine (JVM) που πρέπει να είναι εγκατεστημένο σε αυτό θα αναλάβει να διαβάσει τα αρχεία.class. Στη συνέχεια τα μεταφράζει σε γλώσσα μηχανής που να υποστηρίζεται από το λειτουργικό σύστημα και τον επεξεργαστή, έτσι ώστε να εκτελεστεί. Πιο σύγχρονες εφαρμογές της εικονικής Μηχανής μπορούν και μεταγλωττίζουν εκ των προτέρων τμήματα bytecode απευθείας σε κώδικα 21

22 μηχανής με αποτέλεσμα να βελτιώνεται η ταχύτητα. Χωρίς αυτό δε θα ήταν δυνατή η εκτέλεση λογισμικού γραμμένου σε Java. Πρέπει να σημειωθεί ότι η JVM είναι λογισμικό που εξαρτάται από την πλατφόρμα, δηλαδή για κάθε είδος λειτουργικού συστήματος και αρχιτεκτονικής επεξεργαστή υπάρχει διαφορετική έκδοση του. Έτσι υπάρχουν διαφορετικές JVM για Windows, Linux, Unix, Macintosh, κινητά τηλέφωνα κλπ. Οτιδήποτε θέλει να κάνει ο προγραμματιστής (ή ο χρήστης) γίνεται μέσω της εικονικής μηχανής. Αυτό βοηθάει στο να υπάρχει μεγαλύτερη ασφάλεια στο σύστημα γιατί η εικονική μηχανή είναι υπεύθυνη για την επικοινωνία χρήστη - υπολογιστή. Ο προγραμματιστής δεν μπορεί να γράψει κώδικα ο οποίος θα έχει καταστροφικά αποτελέσματα για τον υπολογιστή γιατί η εικονική μηχανή θα τον ανιχνεύσει και δε θα επιτρέψει να εκτελεστεί. Το ίδιο ισχύει και για τη περίπτωση που ο χρήστης κατεβάσει «κακό» κώδικα από το δίκτυο και προσπαθήσει να τον εκτελέσει. Αυτό είναι ιδιαίτερα χρήσιμο για μεγάλα κατανεμημένα συστήματα όπου πολλοί χρήστες χρησιμοποιούν το ίδιο πρόγραμμα συγχρόνως. Ο συλλέκτης απορριμμάτων (Garbage Collector) Ακόμα μία ιδέα που βρίσκεται πίσω από τη Java είναι η ύπαρξη του συλλέκτη απορριμμάτων (Garbage Collector). Συλλογή απορριμμάτων είναι μία κοινή ονομασία που χρησιμοποιείται στον τομέα της πληροφορικής για να δηλώσει την ελευθέρωση τμημάτων μνήμης από δεδομένα που δε χρειάζονται και δε χρησιμοποιούνται άλλο. Αυτή η απελευθέρωση μνήμης στη Java είναι αυτόματη και γίνεται μέσω του συλλέκτη απορριμμάτων. Υπεύθυνη για αυτό είναι και πάλι η εικονική μηχανή η οποία μόλις «καταλάβει» ότι ο σωρός (heap) της μνήμης (στη Java η συντριπτική πλειοψηφία των αντικειμένων αποθηκεύονται στο σωρό σε αντίθεση με τη C++ όπου αποθηκεύονται κυρίως στη στοίβα) κοντεύει να γεμίσει ενεργοποιεί το συλλέκτη απορριμμάτων. Έτσι ο προγραμματιστής δε χρειάζεται να ανησυχεί για το πότε και αν θα ελευθερώσει ένα συγκεκριμένο τμήμα της μνήμης, ούτε και για σφάλματα δεικτών. Σύνταξη Η σύνταξη της Java προέρχεται κυρίως από τη C + +. Σε αντίθεση με C + +, η οποία συνδυάζει τη σύνταξη για δομημένο, και αντικειμενοστρεφή προγραμματισμό, η Java δημιουργήθηκε σχεδόν αποκλειστικά ως μια αντικειμενοστραφής γλώσσα προγραμματισμού. Όλος ο κώδικας είναι 22

23 23 γραμμένος μέσα σε κάποια κλάση, και τα πάντα είναι αντικείμενα, με εξαίρεση τις πρωτόγενείς τύπους δεδομένων (ακέραιοι, αριθμοί κινητής υποδιαστολής, boolean τιμές, χαρακτήρες). Σε αντίθεση με τη C + +, Java δεν υποστηρίζει χειριστή υπερφόρτωσης (operator overloading) ή πολλαπλή κληρονομικότητα για τις κλάσεις. Αυτό απλοποιεί τη γλώσσα και ενισχύει την πρόληψη πιθανών σφαλμάτων. Η Java χρησιμοποιεί παρόμοιες μεθόδους σχολιασμού με την C + +. Υπάρχουν τρία διαφορετικά στυλ σχολιασμού: ένα σχόλιο μίας γραμμής που οριοθετείται με δύο καθέτους ( / / ), σχόλια πολλών γραμμών που ανοίγουν με / * και κλείνουν με * /, και το Javadoc που ανοίγει με / ** και κλείνει με * /. Το Javadoc είναι ένα ολοκληρωμένο σύστημα τεκμηρίωσης και επιτρέπει στο χρήστη να τρέξει το εκτελέσιμο Javadoc και να δημιουργήσει πλήρη σχολιασμό για το πρόγραμμα. Eπιδόσεις Παρόλο που η εικονική μηχανή προσφέρει όλα αυτά (και όχι μόνο) τα πλεονεκτήματα, η Java αρχικά ήταν πιο αργή σε σχέση με άλλες προγραμματιστικές γλώσσες υψηλού επιπέδου (high-level) όπως η C και η C++. Εμπειρικές μετρήσεις στο παρελθόν είχαν δείξει ότι η C++ μπορούσε να είναι αρκετές φορές γρηγορότερη από την Java. Ωστόσο γίνονται προσπάθειες για τη βελτιστοποίηση της εικονικής μηχανής, ενώ υπάρχουν και άλλες υλοποιήσεις της εικονικής μηχανής από διάφορες εταιρίες (όπως της IBM), οι οποίες μπορεί σε κάποια σημεία να προσφέρουν καλύτερα και σε κάποια άλλα χειρότερα αποτελέσματα. Επιπλέον με την καθιέρωση των μεταγλωττιστών JIT (Just In Time), οι οποίοι μετατρέπουν τον κώδικα byte απευθείας σε γλώσσα μηχανής, η διαφορά ταχύτητας από τη C++ έχει μικρύνει κατά πολύ. Οι τελευταίες εκδόσεις του javac με τη χρήση της τεχνολογίας Hot Spot έχουν καταφέρει αξιόλογες επιδόσεις που πλησιάζουν ή και ξεπερνούν σε μερικές περιπτώσεις τον εγγενή κώδικα Ειδικές Κλάσεις (Special classes) - Applet. Τα Java applets είναι προγράμματα τα οποία είναι ενσωματωμένα σε άλλες εφαρμογές, συνήθως σε μια ιστοσελίδα. - Servlet. Η τεχνολογία Java servlet παρέχει στους προγραμματιστές Web έναν απλό μηχανισμό για την επέκταση της λειτουργικότητας ενός Web 23

24 server και για την πρόσβαση σε υπάρχοντα επιχειρηματικά συστήματα. Ένα servlet μπορεί να θεωρηθεί ως ένα applet που τρέχει από την πλευρά του διακομιστή, χωρίς πρόσωπο. - Swing application. Eίναι μια γραφική user interface βιβλιοθήκη για την πλατφόρμα Java SE. - Generics. Το 2004, τα Generics προστέθηκαν στη γλώσσα Java, ως μέρος της πλατφόρμας J2SE 5.0. Πριν από την εισαγωγή των generics, κάθε δήλωση μεταβλητών έπρεπε να είναι ενός συγκεκριμένου τύπου. Τα Generics επιτρέπουν compile-time type checking χωρίς να χρειάζεται να δημιουργήσουν ένα μεγάλο αριθμό από container classes, που η καθεμία περιέχει σχεδόν πανομοιότυπο κώδικα. [2] 24

25 25 4. Επαναχρησιμοποίηση κώδικα (Software reuse) 4.1 Τι είναι το Software reuse Επαναχρησιμοποίηση λογισμικού είναι η διαδικασία δημιουργίας συστημάτων λογισμικού από το υπάρχον λογισμικό αντί για την κατασκευή συστημάτων λογισμικού από το μηδέν. Είναι μια κοινή τεχνική που στοχεύει στην εξοικονόμηση χρόνου και ενέργειας από την μείωση των περιττών εργασιών. Αυτή η απλή αλλά ουσιαστική διαδικασία έχει εφαρμοσθεί από τις πρώτες μέρες του προγραμματισμού, το H επαναχρησιμοποίηση λογισμικού, ωστόσο, απέτυχε στο παρελθόν να γίνει καθιερωμένη πρακτική τεχνολογίας λογισμικού. Τα τελευταία χρόνια πολλοί ερευνητές έχουν εργαστεί για να κάνουν την επαναχρησιμοποίηση κώδικα γρηγορότερη, ευκολότερη και πιο συστηματική, ώστε να αποτελεί αναπόσπαστο μέρος της διαδικασίας του προγραμματισμού. Αυτό μαζί με την αλματώδη ανάπτυξη του ΕΛ/ΛΑΚ οδήγησε την επαναχρησιμοποίηση έτοιμων τμημάτων λογισμικού να κερδίζει ολοένα και περισσότερο έδαφος. Αυτό συμβαίνει κυρίως λόγω του χαμηλού κόστους παραγωγής και συντήρησης και της υψηλής ποιότητας και αξιοπιστίας, αφού τα επαναχρησιμοποιούμενα τμήματα είναι κατά βάση δοκιμασμένα, ελεγμένα και περιέχουν λιγότερα λάθη ή ανωμαλίες από τα νέα τμήματα λογισμικού Επίπεδα software reuse Application system reuse Έχει να κάνει με την επαναχρησιμοποίηση ολόκληρης της εφαρμογής. Βασικό της πρόβλημα είναι ότι είναι λειτουργικά ανεξάρτητη από την πλατφόρμα Sub-system reuse Έχει να κάνει με την επαναχρησιμοποίηση μεγάλου μέρους μιας εφαρμογής (π.χ. query matching). 25

26 Module ή object reuse Αφορά την επαναχρησιμοποίηση Τμημάτων του συστήματος που περιέχουν συλλογή συναρτήσεων. Function reuse Αφορά την επαναχρησιμοποίηση τμημάτων λογισμικού που υλοποιούν μια και μόνο συνάρτηση (π.χ. μαθηματική συνάρτηση) Τύποι software reuse Όσον αφορά τα κίνητρα επαναχρησιμοποίησης μπορεί να είναι: Ευκαιριακή Κατά την έναρξη δημιουργίας ενός έργου, η ομάδα των developers συνειδητοποιεί ότι υπάρχουν στοιχεία που μπορούν να επαναχρησιμοποιηθούν. Προγραμματισμένη Η ομάδα των developers σχεδιάζει συστατικά λογισμικού (software components) έτσι ώστε να μπορούν να επαναχρησιμοποιηθούν σε μελλοντικά έργα. Εσωτερική επαναχρησιμοποίηση Η ομάδα των developers επαναχρησιμοποιεί τα δικά της συστατικά λογισμικού (software components). Αυτό μπορεί να είναι μια επιχειρηματική απόφαση, δεδομένου ότι η ομάδα μπορεί να θελήσει να ελέγξει ένα συστατικό λογισμικού (software component) ζωτικής σημασίας για το έργο. Εξωτερική επαναχρησιμοποίηση Η ομάδα των developers μπορεί να επιλέξει συστατικά λογισμικού που έχουν αναπτυχθεί από άλλους developers και τα οποία υπόκεινται συνήθως σε κάποια άδεια ελεύθερου λογισμικού. Αυτό συνήθως κοστίζει στην ομάδα 1 έως 20 τοις εκατό από ό, τι θα τους κόστιζε να το αναπτύξουν εσωτερικά. Η ομάδα των developers πρέπει να εξετάσει επίσης το χρόνο που χρειάζεται για να βρουν το κατάλληλο συστατικό λογισμικού (software component), να 26

27 27 το κατανοήσουν και να ενσωματώσουν το συστατικό λογισμικού (software component) στο δικό τους έργο. Όσον αφορά τη δομή της επαναχρησιμοποίησης, ο κώδικας μπορεί να είναι: Referenced Ο κώδικας περιέχει μια αναφορά στον επαναχρησιμοποιημένο κώδικα, και ως εκ τούτου έχουν διακριτούς κύκλους ζωής και μπορεί να έχει διαφορετικές εκδόσεις. Forked Ο κώδικας περιέχει ένα τοπικό (local) ή ιδιωτικό αντίγραφο του επαναχρησιμοποιημένου κώδικα, και ως εκ τούτου μοιράζονται ένα ενιαίο κύκλο ζωής και μία μοναδική έκδοση. 4.2 Πλεονεκτήματα και μειονεκτήματα του software reuse Πλεονεκτήματα: Αύξηση αξιοπιστίας συστήματος. Τα επαναχρησιμοποιούμενα τμήματα είναι πιο αξιόπιστα από τα νέα: έχουν ελεγχθεί στην πράξη σε άλλα συστήματα, κάτω από ρεαλιστικές συνθήκες χρήσης. Το συνολικό ρίσκο της διαδικασίας μειώνεται. εν υπάρχει αβεβαιότητα για το κόστος του επαναχρησιμοποιούμενου τμήματος, έτσι μειώνεται και η αβεβαιότητα της συνολικής εκτίμησης κόστους. Αξιοποίηση ειδικών σε κάποιο πεδίο της εφαρμογής. Ο ειδικός παράγει τμήματα μόνο στο πεδίο εξειδίκευσής του (π.χ. GUI) ενώ δεν απαιτείται παράλληλα συμμετοχή του σε όλη την εφαρμογή. Εμφωλιασμός οργανωτικών προτύπων σε reusable components. ημιουργία ενός συνόλου από components. Το σύνολο αποτελεί τη βάση για υλοποίηση user interfaces σε διάφορες εφαρμογές. Ο χρόνος παραγωγής λογισμικού μειώνεται. Παραγωγή και επαλήθευση components ήδη έχει γίνει, έτσι ένα προϊόν μπορεί γρηγορότερα να βγει στην αγορά. 27

28 Μειονεκτήματα: υσκολία ποσοτικοποίησης της μείωσης κόστους, αν τελικά υπάρχει. Μερικές φορές το κόστος του reuse (ανεύρεση, τροποποίηση, συνένωση) μπορεί να είναι μεγαλύτερο από το κόστος υλοποίησης των τμημάτων από την αρχή Οι Τεχνολόγοι Λογισμικού έχουν μάθει να υλοποιούν τμήματα λογισμικού από την αρχή. Αυτό τους κάνει τις περισσότερες φορές να μην εμπιστεύονται την ποιότητα τμημάτων κώδικα αναπτυγμένων από άλλους. Η επαναχρησιμοποίηση πρέπει να στηρίζεται σε τεχνικές κατηγοριοποίησης, και ανάκτησης τμημάτων από βιβλιοθήκες. υστυχώς αυτές οι τεχνικές αυτές δεν είναι ακόμη στο θεμιτό επίπεδο. 4.3 Παραδείγματα software reuse Βιβλιοθήκες λογισμικού (Software libraries) Ένα πολύ συνηθισμένο παράδειγμα της επαναχρησιμοποίησης κώδικα είναι χρησιμοποιώντας κάποια βιβλιοθήκη λογισμικού. Πολλές δραστηριότητες, όπως η μετατροπή πληροφοριών μεταξύ των διαφόρων γνωστών τύπων, η πρόσβαση σε εξωτερικά μέσα αποθήκευσης ή ο χειρισμός πληροφοριών (αριθμοί, λέξεις, ονόματα, τοποθεσίες, ημερομηνίες, κλπ.) είναι κοινές για πολλά διαφορετικά προγράμματα. Οι συγγραφείς των νέων προγραμμάτων μπορούν να χρησιμοποιήσουν τον κώδικα από μια βιβλιοθήκη λογισμικού για την εκτέλεση αυτών των ενεργειών, αντί να κληθούν να ξανά-ανακαλύψουν τον τροχό, γράφοντας από την αρχή νέο κώδικα. Πρότυπα σχεδίασης (Design patterns) Ένα πρότυπο σχεδίασης είναι μια γενική λύση σε ένα επαναλαμβανόμενο πρόβλημα. Τα πρότυπα σχεδίασης μπορούν να τροποποιηθούν ώστε να ταιριάζουν ακριβώς στη συγκεκριμένη ανάγκη. Ωστόσο, αφηρημένες κλάσεις (abstract classes) και διεπαφές (interfaces) μπορούν να επαναχρησιμοποιηθούν για την υλοποίηση ορισμένων προτύπων. 28

29 29 Frameworks Οι προγραμματιστές γενικά επαναχρησιμοποιούν μεγάλα κομμάτια του λογισμικού μέσω εφαρμογών άλλων προγραμματιστών και Frameworks. Αν και τα Frameworks είναι συνήθως σε συγκεκριμένους τομείς και ισχύουν μόνο σε οικογένειες εφαρμογών. Συστηματική επαναχρησιμοποίηση λογισμικού Συστηματική επαναχρησιμοποίηση λογισμικού εξακολουθεί να είναι η πιο πολλά υποσχόμενη στρατηγική για την αύξηση της παραγωγικότητας και βελτίωση της ποιότητας στη βιομηχανία λογισμικού. Αν και είναι απλή στη σύλληψη, η επιτυχής εφαρμογή της επαναχρησιμοποίησης του λογισμικού είναι δύσκολη στην πράξη. Ένας λόγος που συμβαίνει αυτό είναι η εξάρτηση της επαναχρησιμοποίησης του λογισμικού από το πλαίσιο στο οποίο υλοποιείται. Σ αυτό το κομμάτι ανήκει και η Πλατφόρμα OPEN-SME που θα αναλυθεί εκτενώς στη συνέχεια του κειμένου. [3] 29

30 5. Το project OPEN-SME 5.1 Τι είναι το OPEN-SME Το OPEN-SME (Open-Source Software Reuse Service for Small-Medium Enterprises) είναι μια πλατφόρμα που έχει στόχο την διάδοση πρακτικών επαναχρησιμοποίησης κώδικα ελεύθερου λογισμικού και λογισμικού ανοικτού κώδικα και την ενσωμάτωση στην παραγωγική διαδικασία Μικρομεσαίων Επιχειρήσεων (ΜμΕ) ανάπτυξης λογισμικού. Αντικείμενο του έργου αποτελεί η έρευνα και ανάπτυξη μεθοδολογιών, εργαλείων και επιχειρηματικών μοντέλων, τα οποία θα διευκολύνουν τις μικρομεσαίες επιχειρήσεις να υιοθετούν ελεύθερο ή και ανοιχτό λογισμικό (ΕΛ/ΛΑΚ) στις διαδικασίες παραγωγής τους. Το έργο δίνει έμφαση σε καλές πρακτικές υιοθέτησης ΕΛ/ΛΑΚ, μέσω επαναχρησιμοποίησης λογισμικού ΕΛ/ΛΑΚ και ειδικότερα μέσω της κοινής χρήσης λειτουργικών μονάδων λογισμικού μεταξύ διαφορετικών οργανισμών (ΜμΕ), διαφορετικών ομάδων ανάπτυξης αλλά και διαφορετικών περιοχών εφαρμογής. Τα αποτελέσματα του έργου αναμένεται να αντιμετωπίσουν σειρά προκλήσεων που σχετίζονται με την υιοθέτηση ΕΛ/ΛΑΚ από τις ΜμΕ ανάπτυξης λογισμικού, όπως: Την αδυναμία των ΜμΕ να επενδύσουν σε τεχνογνωσία και εργαλεία αξιοποίησης ΕΛ/ΛΑΚ, ιδιαίτερα στη δύσκολη (από οικονομική άποψη) συγκυρία που διανύουν. Τις δυσκολίες που σχετίζονται με το συνδυασμό και την ολοκλήρωση πολλών διαφορετικών έργων λογισμικού ΕΛ/ΛΑΚ για την παροχή μιας ολοκληρωμένης λύσης. Το ότι δεν υπάρχει διαθέσιμος ένας πλήρης κατάλογος με τα διαθέσιμα έργα και βιβλιοθήκες ΕΛ/ΛΑΚ, καθώς και την τεκμηρίωσή τους. Το έργο είχε διάρκεια 24 μηνών (από τον Ιούλιο του 2010 έως τον Ιούλιο του 2012) και εκπονήθηκε με τη συμμετοχή 11 φορέων από έξι διαφορετικές χώρες (Γερμανία, Ελλάδα, Κύπρος, Ολλανδία, Σερβία και Σουηδία). Την ευθύνη 30

31 31 της διοίκησης και της διαχείρισης του έργου έχει η Ένωση Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Ελλάδος (ΕΜηΠΕΕ). Καθοριστική συμβολή στην ανάπτυξη του έργου είχε και το Αριστοτέλειο Πανεπιστήμιο της Θεσσαλονίκης και πιο συγκεκριμένα το εργαστήριο τεχνολογίας λογισμικού του τμήματος Πληροφορικής. Ακόμα στην ανάτυξη του έργου συμμετείχαν τα πανεπιστήμια Mälardalen University (Σουηδία), UNU-MERIT (Ολλανδία), το Επιστημονικό Τεχνικό Επιμελητήριο Κύπρου (ΕΤΕΚ), το ινστιτούτο Informaciono društvo Srbije (Κοινωνία της Πληροφορίας-Σερβία), το ΤΕΚΝΙΚΒΥΝ Västerås Science Park (Επιστημονικό πάρκο του Vasteras - Σουηδία) και οι εταιρίες λογισμικού teletel, SOLINET και Gnomon Informatics Εργαλεία του project OPEN-SME OCEAN Εργαλείο για την αναζήτηση μηχανών αναζήτησης κώδικα ΕΛ/ΛΑΚ. Η μηχανή αναζήτησης OCEAN παρέχει ενιαία πρόσβαση στις υπάρχουσες μηχανές αναζήτησης ΕΛ/ΛΑΚ (Google Code Search, Koders, SourceForge κ.α.). Τα πλεονεκτήματα της χρήσης του OCEAN αντί για μια απευθείας χρησιμοποίηση άλλων μηχανών αναζήτησης κώδικα ΕΛ/ΛΑΚ έχουν να κάνουν με: Τη δυνατότητα αναζήτησης σε περισσότερες μηχανές αναζήτησης ταυτόχρονα. Την ικανότητα αποθήκευσης των αποτελεσμάτων σε μια βάση δεδομένων. Την πρόσβαση στο OCEAN από άλλες εφαρμογές μέσω ενός application programming interface (API). Το application programming interface (API) του OCEAN 31

32 Οι περισσότερες μηχανές αναζήτησης ΕΛ/ΛΑΚ δεν παρέχουν ένα φιλικό προς τον προγραμματιστή API για την ανάπτυξη εργαλείων. Για να ενεργοποιηθεί το χαρακτηριστικό μετά-αναζήτησης (meta-search) του OCEAN χρησιμοποιήθηκε το ΕΛ/ΛΑΚ έργο Deixto ( ένα διαδικτυακό εργαλείο εξαγωγής δεδομένων που βασίζεται στο W3C Document Object Model (DOM) και επιτρέπει στους χρήστες να δημιουργήσουν «κανόνες εξαγωγής" (wrappers) που περιγράφουν τι κομμάτια των δεδομένων να πάρουν από μία ιστοσελίδα. Το OCEAN ωστόσο, παρέχει ένα Java API που επιτρέπει σε προγράμματα να χρησιμοποιήσουν την υπηρεσία αναζήτησης του COPE (Component Adaptation Environment) Το COPE είναι το περιβάλλον στο οποίο γίνεται η εισαγωγή των προς επαναχρησιμοποίηση έργων (reuse projects). Το COPE περιέχει μία σειρά από εργαλεία και επιλογές που ο χρήστης μπορεί να εφαρμόσει στο έργο του οποίου τον κώδικα έχει σκοπό να επαναχρησιμοποιήσει. Το COPE: - Προσδιορίζει και μοντελοποιεί αρχικά σχέδια του πεδίου (domain) χρησιμοποιώντας έναν knowledge manager. - Αναλύει τις διάφορες πτυχές, χρησιμοποιώντας Στατική Ανάλυση, Pattern Ανάλυση, κλπ ενός έργου ΕΛ/ΛΑΚ. - Κατανοεί το έργο, χρησιμοποιώντας και το αποτέλεσμα της ανάλυσης. - Ανιχνεύει τα υποψήφια components, χρησιμοποιώντας τα αποτελέσματα της ανάλυσης των έργων και την κατανόηση του έργου. - ημιουργεί components, χρησιμοποιώντας: τους διάφορους κατασκευαστές components. - Τα επικυρώνει, χρησιμοποιώντας την υναμική Ανάλυση. - Κατατάσσει τα παραγόμενα components, χρησιμοποιώντας τον knowledge manager. - Αποστέλλει τα components στο COMPARE. ημιουργία reuse project Για τη δημιουργία reuse project χρειάζονται ο πηγαίος κώδικας του project, οι βιβλιοθήκες που αυτό χρησιμοποιεί και το αρχείο.jar του έργου. 32

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

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 1: Εισαγωγή Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

«Επαναχρησιμοποίηση συστατικών λογισμικού εφαρμογών ήχου»

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

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

Ελεύθερο Λογισμικό. Η αρχή της ιστορίας Κιαγιαδάκης Γιώργος (το labάκι)

Ελεύθερο Λογισμικό. Η αρχή της ιστορίας Κιαγιαδάκης Γιώργος (το labάκι) Ελεύθερο Λογισμικό Η αρχή της ιστορίας Κιαγιαδάκης Γιώργος (το labάκι) Τι είναι το Λογισμικό; Τι είναι το Λογισμικό; Λογισμικό Οδηγίες (Προγράμματα) Δεδομένα... για τον Ηλεκτρονικό Υπολογιστή Τι είναι

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

Ένωση Μηχανικών Πληροφορικής και Επικοινωνιών Ελλάδας (ΕΜηΠΕΕ) συνοπτικά

Ένωση Μηχανικών Πληροφορικής και Επικοινωνιών Ελλάδας (ΕΜηΠΕΕ) συνοπτικά Δρ. Οδυσσέας Ι. Πυροβολακης Πρόεδρος ΔΣ ΕΜηΠΕΕ Ένωση Μηχανικών Πληροφορικής και Επικοινωνιών Ελλάδας (ΕΜηΠΕΕ) συνοπτικά Ιδρύθηκε το 1987, ως Πανελλήνιος Σύλλογος ιπλωματούχων Μηχανικών Η/Υ & Πληροφορικής

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

Γιατί OpenOffice;;; (2)

Γιατί OpenOffice;;; (2) OpenOffice Απο τον: Ανδρέα Μπουράκη Msc in Distributed Systems Engineering Bourakis@gmail.com ΕΙΣΑΓΩΓΗ Το OpenOffice σπονσοράρεται απο την Sun Microsystems. H Sun Microsystems αναπτύσσει το StarOffice

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

Μπορούμε και χωρίς Πατέντες

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

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

Εφαρμογές Υπολογιστών. Κεφάλαιο 4 Λογισμικό Συστήματος

Εφαρμογές Υπολογιστών. Κεφάλαιο 4 Λογισμικό Συστήματος Λογισμικό Συστήματος Λογισμικό 2 Λογισμικό Συστήματος Τα ειδικά εργαλεία χρησιμοποιούνται για την ανάπτυξη λογισμικού εφαρμογών και την εκτέλεση βοηθητικών εργασιών. Το λειτουργικό σύστημα (operating system)

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

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

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

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

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ

Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ Εισαγωγή στις Αρχές της Επιστήμης των ΗΥ 2.3.1.1. Παπαγιάννη Νάσια Ηλεκτρολόγος Μηχανικός και Μηχανικός Υπολογιστών ΕΜΠ 1 περιλαμβάνει: Η έννοια του προγράμματος Επίλυση προβλήματος 1. Ακριβή προσδιορισμό

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

Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016. Γεωργία Καπιτσάκη (Λέκτορας)

Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016. Γεωργία Καπιτσάκη (Λέκτορας) Θέματα Ατομικής Διπλωματικής Εργασίας - DRAFT Ακαδημαϊκό Έτος 2015/2016 Γεωργία Καπιτσάκη (Λέκτορας) ΠΕΡΙΟΧΗ Α: ΕΦΑΡΜΟΓΕΣ ΜΕ ΑΙΣΘΗΤΗΡΕΣ ΓΙΑ ΕΠΙΓΝΩΣΗ ΣΥΓΚΕΙΜΕΝΟΥ Οι αισθητήρες μας δίνουν τη δυνατότητα συλλογής

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

Μηχανική Λογισμικού με Ανοιχτό Λογισμικό Δρ. Γεώργιος Κακαρόντζας Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Α.Τ.Ε.Ι. Θεσσαλίας

Μηχανική Λογισμικού με Ανοιχτό Λογισμικό Δρ. Γεώργιος Κακαρόντζας Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Α.Τ.Ε.Ι. Θεσσαλίας Μηχανική Λογισμικού με Ανοιχτό Λογισμικό Δρ. Γεώργιος Κακαρόντζας Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Α.Τ.Ε.Ι. Θεσσαλίας 1 Ατζέντα Εισαγωγή Εργαλεία Ανοιχτού Λογισμικού για Μηχανικούς Λογισμικού Χρήση και

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

www.ellak.gr ΠΑΡΟΥΣΙΑΣΗ ΕΕΛ/ΛΑΚ www.eellak.gr

www.ellak.gr ΠΑΡΟΥΣΙΑΣΗ ΕΕΛ/ΛΑΚ www.eellak.gr www.ellak.gr ΠΑΡΟΥΣΙΑΣΗ ΕΕΛ/ΛΑΚ www.eellak.gr Εταιρεία ΕΛ/ΛΑΚ Η ΕΕΛ/ΛΑΚ (www.eellak.gr) είναι μη κερδοσκοπική εταιρεία που ιδρύθηκε το 2008 Αποτελείται σήμερα από 29 μέλη (Πανεπιστήμια, Ερευνητικά Κέντρα

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

Libreoffice: Η ελεύθερη σουίτα γραφείου. Τοπική Κοινότητα Χρηστών Ubuntu Κύπρου

Libreoffice: Η ελεύθερη σουίτα γραφείου. Τοπική Κοινότητα Χρηστών Ubuntu Κύπρου Libreoffice: Η ελεύθερη σουίτα γραφείου Τοπική Κοινότητα Χρηστών Ubuntu Κύπρου Τι είναι το LibreOffice; Δωρεάν σουίτα εφαρμογών γραφείου που βασίζεται στον Ανοικτό Κώδικα/Ελεύθερο Λογισμικό Διαθέσιμη για

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

Ένωση Ελλήνων Χρηστών και Φίλων ΕΛ/ΛΑΚ

Ένωση Ελλήνων Χρηστών και Φίλων ΕΛ/ΛΑΚ Ένωση Ελλήνων Χρηστών και Φίλων ΕΛ/ΛΑΚ Ελεύθερο Λογισμικό & Λογισμικό Ανοικτού Κώδικα Ελεύθερο Λογισμικό Λογισμικό Ανοικτού Κώδικα GNU/Linux and FOSS Το κίνημα του ελεύθερου λογισμικού Έχει ως στόχο να

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

ΚΕΦΑΛΑΙΟ 2 - ΛΟΓΙΣΜΙΚΟ

ΚΕΦΑΛΑΙΟ 2 - ΛΟΓΙΣΜΙΚΟ ΚΕΦΑΛΑΙΟ 2 - ΛΟΓΙΣΜΙΚΟ ΕΡΩΤΗΣΗ 1: Σε ποιες μεγάλες κατηγορίες μπορούμε να χωρίσουμε το Λογισμικό. Μπορούμε να χωρίσουμε το Λογισμικό στις παρακάτω μεγάλες κατηγορίες: στο Λογισμικό Συστήματος (System Software),

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. 4o Εργαστήριο Σ.Α.Ε

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. 4o Εργαστήριο Σ.Α.Ε ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα 4o Εργαστήριο Σ.Α.Ε Ενότητα : Μελέτη και Σχεδίαση Σ.Α.Ε Με χρήση του MATLAB Aναστασία Βελώνη Τμήμα Η.Υ.Σ Άδειες Χρήσης Το παρόν

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

Ενότητα 2. Πηγές Λογισμικού. Πληροφοριακά Συστήματα Διοίκησης ΙI Νίκος Καρακαπιλίδης 2-1

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

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

12/5/18. συστημάτων. Το λογισµικό συστηµάτων. Κεφάλαιο 5

12/5/18. συστημάτων. Το λογισµικό συστηµάτων. Κεφάλαιο 5 A. EVANS, K. MARTIN, M. A. POATSY Εισαγωγή στην πληροφορική Θεωρία και πράξη 2 η έκδοση Κεφάλαιο 5 Λογισμικό συστημάτων: Το λειτουργικό σύστημα, τα βοηθητικά προγράμματα και η διαχείριση αρχείων Τα βασικά

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

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

ΕΙΣΑΓΩΓΗ ΣΤΑ ΠΡΟΓΡΑΜΜΑΤΑ ΚΑΙ ΤΙΣ ΕΦΑΡΜΟΓΕΣ ΤΟΥ ΕΙΣΑΓΩΓΗ ΣΤΑ ΠΡΟΓΡΑΜΜΑΤΑ ΚΑΙ ΤΙΣ ΕΦΑΡΜΟΓΕΣ ΤΟΥ Το Linux είναι χτισμένο με ένα συγκεκριμένο σύνολο ενοποίηση αρχές στο μυαλό. Η κατανόηση αυτών των αρχών είναι πολύ χρήσιμη για την κατανόηση του πώς λειτουργεί

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

ANDROID Προγραμματισμός Εφαρμογών

ANDROID Προγραμματισμός Εφαρμογών ANDROID Προγραμματισμός Εφαρμογών Παναγιώτης Κρητιώτης ΑΜ 1607 Περιεχόμενα Εισαγωγή Βασικά Στοιχεία Χαρακτηριστικά Αρχιτεκτονική Εργαλεία Προγραμματισμού Eclipse IDE Android SDK - ADT Plugin Προσομοιωτής

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

Ελεύθερο Λογισμικό. Ερευνητική Εργασία Τμήμα Α2-3 ου ΓΕΛ Κομοτηνής Ιανουάριος 2014

Ελεύθερο Λογισμικό. Ερευνητική Εργασία Τμήμα Α2-3 ου ΓΕΛ Κομοτηνής Ιανουάριος 2014 Ελεύθερο Λογισμικό Ερευνητική Εργασία Τμήμα Α2-3 ου ΓΕΛ Κομοτηνής Ιανουάριος 2014 1 Τι θα παρακολουθήσουμε Τι είναι το Λογισμικό Κατηγορίες Λογισμικού Ιστορική αναφορά Οικονομικά στοιχεία Πηγές εσόδων

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

ΚΕΦΑΛΑΙΟ 1. Εισαγωγή στην Python. 1.1 Εισαγωγή

ΚΕΦΑΛΑΙΟ 1. Εισαγωγή στην Python. 1.1 Εισαγωγή ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στην Python Σύνοψη Σε αυτό το κεφάλαιο κάνουμε μια σύντομη εισαγωγή στην Python και στα εργαλεία λογισμικού που θα χρησιμοποιήσουμε στη συνέχεια του συγγράμματος. Προαπαιτούμενη γνώση

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

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

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

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

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές Λαμπαδαρίδης Αντώνιος el04148@mail.ntua.gr Διπλωματική εργασία στο Εργαστήριο Συστημάτων Βάσεων Γνώσεων και Δεδομένων Επιβλέπων: Καθηγητής Τ. Σελλής Περίληψη

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

Λειτουργικό Σύστημα Linux ~ Μια σύντομη εισαγωγή

Λειτουργικό Σύστημα Linux ~ Μια σύντομη εισαγωγή Λειτουργικό Σύστημα Linux ~ Μια σύντομη εισαγωγή Πως ξεκίνησε το Linux Linus Torvalds : Εμπνευστής και δημιουργός του, φοιτητής του Πανεπιστημίου του Helsinki στην Φιλανδία Πως ξεκίνησε το Linux Βασίστηκε

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

Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018. Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια)

Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018. Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια) Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018 Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια) ΠΕΡΙΟΧΗ Α: ΕΦΑΡΜΟΓΕΣ ΜΕ ΑΙΣΘΗΤΗΡΕΣ ΓΙΑ ΕΠΙΓΝΩΣΗ ΣΥΓΚΕΙΜΕΝΟΥ Οι αισθητήρες μας δίνουν τη δυνατότητα

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

Οι Ανοικτοί Εκπαιδευτικοί Πόροι του Αποθετηρίου «Κάλλιπος» του ΣEAB: Οφέλη χρήσης και προοπτικές βιώσιμης ανάπτυξης

Οι Ανοικτοί Εκπαιδευτικοί Πόροι του Αποθετηρίου «Κάλλιπος» του ΣEAB: Οφέλη χρήσης και προοπτικές βιώσιμης ανάπτυξης Οι Ανοικτοί Εκπαιδευτικοί Πόροι του Αποθετηρίου «Κάλλιπος» του ΣEAB: Οφέλη χρήσης και προοπτικές βιώσιμης ανάπτυξης Αναστασοπούλου Χρ., Κουής Δ., Κουτσιλέου Στ., Χριστάκη Στ. Επιστημονικά Υπεύθυνος Δράσης:

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

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

ΜΟΝΑΔΕΣ ΑΡΙΣΤΕΙΑΣ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ ΜΟΝΑΔΕΣ ΑΡΙΣΤΕΙΑΣ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ Συστήματα γεωγραφικών πληροφοριών 1 ος Κύκλος Εκπαίδευσης 1 ο σεμινάριο 27 Μαΐου 2014 Ελεύθερο Λογισμικό ΕΛ/ΛΑΚ: Ελεύθερο Λογισμικό / Λογισμικό Ανοικτού Κώδικα (ΕΛ/ΛΑΚ)

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

Μονάδες Αριστείας ΕΛ/ΛΑΚ. 28/9/2014 Μονάδες Αριστείας ΕΛ/ΛΑΚ 1

Μονάδες Αριστείας ΕΛ/ΛΑΚ. 28/9/2014 Μονάδες Αριστείας ΕΛ/ΛΑΚ 1 28/9/2014 Μονάδες Αριστείας ΕΛ/ΛΑΚ 1 Τι είναι; Οι Μονάδες Αριστείας, είναι ομάδες σε Πανεπιστημιακά Ιδρύματα και Ερευνητικά Κέντρα που υλοποιούν το έργο ΕΣΠΑ «Ηλεκτρονικές Υπηρεσίες για την Ανάπτυξη και

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

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 4 η. Βασίλης Στεφανής

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 4 η. Βασίλης Στεφανής Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ Διάλεξη 4 η Βασίλης Στεφανής Πληροφοριακό σύστημα Υπενθύμιση του βασικού μοντέλου Είσοδος Επεξεργασία Έξοδος Ας δούμε επιπλέον λεπτομέρειες! Λογισμικό Λογισμικό: Δίνει εντολές στο

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

ΜΑΘΗΜΑ 8 - ΕΡΩΤΗΣΕΙΣ ΠΟΛΛΑΠΛΗΣ ΕΠΙΛΟΓΗΣ

ΜΑΘΗΜΑ 8 - ΕΡΩΤΗΣΕΙΣ ΠΟΛΛΑΠΛΗΣ ΕΠΙΛΟΓΗΣ ΜΑΘΗΜΑ 8 - ΕΡΩΤΗΣΕΙΣ ΠΟΛΛΑΠΛΗΣ ΕΠΙΛΟΓΗΣ 1. Ποια από τις ακόλουθες δηλώσεις περιγράφει το δοκιμαστικό λογισμικό; a) Δοκιμαστικό λογισμικό είναι το λογισμικό χωρίς την προστασία των πνευματικών δικαιωμάτων.

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

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου 49 Διδακτικές ενότητες 6.1 Γλώσσες και εργαλεία προγραμματισμού 6.2 Σύγχρονα προγραμματιστικά περιβάλλοντα Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν την ανάγκη ύπαρξης τόσο

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

Σταύρος Καουκάκης Ευτύχιος Βαβουράκης

Σταύρος Καουκάκης Ευτύχιος Βαβουράκης ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Βασικές Έννοιες Διαδικτύου Wordpress & Κοινωνικά Δίκτυα (Part 1) Σταύρος Καουκάκης Ευτύχιος Βαβουράκης 1 Περιεχόμενα Γενικές Έννοιες Διαδικτύου Η αρχιτεκτονική του Web Συστήματα Διαχείρισης

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

Κεφάλαιο 6 ο. Διαχείριση στοιχείων λογισμικού

Κεφάλαιο 6 ο. Διαχείριση στοιχείων λογισμικού Κεφάλαιο 6 ο Διαχείριση στοιχείων λογισμικού Διδακτικοί στόχοι Να περιγραφούν οι κύριοι τύποι λογισμικού Να εξεταστεί το λογισμικό συστήματος και τα λειτουργικά συστήματα Να αναλυθούν οι πιο σημαντικές

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

Ελεύθερο Λογισμικό. Γιάννης Γαϊδαρτζής ΠΕ19 Υπεύθυνος ΚΕ.ΠΛΗ.ΝΕ.Τ. Ρεθύμνου

Ελεύθερο Λογισμικό. Γιάννης Γαϊδαρτζής ΠΕ19 Υπεύθυνος ΚΕ.ΠΛΗ.ΝΕ.Τ. Ρεθύμνου Ελεύθερο Λογισμικό Το Ελεύθερο Λογισμικό, όπως ορίζεται από το Ίδρυμα Ελευθέρου Λογισμικού (Free Software Foundation), είναι λογισμικό που μπορεί να χρησιμοποιηθεί, αντιγραφεί, μελετηθεί, τροποποιηθεί

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

Από την Διακίνηση της Πληροφορίας ως τα Creative Commons

Από την Διακίνηση της Πληροφορίας ως τα Creative Commons Εργαστήριο Ψηφιακών Βιβλιοθηκών και Ηλεκτρονικής Δημοσίευσης Τμήμα Αρχειονομίας Βιβλιοθηκονομίας Ιόνιο Πανεπιστήμιο Από την Διακίνηση της Πληροφορίας ως τα Creative Commons Σαράντος Καπιδάκης sarantos@ionio.gr

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

ΕΛΛΑΚ και Τοπική Αυτοδιοίκηση

ΕΛΛΑΚ και Τοπική Αυτοδιοίκηση ΕΛΛΑΚ και Τοπική Αυτοδιοίκηση Παναγιώτης Κρανιδιώτης panagiotis.kranidiotis@gmail.com 21 Δεκεμβρίου 2012 Τι είναι το ΕΛΛΑΚ Το λογισμικό το οποίο διατίθεται με ειδικές άδειες οι οποίες επιτρέπουν στους

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

Περιβάλλον Διαχείρισης Συνεδρίων και άλλων Επιστημονικών Εκδηλώσεων. Πολιτική Χρήσης

Περιβάλλον Διαχείρισης Συνεδρίων και άλλων Επιστημονικών Εκδηλώσεων. Πολιτική Χρήσης Περιβάλλον Διαχείρισης Συνεδρίων και άλλων Επιστημονικών Εκδηλώσεων Πολιτική Χρήσης Θεσσαλονίκη 30/11/2012 Πίνακας Περιεχομένων Εισαγωγή... 3 1. Πολιτική περιεχοµένου... 4 2. Πολιτική κατάθεσης εργασιών

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

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1

ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ. 03/01/09 Χαράλαμπος Τζόκας 1 ΚΕΦΑΛΑΙΟ 6 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 03/01/09 Χαράλαμπος Τζόκας 1 Πρόγραμμα - Προγραμματισμός Πρόγραμμα: Σύνολο εντολών που πρέπει να δοθούν στον Υπολογιστή, ώστε να υλοποιηθεί ο αλγόριθμος της επίλυσης

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

Ανάπτυξη πλήρους διαδικτυακής e-commerce εφαρμογής με χρήση του CMS WordPress

Ανάπτυξη πλήρους διαδικτυακής e-commerce εφαρμογής με χρήση του CMS WordPress ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Ανάπτυξη πλήρους διαδικτυακής e-commerce εφαρμογής με χρήση του CMS WordPress ΚΟΤΣΟΓΙΑΝΝΙΔΗΣ ΛΑΖΑΡΟΣ Επιβλέπων καθηγητής Σφέτσος Παναγιώτης ΗΛΕΚΤΡΟΝΙΚΟ ΕΜΠΟΡΙΟ Ως Ηλεκτρονικό Εμπόριο ή

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

Επικοινωνία Ανθρώπου- Υπολογιστή Σχεδίαση Αλληλεπίδρασης Ενότητα: 8 η

Επικοινωνία Ανθρώπου- Υπολογιστή Σχεδίαση Αλληλεπίδρασης Ενότητα: 8 η ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Επικοινωνία Ανθρώπου- Υπολογιστή Σχεδίαση Αλληλεπίδρασης Ενότητα: 8 η Δ.Πολίτης Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε

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

Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ

Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ http://leitourgika-systhmata-epal-b.ggia.info/ Σύγχρονο Λειτουργικό Σύστημα - ΛΣ Λειτουργικό Σύστημα:

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

ΕΠΛ 233: Αντικειμενοστρεφής Προγραμματισμός (Object-oriented programming)

ΕΠΛ 233: Αντικειμενοστρεφής Προγραμματισμός (Object-oriented programming) ΕΠΛ 233: Αντικειμενοστρεφής Προγραμματισμός (Object-oriented programming) Πληροφορίες Μαθήματος Διαλέξεις Δευτέρα, Πέμπτη 10:30-12:00 Κτήριο ΘΕΕ01, Αίθουσα 202 Εργαστήριο Τετάρτη 10:30-12:00, Κτήριο ΘΕΕ01,

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

ΚΕΦΑΛΑΙΟ 2 ΛΟΓΙΣΜΙΚΟ

ΚΕΦΑΛΑΙΟ 2 ΛΟΓΙΣΜΙΚΟ ΚΕΦΑΛΑΙΟ 2 ΛΟΓΙΣΜΙΚΟ ΤΙ ΕΊΝΑΙ ΛΟΓΙΣΜΙΚΟ Για τη λειτουργία ενός υπολογιστικού συστήματος χρειάζεται εκτός από το υλικό (hardware) και το λογισμικό (software). Σε αυτό περιλαμβάνονται όλα τα Προγράμματα

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

Πληροφορική (BSc & MSc)

Πληροφορική (BSc & MSc) ς Πληροφορική (BSc & MSc) www.nup.ac.cy ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ Πτυχίο στην Εφαρμοσμένη Πληροφορική BSc in Applied Informatics Περιγραφή Προγράμματος Στόχος του Προπτυχιακού Προγράμματος στην Εφαρμοσμένη

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

Το ελεύθερο λογισμικό στη ζωή μας

Το ελεύθερο λογισμικό στη ζωή μας Το ελεύθερο λογισμικό στη ζωή μας Τάσος Κούτλας @akoutlas Μονάδα Αριστείας ΕΛΛΑΚ ΕΤΕΠΗ 11/06/2014 τι είναι το ελεύθερο λογισμικό / πώς άλλαξε την τεχνολογία / ελεύθερο λογισμικό στην Ελλάδα τι είναι το

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

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

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

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

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

ΜΟΝΑΔΕΣ ΑΡΙΣΤΕΙΑΣ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ ΜΟΝΑΔΕΣ ΑΡΙΣΤΕΙΑΣ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ Συστήματα γεωγραφικών πληροφοριών 2 η Σειρά Εκπαίδευσης 1 ο σεμινάριο 21 Οκτωβρίου 2014 Ελεύθερο Λογισμικό ΕΛ/ΛΑΚ: Ελεύθερο Λογισμικό / Λογισμικό Ανοικτού Κώδικα (ΕΛ/ΛΑΚ)

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

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

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

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

hel-col@otenet.gr Κωνσταντίνος Παρασκευόπουλος Καθηγητής Πληροφορικής (ΠΕ19 MSc) Ελληνικό Κολλέγιο Θεσσαλονίκης kparask@hellenic-college.

hel-col@otenet.gr Κωνσταντίνος Παρασκευόπουλος Καθηγητής Πληροφορικής (ΠΕ19 MSc) Ελληνικό Κολλέγιο Θεσσαλονίκης kparask@hellenic-college. Χρήση της Διεπαφής Προγραμματισμού Εφαρμογής Google Maps για τη δημιουργία διαδραστικού χάρτη με τα Μνημεία Παγκόσμιας Πολιτιστικής Κληρονομιάς της ΟΥΝΕΣΚΟ στη Θεσσαλονίκη Εμμανουήλ Τσάμης 1, Κωνσταντίνος

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

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Μεταφραστές Εισαγωγή Διδάσκων: Επικ. Καθ. Γεώργιος Μανής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

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

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

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

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

Εισαγωγή στην Python. Διάλεξη 0

Εισαγωγή στην Python. Διάλεξη 0 Εισαγωγή στην Python Διάλεξη 0 Διοργάνωση : ΚΕΛ ΣΑΤΜ Διαφάνειες: Skaros, MadAGu Παρουσίαση: MadAGu Άδεια: Creative Commons 3.0 Τι είναι ο προγραμματισμός : Αλγόριθμος γραμμένος σε γλώσσα που καταλαβαίνει

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

Σχεδιαστικά Προγράμματα Επίπλου

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

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

Λογισμικό - Προγράμματα

Λογισμικό - Προγράμματα Λογισμικό - Προγράμματα Πρόγραμμα είναι ένα σύνολο εντολών, βάση των οποίων ο υπολογιστής εκτελεί μια συγκεκριμένη εργασία Λογισμικό (Software) Το σύνολο των προγραμμάτων Προγράμματα Προγράμματα συστήματος

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

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

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

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

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

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

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

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1 Κεφάλαιο 4 Λογισμικό συστήματος Καραμαούνας Πολύκαρπος 1 4.1 Λογισμικό συστήματος (application software) Καραμαούνας Πολύκαρπος 2 Λογισμικό εφαρμογών (application software): προγράμματα για την αντιμετώπιση

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

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι Λειτουργικά Συστήματα 1 Λογισμικό του Υπολογιστή Για να λειτουργήσει ένας Η/Υ εκτός από το υλικό του, είναι απαραίτητο και το λογισμικό Το σύνολο των προγραμμάτων που συντονίζουν τις λειτουργίες του υλικού

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

Νεογεωγραφία και Χαρτογραφική Διαδικτυακή Απεικόνιση. Η χρήση Ελεύθερων Γεωγραφικών Δεδομένων και Λογισμικού Ανοιχτού Κώδικα σε Φορητές Συσκευές.

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

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

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

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

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

Βασικές Έννοιες Διαδικτύου, Wordpress και BuddyPress

Βασικές Έννοιες Διαδικτύου, Wordpress και BuddyPress ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Βασικές Έννοιες Διαδικτύου, Wordpress και BuddyPress Σταύρος Καουκάκης Χάρης Παπαγιαννάκης Ευτύχης Βαβουράκης 1 Περιεχόμενα Γενικές Έννοιες Διαδικτύου Η αρχιτεκτονική του Web Συστήματα

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

Στρατηγική Επιλογή Capital B.O.S. Capital B.O.S.

Στρατηγική Επιλογή Capital B.O.S. Capital B.O.S. Στρατηγική Επιλογή Το ταχύτατα μεταβαλλόμενο περιβάλλον στο οποίο δραστηριοποιούνται οι επιχειρήσεις σήμερα, καθιστά επιτακτική -όσο ποτέ άλλοτε- την ανάπτυξη ολοκληρωμένων λύσεων που θα διασφαλίζουν,

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

Κατανεμημένα Συστήματα

Κατανεμημένα Συστήματα Κατανεμημένα Συστήματα Android Grid Application Θωμάς Αντώνιος (3050073) Καραβέλλας Θεμιστοκλής (3050055) 1. Εισαγωγή Το Android αποτελεί ένα λειτουργικό σύστημα για κινητές συσκευές. Το λειτουργικό αυτό

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

Αγροτική Ανάπτυξη Περιβάλλον

Αγροτική Ανάπτυξη Περιβάλλον ΜΟΝΑΔΕΣ ΑΡΙΣΤΕΙΑΣ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ Αγροτική Ανάπτυξη Περιβάλλον 1 ος Κύκλος Εκπαίδευσης 4 ο σεμινάριο 4 Ιουλίου 2014 GRASS GIS Τι είναι το GRASS GIS; Ένα άρτιο ΣΓΠ Ανοιχτού Κώδικα (Open Source GIS)

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

Α. Ερωτήσεις Ανάπτυξης

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

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

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

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

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

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

Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος Κεφάλαιο 3.1: Λειτουργικά Συστήματα 1 3.1.1 Λογισμικό και Υπολογιστικό Σύστημα Ένα σύγχρονο υπολογιστικό σύστημα αποτελείται από: το υλικό: τα ηλεκτρονικά μέρη του υπολογιστή και το λογισμικό: το σύνολο

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

Επιτελική σύνοψη κάθε παραγόµενο λογισµικό µπορεί να χρησιµοποιηθεί, να αντιγραφεί και να διανεµηθεί ελεύθερα

Επιτελική σύνοψη κάθε παραγόµενο λογισµικό µπορεί να χρησιµοποιηθεί, να αντιγραφεί και να διανεµηθεί ελεύθερα Επιτελική σύνοψη Το Ελεύθερο Λογισµικό/Λογισµικό Ανοικτού Κώδικα (ΕΛ/ΛΑΚ) είναι ένα εναλλακτικό µοντέλο ανάπτυξης και χρήσης λογισµικού, σύµφωνα µε το οποίο κάθε παραγόµενο λογισµικό µπορεί να χρησιµοποιηθεί,

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

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα

Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Τεχνικές σχεδίασης προγραμμάτων, Προγραμματιστικά Περιβάλλοντα Ενότητες βιβλίου: 6.4, 6.7 Ώρες διδασκαλίας: 1 Τεχνικές σχεδίασης προγραμμάτων Στο βιβλίο γίνεται αναφορά σε μία τεχνική για την ανάπτυξη

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

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1 ΚΕΦΑΛΑΙΟ 7 ο ΠΡΟΓΡΑΜΜΑ : Το πρόγραμμα αποτελείται από μια σειρά οδηγιών, που ονομάζονται εντολές, για την εκτέλεση τέτοιου είδους πράξεων, καθώς επίσης και από ένα σύνολο πρόσθετων οδηγιών ελέγχου, που

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

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

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

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

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

Σχεδίαση και ανάπτυξη ιστοχώρου του εργαστηρίου Μηχανικής Λογισμικού. Παληόπουλος Αποστόλης-Παπαναγιώτου Παναγιώτης Σχεδίαση και ανάπτυξη ιστοχώρου του εργαστηρίου Μηχανικής Λογισμικού Π λ ό λ Α όλ Π ώ Παληόπουλος Αποστόλης-Παπαναγιώτου Παναγιώτης Σκοπός και χρησιμότητα της δημιουργίας portal για το τομέα Μικροϋπολογιστών.

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

GreekLUG Ελεύθερο Λογισμικό & Λογισμικό Ανοικτού Κώδικα

GreekLUG Ελεύθερο Λογισμικό & Λογισμικό Ανοικτού Κώδικα GreekLUG Ελεύθερο Λογισμικό & Λογισμικό Ανοικτού Κώδικα GreekLUG ΕΙΣΑΓΩΓΗ: Τι είναι Ελεύθερο Λογισμικό; Η φιλοσοφία και οι αξίες του ΕΛ/ΛΑΚ Ζήσης Μιχάλης GreekLUG ΕΛ/ΛΑΚ! Τι είναι Λογισμικό & τι Λειτουργικό

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

Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή

Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή Κεφάλαιο 14: Συμβουλές προς έναν νέο προγραμματιστή Φτάσαμε σιγά σιγά στο τέλος του βιβλίου. Αντί για κάποιον επίλογο σκέφτηκα να συλλέξω κάποια πράγματα που θα ήθελα να πω σε κάποιον ο οποίος αρχίζει

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

Προσφερόμενα Διπλώματα (Προσφερόμενοι Τίτλοι)

Προσφερόμενα Διπλώματα (Προσφερόμενοι Τίτλοι) Εισαγωγή Το Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών του Πανεπιστημίου Κύπρου προσφέρει ολοκληρωμένα προπτυχιακά και μεταπτυχιακά προγράμματα σπουδών στους κλάδους του Ηλεκτρολόγου Μηχανικού

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

e-patents Διπλώματα Ευρεσιτεχνίας στο Λογισμικό Βασίλης Βλάχος Σύλλογος Διπλωματούχων Μηχανικών Η/Υ και Πληροφορικής

e-patents Διπλώματα Ευρεσιτεχνίας στο Λογισμικό Βασίλης Βλάχος Σύλλογος Διπλωματούχων Μηχανικών Η/Υ και Πληροφορικής e-patents Διπλώματα Ευρεσιτεχνίας στο Λογισμικό Βασίλης Βλάχος Σύλλογος Διπλωματούχων Μηχανικών Η/Υ και Πληροφορικής Σύλλογος Διπλωματούχων Μηχανικών Η/Υ και Πληροφορικής Μέλη του Συλλόγου : Μηχανικοί

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

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; Εισαγωγή Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα; 1. Σελίδα μαθήματος Εγγραφή Ο κάθε φοιτητής πρέπει να κάνει εγγραφή στη σελίδα του μαθήματος στην πλατφόρμα e-class

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

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία. AtYourService CY : Create a REST API. Δημήτρης Χριστοδούλου

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ. Πτυχιακή εργασία. AtYourService CY : Create a REST API. Δημήτρης Χριστοδούλου ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ Πτυχιακή εργασία AtYourService CY : Create a REST API Δημήτρης Χριστοδούλου Λεμεσός 2016 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΜΗΧΑΝΙΚΗΣ

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

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Ακαδημαϊκό έτος: 2010-2011 Επιμέλεια Ξενοφών Βασιλάκος Περιεχόμενα Φροντιστηρίου 1. Εισαγωγή 2. Εντολές Εκχώρησης και Τελικές μεταβλητές 3. Μεταγλώττιση και διερμηνεία των

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

Πως μπορούν τα μέρη του υλικού ενός υπολογιστή να επικοινωνούν και να συνεργάζονται μεταξύ τους; Επειδή ακολουθούν συγκεκριμένες οδηγίες (εντολές).

Πως μπορούν τα μέρη του υλικού ενός υπολογιστή να επικοινωνούν και να συνεργάζονται μεταξύ τους; Επειδή ακολουθούν συγκεκριμένες οδηγίες (εντολές). Κεφάλαιο 5 Πως μπορούν τα μέρη του υλικού ενός υπολογιστή να επικοινωνούν και να συνεργάζονται μεταξύ τους; Επειδή ακολουθούν συγκεκριμένες οδηγίες (εντολές). Το σύνολο αυτών των εντολών το ονομάζουμε

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

Εισαγωγή στις Βάσεις Δεδομζνων II

Εισαγωγή στις Βάσεις Δεδομζνων II ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΣΙΑ ΠΑΝΕΠΙΣΗΜΙΟ ΚΡΗΣΗ Εισαγωγή στις Βάσεις Δεδομζνων II Ενότητα: Εισαγωγή στη LibreOffice Base Διδάσκων: Πηγουνάκης Κωστής ΤΜΗΜΑ ΟΙΚΟΝΟΜΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΣΧΟΛΗ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ Άδειες

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

Γεωγραφικά Συστήµατα Πληροφοριών και Αρχές Τηλεπισκόπησης

Γεωγραφικά Συστήµατα Πληροφοριών και Αρχές Τηλεπισκόπησης Γεωγραφικά Συστήµατα Πληροφοριών και Αρχές Τηλεπισκόπησης Ενότητα: Λειτουργικά Συστήµατα, Συστήµατα Batch και Time Sharing Γεώργιος Σκιάνης Γεωλογίας και Γεωπεριβάλλοντος Σελίδα 2 1. Περιεχόµενα ενότητας...

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

ΔΕΛΤΙΟ ΤΥΠΟΥ Open Data Day 2013

ΔΕΛΤΙΟ ΤΥΠΟΥ Open Data Day 2013 Αθήνα, 6 Φεβρουαρίου 2013 ΔΕΛΤΙΟ ΤΥΠΟΥ Open Data Day 2013 Στις 23 Φεβρουαρίου 2013 γιορτάζεται η παγκόσμια ημέρα για τα ανοιχτά δεδομένα (www.opendataday.org/) με ταυτόχρονες εκδηλώσεις σε όλο τον κόσμο.

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

Αξιοποίηση της Τεχνολογίας των Εικονικών Μηχανών στην Επαγγελματική Εκπαίδευση και την Κατάρτιση Πληροφορικής. Βασιλάκης Βασίλειος Τζανάκης Δημήτριος

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

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

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

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

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

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί

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

Μαλούτα Θεανώ Σελίδα 1

Μαλούτα Θεανώ Σελίδα 1 ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Α. ΕΡΩΤΗΣΕΙΣ ΘΕΩΡΙΑΣ ΦΥΛΛΑΔΙΟ 6 ο ( Ενότητες 2.3 ) 1.Τι είναι πρόγραμμα; 2. Ποια είναι τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου σε σχέση με τις γλώσσες

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

Κεφάλαιο 6 Λογισμικό Εφαρμογών. Εφαρμογές Πληροφορικής Κεφ.6 Καραμαούνας Πολύκαρπος 1

Κεφάλαιο 6 Λογισμικό Εφαρμογών. Εφαρμογές Πληροφορικής Κεφ.6 Καραμαούνας Πολύκαρπος 1 Κεφάλαιο 6 Λογισμικό Εφαρμογών Καραμαούνας Πολύκαρπος 1 Λογισμικό Εφαρμογών (application software) Είναι όλα τα προγράμματα που μετατρέπουν τον ΗΥ σε εξειδικευμένο μηχάνημα για συκεκριμένες εργασίες. Περιέχει

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

Στρατηγικό Σχέδιο Για τη Βιώσιµη Ανάπτυξη της Θεσσαλονίκης (ΣΣΒΑΘ) 1 η Ενδιάµεση Έκθεση 3. ηµιουργία και Λειτουργία Web site

Στρατηγικό Σχέδιο Για τη Βιώσιµη Ανάπτυξη της Θεσσαλονίκης (ΣΣΒΑΘ) 1 η Ενδιάµεση Έκθεση 3. ηµιουργία και Λειτουργία Web site Στρατηγικό Σχέδιο Για τη Βιώσιµη Ανάπτυξη της Θεσσαλονίκης (ΣΣΒΑΘ) 1 η Ενδιάµεση Έκθεση 3. ηµιουργία και Λειτουργία Web site Θεσσαλονίκη 6/12/2001 Βασίλης Φούρκας, ΕΜΧΑ Η δηµιουργία και λειτουργία ενός

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

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο FrontPage 2003 Πρακτικός Οδηγός Χρήσης Το FrontPage είναι ένα πρόγραμμα δημιουργίας ιστοσελίδων και δικτυακών τόπων που επιτρέπει το σχεδιασμό ιστοσελίδων μέσα από γραφικό περιβάλλον αλλά και την ταυτόχρονη

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

Ένωση Μηχανικών Πληροφορικής και Επικοινωνιών Ελλάδας (ΕΜηΠΕΕ) συνοπτικά

Ένωση Μηχανικών Πληροφορικής και Επικοινωνιών Ελλάδας (ΕΜηΠΕΕ) συνοπτικά Ηλίας Μαγκλογιάννης Ένωση Μηχανικών Πληροφορικής και Επικοινωνιών Ελλάδας (ΕΜηΠΕΕ) συνοπτικά Ιδρύθηκε το 1987, ως Πανελλήνιος Σύλλογος Διπλωματούχων Μηχανικών Η/Υ & Πληροφορικής (ΠΣΔΜΗΥΠ). Mετονομάστηκε

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

Ανάπτυξη Διεπαφών Χρήστη σε Λειτουργικά Συστήματα Κινητών Συσκευών

Ανάπτυξη Διεπαφών Χρήστη σε Λειτουργικά Συστήματα Κινητών Συσκευών Βιβλιογραφία: Ανάπτυξη Διεπαφών Χρήστη σε Λειτουργικά Συστήματα Κινητών Συσκευών Προγραμματισμός Android Ian Clifton. AndroidTM User Interface Design, Addison-Wesley, 2013 P. Deitel. H. Deitel, A. Deitel.

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

Συνεργατική τεκμηρίωση διαδικασιών του δημοσίου τομέα: To παράδειγμα του diadikasies.gr

Συνεργατική τεκμηρίωση διαδικασιών του δημοσίου τομέα: To παράδειγμα του diadikasies.gr Συνεργατική τεκμηρίωση διαδικασιών του δημοσίου τομέα: To παράδειγμα του diadikasies.gr Collaborative documentation of public sector procedures: case study diadikasies.gr Ευάγγελος Μήλιος Evangelos Milios,

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

Προγραμματισμός Διαχείρισης Συστημάτων Ι

Προγραμματισμός Διαχείρισης Συστημάτων Ι Προγραμματισμός Διαχείρισης Συστημάτων Ι Μάθημα 7ο X Window System Μιχαηλίδης Παναγιώτης Tι είναι παραθυρικό σύστημα; Ένα παραθυρικό σύστημα (window system) είναι μια γραφική διεπαφή χρήστη (Graphical

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα

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

Οι διαδικασίες ενος CMS είναι σχεδιασμένες για να:

Οι διαδικασίες ενος CMS είναι σχεδιασμένες για να: CMS Content Management System Σύστημα Διαχείρισης Περιεχομένου Ένα σύστημα διαχείρισης περιεχομένου (CMS) είναι μια συλλογή απο διαδικασίες που χρησιμοποιούνται για τη διαχείριση της ροής εργασίας σε ένα

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

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Προγραμματισμός Η/Υ Προτεινόμενα θέματα εξετάσεων Εργαστήριο Μέρος 1 ό ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής Ιανουάριος 2011 Καλογιάννης Γρηγόριος Επιστημονικός/ Εργαστηριακός

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

Κεφάλαιο 4: Λογισμικό Συστήματος

Κεφάλαιο 4: Λογισμικό Συστήματος Κεφάλαιο 4: Λογισμικό Συστήματος Ερωτήσεις 1. Να αναφέρετε συνοπτικά τις κατηγορίες στις οποίες διακρίνεται το λογισμικό συστήματος. Σε ποια ευρύτερη κατηγορία εντάσσεται αυτό; Το λογισμικό συστήματος

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