Five principles for engineering high quality software to take into the New Year

Experience has taught users to avoid the latest versions of software applications until the inevitable maintenance releases, and patches have been released. This post discusses five actionable ideas to help development groups close the quality gap.

Read More

Autonomous vehicles are becoming a reality, are we ready to take our hands off the wheel?

With 50% of recalls in recent times being due to software faults, and the average car’s software content to reach over 300mil lines within the decade, Automotive OEMs and their suppliers are working to improve development processes which can produce reliable software, and continue to increase consumer confidence in connected car technology.

Read More

Building the ultimate continuous integration architecture

Software is traditionally designed, coded, then tested. However, poor quality coding and a testing phase at the end of the process can add a significant amount of time and risk to a project. Delayed and extended testing has a knock-on effect – the longer bugs remain undiscovered, the more likely that developers will be working with poor quality software, causing more delays as more bugs are found. The ideal position is to have a process that supports testing as early in the development life cycle as possible and which enables changes to be made quickly.

Read More

Migrate and Modernise Old Applications: How Difficult Can It Be? Or, Remember Fortran, Anyone?

This article was inspired by a NASA competition announcement early in 2017 seeking help to update an old FORTRAN application. Here, we examine what’s the best course of action for migrating legacy applications to a modern environment – bugs and all.

Read More

Actionable Intelligence For Software Security

It’s a commonly held belief that applying static analysers alone can help spot and eradicate common security issues. However, with the high number of false positives reported when using static analysis, it makes knowing if you have detected a real error a time-consuming process, and the mitigation plans put in place might have just hidden the error under a false negative. But what are the alternatives?

Dynamic analysis can be used for detecting potential vulnerabilities in today’s embedded environments. And pairing dynamic and static analysis creates ‘actionable intelligence’ for developers, and allows them to quickly ascertain the absence of obvious reliability issues.

Read More