While not as well-thought out and presented, I've been working on a similar project for the past 6-8 years. I called it the "Grand unified theory of software" (after its physical equivalent) [1] and the attempt was to define, describe and quantify code, how its created, and changed.
The best exposition of my thoughts is probably this mindmap:[2], but the TLDR version is:
* Software has size. Sequences of code adds height, modules add width; together giving area
* Software has weight, like page weight or memory weight.
* Forces act on software to change it, and they could be design constraints, organizational will, etc
* Code is data REALIZED, data is code ABSTRACTED
* and so forth
There is also a book (not mine) called the "Grand Unified Theory of Software Engineering"[3] which takes into consideration not just what software is, but the processes and organizations that cause it to be created and explores justifications for statements like "you ship your organization", for example.
We need more such exploration and discussion, IMO. Since software is largely an abstract thing, having models to help thinking about it in ways analogous to concrete things is useful, if not precise.
1: https://github.com/vinodkd/guts
2: Mindmap flash version: http://vinodkd.github.com/guts/mmap/full/guts.html
Mindmap non-flash version (look below diagram for complete text): http://www.vinodkd.org/guts/mmap/basic/guts.html
3: GUTSE: https://books.google.com/books/about/The_grand_unified_theor...