Applied Software Engineering
ΔΙΟΜΗΔΗΣ ΣΠΙΝΕΛΛΗΣ

Applied Software Engineering

While most Information Systems and Computer Science courses traditionally deal with the development of new systems, in practice developers spend the largest part of their time in software life-cycle activities that follow the development phase.  The objective of the course is to allow students to read and understand a system’s software elements (code, structure, architecture).  Having followed this course, students should be able to intelligently decide on how existing systems will be maintained, setup design and evolution strategies for legacy code, and prescribe the use of refactoring for dealing with architectural mismatches and low-quality code.  An innovative aspect of the course involves the use of Open Source Software (OSS) in course examples and exercises.  Through the study of OSS students will be able to see how non-trivial applications like the Apache Web server, the Postgres Relational Database Management System, the Jakarta Java servlet container and the Cocoon framework are structured.