programming concept oop class instance runtime entity language construct object model software entity adt