Decision Models
Decision models have been used in software architecture and design to provide a mapping between the problem space and the solution space. The proposed decision models are aimed to provide a decision flow for selecting among blockchain application patterns with quality rationales. Accordingly, our solution space consists of a set of blockchain application patterns that describe a software system’s high-level structure and behavior, as the solution to multiple requirements.
The decision models are created to map elements in the problem space to the elements in the solution space. The selection paths were identified mainly based on the details provided in the “related patterns” section of each pattern. However, when we take a holistic view of multiple pattern collections, we were able to identify new selection paths among patterns based on our experience. The quality impacts and trade-offs were derived from the “forces” and “consequences” sections of the patterns. When a pattern paper did not follow a comprehensive pattern template, we used our experience from several years of blockchain research and application development to identify relationships among patterns.
Decision Model Notation
Figure 1: Decision model notation.
The above figure illustrates the notations used in the decision models. We borrow the notation of gateways from the Business Process Model and Notation (BPMN). Every decision model has a high-level design goal represented by the grey box. A circle defines the start of the decision process. an Inclusive gateway may trigger more than one outgoing path. In contrast, an exclusive gateway triggers only one of the outgoing paths. A parallel gateway triggers all of the outgoing paths. A rounded rectangle represents a pattern.
A line with a double-headed arrow between two patterns represents such a “complements” relationship. Constraints of a pattern are represented by an octagon attached to the pattern using a dashed arrow. The consequence of applying a pattern is analyzed in terms of its impact on the Non-Functional Properties (NFP). A NFP that is enhanced by the pattern is indicated with a plus sign (+). Conversely, a minus sign (-) indicates a NFP that is negatively affected by the pattern. We cover typical architecturally significant NFPs, including performance, security, reliability, and modifiability. However, the set is not exhaustive and relevant NFPs for a specific context may be missing. We also consider data quality and unique blockchain properties, like transparency and accountability.