A representation for describing and analyzing concerns in source code