Systems engineering : a formal approach