Your message is highly valuable for us. One of our experts will follow up with you within 1-2 business days to discuss your request or to inquire for additional information if needed.
The complexity of modern navigation solutions and their integrations with other in-vehicle systems result in plenty of implementation difficulties. Software developers are continuously challenged to come up with new approaches and methods in light of emerging requirements, new quality, and security standards. In this article, our Infopulse automotive expert will share own insights and best practices applied in a real embedded navigation project.
Technical and Organizational Challenges of Developing Next-gen Navigation
Unlike a mobile application, development of an embedded navigation system can take a few years demanding the capacities of more than 100 team members in different locations. Naturally, management of such a project team becomes a complicated task. Besides, technological complexity of different implemented solutions raise a variety of challenges:
1. Competing with non-automotive providers of navigation solutions.
Deploying a new feature in an embedded system can take more time since it should be integrated with other infotainment functionality and an overall vehicle infrastructure. However, to attract consumers with $500 embedded navigation systems, manufacturers should fall into steps of their big competitors like Apple and Google providing users with enhanced functionality.
2. The increased complexity complicates overall development process.
With the adoption of new features into the navigation system, the process of development can become even more time-consuming and high-priced. Besides, software developers of an embedded in-vehicle navigation system should consider all the factors that could influence the car’s functionality, the driver’s safety, and comfort at the same time.
External forces shown below significantly affect the whole automotive industry according to one  .
The primary force is technology progress describing the arrival of new technologies applied to modern navigation. The growing consumer expectations force developers to come up with new ways of assisting a driver that also add to the complexity of the development process. Government regulations like safety requirements, aimed at decreasing possible digital distractions, result in a variety of software design constraints. Personal mobility directly influences navigation systems, which must provide enough flexibility and cost-efficiency to adapt to a person’s need to move to another place. In this case, the quality of guidance may change due to the fact that many regions in Europe, Asia or America have their internal entry mode specifics or do not support   technology.
3. The short lifecycle of a newly implemented feature.
The problem with the new navigation functionality is that it gets old with the rising demands of consumers. Besides, the competitors can outmatch a newly introduced feature in less than a year. For instance, they can bring in a few inches larger dashboard or an improved algorithm for HD mapping. Hence, the offered navigation solution becomes outdated and less requested faster than the average age of a vehicle that can reach   years in the U.S. and   years in the EU. Due to this, a developer should foresee and implement innovative navigation features for many years ahead or implement and maintain a complex system of regular Over-the-Air updates.
4. The lack of skilled specialists in one region.
The competition in the automotive industry is enormous whereas finding and retaining experts with broad competencies in complex navigation systems development in one region is stressful and resource-demanding. Outsourcing brings a range of new options for the manufacturers like scaling opportunities, cost savings, and unlimited access to high-skilled developers, engineers, and other top experts. According to  , the outsourcing market is estimated to grow in such automotive domains as electronics, connectivity, infotainment, electrification of the powertrain, etc. In the chart below, you can compare how the share of outsourced services grows within a 9-year period.
However, managing a team located in different corners of the world is a complicated process requiring top project management skills and ability to control each stage of the product development.
5. High standards and difficulty to predict errors.
Unlike mobile navigation applications, an embedded solution has no place for critical defects since they can cost manufacturers millions. Thus, another challenge that may even delay the solution delivery is adhering to all the requirements on safety, security, durability, energy efficiency, the quality of positioning and guidance systems, integration with other vehicular systems, etc.
At the same time, the experimental character of new technologies leaves more space for bugs and possible failures. Hence, the innovative part of navigation systems requires extensive testing in the shortest deadlines and an ability to find all possible bugs before the solution comes to the market.
6. Technical safety and legal limitations.
Embedded software developers deal with plenty of restrictions like limitations in processing power, operational memory, and network capacity which should be balanced with the growing number of ECUs that in some luxury cars can even reach  . As a result, it affects the complexity of a modern vehicle and creates a range of new issues to solve. Another technical issue comes out from the innovative background of many new technologies which are implemented to meet the customer’s growing interest in ADAS or Autonomous Driving technologies.
AI-based and other innovative technologies are still at the stage of their development. Thus, extra time is needed to test a particular AI-driven feature in different scenarios and predict its possible behavior and errors.
A great deal of safety and legal limitations are connected to privacy issues like tracking any vehicle with the help of GPS or collecting data of most visited places or routes used in predictive navigation. Besides, to implement safe and secure navigation developers should meet a range of government-based regulations and standards for embedded systems.
Best Practices and Insights of Automotive Experts on Developing Navigation Systems
Infopulse has a strong automotive team of top-class software experts who rely on a set of specific rules, guidelines, and requirements to the process of development. Here are some of their insights and best practices on how to overcome the aforementioned challenges.
1. Establishing a well-tuned development process.
The increased complexity of innovative functionality and shortened periods for the delivery of embedded software systems prompt executive managers to incorporate agile methodologies combined with effective process maturity frameworks like ASPICE. It is a common set of requirements that helps establish a well-tuned development process.
The framework involves process reference model (PRM) and process assessment model (PAM). Developing embedded navigation system, you should mostly focus on PRM model. It consists of specific base practices (set of actions applicable to the project development) which respectively result in work products realized as the process input (contract, project plan, life cycle model, customer requirements, software development methodology, etc.) and process output (project activity network, project plan, risk management plan, change request, project status report, etc.).
The PRM model offers three main life cycle processes allowing to organize the development process to the slightest details:
- Primary Life Cycle Processes involving acquisition, supply, system and software engineering groups.
- Organizational Life Cycle Processes describing project and risk management, measurements, process enhancement, as well as operation reuse management.
- Supporting Life Cycle Processes overlapping quality assurance, verification, documentation, configuration management, etc.
The best practice for implementing ASPICE model is to focus on all three life cycle processes as well as to incorporate the assessment model (PAM) to measure the implemented process performance and work product management according to five ASPICE capability levels. In most cases, only three of them, Performed, Managed and Established, are applied.
2. Thorough work with requirements to meet a customer’s expectations.
At the early stages of software design, it is essential to thoroughly study your customer’s requirements. For many global outsourcing companies like Infopulse, the term “customer” will refer to both their automotive business partners and users of their products. The best practice for correctly determining, documenting, and maintaining customer’s requirements is to set up a   process. It helps to ensure that business, user, and system requirements are clearly communicated, understood and aligned with particular quality attributes and software engineering standards.
The process usually comprises such stages as elicitation, analyzing, modeling, specification, validation, and management. Performing elicitation and analysis you should discover main requirements by building effective communication between your development team and stakeholders. Then, the determined requirements should be converted to a specification format describing both functional and non-functional requirements.
3. Building a code analyzer in compliance with MISRA C/C++ coding requirements and ISO 26262 standards.
Infopulse software developers comply with MISRA standards and they strongly recommend building a code analyzer for constant check-ups of written code lines. It should be accomplished in the early phase of coding since the cost to correct the detected errors will rise exponentially. If you look at the graph below, you can see how costs for fixing bugs increase at the final stages of a test-driven development.
Thus, applying on-the-fly static code analysis will allow detecting and addressing all possible issues while the code is still on the desktop. This practice will help follow the proper coding style as well as comply with necessary MISRA requirements. Furthermore, for software developers, a code analyzer is like a roadmap of further actions harmonized with specific code expectations.
The MISRA standard is a key model for the development of safety-critical embedded systems. Developers use its   (Mandatory, Required, Advisory, Disapplied) to solve all portability, safety and reliability issues creating own set of best practices. Generally, MISRA C guidelines contain 140 rules plus 16 directives whereas MISRA C++ includes 220 rules applied to complete the code style checkup or detect some serious code issues.
In practice, it will be irrational to rigorously follow all of them since some security guidelines can influence other important characteristics like portability, reliability, etc. With respect to this, another MISRA-based practice is to set a reasonable deviation of a guideline.
Apart from the coding requirements and guidelines, automotive experts should also conform to ISO 26262 standards to ensure functional safety of embedded systems connected to ADAS, instrument clusters, engine control units, etc. The document determines main methods for enabling functional safety through the whole development and management lifecycle of an embedded system.
4. Setting non-direct connection between architecture and external devices.
To provide the system’s modularity and flexibility, the architecture and frameworks should be developed irrespectively from the external devices that collect safety-critical data. Thus, addressing such devices should be indirect through the API not to rewrite the logic of all components’ interactions in case the device is replaced. A good practice is to establish inter-component and inter-process communications.
5. Determining main roles and functionality of all components and interfaces.
The efficient architecture structure depends on building a clear picture of all essential components and their corresponding roles in an embedded system. The identification process should be accomplished at the beginning of the architecture development, before receiving all the implementation details, parameters or a customer’s requirements. This practice will allow clarifying the functional purpose of each component or interface. For instance, defining the components that correspond to Bluetooth or the Internet connection.
6. Defining synchronous and asynchronous interactions between the components.
Before developing the architecture of an embedded system, you should specify what synchronous and asynchronous interactions refer to the system components. It’s also important to decide which interaction is preferable in each case. Developing real-time control systems, experts usually give preference to asynchronous interactions to enable continuous communication between physical systems of a car, enable multiple actions at the same time, and provide quick responsiveness of the whole vehicular system.
7. Extending the talent pool and contributing to the employees’ skills development.
In the automotive industry, a specialist who obtains expertise in different domains is treasured and offered a range of possible benefits to continue cooperation with a company. Since employees are assets and teaching a new person to deal with the unique vehicle equipment can take months, businesses contribute to their employees’ professional development. Therefore, most software suppliers start training programs aimed at upgrading skills and prompting specialists to tackle new challenging domains.
8. Establishing the mentoring program.
As an onboarding tool, mentoring is aimed at helping trainees or recruits get used to the company and its working process. Moreover, it can be used as an effective tool for collaboration between low- and high-skilled developers. This practice can tune the whole development process to meet the project objectives and requirements. The best practice is to engage senior specialists to become responsible for a particular trainee or a new less-skilled employee in every field of the development process.
Other efficient managing practices are the following:
- Building a transparent system of roles and responsibilities.
- Encouraging employees to participate in different innovation-driven events like hackathons.
- Choosing a mechanism to manage multiple teams (reports, setting priorities, transparency of managed tasks).
- Unification of different development processes for all the engaged teams.
Summarizing all the described practices and insights, the success of embedded navigation system development depends on the whole range of factors and ability of software developers to balance customer expectations with the manufacturer’s budget limits, technological challenges, and complexity of innovative solutions.
Need help with implementing an embedded navigation solution? Contact us today to discuss all the details.