분석 메커니즘 소개
분석 메커니즘은 공통 문제점에 대한 공통 솔루션을 구성하는 패턴을 표시합니다. 분석 메커니즘은 구조 패턴, 동작 패턴 또는 둘 다를 표시할 수 있습니다. 분석 메커니즘은 분석 시 분석의 복잡도를 줄이고 디자이너에게
복잡한 동작의 간단한 표시를 제공하여 일관성을 개선하기 위해 사용됩니다. 메커니즘을 사용하면 핵심이 아니라 기능성 지원을 위해 필요한 상대적으로 복잡한 동작의 스펙 지정에 빠져드는 대신 기능적 요구사항을 소프트웨어
개념으로 변환하는 데 분석 노력을 집중할 수 있습니다. 분석 메커니즘은 종종 하나 이상의 아키텍처나 분석
패턴의 인스턴스화에서 생깁니다.
분석 메커니즘은 기본적으로 아키텍처의 중간 이하 계층에서 복잡한 기술의 "플레이스홀더"를 표시하기 위해 사용됩니다. 아키텍처에서 메커니즘을 '플레이스홀더'로 사용하면 메커니즘 동작의 정밀도로 인해 아키텍칭 노력에
대한 부담을 덜 수 있습니다. 예를 들어, 오브젝트 라이프타임에서 유스 케이스를 생성해야 하는 필요성, 프로세스 라이프타임 또는 시스템 종료 및 시작이 오브젝트 지속성에 대한 필요성을 정의합니다. 지속성은 특히
복잡한 메커니즘이므로 분석 시 지속성을 유지하기 위한 방법의 정밀도로 인한 부담을 갖지 않도록 하십시오. 이로서 지속성 메커니즘이 정확하게 무엇을 수행할 것인지, 또는 메커니즘이 어떻게 수행되는지에 대해 걱정할
필요 없이 지속적 오브젝트를 평가하고 지속성 메커니즘에 대해 가지는 요구사항을 캡처할 수 있는 '지속성' 분석 메커니즘이 부상되었습니다.
분석 메커니즘은 일반적으로(반드시가 아님) 문제점 도메인에 관련되지 않지만 대신 "전산학" 개념입니다. 결국 아키텍처의 중간 이하 계층을 차지합니다. 이 메커니즘은 도메인 관련 클래스나 서브시스템에 특정의 동작을
제공하거나 클래스 및/또는 서브시스템 사이의 통합 구현에 해당됩니다. 메커니즘은 프레임워크로 구현될 수
있습니다. 예로는 지속성, 프로세스 간 통신, 오류 또는 결함 처리, 알림 및 메시지 전달을 처리하고 일부에 이름을 지정하는 메커니즘이 있습니다.
그러나 더 많은 분석
패턴이 다양한 도메인에 설정되어 있으므로, 분석 메커니즘에서 분석 패턴의 일부 또는 전체를 인스턴스화하면 메커니즘이 아키텍처의 상위 계층에 표시됩니다.
-
지속성
인스턴스가 지속될 수 있는 모든 클래스에 대해 다음을 식별해야 합니다.
-
세분성: 지속성을 유지할 오브젝트의 크기 범위
-
볼륨: 지속성을 유지할 오브젝트 수
-
지속 기간: 오브젝트를 일반적으로 보존해야 하는 기간
-
검색 메커니즘: 지정된 오브젝트를 고유하게 식별하고 검색하는 방법
-
갱신 빈도: 오브젝트가 더 일정하거나 덜 일정한지의 여부, 또는 영구적으로 갱신되는지 여부
-
신뢰성: 오브젝트가 프로세스, 프로세서 또는 전체 시스템 손상 시 유지되는지 여부
-
-
프로세스 간 통신
다른 프로세스나 스레드에서 실행 중인 컴포넌트 또는 서비스와 통신해야 하는 모든 모델 요소에 대해 다음을 식별해야 합니다.
-
지연성: 다른 프로세스와의 통신을 얼마나 빨리 처리해야 하는지 여부
-
비동기성: 비동기 통신
-
메시지 크기: 하나의 숫자보다 범위가 더 적절할 수 있습니다.
-
프로토콜, 플로우 제어, 버퍼링 등
기타 일반적인 메커니즘은 다음과 같습니다.
-
메시지 라우팅
-
프로세스 제어 및 동기화
-
트랜잭션 관리
-
정보 교환
-
보안
-
중복성
-
오류 보고
-
형식 변환
분석 메커니즘을 설명하는 프로세스는 다음과 같습니다.
-
모든 분석 메커니즘을 목록으로 수집
서로 다른 유스 케이스 실현이나 다른 디자이너 사이에 몇 개의 다른 이름으로 동일 분석 메커니즘이 표시될 수 있습니다. 예를 들어, 저장영역, 지속성,
데이터베이스 및 저장소는 모두 지속성 메커니즘을 가리킬 수 있습니다. 또는 프로세스 간 통신, 메시지 전달 또는 원격 호출은 모두 프로세스 간
통신 메커니즘을 가리킬 수 있습니다.
-
-
클라이언트 클래스에서 분석 메커니즘으로의 맵 작성
-
식별된 클래스 및 서브시스템은 식별된 분석 메커니즘에 맵핑되어야 합니다. 화살표는 클래스가 메커니즘을 이용함을 표시합니다. 클라이언트 클래스에 몇 개의 메커니즘 서비스가 필요한 것은 일반적입니다.
-
분석 메커니즘의 특성 식별
광범위한 잠재적 디자인 사이를 구별하려면 각 분석 메커니즘을 규정하는 데 사용되는 주요 특성을 식별하십시오. 이와 같은 특성으로는 파트 기능성과 파트 크기 및 성능이 있습니다.
-
-
협업을 사용한 모델링
분석 메커니즘을 식별하고 이름을 지정하려면, '클래스 모음' 협업을 통해 결국 메커니즘을 모델링해야 합니다(BOO98]
참조), 일부는 직접 응용프로그램 기능성을 전달하지 않고 지원하기 위해서만 존재합니다. '클래스 지원'은 아주 종종 계층화된 아키텍처의 중간 이하 계층에 있으므로, 모든 응용프로그램 레벨 클래스에
공통되는 지원 서비스를 제공합니다.
식별된 메커니즘이 충분히 공통적일 경우, 메커니즘을 인스턴스화할 수 있는 패턴이 존재합니다(기존 클래스를 바인딩하고 새 클래스를 패턴에 필요한 대로 구현함으로써). 이와 같이 생성되는 분석
메커니즘은 추상적이므로 디자인 및 구현을 통해 더 정제해야 합니다.
분석 메커니즘은 중간 산출물: 소프트웨어 아키텍처 문서에 문서화되어 있습니다. 소프트웨어 아키텍처가 완성되는 대로 중간 산출물: 소프트웨어 아키텍처 문서에는 디자인 메커니즘이나 구현 메커니즘과의 분석 메커니즘 관계(또는 맵핑)와 선택사항에
연관된 근본적 이유가 포함됩니다.
|