[“Software is just too complicated to be able to understand in its entirety. Therefore, the programmer learns to divide software algorithms into different levels of abstraction and then work out the different parts separately. In addition, it is very easy to overlook things, get unexpected interactions or use the software in a way that you did not foresee.
“,” programming is one thing, getting it working with an unpredictable number of variants and combinations with other programs and hardware is where the bugs manifest themselves.The questioner therefore sees no difference between programming and running.
“,” Because most software AND HARDWARE are not developed under a good architecture.Just like in the real construction world, you have to keep to the architecture regulations. When you deviate from it (faster, cheaper, easier,..) You shouldn’t look weird when your building collapses over time.
In addition, there are also architectural errors in the software.One of the most trivial causes of errors arises from the fact that there is an “end of file” character defined, but no “end of field”. Set a language for a single-point, space. Then you have to shorten (too) long words.
There were hard-and software environments that were inherently robust, and even in which no mistakes could occur, including telephone exchanges that always did it, but unfortunately all of them have gone down (too awkward, almost nobody uses them, too “expensive”,…) .
A well-known architecture error is mixing identification with classification.For example, you’ll see it in your bank account number -what you’d like to identify in your bankbill, a unique number. But in it, your bank-which has four letters-is listed. (why four?Because we have no sign for “end field”, so let’s take only four, then we are always wrong.Your bank belongs to a class. When you include the naan in the identification, you cannot switch to number retention (as with your phone). Now this is obviously not a real “mistake”. But a push of the banks, but it does make the software unnecessarily complex, error prone (and therefore expensive, but you, that let you pay the customer).
The mistakes of an architect are above the ground, the mistakes of a physician are under the ground and the mistakes of programmers ALWAYS come above the ground.It is Murphy’s law.
And this is difficult for many clients to accept-there are situations that cannot be carried out in a computer program.They are incalculable. (And you thought that only people were incalculable:-)).
Most errors-like the ones in 112 of the past week-come from “bug fixes”, repairing errors.
The duplication or multiple execution of systems also makes no sense: the complexity (in terms of the number of allowed states) is increasing.In addition to the “good” signals, you also need to determine whether certain signals are “wrong” and if there are errors in the equation. Maintainability decreases. And, miraculously, eventually all the multiple systems come together somewhere.
‘, ‘ Because everything is loose from each other, is influenced by each other and there are so many components, data, objects that it simply makes it impossible to manage everything.In addition, there are still mathematical fractions that are still unresolved but in other ways can be improved by the programmer in a compensatory manner. And all this is belongs under the denominator ‘ people make mistakes without knowing ‘