Formal design methods
can help.