• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    運用UML建模開發嵌入式軟件

    發布: 2009-11-06 10:54 | 作者: 不詳 | 來源: 領測軟件測試網采編 | 查看: 37次 | 進入軟件測試論壇討論

    領測軟件測試網

    通過對用例和系統結構分析,識別出來的類和關系。

      出于可移植性的考慮,所有類被分成3個層次:

      最頂層是功能邏輯類的抽象,MachineStting為機器設置類;Keys為按鍵類,Displayr為顯示類,MotorController為電機控制器類。這些邏輯上的類與硬件無關,便于以后硬件修改,同時使得開發繞線機的不同版本變得非常容易,如從平繞機到開發環行機,從二軸繞線機到開發三軸繞線機。

      中間層是外圍硬件類的抽象,Flash為Flash存儲類,用于存儲設置的參數;Speaker為揚聲器類;Panel為面板類;DCMoto/為直流電機類;StepMotor為步進電機類。

      最底層是單片機及其內部功能模塊類的抽象,H8/3062為單片機類,用于封裝輸入/輸出口;Timer_KeyShake為按鍵防抖定時器;Timer_DCMotor為直流電機PWM脈沖產生定時器;Timer_DCCapture為直流電機圈數捕獲定時器;Timer_StepMotor為步進電機PWM脈沖產生定時器。分這一層可以使得變換單片機類型非常容易,瑞薩H8/300H系列單片機在國內應用非常罕見,之所以選用這款是為了與國外產品的競爭,這樣可以更快、更好地打開國際銷路,但在選擇這款單片機的同時已經做好了移植到ARM內核單片機的準備。

      為了理解系統的動態行為,還應該用順序圖、協作圖、狀態圖和活動圖對系統動態行為進行描述。狀態圖對嵌入式系統的設計尤其重要,這里用其對MotorController的狀態轉換進行描述。

      可以用時序圖等對用例進行進一步的分析,“啟動”按鍵按下后處理的時序圖。

      建模過程不是一個直線過程。它往往是一個演化、迭代的過程,不斷地分析、評價、修改、再分析,才可能得到一個高質量的模型,為高質量的軟件打下基礎。

      1.3 編碼過程

      Rose具有自動生成C++框架代碼的功能。在Rose菜單中選擇Tools→ANSI C++→Generate Code,可以生成C++的框架代碼。

      要用C編碼,需要把C++代碼稍作修改變成C代碼。由于沒有動態創建實體,所有的對象都是靜態的。這使得修改工作極其簡單——把“::”改成“_”即可。修改后的“_”前面的部分可以看成是對象名,后面的部分看成是成員函數名,源文件的修改。

      頭文件也需要做相應的修改,對變量的定義需要放到源文件里面。

      代碼修改完成后,剩下的就是C語言的編碼過程了。編碼時,當調用對象成員時,“.”操作符用“_”代替,則剛好對應上修改后的變量和函數。

      2 進一步優化程序的方法

      為了進一步提高程序的速度,還應對程序進行專門的優化,例如中斷處理程序里面一兩條指令引起的差異就非常明顯。下面介紹幾種優化辦法。

     、侔殉蓡T函數定義成宏函數。由于面向對象數據隱藏的特點,對數據的操作需要以函數的形式提供,使得數據的操作效率變低。C++編程時,類的成員函數不能修改成宏,改為C函數后,就可以修改了;但這種優化最好在調試結束后進行,因為宏函數不方便錯誤定位。修改方法如圖8所示。

     、诎殉蓡T函數定義成內聯函數。

     、鄢绦蛑惺褂貌楸。對一些很消耗時間資源的非常復雜的運算,可以使用查表的方式。在步進電機的加減速控制中,加減速曲線一般采用指數曲線或者S曲線,運算量較大?梢允孪劝亚對應的定時器上界寄存器的值離線計算出來,并片j數組保存起來,需要時直接讀數組即可。這種方法通過犧牲空問來換取時間,但是犧牲的是相對寬余的ROM空間,還是比較劃算的。

      結語

      繞線機項目獲得了很好的效果,達到了系統的性能要求。測試時,發現的錯誤相比以前類似項目大大減少。更讓人興奮的是,測試中沒有發現任何大的軟件結構上的錯誤。這歸功于Rose的前期可視化建模功能。編碼之前可以很清楚地掌握系統的結構,這是面向對象設計相比傳統方法的優勢。

      應用結果表明,這種開發方法是很實用的,可以優化程序結構、縮短開發周期,實現快速開發又不降低程序的效率;但這種方法的應用是有局限性的,對效率與空間要求不高的嵌入式系統,完全可以直接用C++編程,因此這種方法只適合于空間緊張、實時性要求比較高的系統。

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    22/2<12

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>