just enough architecture - design model
- views: A view is a projection of a model that reveals selected details. We will use views to selectively narrow our focus of the comprehensive design model.
- encapsulation: Encapsulation separates the interface of an element from its implementation. We will use the term boundary model to refer to a model element’s interface since the term interface is commonly used to refer to a programming language construct (e.g., Java interfaces). The implementation is called the internals model. Both the boundary model and the internals model describe the same thing, but the boundary model omits any details of what the element looks like on the inside.
- nesting: Most elements in your models have sub-structure. An internals model of an element consists of smaller elements. Each of these elements can be described by a boundary model, and the implementation of those elements can be described by an internals model. Consequently, a single element can be decomposed into a tree of nested boundary and internals models.
Boundary model
The boundary model is what outsiders can see of the system (or an element in the system), which includes its behavior, interchange data, and quality attributes. The boundary is a commitment to an interface but not to implementation details. The boundary model describes what a user needs to know to understand how a system works. It is an encapsulated view of the system that hides internal details, so when developers change the internal design, users are undisturbed.
Internals model
The internals model is another view of the design model, one that reveals the details that are omitted from the boundary model.
While both the boundary and internals models are views of the design model, they are also related to each other by a refine- ment relationship. The internals model describes the same thing as the boundary model and adds more details, which is the definition of a refinement relationship.
Both the boundary and internals models are described using the same elements, such as scenarios, components, connectors, ports, responsibilities, modules, classes, interfaces, environmental elements, and tradeoffs. Some things in the internals model are elaborated, such as the component assembly and scenarios.