The technological advancements in 21st era expand the field of software engineering by introducing new products on daily basis. Depending upon the organization, the software developers are using different techniques and methods for software development. These development techniques must be unblemished in order to produce a high quality product. To achieve this goal, software engineers are using several tools that are required during various software development stages. These tools vary from organizations depending on the process. In this paper, the author will try to cover tools used by software engineers in different phases of software development.