Τεχνολογία Λογισμικού
Γεώργιος Κακαρόντζας
Αναπληρωτής Καθηγητής
Μαθησιακά Αποτελέσματα
Το μάθημα αποτελεί μια εισαγωγή στις τεχνικές και τη μεθοδολογία σχεδίασης, ανάπτυξης, υλοποίησης και εγκατάστασης μεγάλων έργων λογισμικού καθώς και της διαχείρισής τους. Στο πλαίσιο του μαθήματος θα παρουσιαστούν οι τεχνικές και οι μεθοδολογίες που σχετίζονται με τον κύκλο ζωής του λογισμικού, την ανάλυση απαιτήσεων και την σχεδίαση λογισμικού, τον έλεγχο αξιοπιστίας και την εγκατάσταση προϊόντων λογισμικού.
Με την επιτυχή ολοκλήρωση του μαθήματος οι φοιτητές/τριες θα είναι σε θέση να:
- Ονομάσουν τις τέσσερις φάσεις μιας τυπικής μεθοδολογίας ανάπτυξης λογισμικού και τις δραστηριότητες που λαμβάνουν χώρα σε κάθε μία από αυτές.
- Αναλύσουν τις απαιτήσεις έργων λογισμικού με δεκάδες περιπτώσεις χρήσης.
- Σχεδιάσουν αντικειμενοστραφή συστήματα λογισμικού με εκατοντάδες κλάσεις και δεκάδες πακέτα.
- Απεικονίσουν την στατική και δυναμική συμπεριφορά συστημάτων λογισμικού με τη UML με εκατοντάδες κλάσεις και δεκάδες πακέτα.
- Συμμετέχουν ως μέλη πολυμελών (>10) ομάδων σε διεργασίες ανάπτυξης αντικειμενοστραφών συστημάτων λογισμικού.
- Εφαρμόσουν και τα 23 σχεδιαστικά πρότυπα (Design patterns).
- Επεξηγήσουν τα χαρακτηριστικά των ευέλικτων μεθοδολογιών ανάπτυξης λογισμικού (agile methods).
- Χρησιμοποιήσουν τουλάχιστον δύο σύγχρονα περιβάλλοντα ανάπτυξης προγραμμάτων (IDEs).
- Διοικήσουν έργα λογισμικού με πολυμελείς ομάδες (>10 ατόμων).
- Εκτιμήσουν το κόστος και τον χρόνο περάτωσης μεγάλων έργων λογισμικού με εκατοντάδες κλάσεις και δεκάδες πακέτα.
Ενδεικτικό Περιεχόμενο Μαθήματος
- Εισαγωγή στην Τεχνολογία Λογισμικού.
- Ανάλυση απαιτήσεων λογισμικού.
- Αντικειμενοστραφή συστήματα λογισμικού.
- Απεικόνιση της στατικής και δυναμικής συμπεριφοράς συστημάτων λογισμικού με τη UML.
- Διεργασίες ανάπτυξης αντικειμενοστραφών συστημάτων λογισμικού.
- Σχεδιαστικά πρότυπα (Design patterns).
- Ευέλικτες μεθοδολογίες ανάπτυξης λογισμικού (agile methods).
- Σύγχρονα περιβάλλοντα ανάπτυξης προγραμμάτων
- Οργάνωση και διοίκηση έργων λογισμικού, μετρικές ποιότητας και πολυπλοκότητας
- Εκτίμηση κόστους και χρόνου.