This document provides a high-level overview of the Thinkwise Platform, comprising the Software Factory development environment, the Intelligent Application Manager, the Indicium Application Tier and the various adaptive user interfaces.
The Thinkwise Platform is an integrated software development environment to develop new software applications and modernize existing applications. These applications consist of a database, business logic, service tier, user interfaces and, if necessary, data interfaces to other applications.
Applications developed with the Thinkwise Platform environment are easily kept up-to-date both technologically and functionally. The productivity of the development process amounts to 0.5 hours per function point where currently the market average for traditional software development is 8 to 10 hours per function point and the market average for other low-code platforms is approximately 2.5 hours per function point (see 6.3).
The Thinkwise Platform consists of the following components:
- Software Factory (SF)
- Intelligent Application Manager (IAM)
- Abstract Graphical User Interfaces (GUIs)
- Indicium Application Tier
The Software Factory is used during the development and test phase to develop an application on the basis of a model (blueprint). The graphical user interfaces interpret the model during runtime so that the user can work directly with the application. Once the development is completed, the model is transferred to the Intelligent Application Manager in the production environment.
The Intelligent Application Manager manages all the models of applications that are in the acceptance and production phases. The application managers can also set up authorizations using IAM. The presentation for the user is again provided by the GUIs. End users can set up their own user preferences via the GUIs and get suggestions from IAM to optimize their user experience.
The GUIs are available under Windows, Web and Mobile (smartphone and tablet). The capabilities of the various GUIs are very extensive and almost identical, to the extent that this is technologically possible.
The modernization of software applications takes place with the Thinkwise Upcycler. This tool is only deployed by Thinkwise itself and is not described in this document.
The positioning of the various Thinkwise products (Upcycler, SF, IAM and GUIs) is presented in the diagram below. Each product is discussed separately in the following chapters with the exception of the Upcycler.
Thinkwise Platform overview
Extensive online documentation is available for the Software Factory, Intelligent Application Manager, Application Tier and GUIs. The requirements for their installation are also described in the documentation.
An example of a Legacy application that can be modernized to a Windows, Web and/or Mobile application using the Thinkwise Platform is given below:
Example of a legacy application
Subsequently, the modernized screen in a Windows environment:
Example of a modernized application
Thinkwise applications consist of a data tier, an application tier and a presentation tier (GUIs). The business logic, which contains customer-specific functionality, is included in the data tier in the form of SQL procedures, functions and triggers. The use of C# or Java-based logic is also possible.
Thinkwise Platform Architecture
The Thinkwise Indicium Application Tier is the central integration hub of the Thinkwise Platform and provides a solution for all integration challenges. With automated processes and a range of default connectors, the Thinkwise Platform can connect to a wide range of third party services and applications, like:
- Artificial Intelligence services (Bots, Virtual Assistants, Machine Learning, Image recognition)
- Big Data solutions (Search, Analytics, Internet of Things)
- Office integration (Exchange, Office 365, SharePoint)
- Third party applications (custom user interfaces, financial applications, Power BI)
Third party applications and services in turn can connect to Thinkwise applications with minimal effort using the provided webhooks and REST API. The Thinkwise Application Tier uses the OData protocol for its API, one of the most widely used standards for RESTful web services.
Here are a few examples:
Thinkwise applications can synchronize appointments, tasks, e-mails and contacts with Exchange.
Architecture of the Exchange connector
Incoming and outgoing e-mails can be enriched in the application so that the exchange with a customer or supplier is fully and quickly transparent. Appointments and tasks can be made in the application, then dealt with in Outlook whereupon any changes are passed on to the application.
Business Intelligence can then be applied to e-mails, appointments and tasks.
SOAP and JSON/REST services can be called, for instance, to retrieve distances, postal codes and CoC details. Furthermore, all data, processes and business logic of Thinkwise applications is available through web services and can be used by other applications and services.
The GUIs can visualize geographic data such as locations and routes on maps from various providers, such as Google Maps, MapQuest and Here Maps.
Example of maps integration
The Thinkwise Platform is designed with security in mind, following the Security by Design principles. It provides controls to protect the confidentiality and integrity of information and to ensure the availability to authorized users. The Thinkwise Platform supports different authentication protocols, like OpenID and ADFS, Single Sign-on and multi-factor authentication.
The Thinkwise Intelligent Application Manager provides role-based access control and entity-, row- and field-level authorization, while the Application Tier ensures that business rules are respected at all times, even when bulk importing data or when interfacing with third party applications.
The Thinkwise Platform is optimized for speed and scalability. The stateless Application Tier can easily be horizontally scaled for load balancing and failover purposes. This allows optimal use of the power of cloud platforms, such as Microsoft Azure, Amazon Web Services, Google Cloud or IBM Cloud.
The Application Tier is developed with the .NET Core framework, making it cross platform and highly optimized for running in (Docker) containers.
The process of development with the SF consists of the following phases:
- User Interface
- Business Logic
- Quality control
- Access control
This is presented in the figure below:
Development in multiple phases
These phases correspond to the menu in the Software Factory development environment. The development team has access to the components of these phases via the menu on the left-hand side of the screen.
Start screen of the Software Factory
Business processes can be defined in the Software Factory to gain a deeper understanding of the scope and context of the application(s) that will be built. Requirements can be seen as a contract between the business and the developers, with which the scope of the project is continuously monitored. Work items are created for requirements to guide the developers during the development phase.
During the analysis phase, the function flow diagrams are designed first. The relationship between a business process and the functional entities, such as departments, are specified there. These functional entities are displayed on the horizontal strips. The function flow diagrams are often designed based on interviews with the interested parties of the project. Other elicitation methods can be applied such as analysis of the existing application, documentation, observation of end users, etc.
Example of a function flow diagam
The user and system requirements are subsequently specified for each process. Using the integrated stakeholder portal, stakeholders can review and comment on flow diagrams and requirements before accepting.
Example of a requirement
Features and iterations
Requirements and work items can be organized using features and iterations. Features can help categorize the work more efficiently while iterations facilitate the planning process. Features and iterations can be configured completely to your wishes, for example using applications, modules and sub-modules to group features or by using releases and sprints as iterations.
Work and kanban board
Development teams can leverage work items to describe, plan and keep track of development activities. A work item describes what changes to a model or business logic need to be done. The kanban board allows developers to keep track of, and update the status of, their work.
Work on the kanban board
Modeling & Validation
During the modeling phase, the following models are specified:
- Data model
- Dynamic model
- User Interface
- Screen types
- Cubes (Business Intelligence)
- Process flows
- Custom screens
All these components form the basis for the application without it being necessary to have to program them. Only the model has to be created. This takes place based on the requirements and work as drawn up in the previous phase.
The quality of the model is monitored with the Validator. Thinkwise provides hundreds of validation rules, but company specific validation rules can also be added.
Example validation rules
When the model is created, a demonstration can be given to the business to show at an early stage what the application will look like and how it will work. This demonstration helps build a bridge between the business and IT.
The database of the application is designed using the data model which is presented graphically, as shown in the figure below:
Example of a graphical data model in the Software Factory
The GUI is also designed without programming. The design is flexible so that screens automatically adjust themselves to the various resolutions. By linking (self-designed) screen types to the subjects of your model, a GUI can quickly be developed for hundreds of objects.
The GUI is multilingual and contains possibilities for integrated Business Intelligence, both pivot tables as well as graphs. In addition, graphical plans and geographic presentations are easy to integrate.
Modeling a screen type
Batch or interactive tasks (jobs) can be modeled, for instance, to execute a calculation or generate invoices. These tasks can be started automatically by a scheduler or manually via the GUIs. Interactive tasks can request the user for input before they start.
Example of a task popup
For the generation of reports, a connection can be made to various reporting tools, such as DevExpress Reports, Crystal Reports, Microsoft Word, SQL Server Reports and i-net Clear Reports. These reports can be viewed, printed, mailed and exported to various formats automatically or via the GUIs.
The Thinkwise GUIs include integrated Business Intelligence functionality for the presentation of interactive pivot tables and graphs, whereby operational management information can be made available in a simple manner. It is also possible to connect with Microsoft OLAP (SQL Server Analysis Services).
Example of integrated charts
End users are automatically guided through the application with the help of process flows, where the subsequent process steps that must be acted upon are presented to them. Process flows are designed graphically, as seen below:
Example of a process flow
Help text can also be defined in the SF, for each process as well as for each object. The help text can be set up fully multilingual. The GUIs are context sensitive and immediately display the relevant part of the help text.
Example of the help text
By including meta procedures in the generation process, the model can be automatically extended. This particularly concerns aspects of the data model and GUI model that form a main theme throughout the application.
The following are examples of this:
- Adding trace columns (added on/by, changed on/by) to all tables and display on a separate tab in the GUI.
- Add an update counter column to tables which are updated.
- Create indices on standard forms of the GUI
As soon as a meta procedure is added, the aspect is automatically added and requires no more maintenance if the model is modified or extended. SQL must be programmed once for each meta procedure and requires knowledge of the SF database and its concepts.
Development & Testing
The last phase of the project consists of programming and testing the business logic.
Code templates are written according to the design specifications. This is the only component that is actually programmed. Templates are woven into the correct position in the business logic layer, based on the definitions in the model.
Architecture of the programmed business logic
The programmed templates can be tested automatically with unit tests and process tests, that are stored in the Software Factory.
Unit tests can be used to test individual business rules. Any data that is required for a unit test (mock data) can be specified as part of the unit test.
Process tests are used to test processes in the context of a user. Process tests can be created in three ways:
- Recorded via the GUI.
- Modelled via the Software Factory.
- Automatically derived from the existing model.
Process tests are executed by the GUI and the test results are stored in the Software Factory.
Recording test cases via the GUI
The test results are also analyzed there.
Analysis of the test results
With the integrated test tooling, a test only needs to be specified once and can thereafter be executed automatically. This guarantees that existing functionality continues to work after any additions and modifications.
Along with the development tools, Thinkwise also offers tools to analyze the model and convert it to an actual application. These tools can be found under the Projects, Deployment and Analysis menus.
The continued development of the model of an application takes place in the SF on a version by version basis. By performing a difference analysis between two versions, it is automatically determined what must be modified in the database and business logic. The data in the database is retained and will automatically be converted to the new structure.
Usually a DTAP street is used during development. DTAP stands for the Development - Test - Acceptance - Production process of which every version must pass through. By working in versions the Thinkwise Platform is extremely suitable for this.
Working in teams
A model for an application can be split into one or more branches. This allows different teams to work on the same application (within their own branch) without getting in each other’s way.
Finally, the modifications and expansions of a branch are combined (merged) with the trunk (the production version). Conflicts can possibly occur during merging, but these are automatically detected by the Thinkwise Platform and presented to the developer.
Example of branching and merging
Intelligent Application Manager
With the help of the Intelligent Application Manager, applications are provided with authentication, authorization and user preferences in a simple and well-organized manner.
Users get one user interface with which they can obtain access to all applications to which they are authorized. These applications can even be located on different servers and RDBMSs.
Start screen of the Intelligent Application Manager
The Intelligent Application Manager has the following components:
To include a new or existing project version as an application in the IAM, it is necessary to synchronize it with the SF. This means that the blueprint is copied from the SF to the IAM. As soon as this has taken place, the authorization for this application can be set up via the IAM.
Authorization is linked to roles and user groups using Role Based Access Control. A user group contains several users, but a user may also be a member of several user groups. If required, a membership is time-related so that access rights automatically expire after a period of time (for example with temporary contracts).
Authorization can be defined down to field level and on cross-sections of data.
The users can be authenticated via Active Directory, the RDBMS, IAM authentication or Open ID.
In addition, it is possible to set user preferences. For example, splitter positions can be retained, positions of columns modified and even entire screen types can be changed.
Everything a user can do with regard to user preferences can be authorized.
For each user, the application manager can specify whether specific (or all) actions of the user are registered in the GUI.
Through analysis of the user’s method of working, the user preferences for the user in question can be optimized automatically by IAM.
If a user frequently opens the customer screen and then filters on a customer, IAM can recommend opening the customer screen with the application. This will not immediately retrieve the customer details from the database, but firstly display the filter screen. This leads to fewer user actions and a lower load for the server.
The analysis can also be reason to provide the user with additional training.
Simulation to provide support
Because the GUIs can differ for each user through authorization and user preferences, support employees can start an application using the settings and authorization of a specific user. This way, the support desk employee sees the same GUI and user preferences, and can provide better support to the user.
All changes regarding authorization are logged automatically. This logging helps to keep the application SOx Compliant and satisfy important guidelines with regard to control.
The GUIs are available in various technologies such as Windows, Web and mobile devices. These can also be deployed alongside each other in one application. Thinkwise ensures that the GUIs will also become available for future technologies so that the applications automatically remain up-to-date.
The GUI does not have to be programmed. It is completely built up during runtime on the basis of:
- contains the definition of the GUI.
- is defined in the SF and synchronized with IAM.
- omits everything for which a user is not authorized.
- is defined in the IAM.
- consists of color scheme, logos, etc. and can, for instance, differ for users of a customer in a customer portal.
- is defined in the SF and selected in the IAM.
- User preferences
- provide an individual display of the things that a user is authorized for.
- is provided from the GUI and recorded in the IAM.
The GUIs are fully multilingual and communicate with the same business logic layer.
A brief summary of the functionality for each type of GUI is given below. A comprehensive description is given in the various manuals. The screen examples come from the Insights application that is used by Thinkwise for training purposes.
The Windows GUI provides a wide range of default functionality, available through the integrated ribbon, button bars and the context menu.
Data can be visualized in hierarchically structured screens with multiple subjects, using grids, forms, maps, charts and pivottables, document previews, dashboards, gantt charts and more.
The user interface supports different reporting options and import, export and mass update of Excel and csv files.
Data can be added, updated and deleted using forms, inline editing in grids and task popups.
Individual fields can be displayed and edited using regular text- and numeric controls, calculators, calendars, checkboxes, links, barcodes, rich text and html controls, progressbars, radiobuttons and more.
Extensive search and filter options are available using predefined filters, Excel-style filtering, a powerful search box and an advanced filter popup to create complex filterconditions.
The userinterface also supports drag-drop of rows and files, clipboard actions, window docking and multiple windows.
Example screen of the Windows GUI
The Windows GUI can be deployed centrally with the help of the Thinkwise Clickstart tool. If the GUI is started on a desktop, it is first checked whether a newer version is available centrally. If this is the case then this version is copied to the client and only then started up.
A new version is only required if Thinkwise has expanded the standard GUI functionality, and not if the application itself has been modified. This takes place via the model.
The Windows GUI can also be run under Citrix, Terminal Server and VDI.
The web GUI does not require any browser plug-ins and supports the following browsers:
- Internet Explorer (version 11 or higher)
- Mozilla Firefox
- Google Chrome
- Apple Safari
- Microsoft Edge
The functionality of the Web GUI is identical to that of the Windows GUI.
Example screen of the Web GUI
The User Experience of working with a mobile device is completely different (for example swiping) than working with Windows or Web GUI. To optimally use the smaller screen the GUI utilizes a different screen structure. It is however driven by the exact same model.
In addition, the GUI for the mobile devices contains possibilities for working offline. The data can be stored locally and synchronized with the central application as soon as the device is online again. If business logic is required in the offline mode, this is programmed separately, as the central set of rules is not accessible.
The Mobile GUI is suitable for Apple iOS and Google Android.
An example of a tablet display is given below:
Example screen of the tablet GUI
An example of a smartphone display is given below:
Example screen of the smartphone GUI
The appendices consist of the following components:
- A summary of important properties in the factsheet.
- A selection of reference customers that have purchased an application that is built with the SF or have themselves purchased a license for the SF.
- An overview of the measured productivity.
|Technology||RDBMS||SQL server, Oracle, DB2|
|Modernized||RPG, Cobol, Foxpro, Access, Excel, VB6|
|Productivity||ERP||< 1.0 hour per function point|
|Peripheral application||< 0.5 hour per function point|
|Connectivity||Financial||SAP, Exact, Navision, Muis, AFAS, Davilex|
|Other||Via web services|
The following companies are some of our references. On our website you will find an extensive list of our customers.
Function Point Analysis
Function Point Analysis (FPA) is a method to measure the functional scope of an information system. FPA measures this functional scope by examining the functions and (logical) data collections that are relevant for users.The measurement unit is the function point (fp), and so the scope of a system is expressed in number of function points.
Function points are a good measure of the size of a system. The function point measurement unit can be used in several ways. An often-used application of FPA is the estimation of system development. The costs of developing a system are related to its size. The larger the system, the more expensive it will be. FPA can be used both for new development and for maintenance projects.
From previous experiences, it is known how many hours on average are needed to develop one function point. This defines the productivity. Size (number of function points) x productivity (required hours per function point) provides a basis for the project budget.
FPA is a objective method that does not require IT knowledge. With sufficient documentation, an FPA count for a system of 1000 development hours can be made in approximately 1 hour.
|Programming language||Hours per function point|
|Other low-code platforms||2.5|
Market average for each technology
The Software Factory automatically counts the function points of an application. This point count is officially calibrated by the QSM authority. In addition, Thinkwise is a member of NESMA (Dutch Software Metrics Users Association).
|Thinkwise Customer||Hours per function point||Function points||Time in hours|
Function Point measurements of Thinkwise projects
The time spent in hours includes the design, development and test phase of the applications. The mentioned function points are based on one user interface technology only.