An Experience Using Design Patterns: Lessons Learned and Tool Support