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