Let’s first start with the meaning of host-target developments. It is A kind of development process in which the environment in which the application is developed and the environment is which it finally executes are completely different. The development environment is called the “Host” environment and the execution environment is called “Target” environment. Embedded system development comes in to our mind first when we think about it,Right. Well even the same is true for portable device application developments.
First and foremost thing is that testing has to be carried out in an environment in which the application is carried out. But is it always possible to carry out the testing in the target ? Obviously no. Because the target environment is not suited to testing at all in most cases. It may not have a debugger,keyboard or even a processor. Again to carry out testing in such environments the accessories required like in circuit emulator are pretty cost effective. Again many programmers trying to test their work in the target may create a bottleneck. Therefore the best idea will be to carry out as much as testing possible in the host side. This is the requirement of “simulation”.
Simulation means creating target environment in the host itself to facilitate testing. The application can not distinguish between actual and simulated target and it makes our work easy. Carrying out maximum testing on the host and followed by short confirmation tests on the target will do the job. The need of confirmation test is to explore areas of difference between the host and target that may create problems latter. They could be difference in word length, data structure ,significance of bits etc.
But for all these the first thing is a good software architecture. A good architecture separates interface modules from other modules. This reduces target dependency from testing. Therefore the architecture should be done after looking into test requirements. Accordingly simulation can be planned. Amount of simulation possible also varies with the coupling between the target and application. Therefore amount of simulation possible and amount of simulation required are two important factors before deciding in favor of simulation.