What level of /intelligence/ does a software need such that it can interpret the capabilities / functions of another software?
a. Given the codebase for one software component, can it parse, deduce what the other software is trying to acheive ? (could be called : white-box analysis)
b. Can it watch the way this software component behaves in different situations (inputs) and then deduce behavior ? (black-box analysis). How much time before the it has /understood/ 80% of the behaviour? How could we quantify 80% when we do not know whats 100% ?
b.1 Would observer system watch discreetly or would it be an agreement wherein the observer provides a set of inputs to the observee to respond ?
(i think we are now in the realms of machine learning)
c. Most importantly, can it mimic the behaviors/capabilities that it learned?
d. Interestingly enough ,can the same observer software learn and mimic itself ?
A possible research area.