AJANA: a general framework for source-code-level interprocedural dataflow analysis of AspectJ software