terpreter to function; of course, if external de- seen in Figure 2.4a-15. pendencies exist in the Python software for features such One of the problems with the component structure as graphics, the appropriate library also has to exist in the shown in Figure 2.4a-15 is that it does not allow for new system. input interfaces that have the same interface name; this limitation increases the difficulty in using the API de- 2.4a.6 Development scribed in the specifications. To resolve this problem, a fan-in structure needs to be added to the system, even though this creates another level of complexity to the Waveform development for sophisticated systems is implementation. A way to implement this fan-in struc- a complex, multidesigner effort and is well beyond the ture is to mimic the fan-out structure, and to place each scope of this book. However, what can be approached is input Port as a separate thread with a data queue sepa- the design of a simple waveform. In this case, the rating each of these threads with the functional Re- waveform is designed using the SCA, bringing several of source. An example of this implementation is shown in the concepts described thus far into a more concrete Figure 2.4a-16. example. Before constructing a waveform, it is important The approaches shown in Figures 2.4a-14, 2.4a-15, to build a component. and 2.4a-16 each present a different structure for the same concept. The specific implementation decision 2.4a.6.1 Component development for a component is up to the developer, and can be tailored to the specific implementation. Because the Several structures are possible for a component because components are described in terms of interfaces and it is defined only in terms of its interfaces and functionality, it is possible to mix and match the dif- ferent structures, allowing the developer even more flexibility. Resource 2.4a.6.2 Waveform development As an example of the waveform development, assume that a waveform is to be created that splits processing Figure 2.4a-14 Simple resource an