Software specification and design a disciplined approach for real-time systems Marilyn Keller, Ken Shumate.