The article "Contract Automata Library" has been published in Science of Computer Programming:
Basile, D. and ter Beek, M.H., 2022. Contract Automata Library. Science of Computer Programming. https://doi.org/10.1016/j.scico.2022.102841
For information on the usage and installation of the library, check the User Documentation at the Github Page https://contractautomataproject.github.io/ContractAutomataLib/.
For the API documentation, check the links below.
This documentation is up-to-date to the commit 4e1044e of 29 April 2022.
The following documentation has been created using the Model-based Software Engineering tool Sparx Enterprise Architect:
- Online documentation. A navigable site visualizing the packages and class diagrams of the project.
- Diagram report (pdf). Contains all the diagrams of the project.
- Library report (pdf). Contains information on all classes and their members (similar to javadoc).
- Packages report (pdf). Document containing a description of the packages and the classes.
The javadoc documentation for the release to the Maven Central Repository is available at https://javadoc.io/doc/io.github.contractautomataproject/catlib.
The tool is available under GPL-3.0 license. This is the main branch of the repository. The branch gh-pages contains the GitHub page of this repository.Davide Basile - [email protected].
In previous iterations this software was called CAT (Contract Automata Tool). Later on, with the addition of support for product lines, the software's name was extended to FMCAT (Featured Modal Contract Automata Tool). It was a monolithic piece of software comprehending both a prototypical implementation of the library and a front-end. The front-end was available both as command line or as a GUI. The command-line front-end has been discontinued. The GUI front-end was later factorised out to another repository (CAT_App), whilst the remaining library is now called CATLib. The set of software supporting contract automata is now called "Contract Automata Toolkit", for continuity with its previous iteration.
The source code has been completely rewritten in 2020. It was redesigned using the new functionalities introduced with Java 8 (streams, lambda). If you are reaching this repository from some previous paper on contract automata (e.g., JSCP2020, LMCS2020), you may be interested in checking an old version of the repository, before its refactoring. The latest version of this repository before its refactoring started is available at 06c5c32519bb5b67a2e7d331b512cae0aa37a2e1. The case studies of these papers can be found in this previous version under the folders demoJSCP and demoLMCS2020. The repository at https://github.com/davidebasile/experimentsReproducibilityCoordination2021 contains a comparison of the two versions of the library (before and after the refactoring).