The process of development with the Thinkwise Software Factory consists of the following phases, which are explained in more detail in the following pages:
- Specification - drawing up requirements and modeling the business process
- Models - creating a model or branch
- Data - modeling the domains, data model and data mapping
- User interface - setting up the user interface of the application
- Processes - features to support the processes of your business
- Business logic - creating the required functionality
- Quality - review, test and validate the model and business logic
- Access Control - configuring roles and assigning permissions
- Deployment - putting the end product into production
The menu within the Software Factory is built up in the same manner and therefore corresponds with the structure of the manual.
One characteristic of developing an application with the Thinkwise Software Factory is that after completing the modeling phase, a working prototype of the application can already be demonstrated. This is due to the phased structure of the development process and because no lines of code need to be written for the prototype. The stakeholders can therefore already see a working end product at an early stage, and they acquire a good idea about where the product is going.
The prototype serves as the basis for further development and adding functionality and documentation.
Help functionality that supports the developer with the development of a model is available within the Software Factory via the F1 key. All topics of the Software Factory are described within this functionality. As default, the help functionality opens with the component that is selected at that time.
The requirements are specified during the analysis phase, using the Business processes screen to approach the requirements specification in a process oriented approach and/or the Features screen to approach the requirements using a functional approach.
The requirements are used to continuously monitor the scope of the project. Work provides a to-do list for the modeling phase, where the Iterations screen can be used to plan the work. It is recommended to specify the requirements and the work within the Software Factory, even though this is not compulsory.
Process analysis - BPMN diagram
Process analysis - Requirements
Application development in the Software Factory is done on a model basis, with every model containing one or more branches.
The Models menu contains information about all available models and branches.
The Overview screen contains all models that have been produced in the Software Factory. New models are also created here. Along with the basic information about the model, the branches can also be created and viewed here. Model content gives access to the complete model of a specific branch. With Merging, conflicts between branches can be analyzed and resolved before a branch is merged. The Difference analysis provides an overview of all the differences between two branches.
Model overview screen
The following components are specified during the data modeling phase:
- Data model
- Data conversion (for new versions)
- Dynamic model (expert mode)
These components form the basis for the database without it being necessary to program them.
Data model design
During this phase the user interface of the application is modeled. A demo can be given to the business to demonstrate at an early stage what the end product will look like and how it will work.
In this phase, process flows are added to guide the users through the applications' processes. Tasks can be created to automate user actions and custom designed reports can be added to generate, print and email documents.
Process flow diagram
This phase of the model consists of defining the business logic. Business logic that can't be modelled is created using source code templates. These templates are woven into the logic concepts in the end product based on the model definitions.
Business logic code template
The programmed templates can be reviewed by a co-developer to ensure a high quality.
The programmed templates can be tested automatically with test cases that are stored in the Software Factory. A test case can be created in three ways:
- Recorded via the GUI
- Input via the Software Factory
- Automatically derived from the existing model
A test case is coupled to the templates that are then used for testing. Checks are included in a test case to examine whether the templates work correctly. A test case can subsequently be executed automatically and the test results stored in the Software Factory.
Test cases only need entering once and can subsequently be executed automatically with every new branch. This guarantees that existing functionality continues to work despite any additions and/or modifications.
Overview of the Test cases screen with a number of test suites
The model can be validated completely or per component with the Validator. The Software Factory is delivered with hundreds of standard validations, however, company specific validations can also be added. Executing the validations automatically guarantees the quality of the models.
Validations executed for one of the modelers
Permissions are managed in the Thinkwise Platform using Role Based Access Control. Roles can be created and configured in the Software Factory and assigned to user groups in the Intelligent Application Manager.
Assigning permissions to roles
The end product is taken into use during this phase. This phase has a special place within the entire model. Where logically the creation phase would be the last phase, since the end product is taken into production during this phase, this does not have to be the last phase with the Software Factory. An application can already be created after modeling and validating the data model.
Generating source code during the code generation