Specifying software : a hands-on introduction /