Project IronFleet: A Step Towards Building a Bug-Free Software Development System
Over the decades, software programmers have faced stiff challenges in ensuring proficient software applications. However, to ensure bug-free software, Microsoft has taken an innovative step through its project IronFleet. The project aims to build practical and provably correct distributed systems. This would ensure that they don’t harbor exquisite bugs. There are different ways in which the devices interact, which makes the things more complex and is the reason for the bugs to span in multiple machines.
The research team working on the project IronFleet believes that it’s just the first step and there is a long way to go. Complex software applications often have imperfections that either affect the performance or are vulnerable to security threats. The idea is to build small software applications or operating systems that ensure to be error-free.
According to the research team, they were able to use improved algorithms for quick verification and use cloud servers, Blending Type Assembly Language (Tal), and Hoare logic. This kind of speedy verification was not possible couple of years back. Today, the same can be achieved in a couple of hours on a single system and in a couple of minutes using cloud-based servers.
In the year 2010, a similar kind of attempt to build a small-scale bug-free OS was made by Microsoft researchers Jean Yang and Chris Hawblitzel. Moreover, NICTA, Australia’s leading science and research organization has been working on developing mathematically proven software since the year 2000. In an attempt to develop medical, automotive, aerospace, and intelligence agency applications, NICTA developed the secure embedded (SeL4) micro-kernel based OS in the year 2009. Recently, SeL4 was released as an open source. In addition, the organization has partnered with General Dynamics, the technology maker of the US military, which is planning to use the secured OS in its aerial vehicles.
The IronFleet project aims to get out of the conventional software testing approach, which requires you to perform rigorous testing before the release.