Distributed autonomous systems consisting of large numbers of components with no central control point need to be able to dynamically adapt their control mechanisms during run-time in order to deal with an unpredictable and changing environment. Existing frameworks for engineering self-adaptive systems fail to account for the need to incorporate self-expression, i.e. the capability of a system to dynamically adapt its coordination pattern during run-time. Although the benefits of incorporating self-expression are well-known, there is currently no principled means of enabling this during system design. We propose a conceptual framework for principled design of systems that exhibit self-expression, based on inspiration from the natural immune system. The framework is described as a set of design principles and customisable algorithms, and then instantiated in three case-studies, including two from robotics and one from artificial chemistry. We show that it enables self-expression in each case, resulting in systems that are able to adapt their choice of coordination pattern during run time to optimise functional and non-functional goals as well as to discover novel patterns and architectures.