CSTL Processor


The CSTL Processor is a testing tool that supports automated testing of conceptual schemas specified in UML/OCL and defined by using the USEx syntax. The automated tests are written in the Conceptual Schema Testing Language (CSTL).


The CSTL Processor is a java program that needs to be installed in your computer according to the following instructions:

Installation instructions

  1. Choose the downloadable version of the CSTLProcessor which better fits your necessities and download it to your computer:

    Standard edition

    Version 1.0. (Last version) - ZIP file

    ER Course edition

    This version is intended to by used in the context of the ER (Requirements Engineering)l course teached at the Barcelona School of Informations - Universitat Politècnica de Catalunya - BarcelonaTech.

    This version includes buttons for automatically sending information about each iteration to the ER Course teachers.

    Version 1.0. (Last version) - ZIP file

  2. Unzip the downladed file. A new folder will be created.
  3. Execute the CSTLProcessor.bat file. Wait until the graphical interface appears.
  4. Verify that the CSTL Processor is correctly installed by trying the example described in Chapter 4 of the Getting Started guide.


  • Windows operating system
  • Java Runtime Enviroment


The CSTL Processor can be used for

Conceptual Schema Testing & Coverage Analysis

A conceptual schema defines the general knowledge that an information system needs to know in order to perform its functions. Two fundamental quality properties of a conceptual schema are correctness (i.e. the knowledge defined is true for the domain) and completeness (i.e. all relevant knowledge is defined).

The main purpose of conceptual schema testing is to ensure correctness and completeness of executable conceptual schemas specified in UML/OCL, according to a set of test cases that formalize user stories and their expected assertions.

The CSTLProcessor also performs the analysis of a basic set of testing adequacy criteria which allows checking which base types, derived types and domain event types have been tested in at least one consistent scenario and which schema elements have not been tested at all. By this way, you can identify schema elements whose relevance and necessary conditions for its correctness are not proved by the test set. Those schema elements which does not satisfy the adequacy criteria may need more testing in order to validate them.


In the following video-tutorial we show how the CSTLProcessor can be used in order to analyze the validity of a conceptual schema according to a set of user stories defined as test cases. This video-tutorial also includes a simple example of coverage analysis aimed at detecting which elements have not been tested. The video-tutorial uses the conceptual schema of a civil registry system as a running example. Using the CSTLProcessor for conceptual schema validation


Test-Driven development of conceptual schemas

Test-Driven Conceptual Modeling (TDCM) is an iterative method for the development of the conceptual schema of an information system. In TDCM, conceptual schemas are incrementally defined and continuously validated, according to stakeholders' needs and expectations.

TDCM uses test cases to drive the conceptual modeling activity. A test case written in a conceptual schema testing language is an executable concrete story of a user-system interaction. A test case also specifies user expectations formalized as test assertions. The verdict of a test case is Pass if the conceptual schema includes the knowledge to meet these user expectations.

In TDCM, the conceptual schema is defined incrementally in short iterations. An iteration starts by adding a new test case to the passing test set of the previous iteration (previous test set). The objective of each iteration is to change the schema so that it includes the knowledge to correctly execute the new test case.


In the following video-tutorial we show how the CSTLProcessor can be used for the test-driven development of a conceptual schema by using Test-Driven Conceptual Modeling (TDCM).

Using the CSTLProcessor for TDCM 

Testing Conceptual Schema Satisfiability

Satisfiability is one of the properties that all conceptual schemas must have. Satisfiability applies to both the structural and the behavioral parts of a conceptual schema.

Structurally, a conceptual schema is satisfiable if each base or de-rived entity and relationship type of the schema may have a non-empty population at certain time. Behaviorally, a conceptual schema is satisfiable if for each event type there is at least one consistent state of the information base and one event of that type with a set of characteristics such that the event constraints are satisfied, and the effects of the event leave the information base in state that is consistent and satisfies the event postconditions.

There has been a lot of work on automated reasoning procedures for checking satisfiability but it is well known that the problem of reasoning with integrity constraints and derivation rules in its full generality is undecidable. Conceptual schema testing can be an alternative approach to satisfiability checking when conceptual schemas are developed in the context of an environment that allows their testing, for example when using the CSTL Processor.

  • Olivé, A., Tort, A.: Testing Conceptual Schema Satisfiability. In: Nurcan, S., Salinesi, C., Souveyet, C., Ralyté, J. (Eds.), Intentional Perspectives on Information Systems Engineering, LNCS, Springer (2010).

Quant a


Basic documentation

  • Getting started with the CSTL Processor

    This documentation contains the installation instructions, an overview of the prototype and a "getting started by example" section, which introduces you to the prototype by an example of a Meeting Scheduler system.

  • The USEx language guide

    The CSTLProcessor allows to test UML/OCL conceptual schemas defined in the USEx language. This is a guide about this language.




Related publications


For any question or suggestion, feel free to contact us by sending an email to atort@essi.upc.edu

Treball Futur


In the following, we suggest some future work to be done regarding the evolution of the CSTL Processor tool:

  • Implementation of a new version of the tool core, including the integration of the new features provided by the newest USE tool version, which is the main component.
  • Implementation of a commercial user interface in order to redesign the prototype implementation. Some suggestions performed by participants in the evaluation process may be useful (more facilities in the editors, input schemas by a graphical editor, etc.).
  • Development and implementation of additional coverage criteria.
  • Integration into existing CASE tools.
  • Implementation of an assistant to help in the application of TDCM by using this tool.
  • Adaptation of the tool to new versions of the USE tool, whose core is used in the implementation. It requires to analyze the source code and adapting the facade that comunicates the USE tool with the functions of the CSTLProcessor.