1. A computer system, comprising: a processor; and a non-transitory computer-readable storage medium storing a software domain model, wherein the software domain model comprises: a common core layer providing a set of common elements, wherein the set of common elements comprise definitions, attributes, behaviors, and relationships; a software layer providing a first software component and a second software component that independently and separately extend a common element in the set of common elements provided by the common core layer, wherein the first software component is different from the second software component; and a composite software layer including a set of micro-orchestrations, which when executed, cause the computer system to invoke functionalities in the first software component and the second software component to collectively perform a task, wherein a micro-orchestration in the set of micro-orchestrations included in the composite software layer is used to send data from the first software component to the second software component, without the first software component knowing of the second software component, and without the second software component knowing of the first software component.