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