블랙보드 (디자인 패턴)

소프트웨어 공학에서 블랙보드 패턴(blackboard pattern)은 크고 다양한 특수 모듈을 통합하고 복잡하고 비결정적인 제어 전략을 구현하는 시스템의 설계 및 구현을 위한 계산 프레임워크를 제공하는 행동 디자인 패턴이다.

이 패턴은 Hearsay-II 프로젝트의 구성원들이 식별했으며 음성 인식에 처음 적용되었다.

 구조 
블랙보드 모델은 세 가지 주요 구성 요소를 정의한다.
 블랙보드 - 솔루션 공간의 객체를 포함하는 구조화된 전역 메모리
 지식 소스 - 자체 표현을 가진 특수 모듈
 제어 구성 요소 - 모듈을 선택, 구성 및 실행한다.

 구현 
첫 번째 단계는 블랙보드 구조로 이어지는 솔루션 공간(즉, 잠재적 솔루션)을 설계하는 것이다. 그런 다음 지식 소스를 식별한다. 이 두 가지 활동은 밀접하게 관련되어 있다.

다음 단계는 제어 구성 요소를 지정하는 것이다. 이는 일반적으로 실행 가능한 지식 소스의 관련성을 평가하기 위해 도메인별 휴리스틱 세트를 사용하는 복잡한 스케줄러 형태를 취한다.


 응용 분야 
사용 도메인에는 다음이 포함된다.
 음성 인식
 차량 식별 및 추적
 단백질의 구조 식별
 소나 신호 해석

 결과 
블랙보드 패턴은 이기종 모듈을 동적으로 결합하여 문제를 해결해야 하는 복잡한 시스템을 설계하고 구현하는 데 효과적인 솔루션을 제공한다. 이는 다음과 같은 비기능적 속성을 제공한다.
 재사용성
 변경 가능성
 견고성

블랙보드 패턴은 여러 프로세스가 별도의 스레드에서 더 가깝게 협력하고 필요할 때 폴링 및 반응할 수 있도록 한다.

 같이 보기 
 블랙보드 시스템
 소프트웨어 디자인 패턴

 각주 

분류:소프트웨어 디자인 패턴