What I want to ask about 'should have done' is whether it can be used for''logical assumption or conclusion in the past'', that is,
You should have done your homework ( you didn't do your homework) (criticism)
He should have done your homework ( There is a (big) possibility that he did his homework ( deduction)
The latter sentence and such sentences may be true????
Here is a commnent from http://www.bbc.co.uk/worldservice/learningenglish/radio/specials/1535_questionanswer/page26.shtml
'Should have' is used to talk about past events which did not happen or may not have happened.
For example:
I should have finished this work by now
OR
I should have studied harder for my exams.
In both the sentences above, the speaker might be expressing regret and/or criticism for not having done something.
We also use should have to express unfulfilled obligations, for example:
He should have helped his mother carry the shopping.
Now 'must have' is used to express something that the speaker has deduced or is certain about in relation to the past.
For example, if you wake up in the morning and you see the ground is wet outside, you might say:
"It must have rained overnight".
So let's look at a sentence with both should have and must have in it...
Jane should have arrived by now; she must have missed the bus".
In this situation, we would expect Jane to have arrived by now, but as she hasn't, we come to the conclusion that her lateness is due her having missed the bus.