Automatically generated system specs
Understanding software
Complex systems are notoriously difficult to understand, control, and modify. And software systems pose a particular problem, because of their large number of parts (millions of lines of code are commonplace), the arbitrary connections between their parts (unlimited by physical constraints), and their rapid rate of change (literally overnight), among other factors. But reliability in these systems is increasingly crucial to society, and the ability to produce dependable software presents a substantial competitive advantage. This project is applying a novel technology to the problems of understanding, evolving, testing, and debugging software systems. The technology will be able to generate formal specifications –which should precede software development, but often don’t –after the fact. Its potential applies not only to the analysis of software, but also to any observable, measurable, complex process. The team is currently collaborating with two local software development companies.