Problems that arise during the integration of software components are often caused by insufficiently specified interfaces of these components. Usually, there are implicit assumptions about the order of function calls and constraints on time and data. The CommaSuite framework consists of a set of languages and tools that allow the precise definition, analysis and monitoring of client-server interfaces.
The domain-specific language of Eclipse CommaSuite allows the specification of the provided and required interfaces of a software component. Each interface is described by means of (1) a signature, i.e., the set of commands, signals and notifications that are offered by a server, (2) a protocol state machine which describes the allowed sequences of interaction events between clients and server, (3) timing constraints on the occurrence of the events, and (4) data constraints on the values communicated. For a component, constraints can be added on the relations between its interfaces.
Based on an instance of the domain-specific language, a number of artefacts can be generated. This includes visualization based on PlantUML and GraphML, documentation, and interface monitoring. Monitoring allows frequent checks on interface conformance. For instance, during nightly tests and after components updates. Monitoring is based on traces of client-server interactions, e.g., obtained via logging or sniffing. It checks whether these traces conform to the state machine behavior of the interfaces and the additional constraints.
The tooling is available as standalone, an Eclipse plugin and as command line tooling for integration in the industrial workflow.
The Eclipse CommaSuite project is in the Incubation Phase.
The material in this documentation is Copyright (c) 2010, 2021 Contributors to the Eclipse Foundation.
Eclipse CommaSuite and CommaSuite are trademarks of the Eclipse Foundation. Eclipse, and the Eclipse Logo are registered trademarks of the Eclipse Foundation. Other names may be trademarks of their respective owners.