Software comprehension : theory and metrics