There is no theory which enables us to calculate the limits on the size, performance, or complexity of software. There is, in many instances, no way even to specify in a logically tight way what the software is supposed to do or how it is supposed to do it.