|
| Software Development IICourse 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 OutcomesThe
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 MaterialThe 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) ProjectThe
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 14-12-2021
- 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
- NEW !!! In the final exam you can bring with you an A4 cheat sheet with your personal notes.
- February 2022 Exams - The overall grades (project and final exam, if both greater than the respective limits) can be found here.
- Project 2022 grades.
- During the final exam of the course you will not be able to have access to the course's slides and other related material.
- The last lecture on 11/1 is canceled. See you all in the project review on Wed and Thu.
- On Wed 12/1/2022 and Thu 13/1/2022 there will be a brief examination of
the project via MS Teams. The date and time for each group can be found
here. The code of the teams class is p5gj866. Due
to the tight schedule plase join the team meeting at the exact time and
be prepared to share a screen with your project code.
- To register your project group for the project of 2021-2022 , fill this form - Deadline 12/10/2021.
- September 2021 Exams - The overall grades (project and final exam, if both greater than the respective limits) can be found here.
- JUNE 2021 Exams - The overall grades (project and final exam, if both greater than the respective limits) can be found here.
Useful Links |