Software Engineering Techniques Applied to Agricultural Systems:An Object-Oriented and UML Approach