InSyDe is a development environment created to support the development following the RW Methodology.

Its main characteristics are:

Universal Program Structure

It is not difficult to develop and test individual routines. The complexity of a program does not depend on the content of each individual algorithm, but rather on the creation of complex structures caused by their interactions.

The problem can be avoided with a predetermined universal program structure, a void mold with potential for receiving any content. It simplifies the development (there is a place reserved for every program component) and makes the maintenance safe and quick (there is a place for every patch that modify the program).

The universal program macrostructure is described by the formula PMC-GdD.

Semantic-programs specification

A program can be build from 4 hierarchical layers of logic, which implement a disciplined specification of the semantic content of the application.

View

View is the set of all the entities and respective features that the program deals with. Technically it is the set of all the involved files. The VP, View Process is the tool utilized to deal with this level of logic.

View instances

The view can contain data from several physical files as, for instance, products, suppliers, pending orders, etc. The decision table is the tool utilized to separate the different ways of dealing with different instances. It isolates each logical path and avoids the explicit utilization of nested ifs.

Features of the view instances

Usual routines are the tool utilized to deal with this level of logic.

Stream of characters of the features

This layer represent a logic seldom utilized and should be separated from the previous layer using separated routines. It involves operations that analyze names or numbers for very specific reasons (for instance, to detect all the names that starts with the letter "A").

Automation of non-semantic-programs specification

The hardcore of a software application is the simulation of the reality. However, besides this hardcore there are pieces of the application that only deal with data as an object (independently of their meaning) and only involve hardware operations that are known a priori.

Examples are report printing and files manipulation programs.

Meta-language

Programming languages, as intermediary between the programmer and the hardware, avoid the inconvenience of programming using machine code.

The meta-language is such an intermediary. It is free from any environmental influence (operating system, database manager, programming language, etc) and may be translated into any programming language. Moreover, its specifications are lexically and syntactically error-free.

Dictionary

The Dictionary makes the reutilization of data and processes specifications viable. It drastically reduces the occurrence of lexical errors, as whatever a programmer needs to type can instead be imported from the Dictionary.

Knowledge base

The Knowledge base contains the translation rules for the meta-language. The output of the translation is lexically and syntactically error-free so that the test (normally extremely time-consuming) may be restricted to the semantics of the application.

Graphical editors

The visual tools reduce the need for procedural coding and typing, speeding up the development process.