Object-Oriented Analysis, Design and Implementation