long as the interfaces and functionality remain the isolate the soda can from the other interfering items, same. It is now possible to change individual objects within remove it from the box, sip it, and thenplaceitback intothe component,such as the keyboard, or the whole The software defined radio as a platform for cognitive radio CHAPTER 2.4a component altogether, but the user is still able to use the Design philosophy and SDR computer component the same as always. The primary goal of CBP is to create stand-alone components that can The dominant philosophy in SDR design is CBP because it closely mimics the structure of a radio system, namely be easily interchanged between implementations. Note the use of separate components for the different func- that CBP is a coding style, and there are no mainstream tional blocks of a radio system, such as link control or the languages that are designed explicitly for CBP. network stack. SDR is a relatively new discipline with Even though CBP relies on a well-defined set of in- few open implementation examples, SO as the code base terfaces and functionality, these aspects are insufficient increases and issues in radio design with code portability to guarantee that the code is reusable or portable from and code reuse become more apparent, other design platform to platform. The problem arises not from the philosophies may be found to make SDR software concept, but from the implementation of the code. To development more efficient. see the problem, it is important now to consider writing the code describing the different aspects of the desktop Design patterns components that we described before, in this case a computer. Conceptually, we have a component that Design patterns are programming methodologies that contains an instance of a display, keyboard, mouse, a developer uses within the bounds of the language the headphone, and computer. If one were to write software developer happens to be using. In general, patterns pro- emulating each of these items, not only would the vide 