Open Source Code)
Total Page:16
File Type:pdf, Size:1020Kb
ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΕΦΑΡΜΟΣΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ Μεταπτυχιακή Εργασία Σύγκριση scripting γλωσσών προγραμματισμού και διερεύνηση της καταλληλότητας τους για εργασίες συντήρησης λογισμικού Φοιτητής: Πέτρου Βασίλειος Α.Μ. 21/09 Επιβλέπων Καθηγητής: κος Αλέξανδρος Χατζηγεωργίου Θεσσαλονίκη 2011 Σύγκριση scripting γλωσσών προγραμματισμού και διερεύνηση της καταλληλότητας τους για εργασίες συντήρησης λογισμικού Copyright © Πέτρου Βασίλειος, 2011 Με επιφύλαξη παντός δικαιώματος. All rights reserved. Η έγκριση της μεταπτυχιακής εργασίας από το Τμήμα Εφαρμοσμένης Πληροφορικής του Πανεπιστημίου Μακεδονίας δεν υποδηλώνει απαραιτήτως και απόδοχη των απόψεων του συγγραφέα εκ μέρους του Τμήματος. 2 Σύγκριση scripting γλωσσών προγραμματισμού και διερεύνηση της καταλληλότητας τους για εργασίες συντήρησης λογισμικού Περίληψη Σκοπός της διπλωματικής εργασίας είναι να αναλύσει και να συγκρίνει δύο scripting γλώσσες προγραμματισμού, την πολύ διαδεδομένη PHP και την νεοεισερχόμενη Ruby. Η σύγκριση αυτή μπορεί να οδηγήσει και σε βαθύτερα συμπεράσματα όπως για το ποια γλώσσα είναι ακαδημαϊκά και επαγγελματικά καταλληλότερη. Αρχικά θα υλοποιηθεί μια βασική μορφή ενός ηλεκτρονικού περιβάλλοντος διαχείρισης πτυχιακών εργασιών με βασικές λειτουργίες και στις 2 γλώσσες. Στη συνέχεια θα προταθούν σενάρια ανάπτυξης της λειτουργικότητας και μαζί με την υλοποίηση αυτών θα γίνει παράλληλα καταγραφή των βημάτων υλοποίησης και όλων των σημαντικών στοιχείων που σχετίζονται με τη διαδικασία για να προκύψουν τα κατάλληλα συμπεράσματα. Λέξεις Κλειδιά : «Ruby, Ruby on Rails, PHP, Apache, MySQL, Model-View- Controler, Box-Plot» 3 Σύγκριση scripting γλωσσών προγραμματισμού και διερεύνηση της καταλληλότητας τους για εργασίες συντήρησης λογισμικού Summary The main purpose of this thesis is to analyze and compare two scripting languages, the very popular PHP and the “newcomer” Ruby. This Comparison can guide to deeper conclusions. eg. Which language is more appropriate for academic and business purpose. First of all, an initial interface of an electronic environment in management and publication of thesis will be developed with basic functions in both languages separately. Then, there will be some proposals upgrading the functionality of the environment. During programming, all the development steps and the significant details will be recorded to guide us to conclusions. Keywords : «Ruby, Ruby on Rails, PHP, Apache, MySQL, Model-View-Controler, Box-Plot» 4 Σύγκριση scripting γλωσσών προγραμματισμού και διερεύνηση της καταλληλότητας τους για εργασίες συντήρησης λογισμικού Πίνακας Περιεχομένων Ευχαριστίες....................................................................................................................9 1. Περιγραφή και Ανάλυση Προβλήματος..................................................................10 1.1 Περιγραφή και Ανάλυση Προβλήματος ...........................................................10 1.1.1 Το γενικό πρόβλημα ...................................................................................10 1.1.2 Το ειδικό πρόβλημα ...................................................................................10 1.2 Αντιμετώπιση του προβλήματος......................................................................11 1.2.1 Τρέχουσα κατάσταση .................................................................................11 1.2.2 Προσέγγιση λύσης......................................................................................11 2. Ανάπτυξη με PHP.....................................................................................................14 2.1 Λογισμικά Ανοικτού Κώδικα (Open Source Code) ............................................14 2.1.1 Τι είναι το Λογισμικό Ανοικτού Κώδικα (Open Source) ; ...........................14 2.1.2 Τα πλεονεκτήματα του Open Source .........................................................14 2.1.3 Τα μειονεκτήματα του Open Source ..........................................................16 2.2 PHP.....................................................................................................................17 2.2.1 Τι είναι η PHP ;............................................................................................17 2.2.2 Τι μπορεί να κάνει η PHP ;..........................................................................18 2.3 HTML..................................................................................................................20 2.3.1 Τι είναι η HTML ;.........................................................................................20 2.3.2 Τι είναι οι ετικέτες της HTML ; ...................................................................20 2.4 APACHE ..............................................................................................................21 2.4.1 Τι είναι ο Apache ; ......................................................................................21 2.4.2 Πως δημιουργήθηκε ο Apache ;.................................................................22 2.4.3 Χαρακτηριστικά του Apache ......................................................................23 2.5 MySQL................................................................................................................24 2.5.1 Τι είναι η MySQL ;.......................................................................................24 2.5.2 Ιστορία της MySQL......................................................................................25 2.6 Λόγοι χρησιμοποίησης της PHP και της MySQL................................................25 2.6.1 Μερικά από τα πλεονεκτήματα της PHP....................................................26 2.6.2 Μερικά από τα πλεονεκτήματα της MySQL...............................................27 3. Ανάπτυξη με RUBY...................................................................................................29 3.1 Ιστορία ...............................................................................................................29 3.1.1 Ετυμολογία του ονόματος "Ruby"..............................................................29 3.1.2 Αρχική δημοσιοποίηση...............................................................................30 5 Σύγκριση scripting γλωσσών προγραμματισμού και διερεύνηση της καταλληλότητας τους για εργασίες συντήρησης λογισμικού 3.1.3 Ruby 1.0 ......................................................................................................30 3.1.4 Ruby on Rails...............................................................................................30 3.1.5 Ruby 1.9.1 ...................................................................................................33 3.2 Φιλοσοφία .........................................................................................................33 3.3 Χαρακτηριστικά .................................................................................................34 3.4 Σημασιολογία ....................................................................................................35 3.5 Σύνταξη ..............................................................................................................36 3.6 Διαφορές στη συμπεριφορά σε σχέση με άλλες γλώσσες ...............................37 3.7 Αλληλεπίδραση..................................................................................................38 3.8 Υλοποιήσεις .......................................................................................................38 3.9 Αποθήκες κώδικα και βιβλιοθήκες ...................................................................39 4. Περιγραφή της Βάσης Δεδομένων..........................................................................40 4.1 Οι πίνακες γενικά...............................................................................................40 4.2 Οι πίνακες αναλυτικά .......................................................................................40 4.3 Η βάση περιγραφικά ........................................................................................43 4.4 Διάγραμμα Οντοτήτων Συσχετίσεων της βάσης δεδομένων............................49 5. Δομή του ιστοτόπου................................................................................................50 5.1 Σύντομη περιγραφή της δομής του ιστοτόπου.................................................50 5.1.1 Κεντρική Σελίδα ..........................................................................................50 5.1.2 Επιλογές Φοιτητή .......................................................................................52 5.1.3 Επιλογές Καθηγητή.....................................................................................54 6. Σύγκριση Scripting Γλωσσών Προγραμματισμού....................................................56 6.1 Συγκριτικά Διαγράμματα...................................................................................56 6.2 Συγκριτικοί Πίνακες ...........................................................................................58 6.3 Συγκριτικοί Αλγόριθμοι .....................................................................................61 6.3.1 Πρόγραμμα “Hallo World” .........................................................................61 6.3.2 Αλγόριθμος “Binnary Trees”.......................................................................62 6.3.3 Αλγόριθμος “Recursive” .............................................................................65 6.3.4 Αλγόριθμος “FANNKUCH” ..........................................................................68