viometrix::Embedded Systems Process
Viometrix has developed a detailed and proprietary reference model to arrive at custom System-on-board and System-on-Chip designs. The use of this process ensures that all key aspects of embedded systems are addressed – performance, cost, power consumption, security, environmental conditions, reliability, etc. Region specific compliance testing is also undertaken when designing a system that will be used in regions with different regulatory requirements. An established and competent advisory board is consulted on a needs basis. The main steps in this process are shown below.
This phase involves detailed interactions with the client to understand the problem statement and the project scope definition. At this stage, functional requirements such as the features and functioning of the system are identified. Further, key non-functional requirements and constraints (such as cost, size, weight, time-to-market, etc.) are also gathered. Key deployment parameters, such as information about the operation environment and the operational environment are also collected at this stage. Finally, legal and regulatory requirements are identified to ensure that the final system can be sold in the target markets. Maintenance requirements are also collated at this stage.
This analysis stage identifies the variables in performance, hardware, software, power, regulatory, safety, security, and upgrade requirements. Further, issues such as debugging capabilities, cost estimation, flexibility & expansion, software in-field upgradeability, and acceptance testing are analyzed and proposed to the client. Based on the information collected in the previous phase, additional requirements are introduced and discussed with the client. Conflicting requirements (such as the design of an ultra-safe system at a very low cost) are highlighted to the client and discussed to ensure that the client is aware of the tradeoffs.
At this stage, the actual system design is performed by Viometrix and presented to the client. Critical issues, such as system architecture, hardware-software partitioning, hardware and software subsystem definition, hardware interface, software API specification, and integration testing plan are covered at this stage. Further, hardware and software selection issues are elaborated, and the proposed prototyping and testing strategy (including compliance testing) is proposed.
The system implementation involves the design and implementation of each of the key subsystems of the product. Each subsystem is elaborated and implemented. Implementation includes the development of individual hardware units, board development and the implementation of the software. The implemented modules and units are tested and validated against the subsystem specifications.
The system integration phase involves the actual integration of the hardware and software modules to produce the full working system. Integration testing is performed at this stage. This phase also involves the integration of the device with backend systems, and some level of validation and verification is done with servers and relevant distributed components.
If required, the system design is optimized at this stage. The purpose of optimization is to trade off engineering effort towards optimizing other parameters such as cost or performance. Work at this stage involves tasks such as porting critical portions of code to assembly or finding cheaper components that deliver the same functionality as a more expensive part being used in the design. Also, opportunities to use spare software capacity to undertake a function executed in external hardware is also explored at this stage.
Viometrix invests a significant portion of its effort in verification and validation in embedded systems design projects as failures in embedded products can be catastrophic to the vendor, financially as well as otherwise. Thus, system testing is a tightly controlled phase in the reference interaction model at Viometrix. System testing covers environmental tests, regression tests and system specification validation.
In this phase, Viometrix hands over the final system to the customer. This handover includes hardware and software modules, technical documentation, relevant training materials, manuals, and support as required by the client. This phase may also include relevant training for the client or extra integration effort with client teams.
In the final stage of the engagement, Viometrix provides the agreed support to the client. Such support may include further development towards upgrading the hardware or the software of the system, development of product variants or addition of new features. Also, if the project is being further developed by the client’s engineering teams, support may include further training or working with the client to ensure the continued successful operation of the final system.