Large software projects produce many documents of many different types that, together, describe the plans for, implementation of, and experience with the program. Ensuring that these documents do not have serious conflicts with each other is a critical task in any real software system, but requires a level of integration among the different types of software documents that is not possible with current development tools.
Our research project is now beginning work to identify the document representations, software tools, and user interface services that are required to integrate program source code and all other software documents into a seamless, interconnected whole. The project is producing a prototype development environment, called the Software Concordance, that allows arbitrary multimedia documentation and hyperlinks inside program source files and additional tools for managing and understanding the relationships between software documents. Successful creation of the Software Concordance will require solutions to problems of document representation, integration of incremental parsing and formatting services, fine-grained version control, and tools for analysis of networks of time-stamped, directed hypertext links. It is our hope that this research will break down the barriers that currently exist between program source code and the natural language documents that motivate, evaluate, and explain it.
In this talk, I will present our vision for the Software Concordance and describe the research problems that we will be investigating.