Current applications execute on a software stack comprising many different layers of abstraction, providing various services and structures. Access to these layers is mediated through different kinds of interfaces, all typically specified as secondary documentation supplied along with the application program interface. Because this documentation is typically defined informally, it provides only a partial, incomplete understanding of the system as a whole and requires substantial manual effort and reasoning.
Our university is all aflutter with excitement on this proposal. The profs seems to feel that this is the right time to ensure that what we build next is on solid foundations.