Software System Contract Modeling Language (CML)

From GM-RKB
Jump to navigation Jump to search

A Software System Contract Modeling Language (CML) is a high-level domain-specific language (DSL) used to model large-scale systems of systems and the contracts that bind them together.



References

2023

  • Bing Chat
    • Contract Modeling Language (CML) is a high-level domain-specific language (DSL) used to model large-scale systems of systems and the contracts that bind them together. It is used to document the interfaces to constituent systems using formal, precise, and verifiable specifications including preconditions, postconditions, and invariants 1.

      In CML, every process construct has an associated contract that allows clients and suppliers to check that the implementations of constituent systems conform to their interface specifications 1. The basic structure of a CML contract is similar to a class in object-oriented programming and thus consists of state variables and actions (functions), which read and modify these. In addition, a contract contains clauses, which mimic and capture contractual obligations in a standardized natural-language-like way 2.

2007

  • de Oliveira Jr, Frederico, Ricardo Lima, Márcio Cornélio, Sérgio Soares, Paulo Maciel, Raimundo Barreto, Meuse Oliveira Jr, and Eduardo Tavares. "CML: C modeling language." Journal of Universal Computer Science 13, no. 6 (2007): 682-700.
    • ABSTRACT: Non-functional requirements such as performance, program size, and en-

ergy consumption significantly affect the quality of software systems. Small devices like PDAs and mobile phones have little memory, slow processors, and energy constraints. The C programming language has been the choice of many programmers when devel- oping application for small devices. On the other hand, the need for functional software correctness has derived several specification languages that adopt the Design by Con- tract (DBC) technique. In this work we propose a specification language for C, called CML (C Modeling Language), focused on non-functional requirements. CML is inspired on the Design By Contract technique. An additional contribution is a verification tool for hard real-time systems. The tool is the first application developed for CML. The practical usage of CML is presented through a case study, which is a real application for a vehicle monitoring system.