DEMO Based Dynamic Information System Modeller and Executer (DISME)
DISME (Dynamic Information System Modeler and Executer) is a tool that allows the representation of process models, workflows, responsibilities, interfaces, facts and information ontology, roles, organizational functions and associated agents. These models can run directly as an information system with the inherent workflow running dynamically and notifications being automatically sent to the users. Automatic integration with other existing systems in the organizational environment is also envisaged. The modeling and parameterization of all the elements mentioned above are performed with intuitive menus and forms, where the need for programming is very small or practically non-existent.
The solution being developed follows the principles of innovative computer trends such as Software as a Service, Direct Model Execution, Model-Driven Software Engineering, and Automatic Code Generation, which aim to make organizations increasingly independent of programmers or software companies, so to be able to change and evolve their portfolio of software processes and applications with greater flexibility and agility. For example, instead of having to ask a programmer or software vendor to change some aspect of the information system (such as adding an additional field to a form, or introduce a new task in the process with a new form), anyone duly authorized and without any programming skills (e.g., the director of the department) can access the system administration menu and easily add the new field or task by filling in a few details. When the change is made and/or approved, the system immediately adopts the new setup.
The innovative and differentiating factor of the solution being developed, when compared to those in the market, is that it is based on models and techniques specific to the enterprise engineering discipline, which allow a more comprehensive, flexible and informed capture of processes and organizational reality when compared to the traditional requirements engineering approaches. DISME is opensource based, currently in alpha stage, and will be released, also opensource, in github soon.
Current components of DISME:
- Diagram Manager – based on diagrams.net – specification of processes, tasks and their chaining, as well as concepts and attributes (system DB)
- System element manager – based on AG grid – listing/specification/editing of previous elements and others (users, roles, etc.) through tables and simple forms
- Query manager – based on jQuery QueryBuilder – specification of queries graphically, with or without filters with values specified directly or evaluated at runtime (as parameters)
- Template manager – based on TinyMCE – specification in WYSIWYG mode of contents to be shown in output to the user, during interaction with the system, or when generating documents
- Action Rules Manager – based on blockly – specification of input/output actions (to user and/or external systems via REST API), flow (if/then/else/foreach), evaluation of logical conditions and expressions arithmetic, query execution, etc.
- Forms manager – based on forms.io – specifying the layout of forms for input actions defined in the previous component
- Dashboard – control panel for starting/running/managing tasks
- Execution Engine – execution of actions according to user initiative and rules specification. Uses Symfony/ExpressionLanguage for expression (logical and arithmetic) evaluation in runtime
- Rapid Rest API Management – based on swagger – specification of local endpoints, respective parameters and action rules, as well as automatic generation of documentation; specifying calls to external endpoints and managing related information
- Management of Business Intelligence elements – based on the Knowage platform – specification of sets/data sources to be presented in informational widgets for informational and business decision support
- Document management – based on Mayan EDMS – generation and management of documents with OCR functionalities, electronic signature, versioning, etc.