Evaluation hardware and software
What is Evaluation Hardware and Software?
Companies conduct the evaluation process to select the best piece of hardware or software for their firm this process is called as evaluation hardware and software. These evaluations involve security experts that check for any loopholes in the system and make sure that the system is protected against any kind of intruders. Let us discuss both types of evaluation
Hardware Evaluation
Before evaluating the hardware of the computer we must know the attributes of the computing system. These attributes include
- Multitasking: Multitasking refers to the computer running two or more applications in parallel. In this process, the system processing power is distributed among these applications.
- Multiprocessing: In multiprocessing, multiple processors share the same memory to execute programs in parallel. This technique speeds up the processing by a huge margin.
- Multithreading: Multithreading breaks the program into threads and executes them in a rapid sequence within a program simultaneously. It can somehow be portrayed as multitasking within a single program.
The hardware evaluation consists of following things
- Security analysis
- Physical Security of the hardware
- Design review
- Power analysis
- Electromagnetic Emanation analysis
- Laser fault injection
- Frequency manipulation
- Differential Fault analysis
- Electromagnetic fault injection
There may be other tests in the hardware evaluation but the above mentioned things are the basic operations for the hardware evaluation. Let us have a brief introduction about some of the above mentioned tests.
Laser Fault Injection
In this test the IT security laboratories and the semiconductor industry team up together to check for any loopholes in the system using the known attack techniques. The Laser fault injection (LFI) is the most effective technique to check for any security loopholes in the IC. LFI produces very precise results but it is very expensive and requires a lot of expertise to execute it successfully. In this test, a malfunctioning is provoked using the high-cost Laser and then they try to hack into the IC.
The front side access is harder to break into as it contains a lot of physical countermeasures. So most of the testing takes place on the back side of the chip. Now the back side of the chip is also becoming difficult to access due to the 3-D stacked design of the chip. So, the laboratories now target the lateral side of the chip for testing purposes.
Electromagnetic Fault Injection
Electromagnetic Fault injection (EMFI) is a very powerful method used to inject faults into the embedded devices. This test does not cost a lot but the results are not as precise as the LFI testing. The objective in EMFI is to inject some voltages into the embedded system using an electromagnetic source. This can cause the device to malfunction such as a bit may change in the registers or SRAM.
In order to inject this electromagnetic disturbance an Electromagnetic probe is used that is shown in the picture above. These devices use coils in combination with high permeability materials. The high permeability materials concentrate the magnetic flux into a small region that sometimes causes the bits to change without even crashing the whole device.
Software Evaluation
Typically, software evaluation criteria include the following things
- End-user requirements
When evaluating the software end-user’s requirements are considered to be the first priority. The software must be designed in a way to facilitate the users of all skill levels. Other than that, the software should clearly tackle the problem that it is designed to do. For example, if a software targets the audience that suffer from disabilities then it should have features to entertain such an audience. Like having built-in letter templates and supporting voice typing are must-haves for the software.
- Functionality
Another key aspect of software evaluation is checking the functionality of the software. The software must perform the function that is required by the user. Having other related features in the software also improves the evaluation score of the software. For example, having the feature to create graphs and charts in a spreadsheet application improves the quality by a lot.
- Performance
The performance of the software also plays a huge role in the software evaluation. The performance of the software is compared with the existing software models and the results are stored in the form of benchmarks for future use. The software needs to be perfectly optimized in order to deliver maximum performance which makes the optimization a key feature for the app.
- User-Friendly
The software with a user-friendly interface is always better. The ease of use and built-in help panels add more value to the app in terms of user-friendliness.
- Compatibility with Previous Data
This is something to consider when upgrading any software or when using the existing data for the software. The software must be able to use any data that is already being used or is to be used. If there is any problem with it, then the previous data must be converted into the supported format before upgrading the software.
- Compatibility with other Hardware
Sometimes the software runs better in one type of hardware but struggles in the other type. These types of issues occur more often as there is a wide range of hardware available in the market. In order to perform best on all kinds of hardware the software must be optimized generally rather than applying targeted optimization.
- Cost
In case of paid software, the cost is also taken into consideration. The software must provide a good price to performance value. Remember that higher price does not always mean that the app will provide better performance.
- Customer Care
Customer care is a very crucial part of a good software. A software with proper customer care support is always preferred. The support may be in the form of telephone or even a web based helpdesk can be useful. Having tutorials/courses can also be a huge plus for the software.
- Customization
The ability to customize the software according to the user’s personal preference is quite appealing. The customization part of the software should be easy to do and should allow the user to change the look and feel of the software according to their needs.
Read more about this