Analyzing Software Maintenance Through Machine Learning and Mining Software Repositories Approaches