칠판형 아키텍처 스타일

From CS Wiki
Revision as of 08:11, 11 March 2020 by 이수민 (talk | contribs) (새 문서: 분류:소프트웨어 공학 * 상위 문서: 소프트웨어 아키텍처 스타일 ;Blackboard Software Architecture Style; Blackboard Software Architecture Pattern * Share...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Blackboard Software Architecture Style; Blackboard Software Architecture Pattern
  • Shared data, database와 같은 데이터 중심 패턴 중에 하나
  • 명확히 정의된 문제 해법이 없을 때 문제를 풀어가는 하나의 방식을 정의한 패턴
  • 대략적으로 해법을 수립하기 위해 특수한 서비스 시스템의 지식을 조합하는 패턴

예시

칠판형 아키텍처 스타일 예시.png

장단점

구분 내용
장점
  • 완벽한 해법을 찾기 어려운 경우에 사용할 수 있음
  • KS, Control, Blackboard 가 독립적으로 동작하여 가변성이나 유지보수성이 좋음
  • KS는 타 문제 도메인에 재사용될 수 있음
단점
  • 완벽한 해법을 제시하지 못하므로 얼마동안 동작해야 하는지 알 수가 없음(성능문제)
  • 계산 결과가 항상 동일하지 않아 테스트가 어려움
  • 많은 시간에 걸쳐 수정되어야 하므로 개발에 많은 노력이 필요

설계 순서

계층형 아키텍처 스타일 설계 예시.png

  1. 문제의 도메인을 정의하고 해법을 찾기 위해 일반적인 지식 분야를 상세히 살펴본다.
  2. 해법에 대한 추상화 수준을 상위 수준에서 하위수준까지 나눠서 정의한다.
  3. 해법수준에 맞게 Knowledge source를 정이하고 각 수준으로 분할한다.
  4. 모든 Knowledge source가 blackboard와 상호작용하는 표현 방식을 찾아서 정의한다.(blackboard 어휘를 정의한다.)
  5. Control을 정의한다.

같이 보기

참고 문헌

  • 소프트웨어 아키텍처 패턴 가이드, SW공학센터