Skip to main content
Version: 2023

Development process

This topic provides a high-level overview of the required steps to create a minimum viable product with the Thinkwise Software Factory. Each step contains a link to more detailed documentation about the subject.


This overview does not cover creating the specification for your application. You can create a specification in the Specification menu. Because it is possible to use external tools for this, this step is not included in this overview.


If you are planning to create a large application, we recommend to go through this procedure one module at a time. That way, you will already have something concrete to show at an early stage of development. It is also easier to estimate your progress that way.

Prepare your new Thinkwise application

Before you start building an application, you can make the following preparations:


  • Access to a Thinkwise Software Factory that has been configured already.
  • The specification that will form the basis for your data model.
  • The design of your required processes and business logic.
  • Knowledge of the Software Factory naming conventions.


  • A model with a standard branch structure
  • House style requirements, if applicable.
  • Existing components that you want to use, if available:
    • Solutions from the Thinkstore
    • Icons
    • Themes
    • Screen types
    • Domains

Set up a new Thinkwise application

To set up a basic Thinkwise application:

Create a model

See also model.


This step is optional if you already have a model.

menu Models > Model overview

  1. Execute the task Create model Create model.
  2. Confirm that you want to start working on the model that you just created.

Create domains

See also domains.

  • You can also create domains when working on the data model.
  • If you have existing domains that you want to use, you can import them.

menu Data > Domains

  1. Create the domains that you need. Domains connect table columns to their user interface representation. It depends on the data types that are present in your specification which domains you need to define.
  2. If you create a domain that requires defining static elements, add them on the Elements tab. Examples of such data types are the bit and tinyint data types.

Create the data model

See also data model.

menu Data > Data model

  1. Go to the tab Tables.
  2. Add the tables of your data model. Your tables represent screens in your application. You can customize these screens later when you define your screen types.
  3. Add columns to your tables and define their properties in accordance with your dataset.

    We recommend that you do not set your column types to Hidden, to make development easier. You can further restrict access to columns when you define your subjects.

  4. Go to the tab Design.
  5. Add references between the tables. You can also do that on the References tab.
  6. Go to the tab Validation.
  7. Validate your data model.

Create one or more menus

See also menus.

menu User interface > Menus

  1. Add at least one menu. You can create a list bar or a tile menu. Windows GUI Web GUI You can also choose a treeview menu.
  2. Go to the tab Design.
  3. Create a group for each main menu item.
  4. Drag and drop one or more of the available tables into each menu group. Each of these tables will become a menu item.

Add translations

menu User interface > Translations

Optionally, add translations for the items that you have created so far. If you choose not to do this yet, the user interface texts will be displayed between square brackets.

Create a database for your application

See also creation.

menu Deployment > Create

  1. On the tab Generate definition, execute the task Generate definition Generate definition. Once the progress bar reaches 100%, your model definition is ready.
  2. On the tab Validate definition, execute the task Execute all validations run. A validation is run on multiple validation groups, and a report is created for each group. The icons in front of each validation group indicates whether the validation was successful.

    If you encounter an error, you must resolve it before you can continue. If you encounter a warning or information icon, read the message carefully and resolve the issue if possible.

  3. On the tab Generate source code, execute the task Generate source code run. Once the progress bar reaches 100%, your source code is ready.
  4. On the tab Execute source code, execute the task Connect Connect. A connection to the database is established.
  5. Execute the task Execute all code files Execute code files to deploy your model to the database.

Your application is now available. There is no data yet. In Set up the GUI of your application, you will make your application look neat and professional.

Set up the GUI of your application

To set up the GUI of your application:

Set up screen types

See also screen types.

We recommend that you are consistent in which screen types you choose, and that you take into account what your user needs at an early stage. By default, your application will use predefined screen types.

You can also import existing screen types, if available These might not display your content exactly the way you want. In that case, you can create custom screen types to match your needs:

menu User interface > Screen types

  1. Find the screen type that looks closest to what you need and copy it, or start with a clean template.
  2. Assign your screen type to the corresponding subject(s).
  3. Go to the tab Design.
  4. Edit your screen type by adding or removing components.
    Windows GUI Web GUI If you want to add tasks or filters to your application, make sure to include a task bar or a filter bar.

Customize subjects

See also subjects.

menu User interface > Subjects

  1. Customize your subjects. Subjects are collections of data from your model that are displayed and edited in your application. They can be based on tables or views, and they are highly customizable.
  2. Customize each component that you use, so that your screens match the requirements of the users.
  3. Add look-ups for references to columns, tables, etc.

Customize the user interface

  1. Add conditions and/or prefilters to the subjects to further fine-tune the data that is shown in your application.
  2. In the menu User interface > Themes , create or import a theme for your application.
  3. In the menu User interface > Icons , add or import a collection of icons that you can use throughout your model.
  4. In the menu User interface > Translations, add translations for the items that you have created so far. You can execute the task Translate to automatically convert the names of your objects to a more readable format. You can also manually translate your objects.

Your application should now start to look and feel the way you want. You can continue fine-tuning the UI, or move on to Add functionality to your application first.

Add functionality to your application

To add functionality to your application:

Add custom business logic to your application

See also business logic.

menu Business Logic > Functionality

  1. On the tab Control procedures, create one or more control procedures. Available standard code groups are defaults, layouts, triggers, and more. See the overview of the available logic concepts for more information about the code group options.
  2. On the tab Templates, add a template.
    We recommend not to add SQL code to your template yet. If no code is present, the Software Factory puts a placeholder for your custom code when generating the definition. It will be easier to add your SQL code after the first definition generation, because then you can see the names of the available parameters.
  3. On the Assigning tab, execute the task Generate code group Generate code group.
  4. Assign a template (that is to be created automatically) to one or more of the available program objects.
  5. On the tab Deploy, generate the definition generate.
  6. Show show the generated code.
    Here, you can see the header of your code, and it will be clear which parameters are available and what they are called.
  7. Write your SQL code where it says "Insert your code here", and generate the definition again to apply your functionality.
  8. Go to the tab Validation.
  9. Validate your business logic.
  10. Go to the tab Deploy.
  11. Execute the code for all or a selection of program objects from a control procedure to the database.
  12. Go to the tab Unit tests.
  13. Add a unit test to test the functionality that you have just developed.

Add one or more process flows to your application

See also process flows.

menu Processes > Process flows

  1. Create one or more process actions.
  2. Go to the tab Design. Your process actions are shown here.
  3. Arrange your process actions in the correct order. The first action should be Start and the last action should be Stop.
  4. Connect each process action to the next with a process step.

    If you want to use your own custom tasks in your application, you can create those in menu Processes > Tasks. You can also automate creating reports in menu Processes > Reports.

  5. Go to the tab Validation.
  6. Validate your process flow(s).

Ensure the quality of the application's code

menu Quality > Code review

  1. Assign control procedures and templates that have not been approved yet to a reviewer.

After setting up your application, you can continue to add more business logic as needed, and refine it by finetuning the GUI.

What's next?

Once you have a minimal working application, explore the following subjects to build a mature application:

  • Quality assurance. Add smoke tests, and process tests to improve and guard the quality of your application. Use the Quality dashboard for a good overview of the quality of your branch.
  • Access control. You can add custom roles to your application to control user permissions and access. Take advantage of default user groups to quickly set up user groups and role assignments.
  • Analysis. Once your application is deployed, you can use the Analysis menu to inspect metrics and management information about the models in the Software Factory development environment. You can also calculate the functional size measurement of your software by using function point analysis.

Was this page helpful?

Happy React is loading...