Since the cost of software maintenance occupies about 50~75% in a general successful organization, the software maintenance plays an important role in software life cycle. In particular, if the managed system needs to be operated in a long term or the system is very large and complex, then the maintenance is especially more important. Software maintenance is defined as software modification activities after customer delivery, such as improvement of performance or functionality, error correction, adaptation to environmental changes, etc. In this paper, software cost estimation models are proposed, that is based on productivity of manpower in maintenance projects. In order to do this, the activities of maintenance are classified into function change, non-function change, user support and application operation. The proposed models are constructed and verified based on the real size and cost information of projects in the real world. The approach in this paper is to discriminate the heterogeneous activities in maintenance projects, and then to calculate the respective cost of each discriminated activity. By using the proposed models, the total cost of maintenance project is summed from the costs of four activities. In addition the number of conflicts between owner and order receiver about the amount of cost will be reduced and the reasonable cost estimation system will be established.