Article ID | Journal | Published Year | Pages | File Type |
---|---|---|---|---|
551650 | Information and Software Technology | 2016 | 23 Pages |
ContextRecent years have seen an increasing interest in general theories of software engineering. As in other academic fields, these theories aim to explain and predict the key phenomena of the discipline.ObjectiveThe present article proposes a general theory of software engineering that we have labeled the Tarpit theory, in reference to the 1982 epigram by Alan Perlis.MethodAn integrative theory development approach was employed to develop the Tarpit theory from four underlying theoretical fields: (i) languages and automata, (ii) cognitive architecture, (iii) problem solving, and (iv) organization structure. Its applicability was explored in three test cases.ResultsThe theory demonstrates an explanatory and predictive potential for a diverse set of software engineering phenomena. It demonstrates a capability of explaining Brooks’s law, of making predictions about domain-specific languages, and of evaluating the pros and cons of the practice of continuous integration.ConclusionThe presented theory appears capable of explaining and predicting a wide range of software engineering phenomena. Further refinement and application of the theory remains as future work.