Building Cyber-Physical Systems (CPS) involves several teams of engineers with different backgrounds. We focus on interactions between control engineers and embedded software engineers. Lack of rigorous methodologies for communication and interaction between the two groups has been recognized as an obstacle to the development of dependable and cost-effective CPS. We advocate the use of {\em design contracts} as a step towards bridging this gap. Design contracts act as a medium for communication and interaction between the control and computation/communication design problems in a CPS. The contracts provide a focal point for negotiation and for decision making. Once design contracts have been established, they help to separate the global CPS design problem into two sub-problems, each of which can be tackled separately by the control-engineering and the embedded software teams, thus making the design more tractable and efficient. We propose a framework of design contracts encompassing (i) concepts relevant to timing constraints and functionality; (ii) a formulation of some popular design approaches as design contracts; and (iii) a process and guidelines on how to choose, derive and employ design contracts. The guidelines place specific emphasis on modeling and simulation support.




Download Full History