Composability
Motivation
The separation of concerns theory encourages us to break down a larger problem into multiple smaller problems (concerns). This gives us the opportunity to build corresponding pieces of solution logic, each of which solves a small problem (addresses an individual concern). These capabilities are part of units that are assembled Into a composition through which they are coordinated to collectively solve the large problem. [1]

If something is decomposed, it can be recomposed. In fact, composition is usually the reason something is decomposed in the first place. [1]
Various forms of composition have existed in the past, ranging from the assembly of simple programming libraries to the more formal approaches defined by object-orientation. [1]
Definition
Composable structures are those whose elements are effective composition participants, regardless of the size and complexity of the composition.
Related Characteristics
Reusability
Composability is closely associated with Reusability because composition can be seen as a form of reuse. [1]
Loose Coupling
Heuristic
Reducing dependency requirements allows an element to become part of more types of compositions. [1]
Heuristic
The dependencies an element brings with it can establish fundamental constraints that directly affect its attainable level of composability. [1]
Abstraction & Encapsulation
Autonomy
Statelessness
Composition Controller
Composition controller is located at the head of a composition hierarchy. [1]
Heuristic
Controller is required to (somehow) sacrifice its autonomy when composing others. Therefore, the controller’s actual autonomy can become equivalent to the combined measures of autonomy of all involved composition members.
References
Erl, T. (2007). SOA Principles of Service Design. http://cds.cern.ch/record/1512390
Last updated