Object-oriented requirements analysis and logical design : a software engineering