Page 137 -
P. 137

134                                                    J.M. Galán et al.

            thematician did not specify any particular neighbourhood function, (b) different
            neighbourhood functions lead to different results, and (c) the modeller is using only
            one of them and believes that they all produce essentially the same results.
              Errors could also appear at this stage, although it is not very likely. This is so
            because the specifications that the modeller produces must be formal, and they are
            therefore most often written down in a formal language. When this is the case, there
            is little room for misunderstanding between the modeller and the computer scientist,
            i.e. the modeller’s specifications and the formal model received by the computer
            scientist would be the same, and thus there would be no error at this stage.
              Theroleofthe computer scientist could introduce artefacts in the process. This
            would be the case if, for instance, his specifications require the use of a particular
            pseudorandom number generator; he believes that this choice will not have any
            influence in the results obtained, but it turns out that it does. Similar examples could
            involve the arbitrary selection of an operating system or a specific floating-point
            arithmetic that had a significant effect on the output of the model.
              Errors can quite easily appear in between the role of the computer scientist
            and the role of the programmer. Note that in our framework, any mismatch
            between the computer scientist’s specifications and the executable model received
            by the programmer is considered an error. In particular, if the computer scientist’s
            specifications are not executable, then there is an error. This could be, for instance,
            because the computer scientist’s specifications stipulate requirements that cannot
            be executed with present-day computers (e.g. real arithmetic) or because it does not
            specify all the necessary information to be run in a computer in an unequivocal way
            (e.g. it does not specify a particular pseudorandom number generator). The error
            then may affect the validity of the model significantly, or may not.
              Note from the previous examples that if the computer scientist does not provide
            a fully executable set of requirement specifications, then he is introducing an error,
            since in that case, the computer program (which is executable) would be necessarily
            different from his specifications. On the other hand, if he does provide an executable
            model but in doing so he makes an arbitrary accessory assumption that turns out to
            be significant, then he is introducing an artefact.
              Finally, the programmer cannot introduce artefacts because his specifications are
            the same as the executable model by definition of the role (i.e. the programmer does
            not have to make any accessory assumptions). However, he may make mistakes
            when creating the computer program from the executable model.



            7.4.3 Activities Aimed at Detecting Errors and Artefacts


            In this section we identify various activities that the different roles defined in the
            previous sections can undertake to detect errors and artefacts. We consider the use
            of these techniques as a very recommendable and eventually easy to apply practice.
            In spite of this, we should warn that, very often, these activities may require a
            considerable human and computational effort.
   132   133   134   135   136   137   138   139   140   141   142