Integrating informal and formal approaches to object-oriented analysis and design