-

Μηχανική Λογισμικού Ι

  • Κωδικός: 5502
  • Εξάμηνο: Εξαμ. Ε
  • Τύπος: Μάθημα Επιστημονικής Περιοχής (ΜΕΠ)
  • Κατηγορία: Μάθημα Ειδικής Υποδομής (ΜΕΥ)
  • Είδος: Υποχρεωτικό (Υ)

1. ΜΑΘΗΣΙΑΚΑ ΑΠΟΤΕΛΕΣΜΑΤΑ

Η Μηχανική Λογισμικού πραγματεύεται την διαδικασία ανάπτυξης και συντήρησης συστημάτων λογισμικού με σκοπό αυτά να συμπεριφέρονται αξιόπιστα και αποτελεσματικά, να είναι οικονομικά στην ανάπτυξη και συντήρησή τους και να ικανοποιούν τις απαιτήσεις που έχουν οριστεί από τους πελάτες τους.

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

Με την επιτυχή ολοκλήρωση του μαθήματος ο φοιτητής / τρια θα είναι σε θέση να:
1) Γνωρίζει τα μέρη που συνθέτουν (διαγράμματα σχεδίασης, κανόνες, δραστηριότητες, τεχνικές, κλπ) την μεθοδολογία της Ενοποιημένης Προσέγγισης (RationalUnifiedProcess)
2) Εφαρμόζει τη μεθοδολογία της Ενοποιημένης Προσέγγισης (RationalUnifiedProcess) για την ανάπτυξη συστημάτων λογισμικού
3) Διακρίνει και εκτιμά τους πόρους και το ανθρώπινο δυναμικό που θα απαιτηθεί για την ολοκληρωμένη ανάπτυξη συστημάτων λογισμικού
4) Περιγράφει το σύνολο των δραστηριοτήτων, κανόνων και τεχνικών που περιλαμβάνει η ανάπτυξη ενός αντικειμενοστρεφούς συστήματος
5) Υπολογίζει τον χρόνο που απαιτείται για την ολοκλήρωση ενός συστήματος λογισμικού, εφαρμόζοντας την τεχνική‘Υπολογισμός Κόστους βάσει Περιπτώσεων χρήσης’ (UseCaseCostEstimation)
6) Διακρίνει τη διαφορά μεταξύ του διαδικαστικού (procedural) τύπου ανάπτυξης ενός συστήματος λογισμικού και αντικειμενοστρεφούς (object-oriented)
7) Δημιουργεί/παράγει ένα ολοκληρωμένο, λειτουργικό και τεκμηριωμένο σύστημα λογισμικού, εφαρμόζοντας αποδεδειγμένα δοκιμασμένες μεθόδους και τεχνικές που συντελούν στην υλοποίηση ποιοτικών συστημάτων.
8) Εφαρμόζει/παράγει συστατικά (components) λογισμικού με στόχο την επίτευξη το δυνατόν μεγαλύτερου βαθμού επαναχρησιμοποίησης
9) Εξηγεί την σημασία της ύπαρξης και της χρήσης κάθε διαγράμματος, δραστηριότητας και τεχνικής που συντελεί στην ανάπτυξη ποιοτικών και εύκολα συντηρήσιμων συστημάτων λογισμικού

2. ΠΕΡΙΕΧΟΜΕΝΟ ΜΑΘΗΜΑΤΟΣ

Εισαγωγικές έννοιες

    • Πολυπλοκότητα
    • Αντικειμενοστρεφής Τεχνολογία
    • Ενοποιημένη γλώσσα μοντελοποίησης – UML (Unified Modeling Language)
    • ΕνοποιημένηΔιεργασία – RUP (Rational Unified Process)
    • Μοντέλα Ανάπτυξης λογισμικού

 

Ανάλυση

    • Τεχνικές εξαγωγής (elicitation), καταγραφής (specification) και επικύρωσης των απαιτήσεων (validation).
      Εκτίμηση έργου με σημεία περιπτώσεων χρήσης
    • Περιπτώσεις Χρήσης (Use Case). Ορισμός, διάγραμμα περιπτώσεων χρήσης (Use Case Diagram), συσχετίσεις.
    • Πρωτοτυποποίηση Λογισμικού (Software Prototyping). Είδη προτυποποίησης λογισμικού. Δημιουργία διεπαφών χρήστη.
    • Μοντέλο Περιοχή προβλήματος ή Εννοιολογικό Μοντέλο (Conceptualmodel). Εξαγωγή εννοιολογικών κλάσεων, πολλαπλότητες σχέσεων, συσχετίσεις.

 

Σχεδίαση

    • Διάγραμμα Δραστηριοτήτων (ActivityDiagram). Εισαγωγή στα δυναμικά διαγράμματα. Συμβολισμοί και σχέσεις.
    • Διάγραμμα Ακολουθίας – Διάγραμμα Ακολουθίας Συστήματος (SequenceDiagrams).
    • Διάγραμμα Συνεργασίαςή Επικοινωνίας (Collaborationή Communication).
    • Πρότυπαανάθεσηςαρμοδιοτήτων GRASP (General Responsibility Assignment Patterns).
    • Διάγραμμα Κλάσεων (ClassDiagram). Συμβολισμοί και συσχετίσεις στο διάγραμμα κλάσεων.
    • Διάγραμμα Καταστάσεων (StateDiagram). Εμβάθυνση στα δυναμικά διαγράμματα.
    • Διαγράμματα Πακέτων, Συστατικών και Διάταξης.

 

Υλοποίηση

    • Υλοποίηση της σχεδίασης με την αντικειμενοστρεφή γλώσσα προγρ/μού Java.

 

Συντήρηση

    • Τεχνικές συντήρησης ενός συνεχώς εξελισσόμενου συστήματος λογισμικού

 

Επαναχρησιμοποίηση

    • Σχεδίαση με γνώμονα την επαναχρησιμοποίηση μελών του συστήματος, αλλά και ένταξη σε ένα σύστημα λογισμικού έτοιμων συστατικών λογισμικού

 

3. ΔΙΔΑΚΤΙΚΕΣ και ΜΑΘΗΣΙΑΚΕΣ ΜΕΘΟΔΟΙ – ΑΞΙΟΛΟΓΗΣΗ

ΤΡΟΠΟΣ ΠΑΡΑΔΟΣΗΣ

Στην τάξη και στο εργαστήριο

ΧΡΗΣΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ

Οι διαλέξεις γίνονται με την χρήση διαφανειών σε video προβολέα.
Στα εργαστήρια χρησιμοποιούνται εργαλεία: όπως το VisualParadigm, MSproject, NetBeans
Υποστήριξη της μαθησιακής διαδικασίας μέσω της ηλεκτρονικής πλατφόρμας Moodle.

ΟΡΓΑΝΩΣΗ ΔΙΔΑΣΚΑΛΙΑΣ

σκήσεις

Δραστηριότητα Φόρτος Εργασίας Εξαμήνου
Διαλέξεις 13 x 3= 39
Πρακτική εξάσκηση στο σπίτι 13 x 2= 26
Ασκήσεις στο εργαστήριο 13 x 2 = 26
Επικοινωνία/συνεργασία 8
Αυτοτελής μελέτη 18 x 4.5= 81
Σύνολο Μαθήματος (30 ώρες φόρτου εργασίας ανά πιστωτική μονάδα) 180
ΑΞΙΟΛΟΓΗΣΗ ΦΟΙΤΗΤΩΝ

Ι. Γραπτή τελική εξέταση (50%) στο θεωρητικό μέρος του μαθήματος που περιλαμβάνει:
-Θέματα που αφορούν τις έννοιες του μαθήματος
– Ασκήσεις που αφορούν στην εφαρμογή της μεθοδολογίας

ΙΙ. Εξάσκηση στο εργαστήριο (50%)
– Ασκήσεις για πρακτική εξάσκηση, σε εβδομαδιαία βάση
– Τελική εξέταση στο εργαστηριακό μέρος του

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

4. ΣΥΝΙΣΤΩΜΕΝΗ-ΒΙΒΛΙΟΓΡΑΦΙΑ

α) Ελληνική

    • Τεχνολογία Λογισμικού, Μ. Γιακουμάκης, Ν. Διαμαντίδης, εκδ. Αθ. Σταμούλης, 2009
    • Ανάλυση και σχεδιασμός συστημάτων με τη UML 2.0, 2010, A. Dennis, B. Wixom, D. Tegarden, Εκδ. Κλειδάριθμος
    • ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ, S.L. Pflegger, εκδ. Κλειδάριθμος, 2003

 

β) Διεθνής

    • Object-Oriented Software Engineering: Practical Software Development using UML and Java, Second Edition, Timothy C. Lethbridge and Robert Laganière, McGraw Hill, 2001
    • Software Engineering, 8η έκδοση, Sommerville, 2007
    • Object Oriented Analysis and Design with Applications, G. Booch, 3rd edition, 2008

Πρόσφατες Ανακοινώσεις

4 Οκτ 2019
Διδασκαλία μαθημάτων από Μεταδιδάκτορες (ΕΣΠΑ)
4 Οκτ 2019
ΤΡΟΠΟΠΟΙΗΤΙΚΕΣ δηλώσεις μαθημάτων στο πληροφοριακό σύστημα ΠΥΘΙΑ 2019-20Χ
4 Οκτ 2019
Δηλώσεις τμημάτων εργαστηρίων 2019-20Χ
3 Οκτ 2019
ΠΡΟΘΕΣΜΙΕΣ ΚΑΙ ΔΙΚΑΙΟΛΟΓΗΤΙΚΑ ΣΙΤΙΣΗΣ ΑΚΑΔ.ΕΤΟΥΣ 2019-2020
3 Οκτ 2019
Οργάνωση Πινάκων Ανακοινώσεων
2 Οκτ 2019
ΔΗΛΩΣΕΙΣ ΜΑΘΗΜΑΤΩΝ ΚΑΤΕΥΘΥΝΣΕΩΝ – ΠΡΩΗΝ ΤΜ. ΠΛΗΡΟΦΟΡΙΚΗΣ
2 Οκτ 2019
Θέση υποψήφιου διδάκτορα σε ερευνητικό έργο
1 Οκτ 2019
Μετακίνηση το Χειμερινό 2019-2020 – Δήλωση μαθημάτων στο Pithia (επείγον)

Πρόσφατες Εκδηλώσεις

3 Οκτ 2019
Τελετή Υποδοχής Πρωτοετών φοιτητών/τριών 2019-20
30 Σεπ 2019
Track on 5G for the Industrial Internet of Things @IEEE 5G World Forum
29 Αύγ 2019
Ημερίδα Πρακτικής Άσκησης
10 Ιούν 2019
Ημερίδα «Εθνική Στρατηγική Κυβερνοασφάλειας» στο Υπουργείο Ψηφιακής Πολιτικής
14 Απρ 2019
6ο Technology Forum – 15 Απριλίου 2019 (τελικό πρόγραμμα)
19 Μάρ 2019
6ο Technology Forum – 15 Απριλίου 2019 (εισιτήρια με μειωμένο κόστος)
19 Μάρ 2019
OWASP Student Chapter Συνάντηση «Introduction to Digital Forensics»
17 Δεκ 2018
Ομιλία του καθηγητή Man Wai Mak (Hong Kοng Polytechnic University)

Δείτε επίσης