Abstract
The gap between theory and practice has been identified as one of the key problems in the field of software engineering. While theory and practice both acknowledge that the core problem of software development is managing increasing complexity, they offer different mindsets for solving associated problems. In this paper, we will address the field of the design of behavioral and interactive properties. In this field pragmatic approaches provide facilities to improve development done by expert engineers, whereas theory largely focuses on finding abstractions and their formalizations. We start by discussing the abstractions that a formal method offers for the development of embedded systems. The formalism we use is DisCo, a language and a method specifically designed for the specification of reactive systems that continuously interact with their environments. Upon introducing the abstractions the DisCo method provides, we shift the focus to practical software engineering approaches that provide similar or related facilities for an expert analyst. After discussing their similarities, we conclude with some fundamental differences between theory and practice in today's software engineering.