Il corso si propone di fornire innanzi tutto un quadro della teoria, dei metodi e delle tecniche inerenti alla realizzazione di un progetto software, quindi di approfondire le scelte architetturali della progettazione orientata agli oggetti, nonché le attività di verifica e refactoring.