Open source and proprietary software components can be utilized together in a single embedded software system without subjecting proprietary components to open source obligations if the overall architecture is designed with this peaceful coexistence in mind. The architectural design of an embedded software system that uses both open source code and proprietary code determines whether or not the entire software system will be subject to open source obligations that can have far-reaching impact on security and profitability. Understanding these issues during early planning phases is essential to product planning.