To show the organization of the course that includes this module, follow this link Course organization
|Monday||2:30 PM - 5:30 PM||practice session||Laboratory Delta||from Oct 29, 2007 to Dec 4, 2007|
The course introduces the design and development of software systems. Via the development and implementation of prototypical concrete software projects, the students will learn a number of advanced techniques for the development of object-oriented software systems.
The course covers the motivation and benefits of design patterns for object-oriented programming.
After an introduction to design patterns, the course will consider a number of example problems in order to provide a detailed analysis of the software development process and the application of design patterns (in particular, patterns such as Strategy, Observer, State, Adapter, and Abstract Factory). The examples will also provide a means to focus on the definition and use of the main principles of object-oriented programming.
The use of Java for the programming projects will allow students to gather the experience required to apply design patterns.
|E. Gamma, R. Helm, R. Johnson, J. Vlissides||Design Patterns: elements of reusable Object-Oriented Software (Edizione 1)||Addison-Wesley||1995||Versione italiana: Design Patterns, Addison-Wesley, 2002|
|E. Freeman, E. Freeman||Head First - Design Patterns (Edizione 1)||O'Reilly||2004|
|Martin Fowler||UML distilled (3rd ed.) (Edizione 3)||Pearson Education||2003||Versione italiana: UML Distilled, Terza Edizione, Pearson Education Italia, 2004|
The examination consists of the completion of a number of projects, which the students can carry out in small groups (of 3 o 4 students).
With the successful completion of these projects, the students obtain 1 credit, which will be added to the 4 credits of the first module of the Software Architecture Course.