This paper describes an impact analysis technique that identifies which par
ts should be retested after a system written in C++ is modified. We are int
erested in identifying the impacts of changes at the class member level by
using dependency relations between class members. We try to find out which
member functions need unit-level retesting and which interactions between t
hem need integration-level retesting. To get precise analysis results, we a
dopt a technique that classifies types of changes and analyze the impact fo
r each type. Primitive changes, changes which are associated with C++ featu
res, are first defined and their ripple effects are computed in order to co
nstruct a firewall for each type of change systematically. We have applied
our prototype toot to a real system with small size. This case study shows
some evidence that our approach gives reasonable efficiency and precision a
s well as being practical for analyzing change impacts of C++ programs. Cop
yright (C) 2001 John Wiley & Sons, Ltd.