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를 리턴합니다. 여기에는 두 개의 매개변수가 포함됩니다. |