There has been a lot of misunderstanding about ALM tools and what they really are. Some people think that a configuration management tool, a requirement tool, a bug tracking tool, or any tool that performs a task within a project is an ALM tool. The term ALM refers to the management of ALL phases of the application lifecycle in one tool. Integration between the different phases and full treatability between all project artifacts is a must.
The Above components must be fully integrated in one tool with one repository where all artifacts produced by these components are stored. The Meta Data of such repository must maintain the relationships between these artifacts.
As a result of the total integration through a single repository, the ALM tool shall provide total traceability between the different artifacts. This traceability allows project teams to manage the relationships between artifacts through different reports.
In addition to total integration and total traceability, ALM tool must allow users to interact with all components and functionality using the same seamless common user interface.