|This article relies too much on references to primary sources. (August 2012)|
Tersus Visual Programming Platform is a general purpose software development platform that enables the development of applications, mainly rich web applications, by drawing flow diagrams instead of writing code. It's dual licensed as open-source and proprietary software.
The platform also contains a visual debugging capability. The Tersus Server can record every step during the application’s execution, and this recording ("trace") can then be played back in the Tersus Studio to view the flow of the application and the value of each data element.
Both the Studio and the Server are available on a variety of platforms, including Microsoft Windows, UNIX, Linux, and Mac OS X. The latest stable version of Tersus is version 220.127.116.11, released in May 2012.
The Tersus Visual Programming Platform version is published under the GPL v2 license. There's also a Tersus Enterprise Platform version under a commercial license providing additional integration features and support.
An application is defined by a hierarchy of visual models, where high level models are composed of lower level components. The developer (modeler), employing an “infinite drawing board” that displays graphically the whole model hierarchy, starts at a top-level diagram representing the whole system, and then continues with an iterative top-down refinement process, drilling down from each model to specify its components. At the lowest level, a library of atomic building blocks is used, including, among others, data types, GUI elements, mathematical functions, database actions, and document handling actions.
Processes (and in certain cases also display elements) can receive and send out data through input "slots" ("triggers") and output slots ("exits"). The flow of data between processes, as well as the sequencing of processes, is governed by "flows" (visually represented as arrows connecting model elements).
When developing a web application, the high level models define the application's screen layout and GUI, using "display elements" (text displays, links, buttons, tables, images, etc.). Lower level models define the application's logic, using "data elements" and "process elements".
The platform includes:
- Tersus Studio, the IDE used by modelers. It manages projects, each containing the models and resources of one application. The application models are saved as a set of XML files, each containing the details of all models in a certain package within the project.
- Model Libraries, containing building blocks for assembling applications.
- Tersus Server, which executes the modeled applications and performs the required database updates. It contains an embedded application server (Tomcat) and an embedded database server (HSQLDB), which allow for immediate testing of the modeled applications. External application servers and database servers can be used to deploy applications operationally.
End-users invoke the applications from their browsers (for web applications), or directly from their mobile devices (e.g. for native iPhone applications).
- Language independence (model names and GUI can be in any language)
- Model templates and model prototypes (templates with constraints)
- User-defined data types (data element with restricted content)
- Importing WSDL definitions of web services as Tersus building blocks
- Look and feel customization through CSS
- Visual debugging (tracing) by playback of application execution
- Automated testing through the definition of "test suites"