[REQ-artifact] [REQ-artifact-generation] text = ''' ''' [REQ-artifact-generation-model] text = ''' ''' [REQ-artifact-generation-page] text = ''' ''' [REQ-artifact-generation-xflow] text = ''' ''' [REQ-artifact-testing] text = ''' As part of the artifact generation, suitable testing artifacts shall be generated to assert the validity of the assumptions made in the artifact generation. E.g. Selenium tests for browser-based artifacts. ''' [REQ-domain] text = ''' A platform independent format for describing a data model shall be available. ''' [REQ-dsl] text = ''' Each data structure in the project shall be open to manipulation and inspection via a consistent, declarative, domain-specific, textual language. ''' [REQ-flox] text = ''' An evaluation environment shall be available with an expression-based language capable of, - Performing numeric arithmetic - Performing boolean arithmetic - Binding to contextual variables at run-time ''' [REQ-i18n] text = ''' All user-facing text will be translatable into an arbitrary number of languages, identified by ISO 639-2 code, optionally extended with a regional code identified with a two-letter country code from ISO-3166-2. ''' [REQ-i18n-external_translation] text = 'All translatable content must be exportable into an external format for translation, the result of that translation has to be importable again.' [REQ-pages] text = ''' A platform independent format for describing application pages shall be available. ''' [REQ-portability] text = ''' - The project shall be available for a wide variety of operating systems and platforms. - The project shall be suitable for embedding in other environments. ''' [REQ-purpose] text = ''' The purpose of this project is to provide data structures and tooling for the manipulation and execution of a portable representation (model) of an application containing, - a data model (domain) - user interfaces (ui) - state transisitions (app-flow) - validations (using xflow) - graph-based execution (xflow) - an evaluation language (flox) - internationalization (i18n) All aspects of the model shall be serializable to and deserializable from multiple formats as well as having a plain-text, filesystem-based representation suitable for management under a version-control system. All aspects of the model manipulation and artifact generation shall be suitable for integration in existing build-pipelines and development processes. Examples can be found in {repo}/resources/ ''' [REQ-serialization] text = ''' Flows shall be serialized and deserialized in different formats. Serialization and deserialization shall be possible with, - json - yaml ''' [REQ-serialization-fs] text = ''' All models can be serialized to or deserialized from a filesystem. The filesystem format shall, - Have a separate file for each document in the model - Be human readable (indented output, not compact) - Be suitable for management by a version control system ''' [REQ-serialization-json] text = ''' All models can be serialized to or deserialized from JSON. ''' [REQ-serialization-yaml] text = ''' All models can be serialized to or deserialized from YAML. ''' [REQ-xflow] text = ''' A graph-based, platform independent format for describing logic shall be available. The format shall be suitable for, amongst others, - Graph analysis - Graph rendering ''' [REQ-xflow-call] text = ''' An xflow shall be able to call another xflow. '''