applied software system
As the applied software systems design evolved, the development of a proper architecture of such systems has always been an important issue to be solved. Today, the dominating approach to solve it is to use input forms for data entry, relational databases to store data and formal languages for data access such as SQL. This approach, however, has several major drawbacks. First, software solutions based on this traditional architecture are bulky and labor-intensive. Second, the formal languages themselves like SQL suffer from a low expressiveness being unable to efficiently represent things and situations of the real world.
The present article is an attempt to give an alternative solution to the problem. Design principles of applied software systems are described that use a powerful highly expressive language for the representation of the external world entities and situations. Being fully formal, this language, nevertheless, has the expressive power similar to that of the natural language. The syntax and the semantics of its statements are described. This language can also be applied to access data in relational database systems.
The article also describes how the user interface is organized. Using a set of standard forms and context menus one can easily create statements of the user language, which can be grouped into higher-order constructions called discourses.
The detailed comparison of the traditional form-based architecture and the new user language-based architecture shows that the latter has significant advantages over the former, leads to a more compact and efficient solution, has ready-made solutions for some problems which frequently arise during the design and development of software systems.