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

Κάθε φοιτητής θα συμμετέχει υποχρεωτικά σε ομάδες και κάθε ομάδα αναλαμβάνει συνεργατικά και με χρήση μεθόδων και εργαλείων να αναπτύξει ένα αρκετά μεγάλο project λογισμικού. Για λεπτομέρειες δείτε στον σύνδεσμο ΕΡΓΑΣΙΕΣ.

Το μάθημα ως βασικούς στόχους έχει:

  • Την κατανόηση των αρχών & εργαλείων για ανάπτυξη συστημάτων πληροφορικής σε ομάδες (στόχοι που παρακολουθούνται συστηματικά, ρόλοι που υπάρχουν σε μία ομάδα που αναπτύσσει ένα σύστημα, χρονοπρογραμματισμός).
  • Την κατανόηση & εφαρμογή στην πράξη μεθόδων ανάπτυξης συνεργατικού κώδικα με χρήση διαφόρων συστημάτων και μεθόδων versioning control.
  • Κατανόηση συστημάτων όπως το GitHub
  • Βασικές αρχές σχεδίασης, Usability testing, User Experience.
  • Την εφαρμογή στην πράξη τεχνικών ανάπτυξης αντικειμενοστραφή κώδικα και εφαρμογών λογισμικού βασισμένο σε εξωτερικές βιβλιοθήκες και συστατικά στοιχεία (components).
  • Την κατανόηση σε βάθος της πλατφόρμας .ΝΕΤ, των κυριότερων βιβλιοθηκών που τη συνοδεύουν, και τον τρόπο ανάπτυξης διαφόρων ειδών εφαρμογών.

Με την ολοκλήρωση του μαθήματος, οι φοιτητές θα αποκτήσουν:

  • Γνώσεις για την καθοδήγηση και συντονισμό στην υλοποίηση Ολοκληρωμένων Πληροφοριακών Συστημάτων δουλεύοντας σε μικρές ή μεγαλύτερες ομάδες.
  • Δυνατότητες να υλοποιήσουν την σχεδίαση και ανάπτυξη εφαρμογών λογισμικού διαφόρων τύπων (desktop, mobile, console) με τη χρήση της πλατφόρμας .ΝΕΤ.
  • Αντίληψη σχετικά με την αντικειμενοστραφή ανάλυση και σχεδιασμό που έχουν εκπονήσει άλλοι, προκειμένου και ο ίδιος να μπορεί να συνεισφέρει σε βελτιώσεις ή να προχωρήσει σε προγραμματισμό εφαρμογών με χρήση .ΝΕΤ.
  • Γνώση των βασικότερων και πιο σημαντικών κλάσεων της πλατφόρμας .ΝΕΤ από τις δεκάδες χιλιάδες που είναι διαθέσιμες στην πλατφόρμα.
  • Γνώσεις που αφορούν την ανάπτυξη εφαρμογών βασισμένες με εκτεταμένη χρήση δεδομένων αποθηκευμένων σε διαφόρων ειδών μηχανισμούς αποθήκευσης δεδομένων.
  • Δυνατότητα για ανάπτυξη πολύ-νηματικών εφαρμογών.

Περιεχόμενο Αναλυτικά

  • Αρχές & εργαλεία συνεργατικής ανάπτυξης λογισμικού
  • Git, SVN, Mercurial
  • Unit testing
  • Εισαγωγή στο .ΝΕΤ
  • Εισαγωγή σε δύο βασικές γλώσες του .ΝΕΤ (Visual Basic και C#) - OOP - Component based programming
  • Το Visual Studio IDE
  • Objects, Controls, Components
  • Common Controls
  • Διαχείριση Γεγονότων
  • Περισσότερα Controls
  • Συνεργατική ανάπτυξη κώδικα (Subversion, Git, Mercurial) - Version Control
  • ADO .NET
  • Data Binding, data bound controls
  • Πρόσβαση σε βάσεις δεδομένων, DataGridView, Client-Server n-tier models
  • Κατανεμημένες εφαρμογές βασισμένες σε κατανεμημένες και άλλες σύνθετες βάσεις δεδομένων (replication)
  • Project Settings, Project Publishing
  • Compiler Options
  • System namespace, My namespace
  • Regular expressions
  • Filesystem I/O
  • Διαχείριση λαθών
  • Πολυνηματικός προγραμματισμός