A general theory of software engineering has that there are two logical parts: design and evaluation, D and E, each of which as a theory T. The interesting question is "what is the relationship between these two theories in D and E". I first delineate a rich variety of theories related to D and E and consider these to be sub-theories critical to understanding the relationships between the theories in D and E. I then delineate these relationships in terms of different types of empirical evaluations. Doing so explains why empirical evaluations are a dominant part of software engineering projects and why these evaluations are so complex.
['Dewayne E. Perry']
Theories, theories everywhere