Object-Oriented Requirements Analysis and Logical Design: A Software Engineering Approach