JUCS - Journal of Universal Computer Science 13(6): 682-700, doi: 10.3217/jucs-013-06-0682
CML: C Modeling Language
expand article infoFrederico de Oliveira Jr., Ricardo Lima, Marcio Cornelio, Sergio Soares, Paulo Maciel§, Raimundo Barreto§, Eduardo Tavares§
‡ Pernambuco State University, Brazil§ Federal University of Pernambuco, Brazil
Open Access
Abstract
Non-functional requirements such as performance, program size, and energy 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 developing application for small devices. On the other hand, the need for functional software correctness has derived several specification languages that adopt the Design by Contract (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.
Keywords
specification language, non-functional requirements, c programming language