Our software engineers are here to answer any questions you may have. We strive to provide concise and thorough responses that offer a valuable solution for your concern. Take a look back at the questions our experts have answered and feel free to ask your questions in the comment section below.

Ready to discuss a specific project? Contact Precision Systems, Inc. today.

 

 

Q

 

 

I’m not able to physically monitor all the data in my plant, 24/7. How can I remotely access the data I need to obtain in a secure manner?

A

Cloud integration is an excellent way to obtain data remotely. If properly planned, this can be a simple, cost-effective means to gather data, plant-wide. Start by evaluating what data your audience will need and begin implementing necessary security features.

 

 

Q

 

 

Understanding that software testing has limitations, how do you recommend testing a complex embedded system?

A

Unit and integration testing paired with tool assisted review such as static analysis can help to mitigate the risk of unexpected crashes. Special care should be taken to test not only expected inputs, but to also verify the software’s ability to recover from errors. System tests should be written with the requirements in mind, ensuring that all expected functionality is present. Having a well thought out design will also go a long way toward helping to identify problematic edge cases.

 

 

Q

 

 

We have limited access to the hardware that our system will be running on. Can you recommend a way to work around this barrier and continue testing as needed?

A

Simulators are a great way to continue testing without the use of hardware. Such programs have the added benefit of being consistent and predictable in ways that not all hardware can be. They can even create error conditions that may be difficult or impossible to produce otherwise, allowing for more comprehensive testing of your system.

 

 

Q

 

 

Quality is a huge factor in our projects. We want to ensure quality in each aspect of our product, including software and firmware. What are some activities you suggest in order to guarantee a quality product?

A

From a quality standpoint, I recommend utilizing a variety of testing techniques to ensure the code meets your requirements. To name a few, I would suggest:

1. Design & Code Walk-throughs

2. Line-by-Line Testing

3. Object Testing

4. Subsystem Testing

5. Library Testing

6. A Full System Test

 

 

Q

 

 

I have a project that was engineered elsewhere; however, I now need to find another firmware partner to refactor. How do you plan for testing?

A

First, we go back to the requirements and set up system level tests based on the desired functionality of the system. Once we understand, at a very high level, how the system should operate, we can begin digging down, setting up tests, and refactoring, ensuring that the code still meets all requirements.
Once you get down into individual classes and functions, here are some tips:

1. Judicious use of diagnostic messages to either the serial port or log files.

2. Assume nothing, verify everything.

3. Determine how each hardware or library interface can be confirmed.

4. External calls must be verified against error conditions

5. Verify timing constraints

6. Verify protected processing

7. Verify no memory leaks exist

 

 

Q

 

 

During the project planning phase of product development, what are the components and processes needed to develop a quality assurance plan?

A

The basic components of a Quality Assurance Plan typically include management procedures, configuration and documentation management, change control, problem reporting, as well as design and development review processes. Consider additional processes for quality control, such as the role of risk and quality management, resource qualifications, supporting test features, designing for verification and clinical trials, and finally a development test process.

 

 

Q

 

 

If I’m developing a device with firmware, what is the general process for software verification and validation and who is responsible for what?

A

Generally speaking, the software developers/testers should be responsible for software verification through the software life cycle via design and code reviews, testing in development, and the execution of formal test plans against software requirements. Once completed, the device owner would likely be responsible for final validation and acceptance after testing against higher level product requirements.

 

 

Q

 

 

What value do you find in being ISO certified from a software development vendor standpoint?

A

From a vendor standpoint, we see significantly higher customer satisfaction levels, as well as an increase in employee morale. When both sides of the job are communicating based off of the ISO standards and the operating procedures we implement, stakeholder satisfaction is at an all-time high. Why you may ask? The particular ISO standards that we are certified to, ISO 9001:2015 and ISO 13485:2016, are focused on meeting both customer and regulatory requirements through the implementation of a Quality Management System (QMS). PSI’s QMS identifies Key Performance Indicators (KPIs) and Quality Objectives, of which benchmark and measure our project performance. This leads our development team to successfully complete projects on time, on target, and within budget.

 

 

Q

 

 

When it comes to data transmission/communication, which method is the best approach: Serial or Parallel?

A

It would seem that parallel ports should be able to send data much faster than serial ports. Let’s say we have a parallel connection with 8 data wires, and a serial connection with a single data wire. Simple arithmetic seems to show that the parallel system can transmit 8 times as fast as the serial system. However, parallel ports suffer extremely from inter-symbol interference (ISI) and noise, and therefore the data can be corrupted over long distances. Also, because the wires in a parallel system have small amounts of capacitance and mutual inductance, the bandwidth of parallel wires is much lower than the bandwidth of serial wires. Also, based on the interface, it may require handshaking to lock while reading. Therefore serial generally leads to a better bit rate and more reliably with a lower Signal-to-Noise Ratio (SNR).

 

 

Q

 

 

In terms of project management, what are your recommendations for planning prior to development?

A

During the planning stage of the project, I recommend setting milestones and defining the duration of sprints used to reach them. Determine the tasks needed to complete each milestone and then allocate resources appropriately.

 

 

Q

 

 

When evaluating risk within a project, what information must be collected to manage and identify both project and organizational risk?

A

It’s best to begin addressing your project’s risky activities earlier in the development so that you’re alerted to schedule or budget changes while there is still time to react. First, identify the risks and its source or cause. Devise a treatment plan and measure the success of the selected treatment. Review this process frequently to ensure the project remains on target.

 

 

Q

 

 

When planning a new project, what factors determine when to select an OS or RTOS?

A

Many factors come into play when determining if an RTOS is required, but pay close attention to your project requirements. If they specify the need for USB, networking, file management, web support, large scale development, or stack oriented protocols, then you will definitely need an RTOS. If you’re unsure, consult with one of our experts at PSI.


No Comment

You can post first response comment.

Leave A Comment

Please enter your name. Please enter an valid email address. Please enter message.