Functional modelling has been in use for a number of years for the interpretation of the results of model based simulation of engineered systems. Its use enables the automatic generation of a textual design analysis report that interprets the results of qualitative (or numerical) simulation in terms of the system's purpose. We present a novel functional description language that increases the expressiveness of this approach, increasing the range both of systems and design analysis tasks for which the approach can be used. The language also allows closer integration of functional modelling into the design process. The language allows a device function to be decomposed either in terms of subsidiary functions or required effects. We discuss the use of such alternative decompositions and propose a logic of functional description that is used to underpin the proposed language. The language has been used in the interpretation of electro-mechanical, hydraulic and fluid transfer systems in the automotive and aerospace industries to support tasks Failure Modes and Effects Analysis, Sneak Circuit Analysis, and Diagnosis. The language is not inherently restricted to these applications and the paper makes use of indicative examples from other domains.