Should indicates obligation and probability.
Example:
- You should come home early.
- You should not smoke at all.
- I should visit my parents more often.
- There should be an extra key for the lock in the drawer. (probability)
- He should have reached by now. (probability)
- I should have done that. (obligation in the past)
Ought to and had better sometimes replaces should.
Example:
- You ought to come home early.
- We ought to have taken a taxi. (Past)
- We had better leave. (Had better is generally used in spoken English.)
- I think parents ought to give children more freedom. (Had better won’t be appropriate here.