InSyDe is a development environment created to support the development following the RW Methodology.
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.
A program can be build from 4 hierarchical layers of logic, which implement a disciplined specification of the semantic content of the application.
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.
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.
Usual routines are the tool utilized to deal with this level of logic.
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").
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.
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.
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.
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.
The visual tools reduce the need for procedural coding and typing, speeding up the development process.