Dealing with software design issues using an Agent-Oriented methodology