A state-based approach to prototyping use case specifications by John Mathenge Kanyaru