国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

C語言嵌入式系統(tǒng)軟件設(shè)計架構(gòu)教學(xué)研究

2017-12-25 19:22張智慧
計算機時代 2017年12期
關(guān)鍵詞:嵌入式系統(tǒng)軟件開發(fā)C語言

摘 要: 良好的軟件設(shè)計架構(gòu)能夠提高軟件系統(tǒng)的開發(fā)質(zhì)量和維護效率。文章從軟件工程角度,將軟件設(shè)計架構(gòu)模式引入嵌入式應(yīng)用開發(fā)課程的教學(xué)實踐,結(jié)合C語言編程特點,完善軟件開發(fā)過程中的項目文件組織、程序框架設(shè)計、功能模塊劃分以及代碼重用方法等內(nèi)容,為學(xué)生利用C語言進行嵌入式系統(tǒng)開發(fā)提供參考解決方案。通過項目驅(qū)動式課堂教學(xué)內(nèi)容設(shè)計,使學(xué)生掌握軟件設(shè)計模式、分層開發(fā)邏輯架構(gòu)和模塊化程序設(shè)計方法,綜合培養(yǎng)學(xué)生分析問題、解決問題的軟件開發(fā)實踐能力。

關(guān)鍵詞: 嵌入式系統(tǒng); C語言; 設(shè)計架構(gòu); 軟件開發(fā)

中圖分類號:G424 文獻(xiàn)標(biāo)志碼:A 文章編號:1006-8228(2017)12-76-03

Research on the teaching of software design model in C language

programmed embedded system

Zhang Zhihui

(Beijing Information Technology College, Beijing 100015, China)

Abstract: Good software design architecture can improve the development quality and maintenance efficiency of software systems. Considering the software engineering technology and the characteristics of C language programming, the software design architecture model is introduced into the embedded system development course. The project file organization, program design framework, function modules and code reuse method are discussed, trying to provide a reference solution. Through the project driven classroom teaching content design, students can master the software design model, hierarchical development, logical structure and modular programming. It aims to improve students' ability to analyze and solve problems, and to develop their practical ability.

Key words: embedded system; C language; design model; software development

0 引言

嵌入式系統(tǒng)課程的重點在于培養(yǎng)學(xué)生解決實際問題的工程應(yīng)用能力。隨著嵌入式應(yīng)用不斷拓展,系統(tǒng)開發(fā)復(fù)雜度日益提高,對嵌入式系統(tǒng)應(yīng)用開發(fā)人才培養(yǎng)提出了更高要求。傳統(tǒng)的嵌入式系統(tǒng)教學(xué)主要是培養(yǎng)學(xué)生對相關(guān)軟硬件基礎(chǔ)知識的掌握和運用,知識點掌握比較分散,無法讓學(xué)生真正形成解決實際應(yīng)用問題的能力。本文將面向?qū)ο蠹夹g(shù)、分層技術(shù)應(yīng)用到嵌入式系統(tǒng)應(yīng)用開發(fā)課堂教學(xué)實踐,引導(dǎo)學(xué)生了解掌握項目文件組織、程序框架設(shè)計、功能模塊劃分的理念和方法,并結(jié)合C語言編程特點介紹具體的實現(xiàn)方案,有利于學(xué)生掌握整個嵌入式系統(tǒng)的分析及設(shè)計方法,又能提升學(xué)生解決實際問題的綜合能力。

1 嵌入式系統(tǒng)軟件設(shè)計的教學(xué)思路

在嵌入式系統(tǒng)教學(xué)內(nèi)容中貫穿軟件設(shè)計方法,能夠指導(dǎo)學(xué)生更好地完成需求分析,進行系統(tǒng)設(shè)計和功能模塊劃分,從而具備開發(fā)出可正確工作的復(fù)雜軟件的能力,為后續(xù)課程實訓(xùn)和第一崗位任職能力打下堅實的基礎(chǔ)。

1.1 強調(diào)軟件模塊劃分的重要性

嵌入式系統(tǒng)是建立在特定硬件平臺上的專用計算機系統(tǒng),一般由嵌入式微處理器、外圍功能電路和對外應(yīng)用接口組成,軟件開發(fā)主要是驅(qū)動硬件設(shè)備完成特定的業(yè)務(wù)邏輯應(yīng)用。隨著嵌入式軟件系統(tǒng)的規(guī)模和復(fù)雜度日益增長,軟件設(shè)計在嵌入式系統(tǒng)開發(fā)中發(fā)揮著越來越重要的作用,如何更好地將開發(fā)需求轉(zhuǎn)變成軟件模塊劃分,進而轉(zhuǎn)變成能夠用代碼實現(xiàn)的程序功能,成為系統(tǒng)設(shè)計面臨的主要問題。

分層設(shè)計 分層的目的是為了將復(fù)雜的問題進行合理區(qū)分、遞進簡化,從而將系統(tǒng)功能抽象成一個個具體的模塊結(jié)構(gòu),最終將應(yīng)用需求轉(zhuǎn)變?yōu)榫幊虒崿F(xiàn)。在教學(xué)過程中采用項目化的教學(xué)方法,通過讓學(xué)生完成項目的分層設(shè)計來掌握軟件功能劃分原則和方法,形成對嵌入式系統(tǒng)開發(fā)的整體理解。比如設(shè)計一個電子羅盤,可以從概念上劃分為數(shù)據(jù)采集層、處理層、顯示層等,層層遞進實現(xiàn),每層解決不同的問題,下層要能夠為上層應(yīng)用提供支撐。

模塊優(yōu)化 每層內(nèi)部按照任務(wù)分解、功能優(yōu)化、重用程度進行模塊劃分,盡量實現(xiàn)軟件功能的高內(nèi)聚、低耦合。每個軟件模塊的功能實現(xiàn)應(yīng)該方便理解和應(yīng)用,軟件模塊之間的相關(guān)性要盡可能小,這樣設(shè)計的程序便于協(xié)同開發(fā),提高開發(fā)質(zhì)量和效率。在教學(xué)過程中,要注重讓學(xué)生研究討論需求問題域與編程實現(xiàn)域之間的映射關(guān)系,理解軟件功能模塊緊湊性和正交性的重要性,增強對系統(tǒng)設(shè)計科學(xué)合理性的理解和認(rèn)識。比如,顯示器功能的設(shè)計,亮度、飽和度等調(diào)節(jié)功能彼此獨立,使得功能無論在實現(xiàn)上還是在應(yīng)用中都很便捷。

1.2 明確系統(tǒng)軟件框架設(shè)計

一個好的軟件框架不僅有利于提高軟件開發(fā)質(zhì)量和效率,而且還可以提高軟件的可維護性和代碼重用性。對于剛接觸嵌入式系統(tǒng)開發(fā)的學(xué)生來說,如何將C語言的語句、算法等知識來解決實際問題的能力還很弱,需要在學(xué)習(xí)其他內(nèi)容之前先有一個整體的框架概念,帶著問題、目標(biāo)去學(xué),才能提高學(xué)生學(xué)習(xí)的積極性、主動性。

四層邏輯架構(gòu)模型 軟件分層邏輯架構(gòu)設(shè)計的關(guān)鍵是理清層次結(jié)構(gòu)、優(yōu)化功能模塊組織,使得系統(tǒng)設(shè)計開發(fā)高效靈活、軟件功能可按需擴展,已有的成熟代碼能夠得到有效重用、迭代發(fā)展。采用面向?qū)ο笤O(shè)計思想對現(xiàn)有嵌入式系統(tǒng)開發(fā)進行去中心化重新設(shè)計,將系統(tǒng)邏輯架構(gòu)區(qū)分為應(yīng)用管理層、算法協(xié)議層、功能拓展層、硬件驅(qū)動層等四個層次,每一層內(nèi)將同類或相似技術(shù)實現(xiàn)的功能進行聚合,以減少業(yè)務(wù)應(yīng)用、模型算法和硬件操作之間的耦合性,使得應(yīng)用程序結(jié)構(gòu)變得更加清晰和靈活。在嵌入式系統(tǒng)課程中引入四層邏輯架構(gòu)模型的內(nèi)容,目的是讓學(xué)生掌握一種比較先進的程序架構(gòu)方法,做到“授之以漁”,也會使課堂教學(xué)與工程應(yīng)用結(jié)合更緊密,增強學(xué)生利用成熟的軟件開發(fā)方法分析問題、解決問題的能力。

層內(nèi)軟件功能組織 每層的軟件功能設(shè)計,除了要考慮當(dāng)前的應(yīng)用需求,還要著眼后續(xù)的重用和拓展,對所有功能進行合并整合,優(yōu)化功能模塊設(shè)計,盡量實現(xiàn)硬件無關(guān)性,使軟件功能模塊能夠支撐多個應(yīng)用邏輯和不同開發(fā)要求。應(yīng)用管理層主要包括界面交互、業(yè)務(wù)邏輯調(diào)度等功能。算法協(xié)議層主要包括模型算法、協(xié)議解析、文件管理、數(shù)據(jù)庫管理等功能,如位置轉(zhuǎn)換計算、羅盤指針方位計算等。功能拓展層主要包括器件的無關(guān)性,提供各種器件的通用性處理、接口訪問等功能,如LCD的線、圓、矩形處理,傳感器數(shù)據(jù)轉(zhuǎn)換等。硬件驅(qū)動層主要包括硬件的無關(guān)性,提供硬件的操作原語功能,如LCD的定位、寫點、寫字節(jié),傳感器數(shù)據(jù)采集等功能。在教學(xué)過程中,指導(dǎo)學(xué)生按照四層模型進行軟件功能設(shè)計和開發(fā),理解并掌握軟件設(shè)計框架的概念,正確進行編程開發(fā)。

2 項目驅(qū)動式課堂教學(xué)內(nèi)容設(shè)計

課堂教學(xué)內(nèi)容設(shè)計關(guān)鍵是把教與學(xué)結(jié)合在一起,通過實施一個完整的項目,由教師提供“設(shè)計藍(lán)圖”,采用任務(wù)驅(qū)動方式,讓學(xué)生主動參與、相互協(xié)作,將學(xué)習(xí)到的軟硬件知識系統(tǒng)地應(yīng)用到嵌入式系統(tǒng)開發(fā)實際應(yīng)用中。

內(nèi)容安排 在教學(xué)目標(biāo)上,以提高學(xué)生從事實際嵌入式系統(tǒng)開發(fā)能力為核心,突出軟件工程化管理理念,圍繞軟件設(shè)計模式、系統(tǒng)分層邏輯架構(gòu)和模塊化程序設(shè)計等內(nèi)容,融入嵌入式系統(tǒng)開發(fā)概念介紹,貫穿到整個教學(xué)內(nèi)容。在教學(xué)計劃上,根據(jù)學(xué)生軟硬件知識基礎(chǔ),有針對性地補充軟件工程相關(guān)知識,增加面向?qū)ο蠹夹g(shù)、分層技術(shù)和軟件重用技術(shù)的理解和掌握,將嵌入式系統(tǒng)開發(fā)內(nèi)容與軟件設(shè)計框架有機集合,提高課堂授課的靈活性和針對性。在教學(xué)重點上,圍繞一個涵蓋數(shù)據(jù)采集、處理、顯示等關(guān)鍵功能的嵌入式系統(tǒng)開發(fā),靈活運用任務(wù)驅(qū)動和項目教學(xué)法,充分調(diào)動學(xué)生的學(xué)習(xí)興趣、發(fā)掘其創(chuàng)造潛能,由簡單到復(fù)雜,逐步實現(xiàn)框架內(nèi)容的各項功能。

項目實施 教師充分利用自身的開發(fā)經(jīng)驗和知識優(yōu)勢,幫助學(xué)生理解軟件設(shè)計框架,建立基本的項目工程文件,按照課程計劃安排進行上機實踐、組織項目開發(fā)并撰寫項目開發(fā)報告。在項目組織管理上,雖然標(biāo)準(zhǔn)的C語言開發(fā)工具并不提供軟件框架管理,但根據(jù)本文提供的系統(tǒng)邏輯架構(gòu)設(shè)計,可以按照分層原則組織文件目錄建立自己的工程文件管理原則,提高代碼文件的組織管理和協(xié)同開發(fā)能力。主程序文件、全局變量頭文件通常放在根目錄,其他文件按照應(yīng)用管理層、算法協(xié)議層、功能拓展層、硬件驅(qū)動層分別存放在AppFunc、ModelFunc、HardExt、HardOpt文件夾,所有文件命名遵循統(tǒng)一的規(guī)范。在功能模塊開發(fā)上,指導(dǎo)學(xué)生應(yīng)少用或不用全局變量,盡量通過函數(shù)參數(shù)來傳遞數(shù)據(jù),上層功能模塊的開發(fā)可以調(diào)用下層功能模塊,下層功能模塊盡量避免交叉調(diào)用或越級調(diào)用。下面是利用角速度傳感器制作電子羅盤的項目案例,其中LCD顯示功能在各層的示例代碼如下。

應(yīng)用管理層,uint Draw_Compass( uint angle,uint pcolor);顯示當(dāng)前angle角度的電子羅盤,pcolor為顯示顏色,分別調(diào)用了算法模型層中羅盤角度函數(shù)、功能拓展層的畫線函數(shù)。

算法模型層,uint Cac_Compass(uint x, uint y, uint z);計算羅盤指針方位,x、y、z為傳感器獲取的數(shù)值,轉(zhuǎn)換成指針的角度。

功能拓展層,uint Lcd_Line(uint x1, uint y1, uint x2, uint y2, uint pcolor); //畫線,調(diào)用畫點函數(shù)。

硬件驅(qū)動層,uint Lcd_Pixel(uint x, uint y, uint pcolor); //驅(qū)動LCD顯示硬件進行畫點。

課程評價 為了增強學(xué)生對軟件設(shè)計框架概念的理解和應(yīng)用,將課程評價分為學(xué)生討論和教師評價。學(xué)生討論按照小組進行組織,每個小組3-5人,小組之間相互檢查項目進展、軟件設(shè)計、框架應(yīng)用和模塊劃分等內(nèi)容,交流開發(fā)經(jīng)驗,有利于提升學(xué)習(xí)的積極性和創(chuàng)造性。教師評價根據(jù)學(xué)生項目報告和程序文檔,分析學(xué)生對設(shè)計模式的理解和掌握情況,查看開發(fā)過程中的應(yīng)用情況,根據(jù)每個學(xué)生的特點給出針對性的指導(dǎo),提高學(xué)生對知識的綜合運用能力,考評成績按照一定權(quán)重(可按40%)納入課程考核成績。

3 結(jié)束語

本文提出的嵌入式系統(tǒng)軟件設(shè)計架構(gòu)教學(xué)方法,將軟件工程化思想、程序設(shè)計模式融入課堂教學(xué)實踐,以項目任務(wù)驅(qū)動提高學(xué)生學(xué)習(xí)的積極性和主動性,提高學(xué)生從事實際應(yīng)用系統(tǒng)開發(fā)能力,該方法實施以來取得了較好的成效,很多學(xué)生在畢業(yè)實習(xí)階段就能很快融入企業(yè)開發(fā)團隊。

未來嵌入式系統(tǒng)應(yīng)用的加速發(fā)展,對軟件開發(fā)的質(zhì)量和效率提出了更高的要求,高效開發(fā)和軟件質(zhì)量特性保證,將是嵌入式系統(tǒng)開發(fā)人才培養(yǎng)和工程實踐下一步需要重點研究和解決的問題。

參考文獻(xiàn)(References):

[1] 張智慧.面向職業(yè)技能培養(yǎng)的軟件開發(fā)課程改革探索[J].計

算機時代,2015.5:54-58

[2] 張智慧.多層模型在嵌入式軟件開發(fā)中的應(yīng)用研究[J].計算

機時代,2017.4:17-20

[3] 田澤.嵌入式系統(tǒng)開發(fā)與應(yīng)用[M].北京航空航天大學(xué)出版社,

2005.

[4] 程欣宇,張麗,王忠德.數(shù)據(jù)結(jié)構(gòu)實驗的三層模型[J].計算機教

育,2014.12:65-67

[5] 李小遐,劉惠梅.C語言程序設(shè)計能力教程[M].北京理工大學(xué)

出版社,2011.

猜你喜歡
嵌入式系統(tǒng)軟件開發(fā)C語言
基于Visual Studio Code的C語言程序設(shè)計實踐教學(xué)探索
基于C語言的計算機軟件編程
高職高專院校C語言程序設(shè)計教學(xué)改革探索
信息安全環(huán)境下的計算機軟件開發(fā)研究
基于物聯(lián)網(wǎng)項目驅(qū)動的嵌入式系統(tǒng)教學(xué)改革的研究與實踐
嵌入式系統(tǒng)課程“中斷、異常與事件”教學(xué)實踐及啟示
面向?qū)嵺`創(chuàng)新人才培養(yǎng)的嵌入式系統(tǒng)教學(xué)研究
核電廠定期試驗管理軟件開發(fā)
FPGA軟件開發(fā)過程中編碼規(guī)范的作用
論子函數(shù)在C語言數(shù)據(jù)格式輸出中的應(yīng)用