用UML模型實現大型實時監控應用軟件
作者:姬孟洛 彭利文(北京跟蹤與通信技術研究所·100094) 出處不詳
1、概述
實時監控應用軟件(CTS)開發過去采用的是結構化方法,采用的編程語言也是匯編語言、FortranAda等結構化編程語言。也曾有過分析和設計階段采用結構化方法,編程實現采用面向對象語言的嘗試。
采用面向對象方法(UML)完整的實現監控實時應用軟件是首次嘗試,收到了較好的成效。
UML(統一建模語言)是美國Rational公司創造的面向對象開發中一種通用的、統一的圖形化模型語言。
它于1997年11月被美國OMG小組批準成為面向對象開發的行業標準語言。UML標準的樹立統一了面向對象的建模方法,消除了對象建模差別。Rational公司的旗艦產品之一Rational Rose提供了對這一行業標準語言的充分支持。
Rose是一個面向對象的軟件分析設計建模工具,可以創建基于UML標準的模型,圖形化地對軟件系統結構加以描述和定義,并且通過建立的模型直接生成代碼框架。
同時,還可以從開發者編的應用系統中直接逆向生成模型。下面將就實時監控應用軟件的分析設計是如何使用Rational Rose來實現的作一簡要介紹:
2、UML模型 CTS是監控系統的中心,它主要用來控制測量設備實時跟蹤和測量飛行目標,實時處理測量結果,并兼有顯示、打印、記錄等功能。它和測量設備的關系如圖1所示。
實時應用軟件通過數據包和測量設備交換信息。軟件實時性要求較高,在每個采樣周期內,必須完成該周期的數據處理工作,也要有一定的人工干預能力。 實時應用軟件模型用來描述軟件各層次的各個方面,它包括Use Case圖、類圖、序列圖、狀態圖、分布圖和組件圖。
2.1 Use Case圖Use Case
也稱為用例、使用情況,它是系統分析人員從用戶使用的觀點來看系統功能、功能之間的關系以及用戶與功能之間的關系。它是系統功能以及用戶與功能之間的關聯,利用
Use Case系統分析人員對系統的功能和行為加以描述。CTS的Use
Case圖如圖2所示。CCP為前端通信處理機,Operator為操作員,Interrupt為操作臺命令產生的中斷。Simulation
模擬狀態,用于軟件調試和操作員訓練。 Task:實戰狀態,用于實戰任務。
Abnomity :異常處理,應急狀態。 SimpleServer:打印、記盤等服務。CommuniciateProcess:從CCP接收測量設備傳來的數據包之后解包,然后按要求將多幀數據重新組織成一幀轉發到CCPDataProcess:將CommuniciateProcess接收的數據依據處理要求進行挑點處理,利用
CommuniciateProcess解包后的數據計算軌道、平滑外推和預報等。DisplayProcess:將挑點后的數據按指定的要求在不同的顯示服務器上以文字、數字或圖象形式顯示。將
DataProcess的處理結果在指定的顯示服務器顯示。所有Use
Case的工作都必須在指定的時間周期內完成。2.2 類圖
類圖是系統的邏輯結構,是模型的核心部分。它描述了系統中的類及類之間的關系,類圖描述系統的靜態結構。類包是子系統中相關類的集合,包類似于 Peter/Coord 方法中的主題詞( subject )。圖 3 描述了 CTS 的類包。
類包 DisplayProcess 、 DataProcess 、 CAbnormity 和 CommunicateProcess 是我們自己開發的,是系統的核心,其余的類包是由 Microsoft 提供的。 DisplayProcess 類包包含了顯示所需要的所有和 MFC 有關的類, DisplayProcess 類包中的類都是從 MFC 派生的,一般都增加了 CTS 系統所需要的特性。 DisplayProcess 類包中的類及類之間的關系如圖 4 所示。
圖4 DisplayProcess 類包中的類及類之間的關系
CommunicateProcess 類包包含了通信處理所需要的類及類之間的關系,如圖 5 所示。圖中 CFrameFormat 類為數據幀格式類是所有幀格式類的父類,它有兩個子類: CRecvFrameFormat 和 CSendFrameFormat 。 CRecvFrame- Format 類(從 CCP 接收的幀格式)是 CRecvHead 類(接收幀頭)和 CDevice- Format 類(設備數據格式)的聚集。 CSendFrameFormat 類(向 CCP 發送的幀格式)的數據區包括 Device1 ~ Device3 幀格式中的內容。 CReceive 類為接收類, CSendTo 類為向 CCP 發送數據類。
圖5 CommunicateProcess類包中的類及類之間的關系
DataProcess 類包是 CTS 類包中的核心部分包括了數據處理所需的所有類,這個類包較復雜這里只給出部分類圖,如圖 6 所示。 CGdFeature 類是數據處理部分的類它有兩個最主要的操作:軌道積分和坐標轉換, CTheoryGd (理論軌道), CPracticeGd (實際軌道), CCoordinatePoint (軌道坐標), CRate (目標速度)。
6 DataProcess類包中的部分類及其關系,CAbnormity類包包含異常處理以及操作臺應急處理所需要的類,類圖略。
2.3 序列圖
CTS 的動態特性用序列圖表示,序列圖用來描述一個軟件的運作順序(場景),一個 Use Case 包含多個軟件的運作場景。序列圖用來刻畫 Use Case 圖,一個 Use Case 可以有多個序列圖,每個場景用一個序列圖刻畫。合作圖與序列圖等價,可以由序列圖轉化得到,兩者各有優缺點。序列圖對于實時系統的時間要求刻畫的很好,但結構不明顯;合作圖的對象間關系明顯但它用消息順序號表示時間,時間表示不清楚,不太適用于實時系統。 CommuniciateProcess 的序列圖如圖 7 所示。
圖 7 CommuniciateProcess 的序列圖
2.4 狀態圖
CTS 的動態結構主要用來描述活類的動態特性,使用 Rational Rose 的狀態圖 StateDiagram 來描述。行為導致了狀態的遷移,狀態圖用來顯示一個給定類、給定事件的狀態。每個狀態圖都與一個類或一個 Use Case 相關聯。狀態圖刻畫軟件系統的行為視點,它基于有窮狀態自動機的圖示機制。一個狀態圖包括一個類在生命周期內的狀態轉換和描述。限于篇幅只給出 CTS 的 CGdFeature 類的狀態圖,如圖 8 所示。
圖8 CGdFeature類狀態圖
2.5 組件圖
邏輯模型表示了系統的邏輯結構,每個邏輯模型都應有一個或多個到物理實現-組件圖的映射。組件圖顯示了物理上組件(主程序、包和任務)之間的依賴關系以及和邏輯模型之間的映射關系。組件的設計和系統的運行環境以及邏輯模型的結構有關。如果是分階段開發的話,組件設計應屬于詳細設計。
2.6 軟件分布圖
軟件系統需要和硬件環境一起工作,軟件分布圖也表示了硬件設備和它們的界面,以及硬、軟件的協同工作。 CTS 的軟件分布圖表示了執行程序、計算機節點以及設備的布局。 CTS 的分布圖如圖 9 所示。圖中 Main 和 Backup 分別表示主用和備用計算機,只有主用計算機向 CCP 輸出,但主備機均接收 CCP 來的數據。
圖 9 CTS 軟件分布圖
3 實現
在系統的邏輯設計(模型)和組件設計(模型)完成之后,便可以進入編程。 CTS 的編程實現采用 Microsoft 的 VC++ 語言, Rational Rose C++ 對 VC++ 有專門的支持。編程實現主要是利用 Rose 的生成和反向生成工具根據系統的設計模型來完成的。它包括三大步驟,每個步驟又包括多個過程。
3.1 系統設置
系統設置主要用來設置 Rose 的特性和目錄,它包括四步,這里就不詳述了。
3.2 開始一個新的VC++項目
在開始 VC++ 編程時,首先創建 VC++ 應用程序,此時應遵循以下步驟:
使用VC++ 的Application Wizards 為應用生成框架
- 創建Rose 分析器Analyzer 下的項目,加入VC++ 創建的文件
- 定位頭文件,關閉不含類也不能由分析器生成和反向重新生成的文件的Regenerate 屬性,并向Rose 輸出初始模型。
在 Rose 下打開 .red 文件
- 反向生成的模型不帶特性,選rosevcpp.pty 文件作為新的特性文件,最后把模型保存為 .mdl 文件。
3.3 增加類、數據成員和成員函數
把 Rose 模型中的類增加到 VC++ 應用程序中可分為兩種情況:一種是不使用 VC++ 的 Class Wizard 支持機制的類(如信息映射),一種是使用此機制的類。
前一種情況比較簡單,它正是在 Rose 中生成代碼,然后把這些文件加入 VC++ 項目中即可。對于后一種情況,其步驟大致如下:
在 VC++ 中創建新類,然后將新類的文件加入 Rose 的 Analyzer 對應 的項目中。
- 在分析器Analyzer 中進行特性設置以反映項目當前的變化。
- 在分析器Analyzer 中輸出文件。 向已經存在的文件中添加數據成員和成員函數的方法與添加類的方法相同。
- 4、結束語 從應用的結果看,總的來說,使用 UML 進行監控實時應用軟件開發取得了比較好的效果,與以前使用的結構法方法相比有明顯的優勢。我們體會,這主要表現在以下幾個方面:
- 1.Use Case 是系統分析人員從用戶的視角出發、從功能邊界描述目標軟件系統,這從模型上規范了對需求的描述,也能夠和后面的設計較好地銜接,比以前純粹的文字描述要好一些。用
- 2. 邏輯設計代替功能模塊設計和實體-關系設計,解決了以前的功能和數據分離的問題,以及模塊中數據的組織問題。
- 3. 用狀態圖在較高的層次上描述了系統的動態結構。
- 4. 由于同時使用了文檔生成工具,使得系統設計和文檔、程序代碼保持一致,較好的解決了極易造成的文檔和實現不一致的現象。這一點非常重要。
文章來源于領測軟件測試網 http://www.kjueaiud.com/
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073
老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月