UAC389AE02 HIEE300888R0002用軟件來實現(xiàn)部分硬件功能
UAC389AE02 HIEE300888R0002用軟件來實現(xiàn)部分硬件功能
敏捷開發(fā)不需要架構(gòu)
極限編程,敏捷開發(fā)的出現(xiàn)使一些人誤以為軟件開發(fā)無需再做架構(gòu)了。這是一個很大的誤解。敏捷開發(fā)是在傳統(tǒng)瀑布式開發(fā)流程出現(xiàn)明顯弊端后提出的解決方案,所以它必然有一個更高的起點和對開發(fā)更嚴格的要求。而不是倒退到石器時代。事實上,架構(gòu)是敏捷開發(fā)的一部分,只不過在形式上,敏捷開發(fā)推薦使用更高效,簡單的方式來做設計。比如畫在白板上然后用數(shù)碼相機拍下的UML圖;用用戶故事代替用戶用例等。UAC389AE02 HIEE300888R0002測試驅(qū)動的敏捷開發(fā)更是強迫工程師在寫實際代碼前設計好組件的功能和接口,而不是直接開始寫代碼。敏捷開發(fā)的一些特征:
針對比傳統(tǒng)開發(fā)流程更大的系統(tǒng)
承認變化,迭代架構(gòu)
簡潔而不混亂
強調(diào)測試和重構(gòu)
2. 嵌入式環(huán)境下軟件設計的特點
要談嵌入式的軟件架構(gòu),首先必須了解嵌入式軟件設計的特點。
2.1. 和硬件密切相關
UAC389AE02 HIEE300888R0002嵌入式軟件普遍對硬件有著相當?shù)囊蕾囆?。這體現(xiàn)在幾個方面:
一些功能只能通過硬件實現(xiàn),軟件操作硬件,驅(qū)動硬件。
硬件的差異/變更會對軟件產(chǎn)生重大影響。
沒有硬件或者硬件不完善時,軟件無法運行或無法完整運行。
這些特點導致幾方面的后果:
軟件工程師對硬件的理解和熟練程度會很大程度的決定軟件的性能/穩(wěn)定性等非功能性指標,而這部分一向是相對復雜的,需要資深的工程師才能保證質(zhì)量。
軟件對硬件設計高度依賴,不能保持相對穩(wěn)定,可維護性和可重用性差
UAC389AE02 HIEE300888R0002軟件不能離開硬件單獨測試和驗證,往往需要和硬件驗證同步進行,造成進度前松后緊,錯誤定位范圍擴大。
針對這些問題,有幾方面的解決思路:
UAC389AE02 HIEE300888R0002用軟件實現(xiàn)硬件功能。選用更強大的處理器,用軟件來實現(xiàn)部分硬件功能,不僅可以降低對硬件的依賴,在響應變化,避免對特定型號和廠商的依賴方面都很有好處。這在一些行業(yè)里已經(jīng)成為了趨勢。在PC平臺也經(jīng)歷了這樣的過程,比如早期的漢卡。
將對硬件的依賴獨立成硬件抽象層,盡可能使軟件的其他部分硬件無關,并可以脫離硬件運行。一方面將硬件變更甚至換件的風險控制在有限的范圍內(nèi),另一方面提高軟件部分的可測試性。
2.2. 穩(wěn)定性要求高
大部分嵌入式軟件都對程序的長期穩(wěn)定運行有較高的要求。比如手機經(jīng)常幾個月開機,通訊設備則要求24*7正常運行,即使是通訊上的測試設備也要求至少正常運行8小時。為了穩(wěn)定性的目標,有一些比較常用的設計手段:
將不同的任務分布在獨立的進程中。良好的模塊化設計是關鍵
Watch Dog, Heart beat,重新啟動失效的進程。
完善而統(tǒng)一的日志系統(tǒng)以快速定位問題。嵌入式設備一般缺乏有力的調(diào)試器,日志系統(tǒng)尤其重要。
將錯誤孤立在最小的范圍內(nèi),避免錯誤的擴散和連鎖反應。核心代碼要經(jīng)過充分的驗證,對非核心代碼,可以在監(jiān)控或者沙盒中運行,避免其破壞整個系統(tǒng)。
舉例,Symbian上的GPRS訪問受不同硬件和操作系統(tǒng)版本影響,功能不是非常穩(wěn)定。UAC389AE02 HIEE300888R0002其中有一個版本上當關閉GPRS連接時一定會崩潰,而且屬于known issue。將GPRS連接,HTTP協(xié)議處理,文件下載等操作獨立到一個進程中,雖然每次操作完畢該進程都會崩潰,對用戶卻沒有影響。
雙備份這樣的手段較少采用

ABB 3BSE042243R1 觸摸屏 PP800面板
ABB 07KT98 GJR5253100R2260 控制器模塊PLC風電設備
ABB 07CR41 控制器模塊PLC風電設備
ABB 07EB62R1 控制器模塊PLC風電設備
ABB PM564-RP-ETH DCS備件 控制器
ABB PM554-RP-AC DCS備件 控制器
ABB P-HA-RPS-32000000 DCS備件 控制器
ABB PFTL101A/3BSE004172R1 DCS備件 控制器
ABB PFTL101A 0.5KN DCS備件 控制器
ABB PFSK102 DCS備件 控制器
ABB PFSA140 DCS備件 控制器
ABB PFEA112-65 3BSE050091R65 DCS備件 控制器
ABB PFEA113-65 3BSE050092R65 DCS備件 控制器
ABB PFEA11X-20 DCS備件 控制器
ABB PFEA111-65 3BSE050090R65 DCS備件 控制器
ABB PFEA111-20 DCS備件 控制器
ABB UFC921A101 模塊 控制器
ABB UAA326A04 HIEE300024R4 模塊 控制器
ABB XVC770AE 模塊 控制器
ABB XV9738A 模塊 控制器
ABB UAC375AE103 模塊 控制器
ABB UFC760BE143 模塊 控制器
ABB UGTMEM-03LBB11 模塊 控制器
ABB UNS0874A 模塊 控制器
ABB UNS0867A-P 模塊 控制器
ABB UNS2881B-PV1 模塊 控制器
ABB UFC911B106 模塊 控制器
ABB UAC389AE02/HIEE300888R0002 模塊 控制器
ABB UA377a-E 模塊 控制器
ABB UB371a-E 模塊 控制器
ABB UNS-0869A-P 模塊 控制器
ABB UCD224A102 模塊 控制器
ABB UCD208A101 模塊 控制器
ABB UAD154A 模塊 控制器
ABB UA374B-E 模塊 控制器
ABB UA372c-E 模塊 控制器
ABB PM861K01 模塊 控制器
ABB PM856AK01 3BSE066490R1 模塊 控制器
ABB PP881 模塊 控制器
ABB 07AC91 GJR5252300R0101控制器模塊
ABB 1HSB495663-2 氣體密度繼電器
ABB DSTA131控制器模塊
ABB 3BHE023584R2634/PPD113B03-26-100110現(xiàn)貨型號齊全
ABB DSQC539/SR92B130/3HAC14265-1現(xiàn)貨型號齊全
ABB 3BSE004940R0001直銷
ABB IGCT 5STB24Q2800晶閘管可控硅
ABB 58119687控制器模塊
ABB PM866A/3BSE076359R1現(xiàn)貨型號齊全
ABB 3BHL000986P7000備件現(xiàn)貨
ABB 3BSE018059R1 TC512V1模塊
ABB 5SHY3545L0020可控硅模塊
ABB 3BHE024642R0101 GCD207B101備件現(xiàn)貨
ABB 3BHE031065R0020控制器模塊
ABB 3HAC14550-4/04B機器人配件
ABB 3HNA000651-001控制器模塊
ABB DSQC370/3BSC980004R574控制器模塊
ABB TB82PH/TB82PH2110410NS現(xiàn)貨型號齊全
ABB FC95-22/HESG440295R2/HESG448688R22現(xiàn)貨型號齊全
ABB DSQC377B/3HNE01586-1/15現(xiàn)貨型號齊全
ABB 3BSE018877R1/PFSK152備件現(xiàn)貨
ABB DSIH72VP現(xiàn)貨型號齊全
ABB REF3BUR980025R1控制器模塊
ABB DSQC679/3HAC028357-001控制器模塊
ABB 3HNA006146-001-SIB-01備件現(xiàn)貨
ABB 3BHE035301R1002轉(zhuǎn)速端子板模塊
ABB DSDX451L控制器模塊
ABB DSQC697控制器模塊
ABB 3BHE003688R0101直銷