This document presents an accepted manuscript for a journal article that proposes a design theory for software engineering. The theory is based on the authors' prior work on Problem Oriented Engineering (POE), which takes the view that software engineering involves framing, representing, and transforming problems as part of an iterative problem solving process. The authors argue their theory addresses ontological and epistemological questions about the nature and development of theories in software engineering, based on Gregor's meta-theoretical framework for theories in information systems. The theory provides descriptions and explanations of many phenomena observed in software engineering and its combination with other technologies to solve problems.