*** Welcome to piglix ***

Blackboard design pattern


In software engineering, the blackboard pattern is a behavioral design pattern that provides a computational framework for the design and implementation of systems that integrate large and diverse specialized modules, and implement complex, non-deterministic control strategies.

This pattern was identified by the members of the HEARSAY-II project and first applied to speech recognition.

The blackboard model defines three main components:

The first step is to design the solution space (i.e. potential solutions) that leads to the blackboard structure. Then, knowledge sources are identified. These two activities are closely related.

The next step is to specify the control component; it generally takes the form of a complex scheduler that makes use of a set of domain-specific heuristics to rate the relevance of executable knowledge sources.

Usage-domains include:

The blackboard pattern provides effective solutions for designing and implementing complex systems where heterogeneous modules have to be dynamically combined to solve a problem. This provides non-functional properties such as:

The blackboard pattern allows multiple processes to work closer together on separate threads, polling and reacting when necessary.

Sample radar defense system is provided as an example (in C#).

Code for MainWindow.xaml:

Code for item container for positioning

Code for Item (ItemTemplate defines the object, an Image and TextBoxes):

Code behind the Blackboard component in MVVM ViewModel implementation:

Code behind the Controller:

Code for the base class IObject:

Code in the radar module:

Code to handle incoming object:

Code for knowledge source interface:

implementation for signal processor:

code segments for copying between writablebitmaps:

Code for comparing pixel in image recognition:

Code for plane identification:

Code for the war machine:


...
Wikipedia

...