Three levels for managing software
We may deal with solutions to various problems in software. These solutions, at various levels of achievement, may be considered in different ways. It is interesting to clearly distinguish the the three main branches or levels for managing software: representation, reasoning, and execution. We can have representation only. When we have reasoning or execution, this is based on a given representation.
- Representation. Pure representation may be used for rendering of the information on external devices for independent external interpretation.
- Reasoning. Reasoning is based on a given representation. It is mainly a process of questions and answers. For example one may wish to get the static call matrix for the methods of a program.
- Execution. Execution may be seen as the strongest form of operation on a given represention. The most known situation is program execution where the program usually corresponds to a tree representation. The classical public static void main allows to give all information for launching the program to the virtual machine.
Between the levels of Reasoning and Execution, we may find some intermediate specific forms, for example animation, operationalization or enactment. Operationalization is the process of defining a fuzzy concept so as to make the concept measurable and to understand it in terms of empirical observations. The term enactment corresponds to the situation when people act they bring structures and events into existence and set them in action.