사용자 정의 검사 작성

사용자 자신이 코딩한 사용자 정의 검사(외부 검사라고도 함)를 작성할 수 있습니다. 예를 들어, 시스템 프로파일에는 종종 도메인 특정 검사가 필요합니다.

이 태스크 정보

IBM® Rational® Rhapsody®에서 제공하는 사전 정의된 내부 검사처럼 사용자는 외부 검사가 코드 생성에서 호출되는지 여부를 정의할 수 있습니다. 또한 외부 검사가 실행되는 메타클래스에 대해 정의할 수도 있습니다.

Rational Rhapsody API를 통해 사용자 정의 외부 검사를 구현하고, 이미 Rational Rhapsody에 있는 GUI를 사용하여 실행할 수 있습니다. 내부 검사이든지 외부 검사이든지 간에 검사가 수행되고 해당 결과는 제품의 동일한 GUI를 통해 표시됩니다.

Rational Rhapsody는 C++ 및 VB 사용자에 대해 COM API를, Java 사용자에 대해 Java API를 사용하여 사용자 정의 외부 검사를 등록, 열거 및 제거하기 위한 API를 제공합니다. COM 콜백(연결 위치)을 통해 사용자는 검사 실행 시 사용자 정의 코드를 열 수 있습니다. COM API 또는 Java API를 사용하는 사용자는 이 기능을 사용하여 사용자 정의 검사를 추가, 실행 또는 제거할 수 있습니다.

검사할 메타클래스(또는 새 용어)를 결정하면, 검사가 호출되어 사용자가 결정한 메타클래스의 요소를 검사합니다.

프로시저

예를 들어, COM API 사용자에 대해 사용자 정의 검사를 작성하려면 다음을 수행하십시오.

  1. COM API의 IRPExternalCheck 인터페이스에서 정의된 클래스를 구현하십시오.
  2. IRPExternalCheckRegister Add 메소드를 사용하여 이 클래스를 등록하십시오. IRPApplication에서 메소드를 통해 이 싱글톤을 가져올 수 있습니다.
  3. 클라이언트 시스템에서 IRPExternalCheck를 구현해야 합니다.

결과

다음 표에는 사용자 정의 검사를 위해 구현해야 하는 인터페이스의 메소드에 대해 설명합니다.

표 1. 사용자 정의 검사를 위해 구현해야 하는 인터페이스의 메소드
메소드 설명
GetName() 이름 속성을 문자열로 리턴합니다.
GetDomain() 도메인 속성을 문자열로 리턴합니다.
GetSeverity() 사전 정의된 심각도 문자열 중 하나를 리턴합니다(오류, 경고, 정보).
IsCompleteness() 완성도 검사인 경우 TRUE를 리턴하고, 그렇지 않으면(정확성 검사인 경우) FALSE를 리턴합니다.
ShouldCallFromCG() 사용자가 코드를 생성할 때 이 검사를 호출해야 하는 경우 TRUE를 리턴합니다.
GetRelevantMetaclasses() 관련 메타클래스, 용어 또는 둘 다의 목록을 리턴합니다. 메타클래스가 리턴되는 현재 구성 범위에 있는 요소에 대해 Rational Rhapsody가 검사를 시작합니다.
Execute() 검사를 실행하도록 Rational Rhapsody에 의해 호출됩니다. 이 루틴은 검사가 통과한 경우 TRUE를, 검사가 실패한 경우 FALSE를 리턴합니다. 여기에는 두 개의 매개변수가 포함됩니다.
  • Rational Rhapsody에서 제공하는 첫 번째 매개변수는 검사를 실행해야 하는 IRPModelElements 입니다(해당 메타클래스는 검사 GetReleventMeltaclass() 목록에 있음).
  • 관련 시 검사에서 리턴되는 두 번째 매개변수는 검사가 실패하는 경우 Rational Rhapsody가 강조표시하는 IRPModelElements 콜렉션입니다.

사용자 정의 검사 배치

이 태스크 정보

COM 클라이언트에서 코드를 제공해야 합니다.

  • VB를 사용 중인 경우, 클라이언트는 EXE 파일입니다.
  • C++을 사용 중인 경우, 클라이언트는 EXE 또는 DLL 파일입니다.
  • Java를 사용 중인 경우, 클라이언트는 CLASS 또는 JAR 파일입니다.

IBM Rational Rhapsody는 플러그인 메커니즘을 사용하여 일반적으로 HEP 파일이나 INI 파일을 통해 코드를 로드합니다. 일반적으로 관련 프로젝트나 파일 옆에 HEP 파일을 추가합니다. 예를 들어, Java 플러그인을 작성하려는 사용자가 Rational Rhapsody Java API를 사용하여 플러그인을 작성하고 다음 예제에서와 같이 HELP 파일을 제공합니다.

[Helpers]
numberOfElements=1
name1=ExternalChecks
JavaMainClass1=JavaPlugin.ExternalChecks
JavaClassPath1=$OMROOT\..\DoDAF

Rational Rhapsody 설치 경로(예: &<product installation foldergt;\Samples\ExtensibilitySamples\ExternalChecksSample)의 ExternalChecksSample 서브폴더에 Java 및 VB에 대한 샘플 검사 프로젝트가 제공됩니다.

사용자 정의 검사 제거

이 태스크 정보

사용자 정의 검사를 제거하려면 IRPExternalCheckRegister Remove 메소드를 사용하여 클래스를 제거하십시오. IRPApplication에서 메소드를 통해 이 싱글톤을 가져올 수 있습니다.


피드백