Highly successful scientific disciplines have at least one common denominator; they have developed unified theories that span a large set of phenomena within the discipline. The discipline of software engineering today features a multitude of disparate and fragmented micro-theories. Among these micro-theories, many speak of different things, many speak differently of similar things, and few can be employed consistently together. Since these micro-theories are so numerous and diverse, software engineering also lacks a common vocabulary for communication and argumentation. There are no real rules for separating sound arguments from unsound ones. This article argues that the search for a single unified theory of software engineering is both viable and desirable. In order to do so, requirements for such a unified theory are outlined. Then three well-known software engineering theories that could constitute embryos to unified theories are considered in the light of the presented requiremen...