Personal Information
Research Projects
Open Positions

By Geek & Poke

Software Development II

Course Description

Βest practices for clean software development (naming, documentation, code organization, error handling), refactoring techniques (composing methods, simplifying conditional & methods, moving features, generalizations), introduction to design patterns. The course’s lab aims at training the students in the use of integrated development environments and refactoring tools that will be employed for the developments of the course's project. The lab further focuses on issues related to the different phases of the project (development phase, refactoring phase).

Learning Objectives & Expected Outcomes

The study and application of best practices, patterns and refactoring techniques that allow to avoid issues of poor software design/implementation. The main outcomes of the course is that the students will be capable to:
  • Identify issues of poor software design/implementation. 
  • Improve the quality of software that suffers from issues of poor software design/implementation by applying design patterns and refactoring techniques.

Literature and Study Material

The main textbooks for the course are:
  • OO Design: UML, principles, patterns and rules, Α. Xatzigeorgiou, ISBN 960-209-882-1
  • Program Development in Java, B. Liskov and J. Guttag, ISBN 978-960-461-063-1
  • Clean Code - A Handbook of Agile Software Craftsmanship, R. C. Martin
  • Refactoring - Improving the Design of Existing, M.Fowler
Apart from the above textbooks you can download the course's and labs lecture notes (ppt, pdf) from the following git hub repo: github.com/zarras/mye004-slides.


The project is developed by groups of 2 students. The goal is to refactor a given program that has been developed by other students.
  • Deliverables - NEW !!! Deadline 16-12-2023
    • You can find all the neccessary material (requirements on what to do in this phase, source code of legacy application, deliverable template, etc.) here.
    • For the delivery of the project use the turnin program:
      • turnin deliverables@mye004 <your-project>.zip, where your-project is a zip file of your Eclipse refactored project.


  • NEW !! The overall grades for FEB 2024 can be found here.
  • NEW!! The project grades for 2024 can be found here.

  • Students who have registered for the course of Entrepreneurship from the Economics Department can give the Software Development II exam at 18.00  instead of 15.00, provided that they (1) inform me by email until 19/1 and (2) bring a signed confirmation of their participation to the exam of the other course from the instructor of the course.
  • NEW !! The review of the project will take place via MS TEAMS (group 26bxbed) on Thu 11/1, Mon 15/1 and Tue 16/1. The detailed schedule can be found here. For the review you should have the project ready to run on your computer.
  • ATTENTION !!!  The lecture on Wed 8/11 is cancelled.
  • The overall grades for SEPTEMBER 2023 can be found here. For question regarding your grade Tuesday 10/10/2023 10:30-12:00 at A7.
  • To register your project group for the project of 2023-2024 , fill this form - Deadline 27/10/2023.
  • Join the MS Teams group 26bxbed of the course to receive announcements and other useful comments about the lectures and the course project!!! 

  • The overall grades for June 2023 can be found here.
    • In the final exam you can bring with you an A4 cheat sheet with your personal notes.

      Useful Links