Software maintenance is one of the critical parts in the processes of Software-Development Life Cycle. The body knowledge of maintaining the new software versions base on the abilities of fixing bugs, the revision of programs, the plan of preventing future constraints, and the software-development in piece and performance.