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

Υποχρεωτικό Μάθημα Πυρήνα, ΣΤ’ εξάμηνο, 8 μονάδες ECTS

Διδάσκων: Καθηγητής Α΄ βαθμίδας Εμμανουήλ Γιακουμάκης και Διδάσκων βάσει του ΠΔ 407/1980, Δρ. Νικόλαος Διαμαντίδης

URL: https://eclass.aueb.gr/courses/INF138/

Περιεχόμενο

Το αντικείμενο της τεχνολογίας λογισμικού. Διαδικασία παραγωγής λογισμικού, συντελεστές ποιότητας λογισμικού, μοντέλα κύκλου ζωής του λογισμικού. Σχεδιασμός και διοίκηση έργων ανάπτυξης λογισμικού: σχεδιασμός, οργάνωση, στελέχωση, κοστολόγηση. Απαιτήσεις λογισμικού: μοντελοποίηση συστήματος, προδιαγραφές απαιτήσεων, τεκμηρίωση απαιτήσεων, επικύρωση απαιτήσεων. Αρχιτεκτονική σχεδίαση λογισμικού: μέθοδοι σχεδίασης, τεκμηρίωση σχεδίασης, ποιότητα σχεδίου. Λεπτομερής σχεδίαση λογισμικού, διεπαφές χρήσης. Κωδικοποίηση λογισμικού. Έλεγχος προγραμμάτων, έλεγχος συστήματος, παράδοση συστήματος. Συντήρηση λογισμικού, διαχείριση διάταξης λογισμικού, τεκμηρίωση λογισμικού. Αντικειμενοστρεφές λογισμικό: μέθοδοι ανάλυσης / σχεδίασης, γλώσσες μοντελοποίησης με αντικείμενα. Η γλώσσα UML. Περιβάλλοντα ανάπτυξης, λειτουργίας, συντήρησης λογισμικού. Βελτίωση διαδικασίας ανάπτυξης λογισμικού.

Μαθησιακά Αποτελέσματα

Μετά την επιτυχή ολοκλήρωση του μαθήματος, οι φοιτητές θα είναι σε θέση:

  • Να κατανοούν διαδεδομένες διαδικασίες ανάπτυξης λογισμικού συμπεριλαμβανομένου των επαναληπτικών (iterative) και ευέλικτων (agile) διαδικασιών.
  • Να εξάγουν και να τεκμηριώνουν τις απαιτήσεις λογισμικού.
  • Να προβαίνουν στην ανάλυση, μοντελοποίηση και τεκμηρίωση των προβλημάτων λογισμικού.
  • Να κατανοούν βασικές έννοιες της αρχιτεκτονικής λογισμικού και της σχεδίασης λογισμικού με έμφαση στις αντικειμενοστρεφείς μεθόδους.
  • Να συνθέτουν σχεδιαστικές λύσεις, να τις μοντελοποιούν, να τις τεκμηριώνουν και να τις υλοποιούν σε μονάδες λογισμικού.

Προαπαιτούμενα Μαθήματα

Για να εγγραφεί στο μάθημα, ο φοιτητής πρέπει να έχει εξεταστεί επιτυχώς σε προηγούμενο εξάμηνο είτε στο μάθημα «Δομές Δεδομένων» είτε στο μάθημα «Προγραμματισμός Υπολογιστών με JAVA». Όμως, συνιστάται στους φοιτητές να έχουν εξεταστεί επιτυχώς σε προηγούμενο εξάμηνο και στα δύο αυτά μαθήματα καθώς και στο μάθημα «Εισαγωγή στον Προγραμματισμό Υπολογιστών».

Συνιστώμενη Βιβλιογραφία

  • Τεχνολογία Λογισμικού, Ε. Γιακουμάκης, Ν. Διαμαντίδης, Εκδόσεις Unibooks, 2021.
  • Αντικειμενοστρεφής Τεχνολογία Λογισμικού, Μ. Βίρβου, Εκδόσεις Βαρβαρήγου, Αθήνα, 2005.
  • Βασικές αρχές τεχνολογίας λογισμικού, I. Sommerville (μετάφραση από αγγλικό πρωτότυπο), Εκδόσεις Κλειδάριθμος, 2009.
  • Τεχνολογία Λογισμικού: Μια πρακτική προσέγγιση, R. S. Pressman (μετάφραση από αγγλικό πρωτότυπο), Εκδόσεις Τζιόλα, 2012.

Διδακτικές και Μαθησιακές Μέθοδοι

Διαλέξεις (2 διαλέξεις των 2 ωρών εβδομαδιαίως), φροντιστήρια (1 φροντιστήριο των 2 ωρών εβδομαδιαίως), ατομικές και ομαδικές ασκήσεις στο σπίτι.

Μέθοδοι Αξιολόγησης/Βαθμολόγησης

Ο βαθμός προκύπτει από τον βαθμό της γραπτής τελικής εξέτασης σε συνδυασμό με τον βαθμό προαιρετικής ομαδικής εργασίας στο σπίτι (βαρύτητα 40%) και των προαιρετικών ατομικών ασκήσεων στο σπίτι (βαρύτητα 10%).