PFTL101BE 2.0KN 3BSE004214R1直接以實現(xiàn)功能為目標進行編碼
PFTL101BE 2.0KN 3BSE004214R1直接以實現(xiàn)功能為目標進行編碼
嵌入式是軟件設計領域的一個分支,它自身的諸多特點決定了系統(tǒng)架構師的選擇,同時它的一些問題又具有相當?shù)耐ㄓ眯裕梢酝茝V到其他的領域。
提起嵌入式軟件設計,傳統(tǒng)的印象是單片機,匯編,高度依賴硬件。傳統(tǒng)的嵌入式軟件開發(fā)者往往只關注實現(xiàn)功能本身,而忽視諸如代碼復用,PFTL101BE 2.0KN 3BSE004214R1數(shù)據(jù)和界面分離,可測試性等因素。從而導致嵌入式軟件的質量高度依賴開發(fā)者的水平,成敗系之一身。隨著嵌入式軟硬件的飛速發(fā)展,今天的嵌入式系統(tǒng)在功能,規(guī)模和復雜度各方面都有了極大的提升。比如,Marvell公司的PXA3xx系列的最高主頻已經達到800Mhz,內建USB,WIFI,2D圖形加速,32位DDR內存。在硬件上,今天的嵌入式系統(tǒng)已經達到甚至超過了數(shù)年前的PC平臺。在軟件方面,完善的操作系統(tǒng)已經成熟,比如Symbian, Linux, WinCE。基于完善的操作系統(tǒng),諸如字處理,圖像,視頻,音頻,游戲,網(wǎng)頁瀏覽等各種應用程序層出不窮,其功能性和復雜度比諸PC軟件不遑多讓。原來多選用專用硬件和專用系統(tǒng)的一些商業(yè)設備公司也開始轉換思路,以出色而廉價的硬件和完善的操作系統(tǒng)為基礎,PFTL101BE 2.0KN 3BSE004214R1用軟件的方式代替以前使用專有硬件實現(xiàn)的功能,從而實現(xiàn)更低的成本和更高的可變更,可維護性。
2.決定架構的因素和架構的影響
PFTL101BE 2.0KN 3BSE004214R1架構不是一個孤立的技術的產物,它受多方面因素的影響。同時,一個架構又對軟件開發(fā)的諸多方面造成影響。
下面舉一個具體的例子。
摩托車的發(fā)動機在出廠前必須通過一系列的測試。在流水線上,發(fā)動機被送到每個工位上,由工人進行諸如轉速,噪音,振動等方面的測試。要求實現(xiàn)一個嵌入式設備,具備以下基本功能:
安裝在工位上,工人上班前開啟并登錄。
通過傳感器自動采集測試數(shù)據(jù),并顯示在屏幕上。
記錄所有的測試結果,并提供統(tǒng)計功能。比如次品率。
如果你是這個設備的架構師,哪些問題是在設計架構的時候應該關注的呢?
2.1. 常見的誤解
2.1.1. 小型的系統(tǒng)不需要架構
PFTL101BE 2.0KN 3BSE004214R1有相當多的嵌入式系統(tǒng)規(guī)模都較小,一般是為了某些特定的目的而設計的。受工程師認識,客戶規(guī)模和項目進度的影響,經常不做任何架構設計,直接以實現(xiàn)功能為目標進行編碼。這種行為表面上看滿足了進度,成本,功能各方面的需求,但是從長遠來看,在擴展和維護上付出的成本,要遠遠高于最初節(jié)約的成本。如果系統(tǒng)的最初開發(fā)者繼續(xù)留在組織內并負責這個項目,那么可能一切都會正常,一旦他離開,后續(xù)者因為對系統(tǒng)細節(jié)的理解不足,就可能引入更多的錯誤。要注意,嵌入式系統(tǒng)的變更成本要遠遠高于一般的軟件系統(tǒng)。好的軟件架構,可以從宏觀和微觀的不同層次上描述系統(tǒng),并將各個部分隔離,從而使新特性的添加和后續(xù)維護變得相對簡單。
舉一個城鐵刷卡機的例子,這個例子在前面的課程中出現(xiàn)過。簡單的城鐵刷卡機只需要實現(xiàn)如下功能:
一個While循環(huán)足以實現(xiàn)這個系統(tǒng),直接就可以開始編碼調試。但是從一個架構師的角度,這里有沒有值得抽象和剝離的部分呢?
計費系統(tǒng)。計費系統(tǒng)是必須抽象的,比如從單次計費到按里程計費。
傳感器系統(tǒng)。傳感器包括磁卡感應器,投幣器等。設備可能更換。
故障處理和恢復??紤]到較高的可靠性和較短的故障恢復時間,這部分有必要單獨設計。
未來很可能出現(xiàn)的需求變更:
操作界面。是否需要抽象出專門的Model來?以備將來實現(xiàn)View。
數(shù)據(jù)統(tǒng)計。是否需要引入關系型數(shù)據(jù)庫?
如果直接以上面的流程圖編碼,當出現(xiàn)變更后,有多少代碼可以復用?
不過,也不要因此產生過度的設計。架構應當立足滿足當前需求,并適當?shù)目紤]重用和變更。

ABB IGCT 5SHX1960L0004 可控硅 5SHY系列可控硅都有貨
ABB CI545 模塊 (ABB S800 通訊卡)
ABB IGCT 5SGX1445H0001 可控硅 5SHY系列可控硅都有貨
ABB AI723F 模塊 (ABB S800 通訊卡)
ABB 3BHB007211R0105 (AC800F模塊) 工控系統(tǒng)自動化備件
ABB AI830A-eA 模塊 (ABB S800 通訊卡)
ABB PM820-2 模塊 控制器
ABB CI520V1 模塊 (ABB S800 通訊卡)
ABB IGCT 5SHY3545L0002 可控硅 5SHY系列可控硅都有貨
ABB PM153 模塊 控制器
ABB 57310001-HG 備件板 工控系統(tǒng)自動化備件
ABB 07DI92 GJR5252400R4101 控制器模塊PLC風電設備
ABB 5760293-7B 備件板 工控系統(tǒng)自動化備件
ABB 086371-502 板子 進口工控備件
ABB IGCT 70EB01b-E 可控硅 5SHY系列可控硅都有貨
ABB 3BSE008518R1 (AC800F模塊) 工控系統(tǒng)自動化備件
ABB IGCT 5SHY35L4511 可控硅 5SHY系列可控硅都有貨
ABB IGCT 5SHX1445H0002 可控硅 5SHY系列可控硅都有貨
ABB 3BUS208728-001 (AC800F模塊) 工控系統(tǒng)自動化備件
ABB 3HNA006144-001 (AC800F模塊) 工控系統(tǒng)自動化備件
ABB CI522 模塊 (ABB S800 通訊卡)
ABB 3BHE009017R0101 (AC800F模塊) 工控系統(tǒng)自動化備件
ABB IGCT 5SHY35L4520 可控硅 5SHY系列可控硅都有貨
ABB 07KT95 GJR5252800R0100 控制器模塊PLC風電設備
ABB 3BSE018161R2 (AC800F模塊) 工控系統(tǒng)自動化備件
ABB PP825A 3BSE042240R3 模塊 控制器
ABB PP815 模塊 控制器
ABB 3BSE016237R1 (AC800F模塊) 工控系統(tǒng)自動化備件
ABB PP835A 3BSE042234R2 觸摸屏
ABB IGCT 5SGY3545L4510 可控硅 5SHY系列可控硅都有貨
ABB 3BSE020508R2 DI801-eA (AC800F模塊) 工控系統(tǒng)自動化備件
ABB 3BHB003688R0101 (AC800F模塊) 工控系統(tǒng)自動化備件
ABB IGCT 5SHY4045L0004GVC736 3BHB021400R0002 可控硅 5SHY系列可控硅都有貨
ABB CS513(3BSE000435R) 模塊 (ABB S800 通訊卡)
ABB IGCT 5SHY50L5500 可控硅 5SHY系列可控硅都有貨
ABB 3BSE018109R1 SB821 (AC800F模塊) 工控系統(tǒng)自動化備件
ABB AI820,3BSE008544R1 模塊 (ABB S800 通訊卡)
ABB 3BSE018059R1 (AC800F模塊) 工控系統(tǒng)自動化備件
ABB CI810V1 模塊 (ABB S800 通訊卡)
ABB AIM0006 模塊 (ABB S800 通訊卡)
ABB IGCT 5SHX2645L0004 可控硅 5SHY系列可控硅都有貨
ABB IGCT 5SHX2645L0001 可控硅 5SHY系列可控硅都有貨
ABB 3BSE050090R65 (AC800F模塊) 工控系統(tǒng)自動化備件
ABB 3BSE022366R2 CI801-eA (AC800F模塊) 工控系統(tǒng)自動化備件
ABB IGCT 5SHY3545L0020 可控硅 5SHY系列可控硅都有貨
ABB 3BSE018172R1 SB822 (AC800F模塊) 工控系統(tǒng)自動化備件
ABB PPD113B01-10-150000 模塊 控制器
ABB IGCT 800PP846A 可控硅 5SHY系列可控硅都有貨
ABB 3BSE037760R2 TB40AeA (AC800F模塊) 工控系統(tǒng)自動化備件
ABB CI854K01 模塊 (ABB S800 通訊卡)
ABB AI815 模塊 (ABB S800 通訊卡)
ABB 3BSE008544R2 AI820-eA (AC800F模塊) 工控系統(tǒng)自動化備件
ABB 57520001-EV DSCS140 備件板 工控系統(tǒng)自動化備件
ABB 3BSE013238R1 TU837V1 (AC800F模塊) 工控系統(tǒng)自動化備件
ABB 3BSE008544R1 (AC800F模塊) 工控系統(tǒng)自動化備件
ABB PN6644424A1 模塊 控制器
ABB 3BSE013230R1 (AC800F模塊) 工控系統(tǒng)自動化備件
ABB CI858 模塊 (ABB S800 通訊卡)
ABB 3BSE022460R1 TU846 (AC800F模塊) 工控系統(tǒng)自動化備件
ABB 3BSE025349R1 (AC800F模塊) 工控系統(tǒng)自動化備件
ABB XVC768AE101 模塊 控制器
ABB 3BSE042243R1 觸摸屏 PP800面板
ABB 07KT98 GJR5253100R2260 控制器模塊PLC風電設備