Home
Personal Information
Publications
Research Projects
Teaching






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 lecture notes here. (NEW versions of refactoring slides + examples)

Project

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 - Deadline 20-12-2020
    • 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 2nd phase use the turnin program:
      • turnin deliverables@mye004 <your-project>.zip, where your-project is a zip file of your Eclipse refactored project.

Announcements

  • FEB 2021 - Guidelines for the exams:
    • During the exam you may use the course material (slides, book, etc.)
    • The exams will take place using the MS Teams platform.
    • To participate in the exams you should become a member of the team "Φεβρουάριος 2021 - Εξέταση Ανάπτυξης Λογισμικού ΙΙ" with the following code idk2xci.
    • To answer the quiz questions you will need a computer with internet access, eclipse and Java installed.

    • DELIVERY OF ANSWERS:

      • The delivery of the answers will be done using the turnin program that you use to deliver your course projects. 

      • After you improve the code in the eclipse project given to you, based on the quiz questions, turn in the improved version of the project: turnin quiz@mye004 <your-project>.zip, where your-project is a zip file that contains the improved version of the project.

      • In the improved version of the project include the final versions of the classes you changed and not those of the intermediate stages of each individual quiz question.

    • To take the exam you should join in the respective MS Teams meeting that will be scheduled at the exam date.
    • The deadline for becoming a member of the team is 31/1.
    • During the exam you will be given a quiz to turn in within a specific deadline. The deadline may be shorter than the overall 3 hours of the exam.
    • During the exam you should keep your cameras and microphones open according to the rules set by the University and the rules set by the Department of Computer Science and Engineering
    • At any time during the exam the instructor may ask you to present your student ID in the camera.
  • To register your project group for the project of 2020-2021 , fill this form - Deadline 23/10/2020.
  • NEW !! Sept 2020 Exams - The overall grades (project and final exam, if both greater  than the respective limits) can be found here
  • NEW !! The online lectures will begin on Thu 1/10 via the MS Team platform. You can join the lectures using this code: mn9zxhd
  • June 2020 Exams - The overall grades (project and final exam, if both greater  than the respective limits) can be found here

Useful Links