The picture depicts both internal and external associations with the following use case:
The development team is using Rally to develop and execute on their user stories and epics. There is a separate testing team that is responsible for testing at the end of each sprint as well as overall testing at the end of a release cycle - and that team is using HP ALM. In this scenario, the developers would like to sync their stories over to HP ALM - and maintain their epic to story relationships. Then, the testers can create their test cases directly in HP ALM – and the developers can have visibility by syncing an external association to the test case (yes, while Rally does support test cases, there was no need to have that more heavyweight style of integration at this point) in the stories. When the tester actually executes the test case, if he discovers a defect, he enters the defect directly into HP ALM – and then the defect is synced over to Rally so that the developers can work on fixing it. And, of course, the relationship from the defect back to the originating story is maintained in both systems.
Strong ARM Your Tools: Maintain context across your integrated ALM tools