Genetic algorithm is one of the most popular algorithms in Artificial Intelligence commonly used for optimization problems, in this article we will present the GA from a software engineering perspective rather than computer science.The main operators of the genetic algorithms are reproduction, crossover, and mutation. Reproduction is a process based on the objective function (fitness function) of each string. This objective function identifies how “good” a string is.