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

Κωδικός Μαθήματος: N2-4060
Εβδομαδιαίες ώρες διδασκαλίας: 4 (2Θ + 2Ε)
Πιστωτικές μονάδες: 5
Τυπικό εξάμηνο διδασκαλίας: 4ο
Κατηγορία μαθήματος: Μαθήματα Ειδικής Υποδομής
Προαπαιτούμενα: Προγραμματισμός Υπολογιστών

Σκοπός μαθήματος

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

Οι βασικοί στόχοι του μαθήματος εντοπίζονται στην:

  • Αφομοίωση των βασικών εννοιών ανάπτυξης λογισμικού μεσαίας και μεγάλης κλίμακας,
  • Γνώση των μοντέλων κύκλου ζωής (καταρράκτη, prototyping, V-model&RUP)
  • Γνώση και εφαρμογή της δομημένης μεθοδολογίας SSADM
  • Γνώση και εφαρμογή της αντικειμενοστραφούς μεθοδολογίας UML
  • Γνώση ποιοτικών χαρακτηριστικών και εμβάθυνση στις αρχές καλής σχεδίασης λογισμικού
  • Γνώση των διαδικασιών ελέγχου λογισμικού, αποδοχής, συντήρησης και διαχείρισης εκδόσεων
  • Γνώση αρχιτεκτονικών εργαλείων CASE&Businessmodelingκαι χρήση τους στην ανάπτυξη λογισμικού
  • Ικανότητα αναγνώρισης της ωριμότητας «διαδικασίας ανάπτυξης λογισμικού» μέσω του μοντέλου CMM

Περιεχόμενο μαθήματος
  • Ιστορική ανασκόπηση, βασικές αρχές τεχνολογίας λογισμικού, η ανάπτυξη λογισμικού ως βιομηχανική διαδικασία.
  • Κύκλος ζωής λογισμικού, μοντέλα κύκλου ζωής.
  • Μεθοδολογίες ανάπτυξης λογισμικού (data flow oriented-, data structure oriented-&object oriented software development). Τεχνικές και Παραδείγματα
  • Εισαγωγή στη UML (Use case design, Class diagrams, αναπαραστάσεις κώδικα σε JAVA/C++, Sequence diagrams, Activity Diagrams)
  • Μετρικές λογισμικού – Σύζευξη, συνεκτικότητα, fan-in, fan-out
  • Τεχνολογία CASE (Αρχιτεκτονικές, τρόπος εισαγωγής και αξιοποίησης της, παρουσίαση περιβαλλόντων ανάπτυξης λογισμικού κλπ.).
  • Έλεγχος ορθότητας λογισμικού, κριτήρια αποδοχής λογισμικού
  • Συντήρηση λογισμικού & Διαχείριση εκδόσεων λογισμικού
  • Επαναχρησιμοποίηση λογισμικού, reverse engineering.
  • Βασικές έννοιες διασφάλισης ποιότητας λογισμικού
  • Η ωριμότητα της διαδικασίας ανάπτυξης λογισμικού (το μοντέλο CMM του Hamphrey).
  • Χρήση τεχνολογίας CASE.

Βιβλιογραφία
  1. Τεχνολογία Λογισμικού (Γιακουμάκης, Διαμαντίδης) εκδ. Σταμούλης
  2. Βασικές αρχές τεχν. Λογισμικού I. Sommervilleεκδ. Κλειδάριθμος (Μετάφραση στα Ελληνικά)
  3. Τεχνολογία Λογισμικού, Θεωρία & Πράξη Τόμος Ι, PFLEEGERS., ΕΚΔΟΣΕΙΣ ΚΛΕΙΔΑΡΙΘΜΟΣ (Μετάφραση στα Ελληνικά)
  4. SWEBOK. IEEE Computer Society. 2001. Inenglish. Free download:http://www.swebok.org/
  5. ΣημειώσειςεργαστηρίουγιατηχρήσητουεργαλείουCASE “RationalRose”&τουbusiness modeling tool ADONIS – community Edition
  6. Σημειώσεις Μαθήματος «Τεχνολογία Λογισμικού», Ιωάννης Χάλαρης 2007

Internationalisation I18n