Software effort estimation is the methodology predicting the amount of effort required to develop or maintain the particular software. The Software effort estimation is task which is done in the requirement engineering phase where a requirement is taken and the effort needed for that particular requirement is found. The accuracy value of the effort must be very high because it may lead to the financial loss or the loss of reputation of the company. K-Means clustering algorithm is one of the machine learning oriented techniques. The clustering of the dataset is done using the K-Means clustering algorithm to estimate the effort accurately and efficiently. After clustering, the analogy based estimation technique is used. The non-algorithmic model like the analogy based effort estimation performs better than the algorithmic model like COCOMO. The effort estimated using the analogy based effort estimation coincides mostly with the actual effort obtained from the software effort estimation dataset. The results of the effort estimation were analyzed using the Magnitude of Relative Error (MRE) and Mean Magnitude Relative Error (MMRE) to prove its accuracy.