針對檔案產生程式碼

在產生程式碼期間,檔案會產生完整的正式作業程式碼,包括行為程式碼。根據其建模內容,建模的檔案與隱含的單態物件相似。

針對作用中或回應檔案,IBM® Rational® Rhapsody® 會產生一個公用隱含的物件(單態),其使用作用中或回應的功能。單態的名稱即為檔案的名稱。

註: 單態實例定義於實作原始檔中,而不是套件原始檔。
對於具有常數修飾元的變數,Rhapsody 會產生 #define 陳述式。例如:
    #define MAX 66

下表顯示物件與檔案的程式碼產生之間的差異。

表 1. 物件與檔案的程式碼產生之間的差異
模型元素 檔案程式碼 物件程式碼
資料成員(屬性、關聯或物件) 廣域變數 單態 struct 中的成員
函數 nameYou 可以使用 <lang>_CG::Operation::PublicName<lang>_CG::Operation::PrivateName 內容配置函數(針對檔案、物件及其他元素)的名稱型樣。 函數名稱型樣是 <Function> 公用函數的名稱型樣是 <Singleton>_<function>

專用函數的型樣是 <Function>

函數簽章 必要時會產生 me 引數,以符合架構回呼函數(針對回應行為)的簽章。 相同。
起始設定 變數與關聯會在定義中直接進行起始設定。例如:

int x=5;

物件會在產生的 Init 函數中進行起始設定。

在起始設定函數中完成。
類型名稱 類型的名稱型樣(不考量可見性)是 <Type> 公開類型的名稱型樣是 <Singleton>_type

專用函數的名稱型樣是 <Type>

名稱型樣可以使用 <lang>_CG::Type::PublicNamePrivateName 內容進行配置。

可見性 公用成員在規格 (.h) 檔案中被宣告為 extern,並在實作 (.c) 檔案中進行定義。

例如:

extern int volume;

專用成員會在實作檔案中被宣告並定義為 static

例如:

static int volume;

系統會忽略成員可見性;該可見性是 struct 可見性的結果。

例如:

struct Ob_t {
int volume;
};

自動產生的
起始設定及清理 只有算法起始設定才會在起始設定方法中完成(建立組件;起始設定鏈結、行為及動畫)。

起始設定及清理方法只有在需要時才會建立。

起始設定函數的名稱是 <file>_Init;清理函數是 <file>_Cleanup。

任何起始設定都會在 Init 方法中完成。

依預設會產生 InitCleanup 方法。

架構資料成員 Rational Rhapsody 會產生只保留架構成員的指定 struct,以及名為 <file>struct 的單一實例。struct 名稱是 <file>_t

例如:

struct Motor_t {
RiCReactive ric_reactive;
}

架構成員會作為物件 struct 宣告的一部分產生。
呼叫架構作業 檔案上的架構作業會使用檔案進行呼叫。

例如:

CGEN(Motor, ev());

單態上的架構作業會透過傳遞單態實例進行呼叫。

例如:

CGEN(Motor,ev());

狀態圖資料成員 狀態圖資料成員會作為所產生結構的屬性產生。

例如:

struct F_t {
...
enum F_Enum {
F_RiCNonState=0,
F_ready=1}
F_EnumVar;
int rootState_subState;
int rootState_active;
};

狀態圖資料成員會作為 struct 的一部分產生。
狀態圖函數名稱 公用狀態圖函數會使用字首 <file>_ 產生。

例如:

myFile_sIN()

使用相同的命名慣例作為任何其他作業。

您可以使用 <lang>_CG::Operation::PublicNamePrivateName 內容配置函數(針對檔案、物件及其他元素)的名稱型樣。


意見回饋