Advanced Software Technologies

 

6 ECTS credits

 

·        Course code

MST8056

·        Type of course

Elective for all the specializations

·        Level of course

Undergraduate

·        Year of study

2004-2005

·        Semester

7th Semester

·        Number of credits allocated

6 ECTS Credits

·        Name of lecturer

Spinellis Diomidis, Assistant Professor

·        Objective of the course (expected learning outcomes and competences to be acquired)

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, design evolution strategies  for legacy code, and prescribe the use of refactoring and technologies like XML for transforming applications to e-business components.  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.

·        Prerequisites

Recommended material: Developing Information Systems                  

·        Course contents

Course outline: Reading basic code elements, data structure implementation, control flow, C++ and Java elements, libraries and APIs, dealing with large projects, programming style standards, documentation, tools, information system architectures, hardware interfaces, domain-specific languages, mixed language systems, code reviews.

·        Recommended reading

&   Diomidis Spinellis.  Code Reading: The Open Source Perspective. Addison-Wesley, 2003.

&   Martin Fowler. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 2000. With contributions by Kent Beck, John Brant, William Opdyke, and Don Roberts.

·        Teaching methods

Lectures, and coursework

·        Assessment methods

Coursework

·        Language of instruction

English