visit
Software is a set of instructions that with certain input data generates output data.
If we look at Wikipedia, we will understand that this is precisely the definition of computer program:
A computer program is a collection of that can be by a to perform a specific task.
But many decades ago we understood that software is much more than a
program and we still don’t have good definitions of what software really is.
Again according to :
Computer software, or simply software, is a collection of or instructions that tell the computer how to work. This is in contrast to , from which the system is built and actually performs the work.
In other words, the definition is by the complement (everything that is
not hardware) or by physical omission (everything that cannot be kicked
and can only be cursed).
Mimic something that happens in a possible reality.When we do this, we are forgetting about the origins of modern programming languages like . (the first object-oriented programming language and the first to include classification).
In that language, it was clear from the name that the goal of software construction was precisely to build a simulator. This is the case of most of the computer software applications today.
Therefore and returning to the origins we can define the software as the construction of a:(M)odel: (A)bstract (P)artial and (P)rogrammable (E)xplainig (R)eality.
The model is the outcome of observing a certain aspect of reality under a
certain lens and a particular perspective with a certain paradigm.
Photo by
on
The use cases technique is an excellent tool to describe a model in a declarative way.
If you are not a declarative programmer, you might very soon.Because it has to run in some type of simulator that reproduces the desired conditions. It can be a (current commercial computers), a quantum computer or any type of simulator that can accompany the evolution of that model.
A 1: 1 scale map of the earth would not make sense.
From the axiomatic definition presented in this article, we will derive principles, heuristics and rules to build excellent software models.
Previously published at //medium.com/@mcsee/what-is-software-9a78c1172cf9#9065-c