Informatica e Tecnologia dell’Informazione, Programmazione orientata agli oggetti (OOP), Programmazione/ingegneria del software