A SoftwareArchitecture that allows to plug functionality using PluggableModules.
Examples:
The PluggableArchitecture is sort of like the DataBusPattern / ComponentBus (same thing), except that it usually has a much more constrained channel of information, and it is rare that the plug-ins communicate with each other. The central functionality is generally much more powerful than the outer plug-ins. The plug-ins fit very specific roles, whereas in the DataBusPattern, the components do pretty much anything.
Use a PluggableArchitecture when you want a system to work in straightforward and predictable ways, with very specific points of variation.
Use a ComponentBus when you want a system to be pretty much universally extendable, and made up of the connections of lots of little pieces.
When you use a PluggableArchitecture, you get to pinch the points at which change occurs.
When you use a ComponentBus architecture, pretty much everything can be changed atomically, but you have to keep more inter-connections in your head at a time.
I believe that we will need significant advances in 2D GraphicalUserInterface technology, before we can appropriately understand ComponentBus architectures. In the near term future, PluggableArchitecture seems to be almost always the better way to go, if you need extensability. -- LionKimbro