Τεχνολογία Λογισμικού [open] (321-4002)
Γιάννης Χαραλαμπίδης
Εισαγωγή στην τεχνολογία λογισμικού. Μοντέλα ανάπτυξης λογισμικού. Κύκλος ζωής λογισμικού (φάσεις, διαδικασία ανάπτυξης, μοντέλα κύκλου ζωής). Απαιτήσεις λογισμικού, στάδια προσδιορισμού απαιτήσεων. Ανάλυση απαιτήσεων λογισμικού (εκμαίευση απαιτήσεων, μοντελοποίηση και προτυποποίηση, δομημένη ανάλυση, αντικειμενοστραφής ανάλυση, πρότυπα προδιαγραφής απαιτήσεων). Σχεδίαση λογισμικού (σχέδιο λογισμικού, αποτελεσματική τμηματική σχεδίαση, δομημένη σχεδίαση, αντικειμενοστραφής σχεδίαση, πρότυπα προδιαγραφής σχεδίασης). Κωδικοποίηση και τεκμηρίωση λογισμικού (αρχές κωδικοποίησης, επιλογή αλγοριθμικών δομών, εσωτερική και εξωτερική τεκμηρίωση κώδικα, πρότυπα τεκμηρίωσης). Έλεγχος λογισμικού (στόχοι, σχεδίαση περιπτώσεων δοκιμής, δοκιμασία μονάδων, ολοκλήρωσης, επικύρωσης και συστήματος, δοκιμασία αντικειμενοστραφούς λογισμικού, τεχνικές αποσφαλμάτωσης), εργαλεία ελέγχου, εκτίμηση ποιότητας λογισμικού. Διοίκηση έργου, κοστολόγηση, εξασφάλιση ποιότητας, διαχείριση σχηματισμών, περιβάλλοντα ανάπτυξης, πρότυπα. Ειδικά, σύγχρονα μοντέλα ευέλικτου προγραμματισμού και ανάπτυξη πρωτοτύπου.
LessΕισαγωγή στην τεχνολογία λογισμικού. Μοντέλα ανάπτυξης λογισμικού. Κύκλος ζωής λογισμικού (φάσεις, διαδικασία ανάπτυξης, μοντέλα κύκλου ζωής). Απαιτήσεις λογισμικού, στάδια προσδιορισμού απαιτήσεων. Ανάλυση απαιτήσεων λογισμικού (εκμαίευση απαιτήσεων, μοντελοποίηση και προτυποποίηση, δομημένη ανάλυση, αντικειμενοστραφής ανάλυση, πρότυπα προδιαγραφής απαιτήσεων). Σχεδίαση λογισμικού (σχέδιο λογισμικού, αποτελεσματική τμηματική σχεδίαση, δομημένη σχεδίαση, αντικειμενοστραφής σχεδίαση, πρότυπα προδιαγραφής σχεδίασης). Κωδικοποίηση και τεκμηρίωση λογισμικού (αρχές κωδικοποίησης, επιλογή αλγοριθμικών δομών, εσωτερική και εξωτερική τεκμηρίωση κώδικα, πρότυπα τεκμηρίωσης). Έλεγχος λογισμικού (στόχοι, σχεδίαση περιπτώσεων δοκιμής, δοκιμασία μονάδων, ολοκλήρωσης, επικύρωσης και συστήματος, δοκιμασία αντικειμενοστραφούς λογισμικού, τεχνικές αποσφαλμάτωσης), εργαλεία ελέγχου, εκτίμηση ποιότητας λογισμικού. Διοίκηση έργου, κοστολόγηση, εξασφάλιση ποιότητας, διαχείριση σχηματισμών, περιβάλλοντα ανά
Εισαγωγή στην τεχνολογία λογισμικού. Μοντέλα ανάπτυξης λογισμικού. Κύκλος ζωής λογισμικού (φάσεις, διαδικασία ανάπτυξης, μοντέλα κύκλου ζωής). Απαιτήσεις λογισμικού, στάδια προσδιορισμού απαιτήσεων. Ανάλυση απαιτήσεων λογισμικού (εκμαίευση απαιτήσεων, μοντελοποίηση και προτυποποίηση, δομημένη ανάλυση, αντικειμενοστραφής ανάλυση, πρότυπα προδιαγραφής απαιτήσεων). Σχεδίαση λογισμικού (σχέδιο λογισμικού, αποτελεσματική τμηματική σχεδίαση, δομημένη σχεδίαση, αντικειμενοστραφής σχεδίαση, πρότυπα προδιαγραφής σχεδίασης). Κωδικοποίηση και τεκμηρίωση λογισμικού (αρχές κωδικοποίησης, επιλογή αλγοριθμικών δομών, εσωτερική και εξωτερική τεκμηρίωση κώδικα, πρότυπα τεκμηρίωσης). Έλεγχος λογισμικού (στόχοι, σχεδίαση περιπτώσεων δοκιμής, δοκιμασία μονάδων, ολοκλήρωσης, επικύρωσης και συστήματος, δοκιμασία αντικειμενοστραφούς λογισμικού, τεχνικές αποσφαλμάτωσης), εργαλεία ελέγχου, εκτίμηση ποιότητας λογισμικού. Διοίκηση έργου, κοστολόγηση, εξασφάλιση ποιότητας, διαχείριση σχηματισμών, περιβάλλοντα ανά
Syllabus
Περιεχόμενο μαθήματος
Εισαγωγή στην τεχνολογία λογισμικού. Μοντέλα ανάπτυξης λογισμικού. Κύκλος ζωής λογισμικού (φάσεις, διαδικασία ανάπτυξης, μοντέλα κύκλου ζωής). Απαιτήσεις λογισμικού, στάδια προσδιορισμού απαιτήσεων. Ανάλυση απαιτήσεων λογισμικού (εκμαίευση απαιτήσεων, μοντελοποίηση και προτυποποίηση, δομημένη ανάλυση, αντικειμενοστραφής ανάλυση, πρότυπα προδιαγραφής απαιτήσεων). Σχεδίαση λογισμικού (σχέδιο λογισμικού, αποτελεσματική τμηματική σχεδίαση, δομημένη σχεδίαση, αντικειμενοστραφής σχεδίαση, πρότυπα προδιαγραφής σχεδίασης). Κωδικοποίηση και τεκμηρίωση λογισμικού (αρχές κωδικοποίησης, επιλογή αλγοριθμικών δομών, εσωτερική και εξωτερική τεκμηρίωση κώδικα, πρότυπα τεκμηρίωσης). Έλεγχος λογισμικού (στόχοι, σχεδίαση περιπτώσεων δοκιμής, δοκιμασία μονάδων, ολοκλήρωσης, επικύρωσης και συστήματος, δοκιμασία αντικειμενοστραφούς λογισμικού, τεχνικές αποσφαλμάτωσης), εργαλεία ελέγχου, εκτίμηση ποιότητας λογισμικού. Διοίκηση έργου, κοστολόγηση, εξασφάλιση ποιότητας, διαχείριση σχηματισμών, περιβάλλοντα ανάπτυξης, πρότυπα. Ειδικά, σύγχρονα μοντέλα ευέλικτου προγραμματισμού και ανάπτυξη πρωτοτύπου.
Μαθησιακοί στόχοι
Γνώση και εργαστηριακή εμπειρία σε μοντέλα ανάπτυξης λογισμικού, ανάλυση απαιτήσεων και σχεδιασμό πληροφοριακών συστημάτων. Μέσα από την ανάπτυξη πρωτότυπης εφαρμογής, οι φοιτητές αποκτούν εμπειρία στη διοίκηση μικρών ομάδων ανάπτυξης και ελέγχου λογισμικού.
Βιβλιογραφία
1. IEEE Software Engineering Standards, IEEE publications, 1998.
2. Android Development Toolkit, Google Corporation, 2012.
3. Microsoft Solutions Framework 4.0, Microsoft Corporation, 2011.
Μέθοδοι διδασκαλίας
Δια ζώσης διδασκαλία.
Μέθοδοι αξιολόγησης
Εργασίες, Τελική γραπτή εξέταση.
Προαπαιτούμενα
Γνώση Αρχών Προγραμματισμού, γνώση Γλώσσας Προγραμματισμού (C++, Java, Pascal), χρήση Η/Υ (Σχεδίαση, Επεξεργασία Κειμένου), κριτική και συνθετική Ικανότητα.
Διδάσκοντες
Ιωάννης Χαραλαμπίδης
Σύνδεσμος σε σύντομο βιογραφικό σημείωμα:
http://www.charalabidis.gr/
Ομάδα στόχος
Προπτυχιακοί φοιτητές τμήματος ΜΠΕΣ
Προτεινόμενα συγγράμματα
1. Ian Sommerville: “Software Engineering”, Pearson Education, 2007.
2. Γιακουμάκης Εμμανουήλ, Διαμαντίδης Νικόλαος: “Τεχνολογία Λογισμικού”, ΕΚΔΟΣΕΙΣ ΣΤΑΜΟΥΛΗ, 2010.
Εισαγωγή στην τεχνολογία λογισμικού. Μοντέλα ανάπτυξης λογισμικού. Κύκλος ζωής λογισμικού (φάσεις, διαδικασία ανάπτυξης, μοντέλα κύκλου ζωής). Απαιτήσεις λογισμικού, στάδια προσδιορισμού απαιτήσεων. Ανάλυση απαιτήσεων λογισμικού (εκμαίευση απαιτήσεων, μοντελοποίηση και προτυποποίηση, δομημένη ανάλυση, αντικειμενοστραφής ανάλυση, πρότυπα προδιαγραφής απαιτήσεων). Σχεδίαση λογισμικού (σχέδιο λογισμικού, αποτελεσματική τμηματική σχεδίαση, δομημένη σχεδίαση, αντικειμενοστραφής σχεδίαση, πρότυπα προδιαγραφής σχεδίασης). Κωδικοποίηση και τεκμηρίωση λογισμικού (αρχές κωδικοποίησης, επιλογή αλγοριθμικών δομών, εσωτερική και εξωτερική τεκμηρίωση κώδικα, πρότυπα τεκμηρίωσης). Έλεγχος λογισμικού (στόχοι, σχεδίαση περιπτώσεων δοκιμής, δοκιμασία μονάδων, ολοκλήρωσης, επικύρωσης και συστήματος, δοκιμασία αντικειμενοστραφούς λογισμικού, τεχνικές αποσφαλμάτωσης), εργαλεία ελέγχου, εκτίμηση ποιότητας λογισμικού. Διοίκηση έργου, κοστολόγηση, εξασφάλιση ποιότητας, διαχείριση σχηματισμών, περιβάλλοντα ανάπτυξης, πρότυπα. Ειδικά, σύγχρονα μοντέλα ευέλικτου προγραμματισμού και ανάπτυξη πρωτοτύπου.
Γνώση και εργαστηριακή εμπειρία σε μοντέλα ανάπτυξης λογισμικού, ανάλυση απαιτήσεων και σχεδιασμό πληροφοριακών συστημάτων. Μέσα από την ανάπτυξη πρωτότυπης εφαρμογής, οι φοιτητές αποκτούν εμπειρία στη διοίκηση μικρών ομάδων ανάπτυξης και ελέγχου λογισμικού.
1. IEEE Software Engineering Standards, IEEE publications, 1998.
2. Android Development Toolkit, Google Corporation, 2012.
3. Microsoft Solutions Framework 4.0, Microsoft Corporation, 2011.
Δια ζώσης διδασκαλία.
Εργασίες, Τελική γραπτή εξέταση.
Γνώση Αρχών Προγραμματισμού, γνώση Γλώσσας Προγραμματισμού (C++, Java, Pascal), χρήση Η/Υ (Σχεδίαση, Επεξεργασία Κειμένου), κριτική και συνθετική Ικανότητα.
Ιωάννης Χαραλαμπίδης
Σύνδεσμος σε σύντομο βιογραφικό σημείωμα:
http://www.charalabidis.gr/
Προπτυχιακοί φοιτητές τμήματος ΜΠΕΣ
1. Ian Sommerville: “Software Engineering”, Pearson Education, 2007.
2. Γιακουμάκης Εμμανουήλ, Διαμαντίδης Νικόλαος: “Τεχνολογία Λογισμικού”, ΕΚΔΟΣΕΙΣ ΣΤΑΜΟΥΛΗ, 2010.
Αναφορά στο λογισμικό και την τεχνολογία λογισμικού. Εισαγωγή στις έννοιες και κατανόηση των βασικών αρχών. H γενική μεθοδολογία ανάπτυξης λογισμικού. Από την ανάπτυξη στην τεχνολογία λογισμικού. Ανάλυση των ενοτήτων του μαθήματος και του έργου ανάπτυξης πρωτότυπων εφαρμογών στα πλαίσια του εργαστηρίου.
Η Τεχνολογία λογισμικού και οι διαφορές της με την επιστήμη των υπολογιστών. Ανάλυση την έννοιας του λογισμικού, πώς αναπτύσσεται και ποια είναι τα γνωρίσματα που καθιστούν το λογισμικό καλό. Βασικά στάδια του κύκλου ζωής λογισμικού. Εργαλεία computer-aided software engineering.
Μοντέλα παραγωγής του λογισμικού και πώς αυτά εφαρμόζονται. Περιγραφή των Επαναληπτικών διαδικασιών, των Δραστηριοτήτων διαδικασιών, της Ορθολογικής Ενοποιημένης Διαδικασίας (ΟΕΔ) και πώς εφαρμόζεται η Τεχνολογία λογισμικού με τη βοήθεια ηλεκτρονικών υπολογιστών.
Δραστηριότητες που αφορούν τη διαχείριση και την ανάπτυξη έργων λογισμικού. Πώς γίνεται ο σχεδιασμός ενός έργου, πώς χρονοπρογραμματίζονται οι διαδικασίες και διεργασίες και πώς γίνεται ουσιαστική διαχείριση κινδύνων και αβεβαιότητας. Διάγραμμα GANTT, διάγραμμα PERT, διαγράμματα ανάθεσης εργασιών σε μέλη της ομάδας εργασίας. Πίνακας ανάλυσης ρίσκου στην ανάπτυξη λογισμικού.
Εμβάθυνση στις έννοιες των λειτουργικών και μη λειτουργικών απαιτήσεων. Τι αφορούν οι απαιτήσεις χρήστη και οι απαιτήσεις συστήματος και πώς διαμορφώνονται οι προδιαγραφές διασύνδεσης και το έγγραφο των απαιτήσεων λογισμικού. Λίστα απαιτήσεων λογισμικού. Πρότυπο IEEE Software Requirements Specficiation.
Μοντέλα που αφορούν τα συστήματα και έχουν να κάνουν με το θεματικό πλαίσιο, τη συμπεριφορά, τα δεδομένα και τα αντικείμενα. Τα 10 βασικά διαγράμματα για την περιγραφή του συστήματος και του λογισμικού. Τα εργαστήρια εργαλείων CASE (upper & lower CASE) και η λειτουργικότητά τους.
Αναφορά στον αρχιτεκτονικό σχεδιασμό και τα επιμέρους ζητήματα. Αποφάσεις που αφορούν τον αρχιτεκτονικό σχεδιασμό και την οργάνωση συστημάτων. Επεξήγηση του στυλ αποδόμησης σε υπομονάδες, του στυλ ελέγχου και των αρχιτεκτονικών αναφοράς. Παρουσίαση του IEEE Standard for Software Design Descriptions.
Σχεδιασμός με κέντρο το αντικείμενο. Αντικείμενα και κλάσεις αντικειμένων, διαδικασίες αντικειμενοστρεφούς σχεδιασμού λογισμικού και πώς εξελίσσεται ο σχεδιασμός. Προβλήματα και λύσεις στον αντικειμενοστρεφή σχεδιασμό και προγραμματισμό. Τα μοντέλα περιγραφής και ανάλυσης στην αντικειμενοστρεφή μεθοδολογία ανάλυσης και σχεδίασης (OOA/OOD).
Διεπαφή χρηστών με τα συστήματα και τα ζητήματα που προκύπτουν. Διαδικασίες σχεδιασμού διασυνδέσεων χρήστη και ανάλυση χρηστών. Κατασκευή πρωτοτύπων διασύνδεσης χρήστη και αξιολόγηση της διασύνδεσης με το σύστημα.
Μέθοδοι ταχείας ανάπτυξης λογισμικού. Ευέλικτες μέθοδοι και ακραίος προγραμματισμός για την ταχύτερη ανάπτυξη εφαρμογών λογισμικού και την κατασκευή πρωτοτύπων λογισμικού. Agile development. Case study: The Microsoft Software Development Method (OSF).
Δοκιμές συστήματος, δοκιμές συστατικών στοιχείων, σχεδιασμός δοκιμαστικών περιπτώσεων, αυτοματοποίηση δοκιμών.
Οι υπηρεσίες ως επαναχρησιμοποιήσιμα συστατικά στοιχεία, τεχνολογία υπηρεσιών, υπηρεσιοκεντρική ανάπτυξη λογισμικού.
Παραγωγικότητα λογισμικού, τεχνικές εκτίμησης, αλγοριθμική μοντελοποίηση κόστους, διάρκεια και στελέχωση έργων.
Περιλαμβάνει δείγματα διαλέξεων από εργαστήριο που αφορά το συγκεκριμένο μάθημα.
Open Academic Course
Num. of Visits : 5987
Num. of Hits : 31354