Τεχνολογία Λογισμικού¶
Επίσημο περίγραμμα μαθήματος του ΤΜΗΥΠ (Πανεπιστήμιο Πατρών), όπως δημοσιεύεται στη σελίδα του μαθήματος και στο συνημμένο αρχείο «Περίγραμμα Μαθήματος». Το κείμενο παρατίθεται αυτούσιο, χωρίς τα πρότυπα οδηγιών του εντύπου.
Στόχοι¶
- Με την επιτυχή ολοκλήρωση του μαθήματος ο φοιτητής θα πρέπει να μπορεί να:
- Αναγνωρίζει βασικά μοντέλα της τεχνολογίας λογισμικού, να συνδυάζει διαδικασίες από αυτά και να ενταχθεί σε ομάδες που αναπτύσσουν λογισμικό με μεθοδικό τρόπο.
- Εντοπίζει και αναγνωρίζει βασικούς κινδύνους έργων λογισμικού, υλοποιεί εκτιμήσεις σε έργα μικρής κλίμακας και να διαχειρίζεται έργα λογισμικού.
- Αναλύει τις προδιαγραφές του πελάτη, να σχεδιάσει use cases, να συνθέτει και να υποδιαιρεί τμήματα ενός έργου πληροφορικής και να εκτελεί ανάλυση ευρωστίας.
- Σχεδιάζει το δυναμικό και το στατικό μοντέλο ενός έργου λογισμικού και να μεταβαίνει από το domain model στον κώδικα, χρησιμοποιώντας τα κατάλληλα εργαλεία.
- Χρησιμοποιεί αποθετήρια κώδικα και εκδόσεις κώδικα και να αναπτύσσει λογισμικό σε ομάδες.
- Λειτουργήσει παραγωγικά σε ομάδες εξελικτικής και ευέλικτης ανάπτυξης λογισμικού.
- Επιλέγει τις κατάλληλες διαδικασίες ελέγχου και να σχεδιάζει περιπτώσεις ελέγχου, χρησιμοποιώντας τα κατάλληλα εργαλεία.
- Χρησιμοποιεί τεχνικές αποσφαλμάτωσης και τα αντίστοιχα εργαλεία.
Περιεχόμενο (ύλη)¶
- Από τη συγγραφή κώδικα στην τεχνολογία λογισμικού, ηθική και επαγγελματική ευθύνη, κληροδοτημένα συστήματα.
- Μοντέλα τεχνολογίας λογισμικού, το μοντέλο καταρράκτη, το σπειροειδές, το μοντέλο V&V, εξελικτικά μοντέλα, εργαλεία CASE.
- Διαχείριση έργων λογισμικού, χρονοδιάγραμμα, PERT και Gantt charts, τεχνικές διαχείρισης χρόνου, ανάθεση έργου σε προσωπικό.
- Ανάλυση και διαχείριση κινδύνων, διαχείριση κόστους, εκτίμηση και μοντέλα εκτίμησης.
- Ανάλυση απαιτήσεων λογισμικού, OOAD, περιπτώσεις χρήσης με UML, Domain model και διαγράμματα κλάσεων.
- Σχεδίαση λογισμικού, η μεθοδολογία ICONIX, διαγράμματα ευρωστίας, διαγράμματα ακολουθίας.
- Υλοποίηση και προγραμματισμός, βασικές αρχές OOAD, από δυναμικό στο στατικό μοντέλο και στον κώδικα.
- Υλοποίηση σε ομάδες, αποθετήρια κώδικα και έλεγχος εκδόσεων, επιθεωρήσεις και αναθεωρήσεις κώδικα.
- Επαναληπτικές διαδικασίες ανάπτυξης, βαθμιαία κατασκευή πρωτοτύπων, οπτικός προγραμματισμός, RUP.
- Ευέλικτες διαδικασίες ανάπτυξης, ακραίος προγραμματισμός, προγραμματισμός ανά ζεύγη, timebox, SCRUM, Kanban.
- Επαλήθευση και επικύρωση, έλεγχος μονάδων και συστήματος, έλεγχος αδιαφανούς κουτιού, διαμέριση σε κλάσεις ισοδυναμίας, ανάλυση οριακών τιμών.
- Έλεγχος συγκρότησης, έλεγχος διαφανούς κουτιού, δοκιμή βασικών μονοπατιών, κάλυψη συνθηκών, δοκιμές αντοχής.
- Αποσφαλμάτωση, κατά μέτωπο επίθεση, οπισθοδρόμηση, εξάλειψη του αιτίου, έλεγχος παλινδρόμησης.
Αξιολόγηση¶
Το μάθημα έχει Εργαστηριακό Βαθμό (B-lab) και Βαθμό Εξετάσεων (B-ex). Ο τελικός βαθμός (Β-final) προκύπτει ως:
B-final = B-lab x 50% + B-ex x 50%
Ο Εργαστηριακός Βαθμός (B-lab) προκύπτει από την ομαδική εργασία (project) για την οποία υπάρχει ατομική βαθμολόγηση για κάθε μέλος της ομάδας. Απαραίτητη προϋπόθεση για τη συμμετοχή στις εξετάσεις είναι να έχει ολοκληρωθεί με επιτυχία το project (ομαδική εργασία) ανεξάρτητα του ατομικού βαθμού.
Οι εξετάσεις αφορούν επίλυση προβλημάτων ανάλογων αυτών που διατέθηκαν ως projects, αλλά μικρότερης κλίμακας, γίνονται στην ελληνική γλώσσα, αλλά υπάρχει πρόβλεψη και για τους φοιτητές ERASMUS (Αγγλικά).
Για να ολοκληρώσει ένας φοιτητής με επιτυχία το μάθημα πρέπει να έχει βαθμό εξετάσεων τουλάχιστον πέντε (5) και συνολικό βαθμό τουλάχιστον πέντε (5).
Βιβλιογραφία¶
Βασική βιβλιογραφία
Στους φοιτητές διατίθεται η ελληνική έκδοση του:
- Sommerville, I. (2010). Software engineering. New York: Addison-Wesley.
- Pressman, R. S. (2005). Software engineering: a practitioner's approach. Palgrave Macmillan.
- Wohlin, C., Runeson, P., Höst, M., Ohlsson, M. C., Regnell, B., & Wesslén, A. (2012). Experimentation in software engineering. Springer Science & Business Media.
- Stellman, A., & Greene, J. (2014). Learning agile: Understanding scrum, XP, lean, and kanban. O'Reilly Media, Inc.
- Rosenberg, D. (1999). Use case driven object modeling with UML.
- Rumbaugh, J. (2003). Object-oriented analysis and design (OOAD).
Συναφή επιστημονικά περιοδικά
- ACM Transactions on Software Engineering and Methodology (TOSEM)
- IEEE Transactions on Software Engineering