Select Page

Advantage through quality

Embedded software development is an engineering discipline.

Authors: Sebastian Rummler, Dr. Daniel Simon, Axivion GmbH

Contribution – Embedded Software Engineering Congress 2015

This article answers the question of how German and European companies can remain competitive in the global market with their products in the long term. It is based on the following facts:

  1. Differentiation cannot be achieved through price, but must be achieved through innovation and quality.
  2. Software is indispensable in product development today.
  3. Product quality can be symbolically expressed in a simple formula: Product quality = Hardware quality times Software quality. In other words, software quality directly impacts the overall quality of the product.

The consequence of this is that, regardless of whether one views software merely as a "necessary evil" or as a driver of innovation, there's no way around approaching software development "correctly." This can only be achieved if we leverage the strengths of the proven and unsurpassed engineering discipline in Germany and Europe and apply them to the development of embedded software. As of today, its established principles are not yet being adequately applied in (embedded) software development. But what constitutes successful software engineering?

This article outlines some ways in which software engineering as an engineering discipline can be implemented in practice and thus contribute to overall product success.

Goals and challenges

For companies in high-wage countries, the goal of placing innovative and competitive products on the global market and defending their market position can only be achieved through differentiation based on quality, not price. Globally speaking, others can offer "cheap" products better, whether through lower labor costs or by copying and imitating high-quality products from other manufacturers. The decisive characteristics—which are also difficult to replicate—are innovation and a high rate of innovation, coupled with reliability, flexibility, and adaptability to customer needs.

So how can companies survive in global competition in the long term? The solution lies first and foremost in leveraging the strengths of Germany and Europe as business locations. In all key sectors, this includes building upon the proven and unparalleled engineering expertise that defines our position as one of the world's leading industrial nations. This outstanding engineering has been, and remains, a crucial unique selling point for European, and especially German, companies. Just as in the development of machinery and hardware, engineering-based approaches are more than just desirable in software development – they are simply vital for survival in globalized markets. However, in practice, particularly in industries with a strong engineering background, these proven methods are not yet being adequately applied to software development. On the contrary, in such companies, software engineering often remains a neglected aspect of the business.

The development of systems is clearly heading in one direction: More and more software is finding its way into classic "hardware" products – virtually no one can do without a certain amount of "soft" control anymore. The first manufacturers have already recognized that software is not just a necessary evil, but rather opens up new possibilities. Product quality can be symbolically expressed in a simple formula: Product quality = Hardware quality times software quality. In other words, software quality directly impacts the overall quality of the product. The view of a product's overall quality can be illustrated with the help of Figure 1 (see...). PDF) illustrate.

This involves comparing product requirements (both explicit and implicit expectations, as well as unknown, future requirements) with the product's characteristics. The characteristics of a typical product encompass both hardware and software components. For long-term quality assessment, both the known and the "unknown" characteristics of a product play a role.

Possible solutions: systematic approach, discipline, and measurability!

Consequently, the term "software engineering" must be taken seriously for the future. What defines engineering (also in software development)? Above all, it's systematic approach, discipline, and measurability!

Systematics
Software development must adhere strictly to engineering principles, including reliability, reproducibility, learnability, rationality, and applicability. Many solutions supporting these principles are already known and can be applied as state-of-the-art technology, even in the development of embedded software.

The key terms to mention here are variant management using software product lines, the use of models such as software architectures as a means of planning and control, and the identification and use of reusable components, platforms, and frameworks.

Especially in engineering, the use of standards is recognized and common practice. Corresponding specifications now also exist in the software sector (e.g., MISRA C/C++, standards such as ISO 26262 or 62304, best practice catalogs, etc.).

discipline
For many repetitive and tedious tasks, there are suitable tools that can be automated, thus diverting the human intellect of developers from innovative topics. Given the ongoing shortage of skilled workers, automation must be given greater consideration in software development. In this regard, continuous integration platforms and architecture review tools are important (see Figure 2)., PDFThis is already state-of-the-art. Neglecting code reviews or conducting them without appropriate code analysis tools hinders production and is a thing of the past. Just as it is standard practice to verify that hardware designs have been implemented correctly, software development must also undergo engineering-based verification and proof that desired properties (e.g., architectures) are adhered to.

Measurability
Therefore, for the created artifacts of software development, for example with the help of metrics and architecture checks, transparent information regarding the quality must be created in a traceable manner in order to continuously improve the quality.

Consider soft factors

In addition to the aforementioned areas of systematic approach, discipline, and measurability, the "human factor" must also be considered in engineering disciplines: Project participants and developers must be "brought along" in all processes, meaning they must not only be involved but also informed and their personal needs taken seriously. One approach is to expand the measures gradually. When it comes to improving the quality of embedded software, it is always better to start small than to do nothing for fear of potential resistance.

Download the article as a PDF


Software Engineering Management – our training courses & coaching sessions

Do you want to bring yourself up to date with the latest technology?

Then find out more here MircoConsult offers training courses/seminars/workshops and individual coaching on the topic of Software Engineering Management / process, project and product management.

Training & coaching on the other topics in our portfolio can be found here. here.


Software Engineering Management – Expertise

Valuable expertise in software engineering management / process, project and product management is available. here Available for you to download free of charge.

To the specialist information

You can find expertise on other topics in our portfolio here. here.

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

weissblau media

weissblau media