Learning objectives
<p>Classes are meant to provide all basic principles behind the analysis and design of software systems.</p>
Prerequisites
<p>Fundamentals of Computer Engineering A and Fundamentals of Computer Engineering B</p>
Course unit content
<p>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.</p>
<p><br />
Development of Object-Oriented Software Systems - Object-oriented analysis of software systems. Design and implementation of object-oriented software systems. Design patterns.<br />
</p>
<p>Java language - Objects and classes. Inheritance and polymorphism. Exceptions. Input/output. Collections. Concurrent programming.</p>
Bibliography
<p> </p>
<p>Ian Sommerville. Ingegneria del software, 8/ed, Pearson Education, 2007. <br />
Simon Bennett, John Skelton, Ken Lunn, UML, Mc Graw-Hill, 2001 <br />
Bruce Eckel, Thinking in Java, III ed, MindView, 2002. <br />
E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns, Addison-Wesley, 1994. <br />
Jim Arlow, Ila Neustadt. UML 2 e Unified Process: Analisi e progettazione Object-Oriented, 2/ed, Mc Graw Hill, 2007. <br />
Bruce Eckel, Thinking in Patterns, MindView, 2003</p>