Impact analysis is the understanding of the affects of change on a subset of resources in a system. Fundamentally, we want to know things like; if A and B are resources in some system, and B changes in some way. Does this affect A in any way.
Lets assume that we have some system with resources A and B. A has a relationship R with B.
A ---R---> B
Resource A has properties Pa1, pa2, and B has properties Pb1, and Pb2.
If Pb2 changes its value, does this threaten the integrity of A? That is should A change its state to maintain the integrity of the entire system?
So this brings up some questions. What does change in B mean? When is that change important to impact analysis? Depending on the type of relationship, the threat to impact is different.
For example suppose A implements B as an interface. B is updated with new comments, or documentation, but the structure of the interface remains the same. In this case there is no impact to A or the system. However if the relationship is derivesDocumentationFrom and the comments in B change, then there is impact on A.
So this means that studying impact requires an understanding of both the relationships type and the nature of the changes in the resources.
Lets consider a resource type called Impact, which is essentially a list of resources and their changes, and a list of effected resources.
The act of impact analysis is the creation of this resource. Other properties of this resource might include cost and scope.