Active object diagrams as a tool to support object oriented programming comprehension