中文简体版   English   星期五 ,10月 20日, 2017 (台北)
登入  申請試用  MY DIGITIMES236
 
廣盛科技
訂報優惠

解決SDL與UML在即時軟體設計上的問題

  • 周安蓮

MSC規格範例。


實務運作發現的問題與解決方式

基於上述理由,為了要實行SDL中所描述的系統,工具將會變得非常難以製造、非常昂貴,並且需要很長的訓練時間,再加上超級棒的技術顧問,才有辦法使系統在Target上正常運行。最後終於,一切問題都解決了,我們才會發現:使用圖形化語言真是一點好處也沒有!

造成這樣情況的主因是,軟體開發者希望堅守SDL的標準,無論我們已經看到哪些必然會發生的技術問題。因此,SDL使用者開始在SDL圖表中寫入C,並打破SDL語法以符合未來技術。但既然商用工具無法支援C與SDL的交替使用(因為無法符合公定標準),這一批人何不發展他們自己的工具鏈呢?這也就是為什麼Alcatel、Nokia、Nortel、EADS和Sagem這些主要的電信製造商都開始發展他們自己的C code generator,以從SDL與C混雜的圖形化設計圖中獲得可用的程式碼。然而,第一版的SDL-RT就是看準了這樣的需求而發行的。為了擴展這種語言普遍使用到所有即時應用程式中,SDL-RT也加入了圖形符號來處理信號。

UML(統一塑模語言,Unified Modelling Language)─正如其名-用以整合好幾種圖表。一開始的目的是為了將應用程式文件化,並且縮短軟體發展團隊中的人員溝通時間。UML第一版發行在1997年,得力於強大的銷售量,UML已經快速地普及到許多地區。該語言以其完整的物件導向方法為特色,基本上任何系統中的任何元素都可當作一個類別。這種通稱性的方法提供一個非常高階的抽象層,因此可以應用到任何概念上;但另一方面,UML並無法專用於任何應用領域,對於應用的細部描述也不夠精確。事實上,UML主要使用於設計初期的分析或規格定義階段。

UML圖表與設計之間薄弱的關聯性導致兩個不斷重演的問題:UML記號與最終程式碼之間的同步,以及缺乏組織架構以驅動發展程序。上述問題顯露了UML成功的事實,是由於軟體發展團隊依舊繼續做他們過去所做的,但使用這個語言來將程式碼文件化。這種做法的好處其實是非常有限的,這也就是為什麼某些大公司決定停止使用UML。在標準1.x版中所包含的九種圖表中,即時系統僅使用類別圖、序列圖,以及狀態圖。雖然UML基本是一個畫圖的工具,程式碼產生的能力很有限,但對業界來說遠比SDL工具負擔的起。

UML使得技術普及,但不可否認許多大型開發團隊密集使用UML的經驗,最後都是以失敗收尾。從上述情況看來,這些工具產生在Target上可運行的低效能、無臭蟲大型程式碼,幾乎指向同一個問題:在即時與嵌入領域中,使用一個完全物件導向的傳統方法真的是可行的嗎?

這樣的問題是很難給一個直接的答案,但是顯然物件導向的發展能夠成功地針對系統模式的重用性(re-use),提供有效益的方式並納入資料庫的組織元件。再說,UML的市場力量太強大,因此SDL必須針對自己身為圖形化塑模語言的地位重新定義。最新的SDL版本為’2000,並且將UML的類別圖整合進來,為將來與UML2.0整合而鋪路。為了針對各種應用領域來定義專用的設定檔(profile),新版的UML主要的目標是支援MDA(模式驅動架構,model driven architecture)。

反觀SDL這邊,先不管軟體商們一開始的承諾,最新版的SDL語言依舊沒有實行到任何一個工具中。一般來說,因為SDL的複雜性,導致大部分的使用者傾向使用UML-即使精確性較低,也完全不為SDL所動。於是,SDL論壇開始成立一個特別小組來,將重新定義和簡化SDL的特性,並且在SDL中定義UML profile。此時,SDL使用者仍然使用’96版。

SDL-RT 2.0版整合了UML的類別圖與部署圖,不但可補足SDL的圖表顯示,亦可保持其在不同表示法中原有的一致性。UML 2.0也整合了SDL中現有的特點,像從區塊圖到結構圖,以及MSC到序列圖,也可以定義專門領域的設定檔,但不幸地,並沒有針對標準的即時設定檔。因為那些在OMG擁有投表權的人員職務調度,主要業界公司都質疑這樣的設定檔到底有沒有標準化?

然而,第一版的UML2.0目前已經上市,新標準的最初目的是為了簡化程式的移植性與可讀性,但每個制定者都只專注於自己專用的設定檔,而使得目標並未達成。這些設定檔不適合共用,工具本身也很難提供使用者自行修改設定檔,因此最後市面上充斥一堆各種版本的UML2.0工具,對使用者來說,程式碼的閱讀與移植比以前更加困難。

無論工具本身是以SDL或UML為基礎,規格制定者們內心都有一個預言:透過研討會和廣告,並用他們的語言與所花費的精力來證明他們是對的。這樣的行動引起的許多技術狂熱者,並且他們再也無法聽進其他人的技術建議,直到技術實務將他們又帶回了最初的思考,但代價是什麼?多想想,我們所需要的就是像SDL-RT這樣的工具,能夠透過工業用途與理想的啟示,提供實務的解決方案,而不須忽略目前的趨勢。


結論:SDL-RT給系統設計兼顧品質與效能

這就是為什麼使用者需要把某些UML圖表、大部分SDL圖表,以及標準程式語言C/C++放到同一個一致性的架構中:目的就是為了針對即時與嵌入領域,取出各種不同語言的所有優點,缺點都丟掉。為了能夠重複使用這些系統圖表,而不須使用專門的工具,所有的資料都會儲存在XML檔案中。拋開語言本身不談,軟體工具的品質必須好到足以說服使用者,雖然開發團隊的目標無法與現有標準一致,但SDL-RT可以,並且帶給系統設計最佳的品質與效能。(本文由皮托科技股份有限公司提供,作者: Emmanuel Gaudin, PragmaDev 譯者: 林舜英。 )


SDL-RT2.0版包含了UML圖表,並且確保原有的一致性

分頁: 1  2   單頁顯示