Development process

The Flexberry platform allows project team to move from the "handicrafts production" style of information systems to "industrial production". The project team is organized through proven and effective common rules, approaches to interaction and work.

Process description

The Flexberry platform allows developers to move to a new level of production process organization by introducing a mandatory design phase, as a result, companies get in a formalized, machine-readable model of the future system. The second important step in improving production efficiency is the use of ready – made modules and components of the future system-Flexberry framework. And finally, the ability to get automatically a working application by generating code based on a formalized model that ensures fast and accurate execution of business analyst’s ideas.

Key development features:

  • Model First tough approach
  • Development project consists of "typical" stages
  • Iterative refinement of applications implies a "safe" code regeneration

Design and programming process diagram

It is a mandatory design stage!

  1. Analysis and design
    1. Gathering requirements. Analysts survey subject areas, create diagrams and prototypes of the interface that align with the subject area carriers. The Flexberry Designer is used.
    2. The formulation of technical specifications. Analysts translate client’s requirements into highly technical specifications.
  2. Database and code generation
    1. Object design. Generation of an application.
    2. Demonstration of a first application prototype.
    3. Detail of technical specifications.
  3. Connection of ready functional subsystems
    1. Connection of functional subsystems
    2. Subsystem configuration in application prototype
    3. Demonstration of application prototype with a functional subsystem
    4. Detail requirements, statements
  4. Manual code revision
    1. Business logic programming, development of business process specific components and forms.
    2. Demonstration of the application prototype next stage.
    3. Detail requirements, statements
    4. Modification of UML-models, degeneration.
    5. Revision of business logic, forms.
  5. Repeat the process until the application implements all the necessary functions.
  6. Release of the product version, transition to support and maintenance.

Design and programming process participants

The design process usually involves performers in different roles. It is important to collect qualitatively information system requirements to help the team quickly and efficiently turn the formalized requirements into a ready-made application. That is the main task of the Flexberry platform.

Order a free demo

Sign up for a remote demonstration to see the Flexberry platform capabilities including implemented applications.

Apply for a demonstration

Application model

A formalized machine-readable application model is the result of using the Flexberry Designer.

  • The model allows you to synchronize different system elements:
    • DB structure
    • Object model
    • Fields composition on forms
    • And other…
  • The model eliminates difficulties of transferring information between analysts and developers
  • The model simplifies communication with subject area experts

The Flexberry Designer is used for work with the model

  • UML chart editor
  • WYSIWYG form editor
  • Centralized model repository with multi-user editing support
  • Extension modules for generation (code, database structures, model documentation, etc.)
  • Flexberry Designer implements an extended metamodel
  • UML diagrams
  • Detailed description of class attributes and methods
  • Projections (views)
  • Forms
  • In-app navigation
  • Authority and audit settings
  • Abstractions to generation support in programming languages

The application model can be downloaded from Flexberry Designer as a file (and then downloaded back), thus a user can save an archived copy, transfer it or make several model versions.

Try our products

Platform products are available for free during the trial period or for open projects. Try it and decide if they are suitable for your tasks.

Try now

Code generation and revision

Code generation implements the following platform principles:

  • The application model is edited in the Flexberry Designer - Model first approach
  • The generated application is a workable application that does not require further development for launching
  • Developers have all opportunities to modify the application, simple rules provide the ability to regenerate code without losing improvements

The desktop version of Flexberry Designer contains generation modules, so it means that generation is performed on the user's PC. The Flexberry Designer web version generates code that is hosted in an Internet-accessible git repository.

The code generator is designed to generate various elements of the applications architecture, starting from database structure (SQL), server part (C#) and ending with the client part (JavaScript) and Docker image building instructions (Dockerfile).

Code regeneration

  • All project files are divided into several types:
    • Is generated once, and then only finalized
    • The class is divided into generated and modified (partial, mixin)
    • The class contains "programmer brackets": there are mutable and immutable blocks within the same file
  • Expanding generator capabilities

The regeneration process is obtaining the source code that will be regenerated. It means that process includes merging the existing and newly generated code with saving the result.

Expanding generator capabilities

The Flexberry Designer technically supports the ability of adding an arbitrary generation modules number. The generation module is implemented in C# and supports the API for working with the Flexberry Designer application model. The platform team is ready to help enthusiasts who want to implement additional generation modules.

It is also feasible to extend the functionality of existing generation modules. Create an application with a required changes description to realize your purpose. Together we can make the platform even better.

Have any questions?

Just ask them in any convenient way and we will answer them.