“If debugging is the process of removing software bugs, then programming must be the process of putting them in. ” - Edsger Dijkstra
(PRWEB) July 06, 2016
What if people never again had to worry about software applications generating unreliable results? A new product and service, Race Catcher™ by Thinking Software, leaves this task behind and lets applications analyze themselves.
Race Catcher™ is both a product and a service that allows software applications to analyze themselves.
This new paradigm is constructed by the following components:
(1) Automatic self-configuration of virtual machines that are able to:
- create a knowledge about the reliability of the applications they run;
- communicate this knowledge to a knowledge aggregation device;
- securely publish this knowledge to subscribing machines within their private network.
(2) Self-created network of "reliability conscious machines” (much like social networks, where the effect is amplified by the number of members) where the members are machines having common interests - running the same applications;
(3) Modeling software providing for automated program understanding - effectively explaining analyzed issues to programmers.
Why This Is Important:
1. Today the world is run by computers.
2. In many cases the reliability of results is crucial.
3. High level professionals and academia know that software is only correct to the degree it was tested, while exhaustive testing is not feasible.
4. Applications release schedules are ruled by a fierce competition, and not necessarily by the readiness of software quality;
5. In a case of sophisticated applications, adding time to the project's test-phase may not significantly improve its quality;
6. Only 6% of large software projects were Successful, 42 % - Failed (dropped); 52% - Challenged: (significant complains, over the budget, behind the schedule;)
A computer program is a complex apparatus. In addition, today's computing is predominantly multithreaded. That is inescapable in order to utilize growing processing power and speed of today's multicore machines.
The most complex and most time consuming programming issues are related to multithreading and specifically to a well known in the field issue of "race condition" - an intermittent condition of unpredictable result - the one that is present in many production applications, and the one that, not unlike a traditional virus, stays there dormant and awaits for a specific condition to act.
Even worse thing about race conditions is, that they are silent. Often they will not bring the system down, and will repeat unspecified number of times, causing the software user to trust application's results, when such trust is unwarranted.
These specific multithreading issues can not be addressed by traditional debuggers, which would completely change software environment and behavior. (A debugger can only debug the debugger's environment)
A brute force cognitive challenge in this case is often not reliable. According to Microsoft's study, it takes days, weeks, months to address one race condition issue (that is when one even knows that an issue exists), while 30% of fixes are done incorrectly.
Thinking Software's solution is in a dynamic code analyzer, when an agent becomes a part of an application. That effectively makes an application to analyze itself.
A Paradigm Shift:
Social evolutions (and revolutions) are not done by individuals, but by a communal power of many.
ARM-CM by Thinking Software Inc is an Application Reliability Management via Collaborating Machines. Here, as well, the increase in application reliability is achieved not by studying one specific machine, but by aggregation of knowledge obtained from within many individual machines, amplifying this knowledge by its communal power.
For more information please visit https://ThinkingSoftware.com