Μαθησιακά Αποτελέσματα
Στόχος του μαθήματος είναι η εξοικείωση των φοιτητών με τις τεχνολογίες διαδικτυακού προγραμματισμού και κατανόησης των σχεδιαστικών και διαχειριστικών προκλήσεων σύγχρονων διαδικτυακών συστημάτων και εφαρμογών. Καλύπτονται θέματα όπως ο σχεδιασμός και η υλοποίηση RESTful APIs καθώς και η ασφάλεια, η απόδοση, η κλιμάκωση, και ζητήματα επεκτασιμότητας.
Ολοκληρώνοντας επιτυχώς το μάθημα οι φοιτητές θα είναι σε θέση να:
- Σχεδιάζουν και να υλοποιούν RESTful APIs
- Εφαρμόζουν βέλτιστες πρακτικές για το σχεδιασμό, την τήρηση ιστορικού εκδόσεων, την ασφάλεια και την τεκμηρίωση των APIs
- Αναπτύσουν εφαρμογές με Java EE και Spring Framework.
- Αξιοποιούν μεθοδολογίες ανάπτυξης πολυνηματικών εφαρμογών και πρακτικές ταυτοχρονισμού (threads, locks, synchronization).
- Ενσωματώνουν τεχνικές ελέγχου ταυτότητας και εξουσιοδότησης για την ασφάλεια των διαδικτυακών υπηρεσιών (Authentication, Authorization, IAM).
Γενικές Ικανότητες
- Αναζήτηση, ανάλυση και σύνθεση δεδομένων και πληροφοριών, με την χρήση και των απαραίτητων τεχνολογιών
- Προαγωγή της δημιουργικής και επαγωγικής σκέψης
- Λήψη αποφάσεων
- Αυτόνομη εργασία
- Ομαδική εργασία
Περιεχόμενα
- Ανάλυση δεδομένων και τεχνητή νοημοσύνη
- Εισαγωγή στα RESTful APIs (αρχιτεκτονική RESTful, περιορισμοί REST, μέθοδοι HTTP και κωδικοί κατάστασης)
- Σχεδιασμός RESTful APIs (βέλτιστες πρακτικές στο σχεδιασμό API, αναγνώριση πόρων και URIs, HATEOAS (Hypermedia as the Engine of Application State), σελιδοποίηση, φιλτράρισμα και ταξινόμηση)
- Υλοποίηση RESTful υπηρεσιών, χρήση πλαισίων (π.χ. Spring Boot – Java, Flask – Python, Ktor – Kotlin), μορφές σειριοποίησης δεδομένων (JSON, XML)
- Διαχείριση σφαλμάτων και επικύρωση (στρατηγικές διαχείρισης σφαλμάτων, χρήση κωδικών κατάστασης HTTP αποτελεσματικά, προσαρμοσμένες απαντήσεις σφαλμάτων, τεχνικές επικύρωσης δεδομένων εισόδου)
- Ασφάλεια στα RESTful APIs (βέλτιστες πρακτικές ασφάλειας API, αυθεντικοποίηση και εξουσιοδότηση (OAuth2, JWT), HTTPS και κρυπτογράφηση δεδομένων)
- Τεκμηρίωση και δοκιμή APIs (Χρήση Swagger/OpenAPI για τεκμηρίωση, δοκιμή μονάδων και ολοκλήρωσης με εργαλεία όπως Postman, JUnit)
- Υλοποίηση αρχιτεκτονικών προτύπων και μοτίβων σχεδιασμού όπως MVC και MVVM.
- Σχεδιασμός και υλοποίηση GraphQL schemas και υπηρεσιών.
- Επικοινωνία εφαρμογών και συστημάτων μέσω Sockets.
- Βελτιστοποίηση της απόδοσης εφαρμογών εξυπηρετητή μέσω τεχνικών caching, load balancing και άλλων.
Προτεινόμενα Συγγράμματα
- ARMANDO FOX, DAVID PATTERSON (2017), ΤΕΧΝΟΛΟΓΙΑ ΑΝΑΠΤΥΞΗΣ ΛΟΓΙΣΜΙΚΟΥ ΩΣ ΥΠΗΡΕΣΙΑΣ: ΜΙΑ ΕΥΕΛΙΚΤΗ ΠΡΟΣΕΓΓΙΣΗ ΜΕ ΧΡΗΣΗ ΥΠΟΛΟΓΙΣΤΙΚΗΣ ΝΕΦΟΥΣ
- Χρήστος Δουληγέρης, Ρόζα Μαυροπόδη, Εύη Κοπανάκη, Απόστολος Καραλής (2021): Τεχνολογίες και Προγραμματισμός στον Παγκόσμιο Ιστό
- Ι. Κ. ΚΑΒΟΥΡΑΣ, Ι. Ζ. ΜΗΛΗΣ, Α. Α. ΡΟΥΚΟΥΝΑΚΗ, Γ. Β. ΞΥΛΩΜΕΝΟΣ (2011): ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΜΕ JAVA, ΙSBN: 9789609732376
- Sanjay Patni (2017): Pro RESTful APIs, Design, Build and Integrate with REST, JSON, XML and JAX-RS, ISBN: 9781484226650
- Fernando Doglio (2018): REST API Development with Node.js, ISBN: 9781484237151
Πρόσθετη Βιβλιογραφία
Επιπλέον, στον Eύδοξο αναρτώνται σε ηλεκτρονική μορφή άρθρα, οπτικοακουστικό υλικό διαλέξεων και διαδικτυακές διευθύνσεις για χρήσιμες πληροφορίες καθώς και ασκήσεις για την εξάσκηση των φοιτητών/τριών. Παρουσιάζονται μελέτες περίπτωσης, παραδειγματικά προβλήματα και μέθοδοι επίλυσης αυτών.
Μαθησιακά Αποτελέσματα
Το μάθημα έχει σαν κύριο στόχο την κατανόηση από τους φοιτητές του τι είναι ένα Πληροφοριακό Σύστημα (ΠΣ), ποια είναι τα συστατικά του στοιχεία και ποιοι είναι οι κυριότεροι τύποι πληροφοριακών συστημάτων που χρησιμοποιούνται από τους οργανισμούς και τις επιχειρήσεις σήμερα.
Με την επιτυχή ολοκλήρωση του μαθήματος ο φοιτητής / τρια θα είναι σε θέση:
- να κατανοεί τα βασικά στοιχεία των πληροφοριακών συστημάτων καθώς και τις επιχειρηματικές διαδικασίες που υλοποιούνται μέσω των συστημάτων.
- να γνωρίζει τα κύρια χαρακτηριστικά των τρόπων ανάπτυξης των ΠΣ και των δυσκολιών που παρουσιάζονται για την υλοποίησή τους.
- να κατανοεί το συνολικό κύκλο ζωής ανάπτυξης πληροφοριακών συστημάτων.
- να δύναται να υλοποιεί προγράμματα υλοποίησης πληροφοριακών συστημάτων με χρήση τεχνικών και μεθοδολογιών προγραμματισμού, συμπεριλαμβανομένων σύγχρονων εργαλείων code generation, low/no code.
- να ενσωματώνει στη διαδικασία ανάπτυξης σύγχρονες μεθοδολογίες και τεχνικές όπως DevOps, CI/CD.
- να διασφαλίζει την ποιότητα λογισμικού και συστημάτων μεγάλης κλίμακας σε παραγωγικό περιβάλλον.
Γενικές ικανότητες
- Αναζήτηση, ανάλυση και σύνθεση δεδομένων και πληροφοριών, με τη χρήση και των απαραίτητων τεχνολογιών
- Προσαρμογή σε νέες καταστάσεις
- Λήψη αποφάσεων
- Αυτόνομη εργασία
- Εργασία σε διεπιστημονικό περιβάλλον
- Σχεδιασμός και διαχείριση έργων
- Άσκηση κριτικής και αυτοκριτικής
- Προαγωγή της ελεύθερης, δημιουργικής και επαγωγικής σκέψης
Περιεχόμενα
- Εισαγωγή στο γνωστικό πεδίο των Πληροφοριακών Συστημάτων (ΠΣ) και παρουσίαση των βασικών τους εννοιών και των δομικών τους στοιχεία. Οι βασικές αρχές της θεωρίας των συστημάτων, ο κύκλος ζωής ενός Πληροφοριακού Συστήματος και η σχέση ΠΣ-οργανισμός θα εξεταστούν (λογισμικό, υλικό, διαδικασίες και ανθρώπινο δυναμικό).
- Ιδιαίτερη έμφαση θα δοθεί στις επιχειρηματικές διαδικασίες καθώς η αυτοματοποίησή τους μέσω υπολογιστών αποτελεί τον σημαντικότερο λόγο υιοθέτησης ΠΣ από τους οργανισμούς. Μελέτη των επιχειρηματικών διαδικασιών, της μοντελοποίηση και τη βελτίωσή τους.
- Ανάλυση των βασικών κατηγοριών σύγχρονων μεθοδολογιών ανάπτυξης πληροφοριακών συστημάτων (εξελικτικών, ευέλικτων κτλ.) για τους διαφορετικού τύπους έργων και μελέτη των πιο δημοφιλών μεθοδολογιών (AGILE, Waterfall, Spiral, Rapid Application Development – RAD, Rational Unified Process – RUP κ.α,) καθώς και των σχετικών εργαλείων και τεχνικών.
- Προκειμένου να γίνουν πιο κατανοητά τα ανάπτυξης ΠΣ, αναμένεται να χρησιμοποιηθούν πρακτικές μέθοδοι όπως η μέθοδος του κρίσιμου μονοπατιού (critical path method). Στη συνέχεια θα μελετηθούν παράγοντες που επηρεάζουν την υιοθεσία των ΠΣ καθώς και θέματα που σχετίζονται με τις οργανωσιακές αλλαγές που επιφέρει η ανάπτυξη ΠΣ.
- Μελέτη των μεθοδολογιών και τεχνικών DevOps και δημιουργία διαδικασιών συνεχούς ενσωμάτωσης / συνεχούς ολοκλήρωσης (CI/CD), αυτοματοποιημένων ελέγχων και παρακολούθησης λειτουργίας.
- Εφαρμογή διαδικασιών διασφάλισης ποιότητας λογισμικού και λειτουργίας συστημάτων μεγάλης κλίμακας σε παραγωγικό περιβάλλον.
- Παράλληλα θα μελετηθούν οι κοινωνικοοικονομικές επιδράσεις της πληροφορικής και των ΠΣ καθώς επίσης και ο στρατηγικός τους ρόλος.
Προτεινόμενα Συγγράμματα
- Βασιλακόπουλος Γ. & Χρυσικόπουλος Β. (1990): Πληροφοριακά Συστήματα Διοίκησης, Εκδόσεις Σταμούλη Α.Ε.
- David Avison, Guy Fitzgerald, “Αναπτυξη Πληροφοριακών Συστημάτων”, Εκδόσεις Νέων Τεχνολογιών, 2017
- Laudon K.C. & Laudon J.P. (2009): Πληροφοριακά Συστήματα Διοίκησης, 8η αμερικάνικη έκδοση (μεταφρασμένο), Εκδόσεις Κλειδάριθμος.
Συναφή επιστημονικά περιοδικά
- Information Systems Journal, Wiley. https://onlinelibrary.wiley.com/journal/13652575
- Information Systems Frontiers, Springer. https://link.springer.com/journal/10796
- IEEE Transactions on Software Engineering. https://www.computer.org/csdl/journal/ts
Πρόσθετη Βιβλιογραφία
Επιπλέον, στον Eύδοξο αναρτώνται σε ηλεκτρονική μορφή άρθρα, οπτικοακουστικό υλικό διαλέξεων και διαδικτυακές διευθύνσεις για χρήσιμες πληροφορίες καθώς και ασκήσεις για την εξάσκηση των φοιτητών/τριών. Παρουσιάζονται μελέτες περίπτωσης, παραδειγματικά προβλήματα και μέθοδοι επίλυσης αυτών.