ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ

Κωδικός Μαθήματος:     609
Εξάμηνο διδασκαλίας:     6ο Εξάμηνο

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

Στόχος του μαθήματος
Η κατανόηση εκ μέρους των φοιτητών των βασικών αρχών που διέπουν την ανάπτυξη προϊόντων λογισμικού, τον κύκλο ζωής τους και τα προβλήματα της διαδικασίας ανάπτυξης. Να ενημερωθούν σχετικά με τις υπάρχουσες μεθοδολογίες που αποσκοπούν στη εξάλειψη των προβλημάτων και καθιστούν την ανάπτυξη λογισμικού μια βιομηχανική διαδικασία. Να ευαισθητοποιηθούν σε ζητήματα ποιότητας και ωριμότητας των διαδικασιών. Να κατέχουν τα διάφορα μοντέλα κύκλου ζωής του λογισμικού. Να αναπτύξουν την ικανότητα εφαρμογής τεχνικών ανάπτυξης λογισμικού με τη χρήση εργαλείων CASE.  

Περιγραφή του μαθήματος
Εξέλιξη της ανάπτυξης λογισμικού. Βασικές έννοιες τεχνολογίας λογισμικού. Η ανάπτυξη λογισμικού ως βιομηχανική διαδικασία. Κύκλος ζωής προϊόντων λογισμικού και μοντέλα κύκλου ζωής. Περιγραφή και ανάλυση της διαδικασίας παραγωγής λογισμικού. Μεθοδολογίες ανάπτυξης λογισμικού (data flow approach, information modeling approach, object oriented software development). Μοντελοποίηση διεργασιών ανάπτυξης λογισμικού (συλλογή και ανάλυση απαιτήσεων, καθορισμός προδιαγραφών, σχεδίαση – ανάπτυξη – έλεγχος - ενοποίηση λογισμικού). Συντήρηση λογισμικού. Επαναχρησιμοποίηση λογισμικού. Αξιολόγηση, Έλεγχος και Παραλαβή συστημάτων. Γενικά περί Διοίκησης έργων λογισμικού και Διασφάλιση Ποιότητας. Ωριμότητα των διαδικασιών ανάπτυξη λογισμικού και το μοντέλο Capability Maturity Model (CMM) του Software Engineering Institute (SEI-CMU). Εργασία (project) ανάπτυξης εφαρμογής λογισμικού.

Εργαστήριο Μαθήματος: Εκτέλεση κατάλληλων εργαστηριακών ασκήσεων για την πρακτική εφαρμογή των θεωρητικών γνώσεων, την εκμάθηση απλών εργαλείων υποστήριξης της ανάπτυξης (C language preprocessor, sccs, make, awk, κλπ.) και την εξοικείωση με περιβάλλον ανάπτυξης τεχνολογίας CASE. Χρήση UML.

Ενδεικτική Βιβλιογραφία
  1. Τεχνολογία Λογισμικού Θεωρία και Πράξη, SHARI LAWRENCE PFLEEGER, Τόμος 1, ΚΛΕΙΔΑΡΙΘΜΟΣ, 2003
  2. Τεχνολογία Λογισμικού Θεωρία και Πράξη 2, SHARI LAWRENCE PFLEEGER, Τόμος 2, ΚΛΕΙΔΑΡΙΘΜΟΣ, 2004.
  3. Methodology for Object-Oriented Software Engineering, R3A, Process and Method Manual, MOOSE, Ericsson Microwave Systems AB.
  4. Object Lifecycles: modelling the world in states, S. SCHLAER & S. J. MELLOR, Prentice-Hall, 1992.
  5. Object-Oriented Modeling and Design, J. RUMBAUGH, et al., Prentice-Hall, 1991.
  6. A discipline for Software Engineering, Watts S. HUMPHREY, Carnegie Mellon University, Addison-Wesley, 1995,.
  7. Measuring the Software Process, FLORAC, William A., CARLETON, Anita D., Pearson Professional Education, 1999.
  8. Modern Structured Analysis, YOURDON Ed., Prentice Hall, 1988.
  9. Object-Oriented Design, P. COAD, Ed. YOURDON, Yourdon-Press, 1991.
  10. Understanding Object-Oriented Software Engineering: A Practical Approach, S. SIGFRIED, IEEE Press, 1996.
  11. Object-Oriented Modelling and Design with UML, M. R. BLAHA, J. RUMBAUGH, Prentice Hall, 2004
  12. CASE – Η εξέλιξη της τεχνολογίας λογισμικού, Ι. ΧΑΛΑΡΗ ,  ΕΠΥ 1991.