Software Engineering

General

Course Contents

  • Επαναληπτικές και ευέλικτες διαδικασίες ανάπτυξης.
  • Οργάνωση ομάδων λογισμικού.
  • Διαχείριση έργων λογισμικού.
  • Ποιοτικός έλεγχος λογισμικού.
  • Έλεγχος μονάδων λογισμικού.
  • Διαχείριση εκδόσεων λογισμικού.

Educational Goals

The “Software engineering” module focuses on presenting the software development activities that are often overlooked in other programming modules. Whereas other modules such as “Programming Methodology” focuses on design issues, and modules such as “Introduction to programming” focuses on implementation issues, this module takes a step back and looks into activities such as “testing”, “requirements gathering” and “software development methodologies”.

Its main task is to show students how to organise their work and deliver a quality product at the end. To this end students are introduced to agile methodologies such as Scrum and learn how to follow them applying time-boxing, writing tests and implementing a continuous delivery workflow.

A major part of the module is the associated term project which is developed by teams of 7 or 8 people. Students will be requested to deliver a substantial piece of software following a workflow that resembles as much as possible that of a professional setting. They are expected to use any tools for this (version control, build systems etc) in order to deliver, on time, a working product that has been tested thoroughly.

General Skills

  • Σχεδιασμός και διαχείριση έργων.
  • Άσκηση κριτικής και αυτοκριτικής.
  • Προσαρμογή σε νέες καταστάσεις.
  • Ομαδική εργασία.
  • Προαγωγή της ελεύθερης, δημιουργικής και επαγωγικής σκέψης.
  • Λήψη αποφάσεων.

Teaching Methods

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

Use of ICT means

  • Διαφάνειες.
  • Video.
  • Δοκιμασίες πολλαπλών επιλογών που βαθμολογούνται αυτόματα.
  • Πόροι Internet (papers, οδηγίες κτλ).

Teaching Organization

ActivitySemester workload
Lectures26
Practice Exercises13
Laboratory Exercises13
Writing laboratory reports21
Autonomous Study52
Total125

Students Evaluation

Γραπτή εξέταση πολλαπλών επιλογών, παρουσιάσεις, γραπτές εργασίες, προφορική εξέταση. Πιο συγκεκριμένα, το θεωρητικό μέρος του μαθήματος γίνεται με γραπτές εξετάσεις πολλαπλών επιλογών. Οι σπουδαστές έχουν τη δυνατότητα να παραδώσουν και να παρουσιάσουν στην τάξη βιβλιογραφικές εργασίες και ατομικό project λογισμικού το οποίο μετράει 30% του τελικού τους βαθμού.

Στο εργαστηριακό μέρος η αξιολόγηση γίνεται:

  • με βάση προφορική εξέταση στο τέλος του εξαμήνου επί της ομαδικής εργαστηριακής εργασίας που δίνεται (project),
  • με βάση την παρουσίαση που επίσης γίνεται για την ίδια εργασία.

Related Research Journals

  1. Ian Sommerville, Βασικές αρχές τεχνολογίας λογισμικού, Κλειδάριθμος.
  2. Frederick Brooks, The Mythical Man Month:Essays on Software Engineering, AddissonWesley.
  3. Steve Freeman, Growing Object-Oriented Software Guided By Tests, Addisson-Wesley.
  4. Pen Kroll, The Rational Unified Process Made Easy: A practitioner’s Guide to the RUP , Addison-Wesley.
  5. IEEE Transactions on Software Engineering.