This presentation was part of the First International Workshop on Software Architecture Metrics, held at the 11th Working IEEE/IFIP Conference on Software Architecture.
Extracting metrics from real-world software systems is generally considered to be a nontrivial task due to (a) challenges in processing large amounts of source code and (b) a variety of factors determining what artifacts belong to a system's build. For Java-based systems, the Bytecode generated by compilers is often considered as good as source code for analysis purposes, but without the associated challenges of identifying what precisely is part of a system's build and how the system is to be built. Furthermore, there are a variety of tools available to assist in processing Bytecode . However, unless appropriate care is taken, metrics extracted from Java Bytecode can be imprecise or even wrong, especially when common heuristics are used. In this presentation, I elaborate on our recent experiences in extracting metrics for Java-based systems, discuss the challenges we faced, and illustrate the approaches taken to use Bytecode as a source for system metrics.