The Impact of UML Documentation on Software Maintenance: an Experimental Evaluation