Use the Source Luke...
What do You do with SourceCode?
In other words, what tasks, processes etc. are you engaged in when you look at or otherwise interact with SourceCode.
Don't answer this immediately!
Live with the question for a few days, observe yourself, are you Really doing what you think you do?
What are you looking for?
What types of changes are you making?
What cues are you actually using?
When you are ready to unload answers you can start SourceCodeTaskAnalysis.
Of course code can be described in that way. The problem is that we typically only keep the lowest level of abstraction as our code base. Sometimes we attempt to preserve the abstractions artificially using "high level" classes or what-have-you (that then invoke the lower-level stuff), but mainstream programming environments just don't provide facilities that allow you to keep all the historic levels of abstraction, so that you can squint your eyes and see the big picture. This is usually the role of "design documentation". And we know what happens to that... -- JohnDaniels