Conceptualizing Software Systems
November 2015
Before you can change a software project, you must understand how it works. The time to make a small change can be dwarfed by the months-long slogging chore of reading the code to conceptualize the software system. This barrier to entry causes errors, slows new-hire productivity and discourages new contributors to open source projects. That's why it feels like lip service when we say that software is meant for humans first and computers second. We build many tools to help us write code, but few to help us read it. I present a tool that aids software comprehension by leveraging program slicing, test suites, code coverage, and a few compiler techniques.