Dovere is a very common Italian verb with irregular conjugations and an unusual relationship to some of its English equivalents.* Dovere has several meanings related to obligation, supposition, and expectation.
Dovere = must, to have to (obligation)
Devi finire questo progetto.
You must finish this project.
Devo partire alle 14:00.
I have to leave at 2pm.
Dovere = must, to be probable (supposition)
Silvio deve lavorare fino a tardi.
Silvio must be working late.
Devi essere stanco.
You’re probably tired.
Dovere = to be expected, supposed to (expectation)
Devo arrivare verso mezzogiorno.
I expect to, I should arrive around noon.
Anne deve telefonare domani.
Anne is supposed to call tomorrow.
Should vs Must
Some of the above examples could fit into more than one category, so how do you know which meaning is the right one? As always, it depends on context. When you want to make sure that the meaning you want is the one others get, you need to do a bit more work.
To specify that something "must" happen, strengthen dovere with something like assolutamente, a tutti i costi, davvero, or non importa come.
Devi davvero finire questo progetto.
You really must finish this project.
Devo partire alle 2 del pomeriggio, non importa come.
I have to leave at 2pm no matter what.
To say that something "should" happen, soften dovere by using it in the conditional.
Dovresti finire questo progetto.
You should finish this project.
Dovrei partire per le 14:00.
I should leave at 2pm.
* Whereas dovere is a fully conjugable verb, two of its common English equivalents – "must" and "should" – are modal verbs, which have just a single form.