Should have done sth. 本该做某事(最后)却没有做。这种形式用在带if从句的虚拟式中时,表示一种虚拟语气,表示与过去事实的相反。此时if从句要用过去完成时。如: If he had been here, he would have been glad to see you. 如果if从句用的是一般过去时的话,那么主句就要用would+动词原形(这种虚拟式构造)来表示虚拟语气,如: If I were rich, I would travel around the world.
上面两种(should have done sth. 和would+动词原形),是表示虚拟语气比较常用的两种,以及would have done sth. 虚拟式的构造除此之外,还有很多,如Simple Present一般现在时,Present Continuous现在进行时,Present Perfect现在完成时,Present Perfect Continuous现在完成进行时,Simple Past一般过去时,Past Continuous过去进行时,Past Perfect过去完成时,Past Perfect Continuous过去完成进行时等等,楼主日后可以多注意。