Towards an Agent Oriented Approach to Software Engineering