UML第14章Rose的雙向工程
,*,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,Click to edit Master title style,第,14,章,Rose,的雙向工程,目錄,14.1,雙向工程簡介,14.2,正向工程,14.3,逆向工程,小結(jié),14.1,雙向工程簡介,雙向工程包括正向工程和逆向工程。正向工程指把設(shè)計(jì)模型映射為代碼;逆向工程是指將代碼轉(zhuǎn)換成設(shè)計(jì)模型。,無論是把設(shè)計(jì)模型轉(zhuǎn)換成代碼,還是把代碼轉(zhuǎn)換為設(shè)計(jì)模型,都是一項(xiàng)非常復(fù)雜的工作。雙向工程提供了一種機(jī)制,它使系統(tǒng)架構(gòu)或者設(shè)計(jì)模型與代碼之間進(jìn)行雙向交換。,正向工程把設(shè)計(jì)模型轉(zhuǎn)換為代碼框架。,逆向工程是指把代碼轉(zhuǎn)換成設(shè)計(jì)模型。,14.2,正向工程,正向工程,(,代碼生成,),:通過使用一種特定的實(shí)現(xiàn)語言從一個(gè)模型生成代碼。,代碼的生成分為五步,但并不是每種語言都需要這些步驟,生成,C+,代碼時(shí)不需要先創(chuàng)建組件。,14.2,正向工程,1.,將,UML,類加入模型中的,Java,組件,Rose,會(huì)將,.java,文件與模型中的組件聯(lián)系起來。因此,,Rose,要求模型中的每個(gè),Java,類都必須屬于組件視圖中的某個(gè),Java,組件。,有兩種給組件添加,Java,類的方法。,(,1,)當(dāng)啟動(dòng)代碼生成時(shí),可以讓,Rose,自動(dòng)創(chuàng)建組件。,Rose,會(huì)為每個(gè)類都生成一個(gè),.java,文件和一個(gè)組件。,(,2,)可以自己創(chuàng)建組件,然后顯式地將類添加到組件視圖中。這樣可以將多個(gè)類生成的代碼放在一個(gè),.java,文件中。,14.2,正向工程,2.,語法檢查,這是一個(gè)可選的步驟。生成代碼前,可以選擇對(duì)模型組件的語法進(jìn)行檢查。在生成代碼時(shí),Rose,會(huì)自動(dòng)進(jìn)行語法檢查。,Rose,的,Java,語法檢查是基于,Java,代碼語義的。,設(shè)置“,Classpath,”,為模型指定一個(gè),Java,類路徑。,14.2,正向工程,4.,備份文件,代碼生成以后,,Rose,將會(huì)生成一份當(dāng)前源文件的備份,它的前綴是,.,jv,。在用代碼生成設(shè)計(jì)模型時(shí),必須將源文件備份。如果多次為同一個(gè)模型生成代碼,那么新生成的文件會(huì)覆蓋原來的,.,jv,文件。,5.,生成,Java,代碼,如果是第,1,次使用該模型生成代碼,系統(tǒng)會(huì)彈出一個(gè)映射對(duì)話框,它允許用戶將包和組件映射到“,classpath,”,屬性設(shè)置的文件夾中。,14.3,逆向工程,逆向工程是將使用特定語言的代碼通過映射轉(zhuǎn)換成模型的能力。,Rose,支持逆向轉(zhuǎn)出工程代碼為,UML,模型。,在逆向轉(zhuǎn)出工程代碼過程中,,Rose,從代碼讀取組件、包、類、關(guān)系、屬性和操作,將這些信息讀取進(jìn),Rose,模型中后,就可以進(jìn)行所需的改變,然后通過,Rose,的正向工程特性重新產(chǎn)生代碼。,小結(jié),雙向工程包括正向工程和逆向工程。正向工程指把設(shè)計(jì)模型映射為代碼;逆向工程是指將代碼轉(zhuǎn)換成設(shè)計(jì)模型。,正向工程把設(shè)計(jì)模型轉(zhuǎn)換為代碼框架,開發(fā)者不需要編寫類、屬性、方法代碼。一般情況下,開發(fā)人員將系統(tǒng)設(shè)計(jì)細(xì)化到一定的級(jí)別,然后應(yīng)用正向工程。,逆向工程是分析代碼,然后將其轉(zhuǎn)換到,Rose,模型的類和組件的過程。,