Complexity in any system (regardless of that fecund garbage the military espouses) is when the tools and techniques of a system are attempted to be integrated. Regardless of requirements as more and more elements are added the ability to control variables within the system becomes nearly impossible. Complexity is different from chaos in the fact that inputs and "desired" outputs are known but the ability to control for the results desired in chaos are unknown.

Uncertainty is a trait of both chaos and complexity. Uncertainty is found in the lack of knowledge inherent in any system or set of relationships created by unknown variables. Whereas complexity is "created" in the system "uncertainty" is inherent in the fear, uncertainty, doubt, and trust of the system responses. Since any system that is complex will have unknown or transient responses uncertainty will be inherent. The more complex the system the more uncertainty inherent in the system.

Design is an attempt to mitigate complexity and find simple structures or patterns to control for uncertainty. Design can follow formulaic patterns or rule sets entering "planning" (also called engineering) or it can follow natural less than empirical strategies that may allow for "art" to be exposed. Another point is that design can exist outside of planning but be inclusive of planning. As an example an architect designs a building, but an engineer creates the plant-plans, and a manager the project plan. The design process is intent of the creator/originator and the plan is the execution on that intent.

Unfortunately this simplistic discussion does not give glimpses into how the words are often misused. In engineering the models or design are often about the intent/goals, and the planning process is but one of the elements in that process. However the words get used interchangeable to effect the levels of effort or control the inputs into each other.