The course offers an introduction to the field of Software Engineering, highlighting the various software design, quality and management issues that occur during the development of large software projects, while presenting the current state of the art in addressing these issues. Specifically, the course covers software life-cycle phases and their management methodologies, focusing on (a) the agile methodology in general and Scrum in particular, (b) the DevOps methodology and specifically the issues underlying version control, build automation and test automation. The course also deals with software design and architecture, discussing analysis and modeling of requirements, object-oriented design and architectural patterns, emphasizing the architectural choices that arise from the CAP theorem. Finally, the course also presents the latest techniques used in the development of Web-based user interfaces.
- Software Engineering: Theory and Practice, 2nd Edition, PFLEEGER, Kleidarithmos publishing (in Greek)
- Software Engineering, 8th Edition, SOMMERVILLE, Kleidarithmos publishing (in Greek)
- Software Engineering, 8th Edition, PRESSMAN, Tziola publishing (in Greek)
The course also offers an extended reading list available at its website.