Software Development

Most of today's communication devices are based on microcontroller units (MCUs) and transceiver ICs. The functionality of the devices are defined in their firmware, which makes the development to our core discipline. For this, we have implemented a full firmware engineering process, which is based on, but is not limited to the elements shown below.

If you have any questions regarding our software development, please don't hesitate to

 

Contact us

Our software engineering process

Software Development - Reusability

REUSABILITY

Over time, we have been collecting a good number of basic library elements and design patterns, that speed up development of common functionality and increasing code quality in parallel.

PORTABILITY

As we are used to work with very many different microcontrollers and transceiver platforms, a clean hardware abstraction is a must. Over the years we gained the experience to handle and abstract a lot of different semiconductors and do know the requirements in order to build a flexible but full featured interface design to the hardware.

Software Development - Portability
Software Development - Management

PROJECT and Source Code MANAGEMENT

The management of complex projects is of key importance. Internally we do agile development, partly based on SCRUM, partly based on other agile approaches, in combination with test driven development whenever reasonable. Furthermore, we use  proven and established tools, like e.g. GIT-based version control, issue tracking and continuous integration via Gitlab as well as project management with BlueAnt (by proventis).

TEST & VERIFICATION

Most of our software is jointly developed with unit tests of the smallest units, but also unit tests in a logical scope. In addition, we make extensive use of automated test benches on the system level to ensure reliable regression testing. These systems tests are done in simulated, emulated and real environments.

Software Development - Test & Verification