Case Study: Simplifying Complex Hardware with Modular Software Architecture

CHALLENGE

A major construction vehicle manufacturer faced challenges with tech debt and code quality in their Primary Display Unit (PDU) application. The PDU was responsible for communicating with and displaying information from various vehicle controllers using different protocols, such as CAN, On-Board Diagnostics, and MQTT. However, the utilization of multiple protocols was managed by hard-coded data consumption, which limited the application’s flexibility and scalability.

The DISTek team was tasked with creating a solution to address these limitations and improve the overall quality of the PDU application.

SOLUTION

The DISTek team sought to overcome these challenges by implementing the following key strategies:

  1. Standardize the process for receiving communication from controllers across different protocols
  2. Reduce complexity for the consumers of these communications

The team developed a software abstraction layer to consolidate all underlying communication into MQTT, leveraging the existing infrastructure. This integration of multiple protocols into a unified system streamlined the data consumption process from external controllers. The abstraction layer also provided a simplified interface for data transmission, making the process of receiving and sending data more straightforward.

RESULTS

As a result of DISTek’s efforts, the client now benefits from a scalable and modular code base that can be quickly adapted to new machine platforms.

Enhanced Quality: By eliminating hard-coded data consumption, the code becomes more scalable and adaptable, aligning with the Open-Closed principle. This approach enhances the overall quality by enabling future modifications and expansions without extensive work.

Increased Test Coverage: The implementation of an abstraction layer facilitates more effective mocking and stubbing, resulting in strong unit and integration tests. This enhanced testing coverage helps minimize the introduction of bugs, ultimately saving both time and resources.

Efficiency Increased: The simplicity and clarity of the code enhance its usability, enabling engineers to work more effectively and complete tests at a faster pace.

To discuss your software needs and discover how DISTek can help, reach out to our Sales Team today!

Sales@distek.com

Leave a Comment