Learning objectives
Objectives of the course (preferably expressed in terms of learning outcomes and competences): Classes are meant to provide all basic principles behind the analysis and design of software systems.
Prerequisites
Introduction to programming
Course unit content
1. Foundations of Software Engineering
2. Development of Object-Oriented Software Systems
Full programme
1. Foundations of Software Engineering
Software quality
Software development processes
Methodologies for software development
Analysis of software systems
Design of software systems
Tools for the design and implementation of software systems
2. Development of Object-Oriented Software Systems
Object-oriented analysis of software systems
Design and implementation of object-oriented software systems
Design patterns
Bibliography
C. Ghezzi, A. Fuggetta, S. Morasca, A. Morzenti, M. Pezze, Ingegneria del Software, Mondadori Informatica, II edition
Simon Bennett, John Skelton, Ken Lunn, UML, Mc Graw-Hill
Bruce Eckel, Thinking in Java, available at http://www.mindview.net, II edition
Bruce Eckel, Thinking in Patterns, available at http://www.mindview.net
E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns, Addison-Wesley
Teaching methods
Oral lesson and laboratory