Select Page

Reliable indicators of impending software erosion and what you can do about it.

Successful embedded software is usually developed over a long period. During this process, relationships may occasionally be introduced into the code that don't belong there. Over time, the software deviates increasingly from the planned architecture – software erosion is well underway.

Especially during long development periods, it is crucial to consistently adhere to the underlying architectural specifications. Violations may only have an impact later, but their consequences are all the more severe.

There are several reliable indicators of impending or ongoing software erosion. These typically include the following:

  1. Maintenance, expansions and changes to the software require more and more time.
    It is becoming increasingly difficult to implement updates into the software, as the overview of and understanding of the software's internal quality has been lost.
  2. The software is becoming increasingly difficult to test.
    If I no longer know and can't oversee the internal quality of my software, testing becomes increasingly difficult.
  3. Software failures are becoming more frequent.
    A rising error rate and a declining performance, the cause of which is not immediately apparent, often lead to miscalculations regarding the effort required for changes and adjustments. The result: Deadlines are missed more and more frequently.

The insidious and difficult-to-stop process of software erosion comes at a price, which steadily increases. Adaptability becomes increasingly difficult, program errors accumulate, and the software exhibits growing incompatibilities with new and future software environments. Over time, your software solution becomes an outdated system and therefore unusable.

How do you stop or prevent software erosion?

Your customers often only perceive the external software quality, which is ensured through traditional software testing. To safeguard internal quality, most projects lack a specific role within the development process. Minor architectural violations in local development often go unnoticed.

Only with the help of static program analysis They can be made visible. This allows you to precisely identify the indicators of gradual software erosion in the architecture and application code, and it provides you with... Evaluations and analyses the software quality criteria in the ongoing software development cycle.

Learn more about software analysis techniques, methods, and tools for mitigating software erosion damage in the MicroConsult Training“Software erosion: causes, effects and measures”.

Among other things, we answer your questions on the topic of "How do I make my software fit for the future?":

  • What is software erosion and what impact does it have on my embedded project?
  • What indications of software erosion can be detected using static analysis?
  • What are reliable indicators of the maturity level of a quality process?
  • How can gradual software erosion be tracked over time?
  • What other usable data is generated during the development process that can be used to infer software erosion?
  • How can this additional data be collected?
  • How exactly does software analytics work?
  • Which data mining techniques can be used to reliably analyze the data?
  • What tools are available for data mining?
  • How can data be meaningfully visualized?

Further information

Training: Software Erosion – Causes, Effects and Measures

MicroConsult Training & Coaching on the topic of software quality

MicroConsult expertise on the topic Software quality

MicroConsult training and coaching - overview

MicroConsult Newsletter

With the MicroConsult newsletter, you'll stay on the pulse of the embedded world. Look forward to proven practical knowledge, real professional tips, and current events – directly from our experts for your project success.

Subscribe now!

Published by

Renate Schultes

Renate Schultes