Particle swarm optimization (PSO) is considered one of the most important methods in swarm intelligence. PSO is related to the study of swarms; where it is a simulation of bird flocks. It can be used to solve a wide variety of optimization problems such as unconstrained optimization problems, constrained optimization problems, nonlinear programming, multi-objective optimization, stochastic programming and combinatorial optimization problems. PSO has been presented in the literature and applied successfully in real life applications. In this paper, a comprehensive review of PSO as a well-known population-based optimization technique. The review starts by a brief introduction to the behavior of the PSO, then basic concepts and development of PSO are discussed, it's followed by the discussion of PSO inertia weight and constriction factor as well as issues related to parameter setting, selection and tuning, dynamic environments, and hybridization. Also, we introduced the other representation, convergence properties and the applications of PSO. Finally, conclusions and discussion are presented. Limitations to be addressed and the directions of research in the future are identified, and an extensive bibliography is also included.