Specifying Software
An introductory textbook on software specifications suitable for programming students with some background in discrete mathematics and logic. The author adopts a unique 'hands-on' approach, presenting basic concepts in the context of numerous small programming examples. Topics include assertional notations, state diagrams, grammars, and regular expressions.