Software design and architecture (Lecture Notes) – Chapter 12: Shared data software architecture. An architecture style (also known as an “architecture pattern”) abstracts the common properties of a family of similar designs. Define a family of systems in terms of a pattern of its structural organization. | shows a UML class diagram of a rule-based blackboard software architecture. As we can see, one blackboard may have many knowledge sources associated with it, working on given data and deduced data available in the blackboard subsystem. Each knowledge source helps to solve problems in its expertise area. Knowledge can be stored in different knowledge representation formats depending on the reasoning strategy. For example, a knowledge source stores all related rules and provides activation mechanisms for the blackboard to trigger in rule-based expert system. Of course, knowledge sources must register themselves with the blackboard so that if any change takes place in the blackboard, they will be notified to fire up actions in the corresponding knowledge sources, which can deduce new facts and update the blackboard. Each individual knowledge source may have its own problem solving strategy and use its own knowledge expertise to contribute to a partial solution which will lead to a final solution. The blackboard class holds the current data state, and the final problem solution will be placed in the blackboard for the controller to pick up and use to generate a final report. The rule-based strategy is one of many reasoning algorithms in use today. There are many other problem solving strategies that can be applied including Fuzzy set theory, probability and statistics, neural network, data mining, and heuristic searching.