The key attributes of an Embedded System are:
Embedded systems are widely used in military aircraft where the systems manage the flight controls, monitor weapon and perform complex all-weather navigation. Also, aircraft or guided missile are system engineered. Verification and validation of the embedded systems in aircraft or guided missile is a problem because in order to know if all requirements in system are met, the system needs to be tested. If the systems( e.g. military aircraft ) are tested in real-world, it will be very dangerous to the person who tries the systems and also to the people who live around the test place. The aircraft might crash or the guided missile might hit the wrong target if the systems malfunction during the test. This also leads to the second problem where poorly specified software requirements (e.g. incorrect, incomplete, ambiguous, or not testable) contribute to the systems problems with reliability due to incorrect or misinterpreted requirements or functional specifications
The best way to do the test is test the systems virtually. But, we still cannot guarantee that the systems will function properly when they are used in the real-world. The reason is that human specifies the virtual test environment. If the virtual test environment is badly specified, this will lead to unsuccessful test results.
Another problem in validating and verifying embedded system in real time, alike any real time system, is to have the system meeting its timing requirement. Failure to meet its requirement is called timing fault. Although real time system developer might be tempted that speed is the solution to meeting the timing requirements, speed alone is not the solution.
For example, satellite launch system where there's million of dollars is involved in building the satellite and testing the failure mode will involve great expenses. Therefore, testing satellite launch system for failure mode to validate and verify its system is impractical.
The solution is proper resource management techniques. For example, to prevent long low priority tasks to block the higher priority tasks with shorter task time. An algorithmic-based scheduling methodology should be used to combine task-set characterization data with the associated timing requirements, to determine if the scheduled task will meet its timing requirements.
Encyclopedia of Software Engineering, Volume 1&2, John Marciniack