Models as a means of solving complex problems are an important and well-established tool in computer science. Models are known from both science and everyday life: they should help to simplify uncontrollable, invisible, direct or complex problems, i.e. lead to appropriate characteristics.
Therefore, never imagine the full fact or functionality, but only the desired and necessary for the respective field of application. In software development, models help to cope with the increasing complexity of software.
In the so-called model-managed approach, software development is now trying to benefit from model considerations, directly into software development to integrate itself.
The goal is to create a working program directly from the computer program model. Simply put, the source code is automatically generated from the diagram.
What is model-based software development?
In a model software development becomes feasible from formal models Software (fully or partially) is automatically generated. The formal model is understood as a functional description which consists, firstly, of standardized elements and, secondly, these elements represent components of processing machine information.
The task of models in informatics and software development is to present the situation in such a way that it can be analyzed by means of electronic data processing.
In model software development it is a programming paradigm, a programming paradigm as a fundamental organizational form of programming language to understand and specify what principles and concepts are used.
This applies to both the data structures used (how certain data are recorded, stored and processed) and the way they are used.
Dero–model control no longer involves the use of plain text programming languages, but of the so-called model languages. The programming languages consist to a greater or lesser extent of a text window in which commands valid in the respective language are entered and become executable compilers.
The approach of modeling languages is different. This type of language allows you to design program flows, data flows and processing processes using formal diagrams. These diagrams are based on fixed syntax, formal grammar, which defines the structure as a separate block scheme and can then be converted into executable code by the code generator.
To create an executable program, at least three steps are required. In addition to modeling, the model conversion and code generation must be performed. Held
In model-based software development, the tools used should be at least one modeling tool available. Usually this works with a graphical user interface and allows you to simply create charts, data processing routes and user interaction and program execution represent. Then they can be saved as a file in the form of an exchange format.
In order for this model to become an executable code, however, another intermediate step is to convert the model to pass. This step is based on a flexible exchange format. This format of an exchange allows to exchange models in various tools of modelling.
The standard of exchange of metadata XML, XMI, is increasingly used. This file standard allows storing any models of data processing. However, as a pure exchange format, it is not suitable for generating source code directly from it.
Thus, the format of exchange within the framework of preparation for the generation of the code, dependent on the code generator in which the model should be executed by executable and depicted facts, previously converted into a suitable format. This phase is called model conversion and it can be understood in a simplified form that different facts can be represented by so-called graphs.
Both the metro network of a big city and the social network between people can be represented by circles connected by lines. The standardized variant of this format of display together with rules of linkage for circles is called the graph. Each circle in graph theory is a subsection of mathematics that deals with these graphs, called a node, either a stop (in the case of the subway network) or a person (in the case of a social network).
The line, called an edge in graph theory, symbolizes either a rail connection between stops or familiar relationships between people. Both facts, subway connections or relationships between people can be presented in the same language, model, graphic, but should be interpreted in completely different ways.
Although you can save both models in the same format, they can then be edited by a data processing system, for example. For example, for optimal scheduling, the relevant graphs are not yet converted to a format that is appropriate for the appropriate model context for the appropriate processing software.
Finally, the last stage of software development on the basis of models is the stage of code generation where the code generator automatically generates the source code in a certain programming language.
There are also integrated tools that can perform all three stages of model-based software development. When such integrated software development solutions are used, there is no need to transfer or convert files and the development tool does not need to be “left” throughout the development process.
Where is model-based software development used?
In der- software development Spielen models in the Concept and Development of the program is always central role. Before the actual Programmiervorang by entering commands into the interpreter or compiler, the parts become more extensive Programs are mainly prepared in the form of diagrams.
These diagrams show the input and processing paths and their dependent outputs. Only then will these programs be programmed. Without such preparation, an extensive program is basically impossible to implement. Program sequence models Thus, they have always been an important tool in programming.
Most of them were developed with the help of scientific analysis and development of data structures and algorithms in the field of computer sciences. Put here the models to die Basic concepts of data processing Gifts.
In a world that is becoming more and more networked, on the one hand, there is a growing demand for and complexity of software-controlled devices, and on the other hand, more and more so-called embedded systems are being used which also require software.
Embedded systems are computer systems embedded in a specific technical context that Regulatory or supervisory tasks accept or even process data flows in the form of inputs and outputs. Such embedded systems are usually not perceived by the user in everyday life in multimedia devices, telecommunications devices or consumer electronics.
But these devices are also used in complex production systems, in home automation or in composite machines such as aircraft or vehicles. Embedded systems usually consist of a combination of special hardware and software and are adapted for their respective use.
In terms of keywords such as “Internet of Things” or “Industry 4.0”, these integrated systems are becoming increasingly relevant as the human technical environment becomes more and more digital.
On the one hand, with the expansion of data-intensive infrastructure, there is a growing demand for software for special devices, which also needs to be developed faster and faster, and on the other hand, it also needs to meet a certain quality standard.
In addition, the demands on the software produced are increasing and it is becoming increasingly complex. Whereas in the past a TV set was an electronic lamp with several switches and handles, today simpler models already have one. Operating systems and internet access.
But not only in the sphere of embedded systems to find a model on the basis of the programming paradigm their use. Due to the growing presence of information systems in all spheres of life, new areas of responsibility are in the field of Information Technology added.
Whereas previously the “classical” programmer was responsible for IT infrastructure programming, many development and support tasks can now be performed only by groups of specialists. Software engineers, architects and designers work with other IT specialists in large development teams to implement large projects.
Since it is often impossible to use a common stock of knowledge, all these experts need the same model language for joint software implementation. Earlier software solutions also consisted of low-quality special solutions.
In modeling languages there will be, depending on the application between subject oriented languages and universally applicable modeling languages. Where a subject-based language is limited to a certain field of use (this limited field of application is called a domain), they are universal.
Therefore, domain languages are often used for embedded systems, while universal modeling projects can be used to implement basic software projects.
Unified Modeling Language (UML) is currently the most widely used language in software modeling systems, Suitable for both software construction and documentation. UML has a graphical notation (i.e. a fixed catalog of chart parts) and a set of rules according to which these chart elements can be combined.
These elements and their combinations correspond to the concepts and their possible relations of the programming language to each other, thanks to which only one language can appear. Diagrams to a certain extent represent the concepts that make up the model.