1. ΜΑΘΗΣΙΑΚΑ ΑΠΟΤΕΛΕΣΜΑΤΑ
Το μάθημα συνιστά στις προηγμένες έννοιες της αντικειμενοστρεφούς τεχνολογίας.
Συγκεκριμένα, το μάθημα επικεντρώνεται στην Αντικειμενοστρεφή τεχνολογία λογισμικού και ιδιαίτερα σε προηγμένες έννοιες αντικ/φών μεθόδων και τεχνικών, όπως είναι οι Ευέλικτες μέθοδοι, ηαξιολόγηση συστημάτων λογισμικούκαι ο έλεγχος.
Με την επιτυχή ολοκλήρωση του μαθήματος ο φοιτητής / τρια θα είναι σε θέση να:
1)
Γνωρίζει τεχνικές, πρότυπα, αρχές και μεθόδους που συντελούν στην επίτευξη ποιοτικής σχεδίασης συστημάτων λογισμικού.
2)
Εφαρμόζει τεχνικές, αρχές και μεθόδους με σκοπό την αξιολόγηση της ποιότητας των συστημάτων λογισμικού
3)
Διακρίνει και
εκτιμά τα μέρη ενός συστήματος που πιθανώς να δημιουργήσουν προβλήματα στο μέλλον, ώστε να αντιμετωπισθούν έγκαιρα
4)
Υπολογίζει με την χρήση μετρικών, προτύπων, ελέγχων και αρχών, την ποιότητας σχεδίασης ενός συστήματος λογισμικού
5)
Διακρίνει τη διαφορά μεταξύ ενός ποιοτικού συστήματος λογισμικού ή συστατικού και ενός που περιέχει προβλήματα σχεδιαστικά και υλοποίησης κώδικα
6)
Δημιουργεί/παράγει τεκμηριωμένες εκθέσεις που αφορούν την ποιότητα ενός συστήματος λογισμικού
7)
Εφαρμόζει/παράγει πρότυπα, ελέγχους και μετρικές λογισμικού με στόχο την επίτευξη το δυνατόν μεγαλύτερου βαθμού ποιότητας σχεδίασης
8)
Εξηγεί την σημασία της ύπαρξης κάθε τεχνικής που συντελεί στην ανάπτυξη ποιοτικών και εύκολα συντηρήσιμων συστημάτων λογισμικού
2. ΠΕΡΙΕΧΟΜΕΝΟ ΜΑΘΗΜΑΤΟΣ
Αρχές σχεδίασης (Design principles).
1. Αρχή της Ενσωμάτωσης (Minimize The Accessibility of Classes and Members)
2. Αρχή της Χαμηλής Σύζευξης
3. Αρχή της Μοναδικής Αρμοδιότητας (SRP – Single Responsibility Principle)
4. Αρχή Ανοικτής-Κλειστής Σχεδίασης (OCP – Open-Closed Principle)
5. Αρχή Υποκατάστασης της Liskov (LSP – Liskov Substitution Principle)
6. Αρχή της Αντιστροφής των Εξαρτήσεων (DIP – Dependency Inversion Principle)
7. Αρχή του Διαχωρισμού των Διασυνδέσεων (ISP – Interface Segregation Principle)
Πρότυπα Σχεδίασης Λογισμικού (Software Design Patterns). Εισαγωγή στα πρότυπα σχεδίασης. Πρότυπα Συμπεριφοράς (Behavioral Patterns). Πρότυπα Δημιουργίας Αντικειμένων (Creational Patterns). Πρότυπα Δομής Αντικειμένων (Structural Patterns)
Εισαγωγή στην έννοια της μέτρησης στην Τεχνολογία Λογισμικού. Μετρικές Εσωτερικής Ποιότητας Λογισμικού (Internal Quality Metrics). Μετρικές συνοχής, σύζευξης, κληρονομικότητας, μεγέθους και πολυπλοκότητας.
Ευρετικοί Κανόνες Σχεδίασης (Design Heuristics). Παρουσίαση των σημαντικότερων ευρετικών κανόνων ποιότητας λογισμικού.
Έλεγχος Λογισμικού (Software Testing). Τεχνικές Ελέγχου Λογισμικού. Περιπτώσεις Ελέγχου (test cases).
Αντίστροφη Μηχανική (Reverse Engineering). Ορισμός. Παραγωγή διαγραμμάτων ακολουθίας και κλάσεων από πηγαίο κώδικα
Αναδόμηση Λογισμικού (Software Refactoring). Ορισμός, πλεονεκτήματα, τύποι αναδόμησης λογισμικού.
Ανοιχτό Λογισμικό (Open Source). Εισαγωγή σε έννοιες του ελεύθερου λογισμικού και λογισμικού ανοιχτού κώδικα.
Ευέλικτες μέθοδοι. Αρχές, γνωρίσματα. Μέθοδος SCRUM.
3. ΔΙΔΑΚΤΙΚΕΣ και ΜΑΘΗΣΙΑΚΕΣ ΜΕΘΟΔΟΙ - ΑΞΙΟΛΟΓΗΣΗ
ΤΡΟΠΟΣ ΠΑΡΑΔΟΣΗΣ
Στην τάξη
ΧΡΗΣΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ
Οι διαλέξεις γίνονται με την χρήση διαφανειών σε video προβολέα. Χρησιμοποιούνται επίσης εργαλεία, όπως, το VisualParadigm, JUnit, NetBeans
Υποστήριξη της μαθησιακής διαδικασίας μέσω της ηλεκτρονικής πλατφόρμας Moodle.
ΟΡΓΑΝΩΣΗ ΔΙΔΑΣΚΑΛΙΑΣ
Δραστηριότητα |
Φόρτος Εργασίας Εξαμήνου |
Διαλέξεις |
13 x 3= 39 |
Πρακτική εξάσκηση στο σπίτι |
25 |
Ασκήσεις πράξης |
13 x2 = 26 |
Αυτοτελής μελέτη |
60 |
Σύνολο Μαθήματος (25 ώρες φόρτου εργασίας ανά πιστωτική μονάδα) |
150 |
ΑΞΙΟΛΟΓΗΣΗ ΦΟΙΤΗΤΩΝ
Γραπτή τελική εξέταση (100%) στο θεωρητικό μέρος του μαθήματος που περιλαμβάνει:
-Θέματα που αφορούν τις έννοιες του μαθήματος
- Ασκήσεις που αφορούν στην εφαρμογή της μεθοδολογίας
Το ως άνω σχήμα αξιολόγησης στο θεωρητικό και στο εργαστηριακό μέρος του μαθήματος γνωστοποιείται στους ενδιαφερόμενους φοιτητές (α) μέσω της ιστοσελίδας του τμήματος, (β) μέσω των σελίδων του μαθήματος στην ηλεκτρονική πλατφόρμα Moodle, και (γ) με ανακοινώσεις στη διάρκεια των πρώτων διαλέξεων και συναντήσεων στο εργαστήριο κατά την έναρξη του κάθε ενός ακαδημαϊκού εξαμήνου.
4. ΣΥΝΙΣΤΩΜΕΝΗ-ΒΙΒΛΙΟΓΡΑΦΙΑ
α) Ελληνική
- Τεχνολογία Λογισμικού, Μ. Γιακουμάκης, Ν. Διαμαντίδης, εκδ. Αθ. Σταμούλης, 2009
- Αντικειμενοστρεφής Σχεδίαση: UML, Αρχές, Πρότυπα και Ευρετικοί Κανόνες, Α. Χατζηγεωργίου, Εκδ. Κλειδάριθμος,
β) Διεθνής
- Design Patterns: Elements of Reusable Object-Oriented Software, by Erich Gamma, Ralph Johnson, John Vlissides, Richard Helm, Addison-Wesley Professional, 1994
- Object-Oriented Software Engineering: Practical Software Development using UML and Java, Second Edition, Timothy C. Lethbridge and Robert Laganière, McGraw Hill, 2001
- Applying UML and Patterns, 3rd Ed, C. Larman, 2007
- Object-Oriented Design Heuristics, A.Riel, Addison-Wesley Professional, 1996