版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
軟件設(shè)計(jì)畢業(yè)論文15篇軟件設(shè)計(jì)畢業(yè)論文
摘要:系統(tǒng)工程方法在計(jì)算機(jī)軟件設(shè)計(jì)方面應(yīng)用較廣,同時(shí)起著重要作用。結(jié)合系統(tǒng)工程方法的特點(diǎn),在計(jì)算機(jī)軟件設(shè)計(jì)階段可規(guī)范其流程,促使計(jì)算機(jī)軟件設(shè)計(jì)進(jìn)程加快,同時(shí)提高開發(fā)人員的工作效率,為軟件系統(tǒng)研發(fā)速度的提高打下基礎(chǔ)。
關(guān)鍵詞
軟件設(shè)計(jì)畢業(yè)軟件論文軟件
軟件設(shè)計(jì)畢業(yè)論文:面向服務(wù)架構(gòu)的ERP軟件設(shè)計(jì)新思路
摘要:傳統(tǒng)構(gòu)架下的ERP軟件,在實(shí)際應(yīng)用中出現(xiàn)了許多問題。文章介紹了一種新的軟件架構(gòu)方法――面向服務(wù)架構(gòu)(SOA)的理念及其特點(diǎn),并對面向服務(wù)架構(gòu)的ERP和面向?qū)ο蠹軜?gòu)的ERP分別在體系結(jié)構(gòu)和開發(fā)方法上作比較,最后選取SAP公司的NetWeaver和ESA產(chǎn)品設(shè)計(jì)理念作為案例,進(jìn)一步闡述了SOA思想在ERP設(shè)計(jì)中的應(yīng)用特點(diǎn)和優(yōu)勢。
關(guān)鍵詞:面向服務(wù)架構(gòu)(SOA);面向?qū)ο蠹軜?gòu)(OOA);軟件設(shè)計(jì)
0引言
ERP由最初的財(cái)務(wù)軟件逐漸發(fā)展起來,內(nèi)容越來越豐富,功能也越來越齊全[1]。到目前為止,ERP的產(chǎn)品模式最常見的有兩種:通用型ERP和專業(yè)型ERP。通用型ERP,顧名思義,是適用于多種行業(yè)的套裝軟件。通過對其進(jìn)行二次開發(fā)、系統(tǒng)配置,達(dá)到滿足不同行業(yè)的管理信息化需求。它的拓展性好、通用性高,成為目前的主流。專業(yè)型ERP,也稱之為行業(yè)型軟件,是專門針對某一特定(或相近)行業(yè)設(shè)計(jì)和定制的,便于滿足目標(biāo)行業(yè)的個(gè)性化管理需求。
但這兩種ERP產(chǎn)品都存在各自的缺陷,從而導(dǎo)致了應(yīng)用實(shí)施過程中出現(xiàn)了很多問題,最終以失敗告終的案例也不在少數(shù)。如通用型ERP,它的優(yōu)點(diǎn)也正是它缺點(diǎn)所在。通用代表了缺乏個(gè)性,流程固化,不能針對不同企業(yè)做出有效的變化,只能通過企業(yè)進(jìn)行業(yè)務(wù)流程再造,來滿足ERP產(chǎn)品的需求,忽視了企業(yè)的個(gè)性化需求;專業(yè)型ERP的最大缺陷是它的開發(fā)成本高,使企業(yè)望而卻步,同時(shí)適用的企業(yè)并不多,所以這種專用型ERP,企業(yè)很少主動(dòng)開發(fā),往往是在目標(biāo)企業(yè)提出某種需求的前提之下,進(jìn)行定制開發(fā),需要很高的成本。
傳統(tǒng)ERP產(chǎn)品存在的這些缺陷,大部分原因是其架構(gòu)理念的落后,開發(fā)方法的局限?,F(xiàn)在,面向服務(wù)架構(gòu)(SOA,ServiceOrientedArchitecture)這種新的架構(gòu)理念被引入到ERP軟件的設(shè)計(jì)與開發(fā)中,為傳統(tǒng)ERP產(chǎn)品走出困境帶來了希望,為ERP領(lǐng)域的又一次革命性的飛躍奠定了基礎(chǔ)。
1面向服務(wù)架構(gòu)SOA
早在1996年,GartnerGroup就已經(jīng)明確地提出了SOA的理念,但目前尚未有一個(gè)統(tǒng)一的、業(yè)界廣泛接受的定義[2]。IBM的高級軟件工程師李珉先生說過,不同行業(yè)的人可以從不同的視角來理解SOA,從程序員的角度,SOA是一種全新的開發(fā)技術(shù),新的組件模型,比如說WebService;從架構(gòu)設(shè)計(jì)師的角度,SOA就是一種新的設(shè)計(jì)模式,方法學(xué);從業(yè)務(wù)分析人員的角度,SOA就是基于標(biāo)準(zhǔn)的業(yè)務(wù)應(yīng)用服務(wù)。
一般認(rèn)為:SOA――面向服務(wù)架構(gòu)是一個(gè)組件模型,它將應(yīng)用程序的不同功能單元――服務(wù),通過服務(wù)間定義良好的接口和契約聯(lián)系起來。接口采用中立的方式定義,獨(dú)立于具體實(shí)現(xiàn)服務(wù)的硬件平臺(tái)、操作系統(tǒng)和編程語言,使得構(gòu)建在這樣系統(tǒng)中的服務(wù)可以使用統(tǒng)一和標(biāo)準(zhǔn)的方式進(jìn)行通信。其中服務(wù),是指僅基于兩個(gè)組件接口之間的契約,由一個(gè)組件提供其行為方法給另一個(gè)使用。
SOA中一般都包含三個(gè)角色:服務(wù)的提供者、服務(wù)的請求者、服務(wù)代理[3]。三個(gè)角色是根據(jù)對服務(wù)提出不同的需求和行使的不同功能來劃分的。它們的關(guān)系可以簡單理解為:服務(wù)的提供者將它提供服務(wù)的具體描述發(fā)布在服務(wù)代理,以方便服務(wù)的請求者查詢;服務(wù)的請求者通過對服務(wù)代理搜索,查找到需要的服務(wù)及其提供者的地址;最后是服務(wù)的提供者與服務(wù)的請求者進(jìn)行直接的綁定,完成服務(wù)(見圖1)。舉個(gè)最簡單的例子,我們?nèi)粢诰W(wǎng)上下載一首歌,先可以通過搜索引擎GOOGLE等,搜索可下載這首歌的網(wǎng)站,獲知這首歌的免費(fèi)下載的地址,最后我們直接鏈接這個(gè)地址下載歌。在這個(gè)過程,網(wǎng)站即相當(dāng)于一個(gè)服務(wù)代理,我們是服務(wù)的請求者,而最后那個(gè)下載地址背后的服務(wù)器為服務(wù)的提供者。
圖1SOA三者關(guān)系圖
SOA主要特征是將應(yīng)用程序功能包裝成服務(wù),服務(wù)間彼此獨(dú)立,可單獨(dú)作為組件使用。它具備松散耦合,提供粗粒度的服務(wù)和標(biāo)準(zhǔn)化的接口等。SOA旨在提供一個(gè)通用的,可互操作的和有彈性的行業(yè)標(biāo)準(zhǔn)架構(gòu),可以在軟件基礎(chǔ)架構(gòu)之上建立一系列可重復(fù)利用的服務(wù),實(shí)現(xiàn)企業(yè)適應(yīng)業(yè)務(wù)流程變化的需求。
2基于SOA的ERP與傳統(tǒng)架構(gòu)下的ERP的比較分析
2.1ERP傳統(tǒng)體系結(jié)構(gòu)和基于SOA的ERP體系結(jié)構(gòu)的區(qū)別
傳統(tǒng)的ERP軟件在其體系結(jié)構(gòu)上可以分為三層:表現(xiàn)層、業(yè)務(wù)邏輯層和數(shù)據(jù)庫[4]。在這種體系結(jié)構(gòu)下,其客戶端訪問存在很多的問題。如表現(xiàn)層在訪問業(yè)務(wù)邏輯層的各個(gè)業(yè)務(wù)對象時(shí),一個(gè)客戶端可能同時(shí)訪問多個(gè)業(yè)務(wù)對象,一個(gè)業(yè)務(wù)對象也可能同時(shí)被多個(gè)不同的客戶端訪問。因此它們之間關(guān)系雜亂、復(fù)雜,造成層與層之間的耦合性強(qiáng);表現(xiàn)層與業(yè)務(wù)邏輯層相互依賴,訪問接口不是公開標(biāo)準(zhǔn)的,而是依賴于特定的接口函數(shù),一旦其中的某一層發(fā)生改變,其接口函數(shù)也要作相應(yīng)的改變,導(dǎo)致系統(tǒng)地?cái)U(kuò)展性和維護(hù)性差(見圖2)。
圖2傳統(tǒng)ERP體系結(jié)構(gòu)
將SOA思想引入ERP軟件的設(shè)計(jì)開發(fā)之后,其傳統(tǒng)的三層體系結(jié)構(gòu),將會(huì)在概念上演變?yōu)樗膶咏Y(jié)構(gòu),包括表現(xiàn)層、服務(wù)層、業(yè)務(wù)邏輯層和數(shù)據(jù)庫。其中,服務(wù)層是抽象層,是獨(dú)立的、由可重用的、基于標(biāo)準(zhǔn)的服務(wù)組成。每一個(gè)具體的服務(wù)包含了接口部分和實(shí)現(xiàn)部分,其接口部分定義了服務(wù)使用者和服務(wù)提供者進(jìn)行程序訪問的契約;實(shí)現(xiàn)部分包含了服務(wù)作用和商業(yè)邏輯等信息(見圖3)。
由圖3與圖2比較可以清楚地看到兩者的區(qū)別,SOA架構(gòu)的四層體系結(jié)構(gòu),客戶端并不像傳統(tǒng)的體系結(jié)構(gòu)直接調(diào)用業(yè)務(wù)對象實(shí)現(xiàn)最終目的,而是通過調(diào)用一個(gè)獨(dú)立的服務(wù),服務(wù)再調(diào)用相關(guān)的業(yè)務(wù)對象去實(shí)現(xiàn)最終目的。由于它調(diào)用服務(wù)的接口包含在服務(wù)層內(nèi),所以,各個(gè)層之間都是獨(dú)立的、松耦合的,沒有很強(qiáng)的依賴性。任何一層發(fā)生變化,只要接口不變,不會(huì)影響服務(wù)的實(shí)現(xiàn),有利于系統(tǒng)地?cái)U(kuò)展和維護(hù)。
因此,設(shè)想以SOA思想實(shí)現(xiàn)的ERP軟件,具備很強(qiáng)的彈性,可以根據(jù)不用企業(yè)的不同需求進(jìn)行調(diào)整,符合企業(yè)的個(gè)性化需求,具體會(huì)在后面的實(shí)例中說明。
圖3SOA四層體系結(jié)構(gòu)
2.2采用SOA和OOA進(jìn)行ERP軟件設(shè)計(jì)開發(fā)的區(qū)別
ERP軟件發(fā)展至今,它的開發(fā)方法由最初的面向過程(POA)的開發(fā)方法,發(fā)展到面向?qū)ο螅∣OA),至現(xiàn)在提出的面向服務(wù)(SOA)的開發(fā)方法[5]。面向?qū)ο蟮拈_發(fā)方法是目前ERP軟件開發(fā)中的主流技術(shù),但它本身存在很多的缺陷。它對編程語言有很強(qiáng)的依賴性,封裝粒度小,耦合度高,未形成標(biāo)準(zhǔn)的模型和概念,從而難以形成標(biāo)準(zhǔn)和開發(fā)規(guī)范,不能達(dá)到軟件重用的可移植性和互操作性,產(chǎn)生了大量的“對象孤島”。
相對于傳統(tǒng)的面向?qū)ο篌w系結(jié)構(gòu)的緊耦合,SOA是一個(gè)粗粒度、松耦合的面向服務(wù)架構(gòu),其服務(wù)之間通過公開、精確定義的接口進(jìn)行通訊,不涉及底層具體編程接口和通訊模型,服務(wù)與服務(wù)之間是相互獨(dú)立的,且服務(wù)可以被重復(fù)調(diào)用,也可以被任何潛在需求者調(diào)用。
以下是某公司針對訂購產(chǎn)品這一實(shí)務(wù)做出的一系列數(shù)據(jù)處理的例子,分別從面向?qū)ο蠹軜?gòu)與面相服務(wù)架構(gòu)這兩種不同架構(gòu)理念對軟件設(shè)計(jì)開發(fā)的不同要求做出的比較(見圖4)。
面向?qū)ο笤O(shè)計(jì)中,公司在生產(chǎn)和銷售產(chǎn)品的時(shí)候,是根據(jù)收到的采購訂單進(jìn)行的。采購訂單有很多屬性,但它的訂單編號(hào)是唯一的。根據(jù)其訂單編號(hào),編制公司的銷售訂單。根據(jù)其銷售訂單中產(chǎn)品清單編號(hào)主碼,關(guān)系到產(chǎn)品清單。最后根據(jù)其具體產(chǎn)品編號(hào)關(guān)系到產(chǎn)品目錄,一層一層的處理數(shù)據(jù)。以上過程,就是軟件面向?qū)ο蠹軜?gòu)的最基本思路,對象之間繼承關(guān)系的依賴性很強(qiáng),層層相扣。因此,對象的分析與設(shè)計(jì)及編程實(shí)現(xiàn),要求很高,也很復(fù)雜。
圖4面向?qū)ο蠹軜?gòu)與面向服務(wù)架構(gòu)
現(xiàn)采用面向服務(wù)架構(gòu)思想對軟件進(jìn)行開發(fā)??梢园阉邢嚓P(guān)的主體分為三個(gè)層次,從基礎(chǔ)的對象層,到由不同對象組成的組件層,至最終的服務(wù)層。關(guān)于這項(xiàng)訂購實(shí)務(wù),公司要處理的有四個(gè)基本對象,采購方信息處理,采購訂單,產(chǎn)品清單,與產(chǎn)品目錄;組件層包括采購方信息和單據(jù)兩個(gè)實(shí)體;而它們都包含在訂購產(chǎn)品這項(xiàng)服務(wù)中。那么公司在開發(fā)這項(xiàng)訂購產(chǎn)品服務(wù)的時(shí)候,可以把它分為若干部分,從對象這個(gè)最小粒度開始,再組合成不同的組件,到最終完成一項(xiàng)服務(wù)。這樣對開發(fā)人員技術(shù)的要求會(huì)低一點(diǎn),且不同部門可同時(shí)進(jìn)行軟件開發(fā)。
這里需要說明的是,SOA并不是OOA的完全替代,如開發(fā)人員對單個(gè)對象,或組件乃至整個(gè)服務(wù)采用面向?qū)ο蟮募軜?gòu)設(shè)計(jì),但在整體上是面向服務(wù)的,主要原因是接口的設(shè)計(jì)。
2.3SAP的NetWeaver平臺(tái)和ESA思想
目前,SOA的思想被越來越多的用于ERP產(chǎn)品的開發(fā)上,ERP產(chǎn)品的巨頭SAP也不例外。企業(yè)服務(wù)架構(gòu)ESA就是SAP基于SOA的思想提出的新產(chǎn)品的模式。提到ESA就不得不提到它的另一個(gè)產(chǎn)品NetWeaver,因?yàn)槠髽I(yè)服務(wù)架構(gòu)是建立在這個(gè)技術(shù)平臺(tái)之上的。
NetWeaver是SAP于04年正式推出的一個(gè)產(chǎn)品,它是一個(gè)底層技術(shù)平臺(tái),SAP的很多新產(chǎn)品的應(yīng)用都是跑在這個(gè)平臺(tái)上,相當(dāng)于一個(gè)中間件產(chǎn)品。它主要提供了以下四方面的功能,人員集成,信息集成,流程集成和應(yīng)用平臺(tái)。它是由交換架構(gòu)XI,主數(shù)據(jù)管理MDM,解決管理SolutionManager等組件構(gòu)成。它是目前支持所有SAP應(yīng)用的基礎(chǔ)產(chǎn)品,是企業(yè)應(yīng)用軟件的開發(fā)平臺(tái)、同時(shí)又為企業(yè)搭建一個(gè)基于NetWeaver的面向服務(wù)的IT架構(gòu)。
SAP的企業(yè)服務(wù)架構(gòu)并不是簡單的技術(shù)層面的SOA,而是面向企業(yè)層面的,它將原有的ERP、SCM、PLM等模塊在NetWeaver這個(gè)技術(shù)平臺(tái)上集成,組合成業(yè)務(wù)流程平臺(tái)(見圖5)。企業(yè)在這一個(gè)平臺(tái)上可以共享很多組件,不同的企業(yè)也可以根據(jù)不同的需求,增加或選用不同的企業(yè)服務(wù)庫,或自主開發(fā)部分功能,實(shí)現(xiàn)企業(yè)的個(gè)性化。
圖5SAPNetWeaver平臺(tái)業(yè)務(wù)組件
SAP的一位主管曾作過這樣一個(gè)比喻,將軟件的企業(yè)服務(wù)架構(gòu)化比作電路的集成化。集成塊(IC)本身是功能模塊化設(shè)計(jì)的,但它是更復(fù)雜電路的基本組件,設(shè)計(jì)一個(gè)個(gè)的集成塊,把他們組成電子設(shè)備,而不再是從電阻、電容、電感、晶體管等基本元件來組建電路。以后軟件業(yè)業(yè)一樣,要設(shè)計(jì)這些“集成塊”和利用這些“集成塊”,這些“集成塊”就是企業(yè)服務(wù)(EnterpriseService)。這也是面向服務(wù)架構(gòu)思想在ERP軟件開發(fā)和產(chǎn)品發(fā)展中應(yīng)用的最佳體現(xiàn)。
3總結(jié)
面向服務(wù)架構(gòu)(SOA)得到了各大軟件公司的重視,如IBM、Oracle、SAP等,說明其理念是先進(jìn)的,相對于傳統(tǒng)的架構(gòu)模式存在很大優(yōu)勢。本文也具體闡述了其存在的優(yōu)勢,但大部分也只存在于理論,因每個(gè)公司對SOA的理解各不相同,基于此理論設(shè)計(jì)開發(fā)出的產(chǎn)品也是各有特點(diǎn),沒有得到一致的公認(rèn)。
本文分析了SAP基于SOA思想提出的ESA這個(gè)思想,其最終產(chǎn)品仍處于開發(fā)階段,只能對其主導(dǎo)思想略為闡述。現(xiàn)在是SOA亂戰(zhàn)時(shí)代,但可以預(yù)見,隨著SOA思想的發(fā)展和完善,以及在軟件業(yè)的廣泛應(yīng)用,它的優(yōu)勢會(huì)逐步顯現(xiàn)出來,為傳統(tǒng)的ERP軟件帶來革命性的轉(zhuǎn)變。
軟件設(shè)計(jì)畢業(yè)論文:如何利用嵌入式軟件設(shè)計(jì)SoC
美國Globalpress公司舉辦的2007電子高峰會(huì)議上,舉辦了一場SoC(系統(tǒng)芯片)的專題討論會(huì):設(shè)計(jì)師如何利用嵌入式軟件作為SoC器件設(shè)計(jì)的關(guān)鍵。會(huì)議上的專家各抒己見。
完整方案比單個(gè)硬件重要
主持人:Gartner公司的高級分析師JohnBarber
軟件在嵌入式產(chǎn)品中的份量越來越重。自2000年來,價(jià)值觀念發(fā)生了巨大的變化,2000年以前,主張是器件,即讓我們的器件與競爭對手的性能、品質(zhì)進(jìn)行對比具有優(yōu)勢,這就是那時(shí)形成鮮明特色的關(guān)鍵。現(xiàn)今,制造商和客戶需要的是解決方案,而不僅僅是器件。我的價(jià)值主張,我的鮮明特色,必須是完整的解決方案,包括與硬件一塊推出的可以立即投入大批量制造的軟件棧。
硬件與軟件將設(shè)法整合到單個(gè)流程
MentorGraphics系統(tǒng)級設(shè)計(jì)總監(jiān)BillChown
我們過去所從事的是硬件設(shè)計(jì),現(xiàn)在則還需要輔以軟件應(yīng)用方面的大量工作。但這兩者的“婚姻”卻并不幸福。在兩者之間,我們需要填補(bǔ)在基礎(chǔ)架構(gòu)方面的鴻溝,如今的硬件小是從頭設(shè)計(jì)的,需要進(jìn)行基礎(chǔ)架構(gòu)的復(fù)用。需要復(fù)用的包括處理單元、內(nèi)存、接口器件……許多基礎(chǔ)設(shè)計(jì)事先已經(jīng)被人們所了解、得到了分析和預(yù)先進(jìn)行了配置。我們需要把它插入到系統(tǒng)中,提供針對硬件的軟什能力,以及針對具體應(yīng)用的軟件能力。在用戶對硬件和應(yīng)用軟件的使用目標(biāo)的這兩個(gè)空間之間,我們必,壩確保能讓他們尋求到與他們的具體需求相應(yīng)的問題所在,但是最大限度減小他們仡存兩個(gè)空間之間的工作量。
EDA代表電子沒計(jì)自動(dòng)化,但我們有時(shí)候會(huì)迷失,而忘卻了“自動(dòng)化”一詞正是我們在這個(gè)空間中應(yīng)該完成的工作。我們應(yīng)該回顧在這個(gè)流程中應(yīng)該實(shí)現(xiàn)自動(dòng)化的對象是什么?那并不僅僅意味著工具的改進(jìn),而且意味著我們能通過標(biāo)準(zhǔn)化來簡化問題。
總結(jié)一下,我們能讓人們?nèi)プ龅氖虑椋菑囊粋€(gè)任系統(tǒng)空間中的概念設(shè)計(jì),一直到完成整個(gè)流程??钤O(shè)計(jì)上的革新是關(guān)鍵,我們需要靈活多樣;隨著設(shè)計(jì)的進(jìn)行,我們需要嘗試不同的解決方案。如果我不知道我往做什么,就無法去嘗試替代方案。所以良好的分析將告訴我,我所做的工作將會(huì)把我?guī)蚝畏健_@些不同的任務(wù)中的每一項(xiàng),都對應(yīng)著每一個(gè)團(tuán)隊(duì)所從事的領(lǐng)域。因此,這是一個(gè)復(fù)雜的世界,但我們將設(shè)法將其整合到一起。在實(shí)現(xiàn)整合的過程中,我們應(yīng)該能加速、改動(dòng),并將來自于不同領(lǐng)域的軟件與硬件、系統(tǒng)與驗(yàn)證集成到單個(gè)流程中。
軟件的關(guān)鍵作用是保證批量
MIPSTechnologies公司市場行銷副總裁JackBrowne
在SoC設(shè)計(jì)時(shí),我們所面臨的挑戰(zhàn)是多方面的。首先我們希望能向市場上推出種類多樣的產(chǎn)品。以MIPS公司為例,有3種不同的微架構(gòu)系列,10種不同的處理器內(nèi)核。我們必須具有某種能讓我們能投入制造的業(yè)務(wù)模式,因?yàn)楸竟镜臉I(yè)務(wù)模式是基于IP(知識(shí)產(chǎn)權(quán))使用費(fèi)的,我們的年收入的一半來自于授權(quán)和版權(quán)使用費(fèi)??蛻舻漠a(chǎn)品要達(dá)到制造批量,交貨則需要3-4年;他們拿到所設(shè)計(jì)出的芯片,要2年,然后他們再讓OEM來設(shè)計(jì)出系統(tǒng),而這又要花上2年。所以,該供應(yīng)鏈有一個(gè)問題:如果我的收入嚴(yán)格取決于制造批量,你應(yīng)該如何來支付這些開發(fā)的費(fèi)用?費(fèi)用的支付要延后4年,財(cái)經(jīng)界是不能容忍戰(zhàn)略性項(xiàng)目上的虧損的,你必須展示出業(yè)務(wù)的良好性。
另外一個(gè)挑戰(zhàn)是,你希望進(jìn)入不同的、類型各異的市場。其中每個(gè)市場的成功的臨界數(shù)量(客戶數(shù)量)是不同的。同時(shí)你還必須支持不同的OS(操作系統(tǒng))。你必須有解決所有這些問題的方案。我們的做法是,承認(rèn)人們有一個(gè)平臺(tái)。軟件,無論是Linux還是其他的實(shí)時(shí)操作系統(tǒng),一直到應(yīng)用層次。我們所追求的關(guān)鍵一點(diǎn),是使用硬件抽象層。從根本上來說,如果我有兩家不同的客戶,他們決定購買不同的套裝,或者甚至不同的USB控制器,則通過硬件抽象層,如你的PC中的BIOS,我可以實(shí)現(xiàn)不同的偏好,而不用移植操作系統(tǒng)。
你去考察供應(yīng)鏈上的不同玩家的商業(yè)模式的話,就會(huì)發(fā)現(xiàn),將操作系統(tǒng)移植到另一個(gè)硬件平臺(tái)上的工作并不能提供多少余地。如果你所選擇的應(yīng)用不對路的化,則很難實(shí)現(xiàn)足夠的產(chǎn)量。如果你考察如今的標(biāo)準(zhǔn)數(shù)字電視的話,就會(huì)發(fā)現(xiàn)其中有些采用了300萬行的軟件。而你將看到2年后的HDTV將采用500萬行的軟件,而且其中有16個(gè)處理器,用于處理不同的任務(wù)。
所以軟件的關(guān)鍵作用就是保證批量。如何找到一個(gè)合理的財(cái)經(jīng)運(yùn)作模式,是EDA、IP公司、半導(dǎo)體公司、軟件公司共同努力解決的挑戰(zhàn)。
多處理器的軟件設(shè)計(jì)法
Tensilica公司市場行銷副總裁SteveRoddy
軟件的重要性到底有多高?有人認(rèn)為市場規(guī)模尚小,有些人認(rèn)為它很重要,另一些人則主張我們處在一個(gè)臨界階段,許多軟件都實(shí)現(xiàn)了移植。
3種現(xiàn)點(diǎn)也許都是正確的,具體取決于其市場。但我想退一步思考一下處理器也許倒也無妨。一個(gè)有趣的問題是,如今和未來的應(yīng)用應(yīng)該需要多少個(gè)處理器?這里借用ITRS(國際半導(dǎo)體技術(shù)發(fā)展路線圖),來展示在每個(gè)工藝節(jié)點(diǎn)對應(yīng)著的、每個(gè)SoC上平均使用的處理器的數(shù)量(圖2)。當(dāng)前,ITRS宣稱每個(gè)SoC上平均有32個(gè)可編程器件。我們知道,有些可能數(shù)量會(huì)多些,有些則少些。Tensilica與Cisco合作,推出了基于130nm節(jié)點(diǎn)的、采用192個(gè)處理器的設(shè)計(jì)。所以處理器的數(shù)量會(huì)出現(xiàn)迅速增長。而軟件正是在此之上運(yùn)行的。
是的,軟件的復(fù)雜程度和架構(gòu)的復(fù)雜程度都正在增加。即便處理器的數(shù)量在增長,它們并不全都一模一樣。這些器件上將出現(xiàn)多樣化的處理器。
關(guān)于嵌入式的設(shè)計(jì),很明顯的一點(diǎn)是,軟件的形式必然迥異于普通的通用型軟件。事實(shí)上,嵌入式世界迥異于與通用型軟件世界。在通用型應(yīng)用的世界中,如Intel和AMD,在處理器上運(yùn)行的軟件在器件開始推出時(shí)尚不為人所知。因此一般采用通用型的計(jì)算,對于通用型的計(jì)算,人們采用通用的SMPDieBucket架構(gòu)。在嵌入式世界中,如果你設(shè)計(jì)用于路由器的芯片的話,它就是供路由器專用的。優(yōu)點(diǎn)就在于你知道器件的用途,所以其設(shè)計(jì)會(huì)針對具體應(yīng)用進(jìn)行優(yōu)化,讓人們能利用專用的處理器,如可重構(gòu)的和可擴(kuò)展的處理器,以節(jié)省面積、成本和功耗。因此兩者的設(shè)計(jì)之道大相徑庭。擁有許多可重編程的處理器,并不意味著你有一個(gè)全新的世界。系統(tǒng)架構(gòu)和硬件架構(gòu)研發(fā)者努力解決這個(gè)問題已經(jīng)有幾十年了。他們將其稱為SoC,現(xiàn)在人們以處理器為單位進(jìn)行設(shè)計(jì),而不是硬件模塊,他們在系統(tǒng)中引入了許多軟件的東西。但這并不意味著在設(shè)計(jì)這些東西的方式上會(huì)遇到什么危機(jī)。
設(shè)計(jì)這些系統(tǒng)的風(fēng)格,仍然具有一個(gè)SoC只有一個(gè)處理器的年代的SoC設(shè)計(jì)、架構(gòu)所具備的那種多樣性。你可以讓處理器間具有一個(gè)看起來非常傳統(tǒng)的聯(lián)系,采用SMP通用型架構(gòu),你可以讓處理器之間根據(jù)具體應(yīng)用來建立互動(dòng)關(guān)系,你可以在處理器間建立硬件風(fēng)格的數(shù)據(jù)流。事實(shí)上,某些處理器甚至根本都不清楚芯片上有其他處理器的存在。這些東西的實(shí)現(xiàn)有多種多樣的途徑,成功的關(guān)鍵是功能劃分,人們可以在功能模塊中放入標(biāo)準(zhǔn)、API,事實(shí)上,在這些系統(tǒng)上運(yùn)行的軟件,可以造成復(fù)雜性極大增長,而我們在實(shí)現(xiàn)上仍然感受不到危機(jī)的存在,通過功能劃分,經(jīng)過優(yōu)化的處理器、經(jīng)過優(yōu)化的API將通用型的程序與軟件的所有復(fù)雜性隔離開來。
設(shè)計(jì)者完全可以利用直截了當(dāng)?shù)脑O(shè)計(jì)方法來掌握如此復(fù)雜的,設(shè)計(jì)數(shù)百萬行程序的軟件工作。
軟件發(fā)揮至關(guān)重要的作用
Wipro公司半導(dǎo)體/消費(fèi)事業(yè)單位副總裁SibyAbraham
今天,推動(dòng)半導(dǎo)體業(yè)發(fā)展的仍然是摩爾定律。對我來說,在設(shè)計(jì)中如何放入更多的邏輯、在一定的芯片面積上能放入多少個(gè)晶體管這一問題所帶來的痛苦和挑戰(zhàn)一這是技術(shù)經(jīng)理和工程師們關(guān)心的問題,倒還比不上呈指數(shù)化增長的IC設(shè)計(jì)成本。源程序的復(fù)雜性的日益增長,而成本的上漲幅度超過了硬件的。
如今,邏輯電路的80%都被復(fù)用。這意味著SoC上只有20%的邏輯是用來體現(xiàn)其不同之處的。這也就是利用軟件來實(shí)現(xiàn)SoC鮮明特色的地方。我們所看到的趨勢是,根據(jù)我們過去4年所從事的項(xiàng)目,我們在軟件和半導(dǎo)體業(yè)摸爬滾打了多年,SoC的未來在于多核架構(gòu)方面的改進(jìn),而這正是軟件發(fā)揮其效用的地方。
如今,我們的軟件還不能有效而自然地利用好多架構(gòu)帶來的優(yōu)勢。挑戰(zhàn)在于,軟件工程師如何能利用眾多核架構(gòu)帶來的優(yōu)點(diǎn)。我們已經(jīng)看到了在SoC中對軟件的多方面的應(yīng)用。軟件的挑戰(zhàn),可以認(rèn)為與硬件工程師們所面臨的挑戰(zhàn)是一樣的。
我們今天所看到的更重要的一點(diǎn)是,現(xiàn)在需要那些不僅僅把自己劃入硬件工程師或軟件工程師等類別的工程師們,他們了解更多的專業(yè),從而能利用眾多領(lǐng)域的知識(shí)。我們看到一個(gè)大挑戰(zhàn),有的客戶要求在產(chǎn)品供貨時(shí)就能提供軟件。
我們所看到的技術(shù)上的挑戰(zhàn),價(jià)格、性能、功耗,而如今軟件團(tuán)隊(duì)也將承擔(dān)相應(yīng)的責(zé)任。如果沒有可調(diào)試性,硬件團(tuán)隊(duì)將困難重重。
軟件設(shè)計(jì)畢業(yè)論文:虛擬心電監(jiān)護(hù)系統(tǒng)軟件設(shè)計(jì)
摘要:在LabVIEW圖形化的編程環(huán)境下,利用MIT-BIH生理信號(hào)數(shù)據(jù)庫和LabVIEW的各種控件,實(shí)現(xiàn)對心電信號(hào)的采集讀取、濾波、保存和回放。通過改進(jìn)普通閾值法,利用“雙閾值+校正閾值”的方法實(shí)現(xiàn)自動(dòng)實(shí)時(shí)計(jì)算心率,對異常心電給予報(bào)警提示。同時(shí),本系統(tǒng)設(shè)置了眾多交互按鈕,使得此心電監(jiān)護(hù)系統(tǒng)功能多樣、人機(jī)界面簡潔友好、操作方便。
關(guān)鍵詞:心電信號(hào);虛擬儀器;虛擬心電監(jiān)護(hù)儀;LabVIEW
前言
當(dāng)今心臟病已成為威脅人類健康最嚴(yán)重的疾病之一,因此需要一種能夠連續(xù)記錄或者智能記錄并分析心臟活動(dòng)的心電監(jiān)護(hù)系統(tǒng),對患者進(jìn)行實(shí)時(shí)監(jiān)護(hù)。至今心電監(jiān)護(hù)技術(shù)經(jīng)過40年的臨床實(shí)踐和技術(shù)發(fā)展,其監(jiān)護(hù)內(nèi)容和儀器技術(shù)有了相當(dāng)?shù)陌l(fā)展。目前國內(nèi)外心電監(jiān)護(hù)的發(fā)展呈現(xiàn)出模塊化設(shè)計(jì)、長時(shí)數(shù)據(jù)保存、低功耗小型化、網(wǎng)絡(luò)信息化趨勢。理論和技術(shù)的不斷發(fā)展也為心電監(jiān)護(hù)的進(jìn)一步研究創(chuàng)造了條件。
LabVIEW是一種基于圖形編程語言-G語言的可視化開發(fā)平臺(tái),多被應(yīng)用于儀器控制、數(shù)據(jù)采集、數(shù)據(jù)分析等領(lǐng)域。鑒于實(shí)際心電監(jiān)護(hù)儀難以普及和虛擬儀器的強(qiáng)大優(yōu)勢,我們采用LabVIEW的開發(fā)環(huán)境、設(shè)計(jì)了虛擬心電監(jiān)護(hù)儀系統(tǒng),實(shí)現(xiàn)了對心電信號(hào)進(jìn)行采集讀取、濾波、保存和回放,自動(dòng)計(jì)算心率并對異常心電給予報(bào)警。此心電監(jiān)護(hù)儀可以實(shí)現(xiàn)長時(shí)間的數(shù)據(jù)保存,而且操作界面簡潔友好,便于掌握。
心電監(jiān)護(hù)系統(tǒng)
此心電監(jiān)護(hù)系統(tǒng)采用模塊化設(shè)計(jì),包括讀取模塊、濾波模塊、保存和回放模塊、心率計(jì)算和異常報(bào)警模塊,各模塊間的關(guān)系如圖1所示。我們采用的數(shù)據(jù)取自心電數(shù)據(jù)庫、不需濾波,因此略去濾波模塊;其中“雙閾值+校正閾值”的設(shè)計(jì)方法包含在心率計(jì)算與異常報(bào)警模塊中,引入校正閾值的目的是為了“放大”心電的某些波段,針對性的檢測某些心臟疾病。
系統(tǒng)子模塊的實(shí)現(xiàn)
讀取模塊
獲取心電信號(hào)有三種主要方式:數(shù)據(jù)采集卡現(xiàn)場采集:軟件仿真心電信號(hào);從數(shù)據(jù)庫中讀取。鑒于開發(fā)成本和真實(shí)性,我們采用最后一種方法。
我們采用著名的MIT-BIH數(shù)據(jù)庫,其心電數(shù)據(jù)由.atr.dat.hea三種文件描述。我們采用LabVIEW腳本接口控件MATLABScriptNode,利用讀取心電數(shù)據(jù)的MatLab程序rddata.m,讀取心電信號(hào),輸出心電波形。
濾波模塊
心電信號(hào)總是存在各種干擾,如工頻干擾、基線飄移、肌電干擾等,噪聲嚴(yán)重時(shí)可完全淹沒ECG(心電)信
號(hào),因此必須消除噪聲,對心電信號(hào)進(jìn)行濾波處理。
由于本設(shè)計(jì)采用的心電數(shù)據(jù)基本不需濾波處理,故這里的濾波是為校正閾值而設(shè)計(jì)的特殊處理模塊。我們選用的是平滑濾波器,它能很好地濾除心電信號(hào)中混雜的高頻噪聲信號(hào)。
保存和回放模塊
本模塊是以“寫入測量文件”和“讀取測量文件”控件為核心,輔以“數(shù)據(jù)轉(zhuǎn)換”控件,可以實(shí)現(xiàn)心電異常時(shí)自動(dòng)保存以及有選擇地回放,可以在8道(可增刪)心電通道間任意切換,也可以選擇保存的文件類型。
這里,“數(shù)據(jù)轉(zhuǎn)換”控件的運(yùn)用體現(xiàn)了LabVIEw數(shù)據(jù)流編程的思想。即每個(gè)控件都是對數(shù)據(jù)流進(jìn)行操作,但作用的數(shù)據(jù)類型不同,其間通信必須先轉(zhuǎn)換數(shù)據(jù)類型。
心率計(jì)算和心電異常報(bào)警模塊
此模塊是虛擬心電監(jiān)護(hù)儀的核心,也是用戶最關(guān)心的功能模塊。目前ECG自動(dòng)檢測技術(shù)的研究主要集中在QRS波,P波和T波檢測,ST段檢測等方面,QRS波檢測是ECG檢測中的首要問題。
QRs波群檢測方法有閾值法、面積法、幅值法、神經(jīng)網(wǎng)絡(luò)法、模式匹配法等。面積法和幅值法易受到噪聲干擾。后幾種方法較為復(fù)雜,運(yùn)算量大且計(jì)算速度較慢,不適用于實(shí)時(shí)處理系統(tǒng)的要求。本系統(tǒng)采用的是改進(jìn)的閾值法,可以概括為“雙閾值+校正閾值”。心電異常報(bào)警就是根據(jù)雙閾值和校正閾值的檢測數(shù)據(jù),利用布爾運(yùn)算判斷分析,結(jié)果送前面板顯示。
此方法的設(shè)計(jì)原理和思想與普通閾值法相似,即以檢測QRs波波峰的個(gè)數(shù)作為計(jì)算心率的依據(jù),不同的是,此法采用雙閾值,利用“波峰峰值檢測”控件,設(shè)置兩個(gè)不同的波峰檢測閾值,一個(gè)閾值較大,用于檢測R波:一個(gè)閾值較小,用于檢測過強(qiáng)的T波和R波(本系統(tǒng)的檢測閾值可以在前面板中設(shè)置),得到兩個(gè)檢測心率,然后利用比較、布爾運(yùn)算,分析心電信號(hào)的異常情況并適時(shí)報(bào)警。針對心電的某些特征信號(hào)、這里設(shè)計(jì)了校正閾值算法,用于特定心電異常的檢測(如高頻噪聲干擾,可以選用平滑濾波器,設(shè)置合適閾值,校正檢測心率)。
此算法優(yōu)點(diǎn)是計(jì)算量小,實(shí)時(shí)性好,便于在線分析;開放性強(qiáng),可以擴(kuò)展檢測閾值數(shù)量,提高分析的可信度;可以根據(jù)需要設(shè)置校正閾值。此法缺點(diǎn)是手動(dòng)設(shè)定閾值,可以添加自學(xué)習(xí)模塊加以改進(jìn),利用自學(xué)習(xí)算法可實(shí)現(xiàn)。
“雙閾值”法可以解決普通閾值法中存在的幅度大的T波誤檢或低壓的QRS波被漏檢情況,而“校正閾值”能夠解決噪聲干擾造成的心率誤檢等(取決于校正算法)??傊?,與普通閾值法相比,該算法極大地提高了系統(tǒng)的抗噪能力,并減低了誤判率。當(dāng)然,可以根據(jù)需要,增加閾值檢測數(shù)目、以及采用其它校正算法,使其不僅僅局限于校正噪聲干擾造成的心率誤檢。
該心電監(jiān)護(hù)系統(tǒng)的前面板和程序框圖分別見圖2和圖3。
結(jié)語
本文闡述了基于LabVIEW的虛擬心電監(jiān)護(hù)系統(tǒng)的設(shè)計(jì),該系統(tǒng)用戶界面友好、使用方便,充分發(fā)揮了LabVIEW的優(yōu)勢;本心電監(jiān)護(hù)儀實(shí)現(xiàn)了心電信號(hào)讀取、濾波、保存和回放,并且可以自動(dòng)保存異常數(shù)據(jù),實(shí)時(shí)報(bào)警和簡易的心電分析。
軟件設(shè)計(jì)畢業(yè)論文:手機(jī)應(yīng)用軟件設(shè)計(jì)和開發(fā)的方法探討
摘要:分析了手機(jī)應(yīng)用運(yùn)行環(huán)境的特點(diǎn),并針對這些特點(diǎn)提出相應(yīng)的對策;同時(shí),針對手機(jī)中應(yīng)用程序顯示區(qū)域小,CPU處理速度和內(nèi)存容量限制,應(yīng)用程序的實(shí)時(shí)性要求和開發(fā)環(huán)境的封閉性等特點(diǎn),提出了一些設(shè)計(jì)策略和解決方案。
關(guān)鍵詞:手機(jī);應(yīng)用軟件;設(shè)計(jì);對策
0引言
用戶在使用手機(jī)中無時(shí)無刻不在和手機(jī)上的應(yīng)用程序打交道,手機(jī)應(yīng)用程序設(shè)計(jì)得好壞直接影響用戶對該款手機(jī)的感受。手機(jī)的應(yīng)用程序的好壞決定了一款手機(jī)的內(nèi)在品質(zhì),從而在很大程序上決定了一款手機(jī)在市場上的命運(yùn)。本文結(jié)合筆者開發(fā)手機(jī)應(yīng)用程序的經(jīng)驗(yàn),探討手機(jī)上應(yīng)用軟件的設(shè)計(jì)和開發(fā)方法。
1手機(jī)應(yīng)用軟件的特點(diǎn)分析
目前市場上的手機(jī)分兩類:功能手機(jī)(FeaturePhone)和智能手機(jī)(SmartPhone)。雖然這兩類手機(jī)還沒有一個(gè)明確的界線,但是手機(jī)上運(yùn)行的應(yīng)用程序都有如下特點(diǎn):
顯示區(qū)域小為了方便攜帶和按鍵,大屏的像素點(diǎn)為128x160、160x24、240x320等。
CPU處理速度和內(nèi)存容量比段小基于成本的考慮,手機(jī)上的處理器(MCU)的頻率較低,一般只有幾十M,智能手機(jī)稍高,一般200―400M。內(nèi)存(RAM和FLASH)一般為8M,16M,智能手機(jī)一般32M,64M。
和移動(dòng)網(wǎng)絡(luò)的交互密切,實(shí)時(shí)性強(qiáng)能與移動(dòng)網(wǎng)絡(luò)隨時(shí)隨地通信,交換語音和數(shù)據(jù)信息。對于來自移動(dòng)網(wǎng)絡(luò)的來電,短消息,彩信,推消息(Pushmessage)等,應(yīng)用程序必須能及時(shí)提示用戶,并能讓用戶方便地處理這些信息。這一點(diǎn)也是手機(jī)產(chǎn)品和其他的PDA,PMP等產(chǎn)品的最大區(qū)別,同時(shí)對這些信息的處理也是手機(jī)軟件設(shè)計(jì)和開發(fā)的關(guān)鍵點(diǎn)和難點(diǎn)。
軟件的開發(fā)環(huán)境千差萬別,因而手機(jī)應(yīng)用程序的運(yùn)行環(huán)境相差甚遠(yuǎn)現(xiàn)在市場上的手機(jī)的開發(fā)環(huán)境要么是手機(jī)的芯片開發(fā)商提供,要么是獨(dú)立的軟件公司提供,還沒有一個(gè)統(tǒng)一的開發(fā)標(biāo)準(zhǔn)。各個(gè)平臺(tái)的軟硬件環(huán)境差別很大,在一個(gè)平臺(tái)上的應(yīng)用程序根本不能在另外一個(gè)平臺(tái)上運(yùn)行。手機(jī)應(yīng)用軟件開發(fā)和平臺(tái)緊緊地綁定在一起,軟件的可移植性極差。
2手機(jī)應(yīng)用軟件設(shè)計(jì)和開發(fā)的對策
針對上述手機(jī)應(yīng)用軟件的特點(diǎn),在進(jìn)行手機(jī)應(yīng)用軟件設(shè)計(jì)和開發(fā)的時(shí)候必須有清醒的認(rèn)識(shí),并預(yù)先有相應(yīng)的解決方案,在項(xiàng)目進(jìn)行到中間或者最后才發(fā)現(xiàn)或者考慮這些問題為時(shí)太晚。下面是筆者認(rèn)為在手機(jī)應(yīng)用軟件設(shè)計(jì)和開發(fā)上總體需要把握好的關(guān)鍵點(diǎn)。
2.1怎樣應(yīng)對應(yīng)用程序顯示區(qū)域小
應(yīng)用程序的界面風(fēng)格應(yīng)一致。好的做法是設(shè)計(jì)一個(gè)共用的應(yīng)用程序的基類(接口),所有的應(yīng)用程序都從這個(gè)基類(接口)繼承;設(shè)計(jì)一組公共的顯示控件,這些控件的顯示風(fēng)格可以通過配置文件進(jìn)行設(shè)置。這樣可以很方便地達(dá)到“換膚”的功能,從而滿足用戶界面上個(gè)性化的需求。
多用圖標(biāo)和簡潔文字來表達(dá)界面的含義。由于顯示區(qū)域的限制,手機(jī)很難像PC那樣利用多重窗口,基本上是一個(gè)應(yīng)用程序占用整個(gè)窗口。采用統(tǒng)一的圖標(biāo)和簡潔的文字能達(dá)到界面意義明確,表達(dá)意義形象的目的,這比冗長的文字更能吸引人的注意,使人記憶深刻,從而給用戶良好的使用體驗(yàn)。如果能結(jié)合富有表現(xiàn)力的動(dòng)畫圖片更好。因此,必須設(shè)計(jì)的圖形控件有:應(yīng)用窗口類,圖片類,動(dòng)畫類,圖片標(biāo)簽類,進(jìn)度條類,單行列表類,多行列表類,單選列表類,多選列表。在手機(jī)應(yīng)用窗口中應(yīng)該充分利用這些類來設(shè)計(jì)有特色的用戶界面。
設(shè)計(jì)一個(gè)通用的合理的輸入法接口。輸入法的設(shè)計(jì)在手機(jī)應(yīng)用程序中有重要的地位。輸入法的設(shè)計(jì)在實(shí)現(xiàn)的時(shí)候要考慮的實(shí)際問題有:
(1)怎么方便地切換各種輸入。例如,可以考慮用#,*鍵來切換各類文字的輸入。另外,標(biāo)點(diǎn)字符和數(shù)字等由于使用的頻率很高,可以考慮增加快捷菜單或者快捷鍵操作的輸入方法。
(2)待選字符的安排是否合理,操作是否方便。例如圖1所示界面是筆者設(shè)計(jì)的中文編輯界面。
說明:如果用戶輸入xyz所在的按鍵。則在區(qū)域1顯示所有的待選拼音/筆畫。在這個(gè)時(shí)候用戶可以按左右方向按鍵來選擇待選拼音/筆畫。用戶按OK鍵,在區(qū)域2,高亮(Highlight)顯示的是第一個(gè)待選漢字。這時(shí)按左右按鍵高亮光標(biāo)在待選漢字間移動(dòng)。如果漢字太多,可以按上下按鍵來在前一頁和后一頁漢字之間切換。按OK鍵,高亮選定的漢字將被輸入到編輯界面上。在區(qū)域3,是區(qū)域2高亮漢字的聯(lián)想詞組。用戶可以長按1-9鍵將顯示的詞組直接輸入到編輯界面(不需要高光選擇)。短按一次取消鍵(C鍵)刪除編輯界面的一個(gè)漢字,快速短按兩次,刪除編輯界面的一行漢字,長按取消鍵,全部刪除編輯界面的漢字。
上面舉的例子只是中文的輸入,實(shí)際情況是還需要英文字母,英文單詞,標(biāo)點(diǎn)符號(hào)等字符的輸入。所以,輸入法的軟件設(shè)計(jì)的細(xì)節(jié)問題很多,各個(gè)應(yīng)用的需求千差萬別,需要我們在開始設(shè)計(jì)軟件時(shí)充分考慮輸入法接口的可擴(kuò)展性和靈活性。
2.2怎樣應(yīng)對CPU處理速度和內(nèi)存容量的限制
設(shè)計(jì)或者選定一個(gè)合理而高效的系統(tǒng)架構(gòu)。好的應(yīng)用程序需要一個(gè)好的系統(tǒng)框架。針對手機(jī)的CPU和內(nèi)存的特點(diǎn),手機(jī)的應(yīng)用程序的運(yùn)行環(huán)境和PC上的程序運(yùn)行環(huán)境有很大的不同,用表1總結(jié)如下:
通過上面的對比,可以看出,手機(jī)的設(shè)計(jì)應(yīng)注意以下幾點(diǎn):
(1)以當(dāng)前手機(jī)的硬件為基準(zhǔn),采取適度超前的原則來定義系統(tǒng)架構(gòu)。整個(gè)架構(gòu)不必大而且全,要小而精,并盡量做到架構(gòu)中的各個(gè)部件具有很好的可裁減性。這樣的系統(tǒng)架構(gòu)才能滿足各種不同的硬件需要。
(2)精心設(shè)計(jì)架構(gòu)中的每一個(gè)部件,消除系統(tǒng)冗余的代碼;合理定義接口,系統(tǒng)的架構(gòu)才能清晰容易被人理解,并且系統(tǒng)的可靠性也高。只有這樣,整個(gè)系統(tǒng)架構(gòu)的代碼占用的內(nèi)存少,應(yīng)用程序在運(yùn)行的時(shí)候占用的內(nèi)存和CPU資源少。
(3)應(yīng)用程序可以在PC上模擬運(yùn)行。一般手機(jī)上調(diào)試應(yīng)用程序的過程比較復(fù)雜,如果一個(gè)很小的改動(dòng)都要到手機(jī)上去調(diào)試很浪費(fèi)時(shí)間,同時(shí),在PC上調(diào)試程序也比在手機(jī)上調(diào)試程序方便得多。一個(gè)好的程序架構(gòu)的基本要求是絕大部分的應(yīng)用都可以在PC機(jī)上模擬開發(fā)完成。
精心設(shè)計(jì)應(yīng)用程序。應(yīng)用程序的執(zhí)行效率和應(yīng)用程序的設(shè)計(jì)密切相關(guān)。對于手機(jī)上的應(yīng)用程序,不同的設(shè)計(jì)策略有不同的結(jié)果。例如:對于一個(gè)電話本的應(yīng)用程序,讀取所有電話記錄至少有兩種方法:一種是在一開機(jī)的時(shí)候就讀;另外一種是在電話本應(yīng)用打開的時(shí)候才讀。實(shí)際情況是前一種情況較好,因?yàn)椋@樣用戶每次進(jìn)入電話本的時(shí)候手機(jī)可以很快地顯示所有的電話記錄,后者則慢得多,在有些系統(tǒng)中可能是難以忍受,必須提前準(zhǔn)備好數(shù)據(jù)。
在設(shè)計(jì)應(yīng)用程序中著重考慮的問題有:
(1)程序的處理效率是否高;
(2)程序的內(nèi)存占用和CPU是否太多;
(3)用戶的操作是否方便,應(yīng)用的響應(yīng)速度是否足夠快;
(4)界面的定義是否美觀,和系統(tǒng)的總體風(fēng)格相一致;
2.3怎樣應(yīng)對應(yīng)用程序的實(shí)時(shí)性要求
手機(jī)最重要的功能是通話和通信。這些一般和無線網(wǎng)絡(luò)都有密切的關(guān)系。對于來自無線網(wǎng)絡(luò)的來電,短消息,推消息等,必須有一個(gè)應(yīng)用來統(tǒng)一調(diào)度和處理這些消息和信息。筆者稱之為待機(jī)管理應(yīng)用。待機(jī)管理應(yīng)用是底層軟件和其他應(yīng)用程序的調(diào)度員,同時(shí)它也負(fù)責(zé)待機(jī)界面下的界面顯示和其他應(yīng)用不方便處理的一些任務(wù)。如果用圖來表示,那么它在整個(gè)系統(tǒng)中的位置如圖2所示。
待機(jī)管理應(yīng)用的特點(diǎn)是:(1)一開機(jī)就首先運(yùn)行;(2)總是處于運(yùn)行或者待命狀態(tài),不會(huì)退出。
因此,這個(gè)應(yīng)用的穩(wěn)定性要求就特別高。在軟件設(shè)計(jì)的時(shí)候要特別注意功能劃分,如果某項(xiàng)功能能在其它的應(yīng)用中處理,該功能應(yīng)盡量分到別的應(yīng)用中去,以免待機(jī)管理過于復(fù)雜,影響系統(tǒng)的穩(wěn)定性。
待機(jī)管理應(yīng)用的功能一般如下:
(1)處理與充電器和電池有關(guān)的消息。例如:插入充電器,如果是在開機(jī),則在待機(jī)下顯示充電動(dòng)畫;拔掉充電器,關(guān)閉充電動(dòng)畫的顯示等;
(2)處理開機(jī)動(dòng)畫或者問候語的顯示;
(3)如果底層協(xié)議報(bào)告SIM卡設(shè)置了PIN碼,啟動(dòng)SIM卡的PIN碼輸入界面;如果還設(shè)置了手機(jī)密碼,則啟動(dòng)手機(jī)的密碼輸入界面;
(4)顯示待機(jī)下面的各種狀態(tài)圖標(biāo),網(wǎng)絡(luò)注冊的信息,時(shí)間和日期信息,各種應(yīng)用圖標(biāo)的排列;
(5)顯示屏幕保護(hù)的界面;
(6)處理用戶在待機(jī)狀態(tài)下的各種按鍵操作,例如:如果用戶短按了數(shù)字1所在的按鍵,則要啟動(dòng)號(hào)碼編輯應(yīng)用或者界面,如果用戶在應(yīng)用圖標(biāo)或者菜單中按或者點(diǎn)擊了某一個(gè)應(yīng)用,則要啟動(dòng)該應(yīng)用;
(7)顯示各種系統(tǒng)狀態(tài),例如:未接來電和短消息的提示,電池電量不足的提示,鬧鐘的提示等;
(8)轉(zhuǎn)發(fā)底層的各種消息給相應(yīng)的應(yīng)用程序,為其他的上層應(yīng)用提供統(tǒng)一、簡潔的接口。這樣做的原因是通過對底層消息的封裝和轉(zhuǎn)換,能簡化其他應(yīng)用處理。并且使待機(jī)管理應(yīng)用能及時(shí)了解系統(tǒng)當(dāng)前的狀態(tài),并及時(shí)通知給用戶。
2.4怎樣應(yīng)對應(yīng)用程序的開發(fā)環(huán)境的封閉性
正如上面提到的,現(xiàn)在市場上主流的手機(jī)開發(fā)平臺(tái)很多,并且還不斷有新的平臺(tái)涌現(xiàn),怎樣開發(fā)能在各種不同的平臺(tái)上有很強(qiáng)移植性的應(yīng)用程序?qū)Τ绦蛟O(shè)計(jì)和開發(fā)人員是一個(gè)艱巨的任務(wù)。筆者結(jié)合自己的經(jīng)歷認(rèn)為可行的思路如下:
(1)應(yīng)用的用戶界面和實(shí)際的處理邏輯盡量分開,將一些可以共用的處理邏輯提煉成共用的函數(shù)接口。例如:日程應(yīng)用的陰陽歷轉(zhuǎn)換算法,電話本中的首字母查找算法等都可以放在一個(gè)單獨(dú)文件或者庫文件中,這樣的代碼可以很方便地移植到其他的平臺(tái)上。
(2)編寫代碼的時(shí)候,數(shù)據(jù)結(jié)構(gòu)的定義和函數(shù)的處理要考慮不同硬件平臺(tái)的差別。一個(gè)好的做法是定義一個(gè)平臺(tái)上通用的數(shù)據(jù)類型定義,而不是直接使用設(shè)計(jì)語言里面原始定義的數(shù)據(jù)類型。例如:如果是在C/C++的開發(fā)平臺(tái)上,我們可以定義一個(gè)文件types.h,它里面包含如下通用類型的定義:
typedefcharBOOLEAN;
typedefunsignedcharBYTE;
typedefcharCHAR;
typedefunsignedshortWCHAR;
typedefcharINT8;
typedefunsignedcharUINT8;
typedefshOrtINTl6;
typedefunsignedshortUINT16;
typedeflongINT32;
typedefunsignedlongUINT32;
typedeflongLONG;
typedefunsignedlongULONG;
在程序中,所有數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)項(xiàng),函數(shù)的參數(shù)和返回值,類的成員數(shù)據(jù)都用上面的這些通用類型,這樣編寫的軟件的可移植性就可以大大提高。
如果可能,多采用成熟的第三方軟件或者知名的開源代碼庫。
手機(jī)的應(yīng)用經(jīng)常碰到部分模塊是自己開發(fā)還是采用第三方軟件的問題。為了軟件的可移植性,加快軟件的開發(fā)速度,這些模塊應(yīng)該多采用專業(yè)公司開發(fā)的成熟軟件或者采用穩(wěn)定的開源軟件。這比自己重新開發(fā)好、快捷方便得多,開發(fā)成本也比較少。例如:現(xiàn)在很多手機(jī)都支持MP4播放,這樣就涉及音視頻編解碼的問題,如果可能,選擇一個(gè)經(jīng)過市場驗(yàn)證,可移植性強(qiáng)的第三方或者開源的音視頻編解碼庫比自己進(jìn)行開發(fā)要合算得多,這樣的應(yīng)用程序的可移植性比自己在特定平臺(tái)上全部由自己開發(fā)的應(yīng)用程序要好。
3結(jié)束語
手機(jī)上的應(yīng)用程序開發(fā)環(huán)境現(xiàn)在還是一個(gè)比較封閉,與應(yīng)用程序耦合比較緊密的系統(tǒng);應(yīng)用程序的設(shè)計(jì)和開發(fā)相對復(fù)雜,對應(yīng)用的穩(wěn)定性,安全性,實(shí)時(shí)性要求也比較高。無論是對手機(jī)系統(tǒng)平臺(tái)的設(shè)計(jì)人員還是開發(fā)人員,只有在了解其特點(diǎn)的基礎(chǔ)上才能提出有針對性的方案。本文指出了這些特點(diǎn)并闡述了筆者的觀點(diǎn),希望能起到拋磚引玉的作用。
軟件設(shè)計(jì)畢業(yè)論文:遙測文件截取器軟件設(shè)計(jì)與實(shí)現(xiàn)
摘要:為解決大容量遙測數(shù)據(jù)文件的快速分割,軟件針對遙測文件以幀為基本單位且每幀頭都含有時(shí)碼的特點(diǎn),設(shè)計(jì)按特征參數(shù)截取、按時(shí)間截取以及按幀序數(shù)截取等三種方法以滿足不同的截取要求。遙測參數(shù)的解算調(diào)用已成熟的動(dòng)態(tài)鏈接庫,對于一些耗時(shí)的運(yùn)算使用了二分搜索等優(yōu)化算法。該軟件操作方便、截取效率高,在型號(hào)應(yīng)用中發(fā)揮了重要作用。
關(guān)鍵詞:遙測;文件截取;軟件設(shè)計(jì);二進(jìn)制;數(shù)據(jù)圖形顯示
0引言
隨著科技的進(jìn)步,空空導(dǎo)彈的研制越來越復(fù)雜。相應(yīng)地就有越來越多的數(shù)據(jù)信息需要遙測傳輸,這必然導(dǎo)致遙測接收的數(shù)據(jù)文件較大。以3Mb/s碼率計(jì),10min的遙測數(shù)據(jù)就有214MB之多。數(shù)據(jù)處理軟件往往需要經(jīng)過異步幀提取,有效位屏蔽,甚至經(jīng)過費(fèi)時(shí)的字符串處理[1]才能得到最終結(jié)果。所以當(dāng)用戶處理這種大文件時(shí)往往需要等待很長的時(shí)間。如果能夠把這樣大的文件分割成較小的幾個(gè)文件然后分別處理,那么處理軟件的運(yùn)行時(shí)間就可以縮短到用戶可以忍受的程度。
另一方面,空空導(dǎo)彈的發(fā)射試驗(yàn)往往比較短暫,從導(dǎo)彈離開載機(jī)直到導(dǎo)彈爆炸只有不到1min的時(shí)間。數(shù)據(jù)分析人員最關(guān)心的也正是這段時(shí)間的數(shù)據(jù)。而實(shí)際遙測中,為了確保數(shù)據(jù)的可靠接收,會(huì)從發(fā)射前5min開始記錄直到遙測信號(hào)完全消失才停止記錄。
這種情況下,如果能夠根據(jù)導(dǎo)彈發(fā)射的特征信號(hào)(比如導(dǎo)彈與發(fā)射架分離的信號(hào))來截取遙測數(shù)據(jù)文件也具有重要的實(shí)際意義。
本文通過對實(shí)際需求的分析,提出了按遙測幀數(shù)、時(shí)間和特征參數(shù)三種文件截取方法,并在VC6.0平臺(tái)上予以實(shí)現(xiàn)。
1軟件設(shè)計(jì)
1.1功能設(shè)計(jì)
在空空導(dǎo)彈遙測中,待傳輸?shù)男盘?hào)都是先通過多路復(fù)用組裝成一個(gè)N字節(jié)長的遙測幀然后調(diào)制傳輸。在接收端解調(diào)后先通過幀同步獲得該N字節(jié)長的遙測幀,然后在幀頭加入8B的時(shí)碼(又稱為B碼)來表示接收到該幀的時(shí)刻,如圖1所示。這樣存盤后的文件字節(jié)數(shù)是N+8的整數(shù)倍[2]。
圖1遙測幀發(fā)送接收過程
因?yàn)檫b測數(shù)據(jù)按幀存放,所以有意義的最小分割單位是幀而不是字節(jié),對文件的截取最后都要?dú)w結(jié)到按幀來截取。因此,軟件的第一個(gè)功能同時(shí)也是最基本的功能就是按幀的起止序號(hào)進(jìn)行分割。
由于文件中每一幀數(shù)據(jù)的幀頭都有B碼,所以將該B碼換算成實(shí)際時(shí)間之后也可以根據(jù)時(shí)間進(jìn)行截取。
數(shù)據(jù)分析人員一般要求提取導(dǎo)彈發(fā)射后到爆炸這一時(shí)間段的數(shù)據(jù),所以利用導(dǎo)彈發(fā)射電氣分離信號(hào)(ES)的跳變,截取跳變時(shí)刻前5s直到跳變時(shí)刻后50s的數(shù)據(jù)能夠確保覆蓋所需數(shù)據(jù),同時(shí)盡量減小數(shù)據(jù)文件的大小。
典型的電氣分離信號(hào)圖形如圖2所示。
圖2典型電氣分離信號(hào)圖形
(a)ES沒有跳變(b)ES有跳變(c)ES有跳變,信號(hào)有野點(diǎn)
(a)圖導(dǎo)彈未發(fā)射,(b)圖導(dǎo)彈發(fā)射,(c)圖導(dǎo)彈正常發(fā)射但信號(hào)有野點(diǎn)
通過對圖2的分析可以得出以下結(jié)論:ES跳變點(diǎn)需要通過計(jì)算的來判決,比如當(dāng)前數(shù)據(jù)點(diǎn)與下一數(shù)據(jù)點(diǎn)之差超過信號(hào)范圍的2/3,那么就認(rèn)為當(dāng)前點(diǎn)為跳變點(diǎn)。但是對于圖2(c)中有野點(diǎn)的情況這種判決方法就有可能導(dǎo)致誤判。所以最好的辦法是讓用戶參與跳變點(diǎn)的判決。軟件自動(dòng)找到第一個(gè)跳變點(diǎn),用戶可以通過快捷鍵[3]找到下一個(gè)跳變點(diǎn),直到正確的跳變點(diǎn)為止。
這種設(shè)計(jì)方法杜絕了跳變點(diǎn)的誤判,同時(shí)又能直觀快捷地輔助用戶找到跳變點(diǎn),另外還簡化了軟件的設(shè)計(jì)。
1.2模塊設(shè)計(jì)
分割一個(gè)文件的流程[4],如圖3所示。
分析圖3可以得出軟件必須的幾個(gè)模塊:
(1)打開待分割文件并自動(dòng)生成分割后文件;
(2)分割方式選擇;
(3)特征參數(shù)數(shù)據(jù)繪制;
(4)起止幀序數(shù)選擇;
(5)起止時(shí)間選擇;
(6)是否需要剔除無效幀。
最終確定的軟件界面[5-6]如圖4所示。
圖3文件分割流程圖
圖4軟件界面
2軟件實(shí)現(xiàn)
2.1按特征參數(shù)分割
按特征參數(shù)分割涉及到遙測參數(shù)解算。程序運(yùn)行時(shí)首先加載動(dòng)態(tài)鏈接庫dbreader.dll,postpro.dll和eu.dll。在OnInitDialog中調(diào)用函數(shù)GetTMFrameFormatInfo來獲取遙測幀格式,包括遙測幀的長度,碼率,同步碼位置等信息。然后調(diào)用函數(shù)GetTMParaAllRecord來獲取所有參數(shù)在遙測幀中的位置信息,解算方法等。
當(dāng)用戶從程序界面的參數(shù)下拉列表框中選擇一個(gè)參數(shù)時(shí),觸發(fā)CBN_SELCHANGE事件并調(diào)用消息函數(shù)[7]。在消息函數(shù)中根據(jù)參數(shù)是幀同步數(shù)據(jù)還是幀異步數(shù)據(jù)分別調(diào)用GetASyncParaValue函數(shù)或EUConvert函數(shù)解算出數(shù)據(jù),同時(shí)從數(shù)據(jù)中找出跳變點(diǎn),然后在圖形控件上繪出曲線。
2.2按B碼時(shí)間分割
要想根據(jù)時(shí)間信息來查找對應(yīng)的遙測幀就需要將該時(shí)間和文件中各遙測幀頭的B碼代表的時(shí)間進(jìn)行比較。如果采用遍歷查找的方法,對于總幀數(shù)為N的文件,理論上需要比較(N+1)/2次,要找到起、止兩個(gè)時(shí)間對應(yīng)的幀就要比較N+1次。這對于較大的文件來說消耗的時(shí)間會(huì)很長。
在遙測文件中,每幀數(shù)據(jù)都是按接收到的先后順序從前往后依次存放。也就是說,搜索的目的序列是有序的。對于這種情況,可以采用折半查找法[8]進(jìn)行搜索。理論證明,采用折半查找最多需要的比較次數(shù)為Иlog2(n+1),搜索起、止兩個(gè)時(shí)間共需比較2*log2(n+1)次。
2.3按幀序數(shù)分割
三種分割方式最后都?xì)w結(jié)到按幀分割。按幀分割惟一復(fù)雜的地方就是剔除無效幀。要剔除無效幀需要將每一幀數(shù)據(jù)的同步碼取出來和標(biāo)準(zhǔn)的同步碼進(jìn)行比較。如果差異位數(shù)超過容許值就丟棄該幀,否則保留。很多程序都采用依次右移一位,看二者最低位是否相同,如果不同則計(jì)數(shù)加1,循環(huán)直到兩個(gè)數(shù)都為零的方法。
這種方法效率非常低。本文采用了如圖5所示的計(jì)算方法[9]。
圖5計(jì)算同步碼錯(cuò)誤位數(shù)
這種算法的關(guān)鍵在兩處:首先對兩個(gè)被比較數(shù)a和b按位異或,結(jié)果c的二進(jìn)制數(shù)中為1的位置就是a和b不一致的位置。然后c不停地與c-1按位與[3]并將結(jié)果賦給c,直到c為0。通過歸納法可以證明c與c-1按位與可以消掉c的從低位往高位數(shù)的第一個(gè)1,所以c的二進(jìn)制值有幾個(gè)1就循環(huán)幾次。
3結(jié)語
本遙測軟件采用模塊化設(shè)計(jì),便于實(shí)現(xiàn)和測試。同時(shí)結(jié)合遙測文件的結(jié)構(gòu),實(shí)現(xiàn)了按幀序數(shù)、按時(shí)間和按特征參數(shù)三種分割方法,較好地滿足了型號(hào)遙測數(shù)據(jù)處理的需求。從軟件的設(shè)計(jì)可以看出,對于較復(fù)雜的軟件采用自頂向下,逐漸細(xì)化的分析方法,分模塊設(shè)計(jì)[10];對于影響程序性能的處理過程有針對性地進(jìn)行優(yōu)化,可以有效地提高程序的可靠性和性能并簡化設(shè)計(jì)過程。
軟件設(shè)計(jì)畢業(yè)論文:20kg級自主水下機(jī)器人控制軟件設(shè)計(jì)與實(shí)現(xiàn)
(中國海洋大學(xué)信息科學(xué)與工程學(xué)院,山東青島266100)
摘要:介紹了用于對20kg級便攜式AUV的運(yùn)行狀態(tài)進(jìn)行控制的軟件設(shè)計(jì)以及實(shí)現(xiàn)。該軟件是基于MFC對話框運(yùn)行于Windows操作系統(tǒng)下的程序,使用了多線程編程技術(shù)和串口通信技術(shù)。串口操作線程用于向串口讀取或?qū)懭霐?shù)據(jù),并且在處理后把最終結(jié)果發(fā)送給主線程和導(dǎo)航線程。在主線程中將數(shù)據(jù)顯示到界面上,在導(dǎo)航線程根據(jù)導(dǎo)航算法計(jì)算出用于導(dǎo)航的數(shù)據(jù)并寫入串口以控制AUV的運(yùn)行狀態(tài),包括AUV上浮、下潛、前進(jìn)、后退、左轉(zhuǎn)彎、右轉(zhuǎn)彎。實(shí)驗(yàn)結(jié)果表明,該軟件達(dá)到了預(yù)定效果。
關(guān)鍵詞:便攜式AUV;多線程;串口通信;MFC
自主式水下機(jī)器人(AutonomousUnderwaterVehicle,AUV)代表著未來水下機(jī)器人的發(fā)展方向,因而是世界各國研究的熱點(diǎn)[1]。而便攜式AUV由于使用方便,可執(zhí)行環(huán)境評估、水文地理、輔助水道測量、港口安全、巖屑區(qū)域繪圖等工作以及可以用在未來戰(zhàn)爭中[2],將是未來AUV發(fā)展的重點(diǎn)。
本文主要論述了便攜式AUV控制軟件的設(shè)計(jì)及其實(shí)現(xiàn),該軟件主要用于監(jiān)視AUV在水下運(yùn)行時(shí)的狀態(tài)信息以及控制AUV的運(yùn)行。AUV在水下運(yùn)行時(shí)的狀態(tài)信息包括位置信息、航向、艙內(nèi)溫濕度、推進(jìn)器轉(zhuǎn)速、舵的方向角以及在水面時(shí)GPS傳感器數(shù)據(jù)等信息,該軟件將這些信息顯示到界面上最終實(shí)現(xiàn)對AUV的監(jiān)控和導(dǎo)航。
1便攜式AUV系統(tǒng)簡介
該小型AUV由兩個(gè)密封艙組成,前艙安置了傳感器系統(tǒng),后艙安置了AUV推進(jìn)器以及方向舵的控制系統(tǒng)。兩個(gè)密封艙中間放置的一個(gè)垂直推進(jìn)器用來控制AUV的上下運(yùn)動(dòng),后艙安放了用于控制AUV水平方向的水平推進(jìn)器和方向舵。系統(tǒng)搭載了AHRS、數(shù)字羅盤、GPS等傳感器,這些傳感器采集到的數(shù)據(jù)用于AUV的導(dǎo)航。AHRS傳感器用來測量AUV的航向角、俯仰角、橫滾角、3個(gè)方向的速度、加速度;數(shù)字羅盤測量AUV的航向角等信息控制軟件對一串口進(jìn)行操作,該串口連接與AUV進(jìn)行通信的無線模塊。將從無線模塊接收到的數(shù)據(jù)經(jīng)過慣性導(dǎo)航算法處理,根據(jù)協(xié)議將慣性導(dǎo)航算法處理結(jié)果發(fā)送到AUV,最終實(shí)現(xiàn)對AUV的控制。
2串口通信
串口在做文件處理時(shí),簡單的應(yīng)用可以采用查詢方式或定時(shí)方式,復(fù)雜的可以采用事件驅(qū)動(dòng)的方式。所謂事件驅(qū)動(dòng),即當(dāng)串口有數(shù)據(jù)進(jìn)入輸入緩沖區(qū)時(shí),自動(dòng)執(zhí)行接收程序。利用WinAPI讀/寫串口操作可以有同步方式與異步方式。所謂同步方式是指發(fā)出寫命令時(shí),直到有數(shù)據(jù)寫入到輸出緩沖區(qū)寫函數(shù)才返回。異步方式的重疊方式是指發(fā)出寫操作命令后,不管寫操作是否完成,寫函數(shù)馬上返回,寫操作在后臺(tái)繼續(xù)進(jìn)行,寫操作完成后通過某種方式通知調(diào)用寫操作的線程。這樣避免了主線程被掛起,提高了程序的工作效率[34]。
2.1串口通信設(shè)置
在實(shí)現(xiàn)串口通信時(shí),首先在界面上設(shè)置串口號(hào)、波特率、校驗(yàn)等信息。單擊按鈕打開串口,進(jìn)入命令響應(yīng)函數(shù)OnBtnOpen(),利用API函數(shù)打開并對串口進(jìn)行配置[56]。最后使用API函數(shù)CreateThread創(chuàng)建一個(gè)線程。由于軟件工作過程中需要傳送的數(shù)據(jù)量不大,所以僅僅打開一個(gè)串口。
主線程打開串口具體流程圖如圖1所示。
圖1打開串口、創(chuàng)建線程流程圖在主線程中打開串口的代碼如下:
m_hCom=CreateFile(m_port,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,NULL)
在串口操作線程中使用API函數(shù)ReadFile用于讀取串口數(shù)據(jù)ReadFile(hCom,buf,19,&Length,&Eol);而在該線程中向AUV發(fā)送控制指令時(shí)使用:
fState=WriteFile(m_hCom,buf,19,&m_bytes,&m_osWrite)
2.2串口通信協(xié)議
串口通信必須遵守一定的通信協(xié)議,才可實(shí)現(xiàn)該控制軟件與AUV的正常通信。串口通信數(shù)據(jù)格式如圖2所示,圖中Data0,Data1,Data2…代表一個(gè)字(2B)。
圖2串口通信數(shù)據(jù)格式發(fā)送或接收的一幀數(shù)據(jù)最長為19B,Data0中第1個(gè)字節(jié)代表指令(0xA1)、請求(0xB2)或者正常應(yīng)答(0xC3)等含義;Data0中第2個(gè)字節(jié)代表具體指令、請求何種信息或者某種信息的應(yīng)答。Data1,Data2,…代表發(fā)送或者接收到的數(shù)據(jù)。開關(guān)機(jī)指令長度為19B,第19字節(jié)控制8個(gè)繼電器,1,0分別表示開、關(guān)第零位控制總電源。開機(jī)、關(guān)機(jī)指令前18B分別是:
~A16613579BDF02468ACE13579BDF02468A
~A166DF9B5713CE8A4602DF9B5713CE8A46
開機(jī)指令的第19個(gè)字節(jié)根據(jù)需要選擇相應(yīng)的繼電器開啟或關(guān)閉;關(guān)閉指令第19個(gè)字節(jié)為0x00,所有的繼電器關(guān)閉。
3軟件實(shí)現(xiàn)
3.1多線程實(shí)現(xiàn)
一個(gè)進(jìn)程可有多個(gè)線程,使用多線程可提高軟件的執(zhí)行效率。該控制軟件共有3個(gè)線程組成,包括一個(gè)主線程、一個(gè)導(dǎo)航線程和在成功打開串口后利用API函數(shù)CreateThread[78]創(chuàng)建的一個(gè)串口操作線程(如圖3所示)。
圖3多線程組織結(jié)構(gòu)串口操作線程讀取串口數(shù)據(jù),并提取有效數(shù)據(jù),接著利用函數(shù)PostMessage將有效數(shù)據(jù)分別傳送到主線程和導(dǎo)航線程。主線程將有效數(shù)據(jù)根據(jù)協(xié)議進(jìn)行解包并把數(shù)據(jù)包中包含的AHRS、數(shù)字羅盤、GPS等傳感器和推進(jìn)器、前艙環(huán)境參數(shù)等數(shù)據(jù)顯示到界面上。當(dāng)使用搖桿控制AUV的運(yùn)行時(shí)主線程每隔0.5s從USB接口接收數(shù)據(jù),并轉(zhuǎn)換成推進(jìn)器轉(zhuǎn)速以及方向舵的方向角信息,且將這些信息發(fā)送到串口操作線程寫入串口。
在主線程中創(chuàng)建串口操作線程的代碼如下:
hThread=CreateThread(NULL,0,ThreadProc,
(LPVOID)this,0,NULL);
在串口操作線程中將有效數(shù)據(jù)發(fā)送到主線程的代碼如下:
PostMessage(*pDlg,WM_MYMSG1,
(WPARAM)buf,(LPARAM)Length);
3.2關(guān)鍵算法
由于慣性導(dǎo)航系統(tǒng)提供的位置估計(jì)精度會(huì)隨時(shí)間而漂移,所以導(dǎo)航線程采用基于GPS/INS的組合導(dǎo)航[9]算法,用GPS輔助導(dǎo)航,即用GPS信息輔助修正慣導(dǎo)系統(tǒng)的輸出,包括航向角和速度。對AUV的航向角信息修正是通過經(jīng)典的PID控制算法來實(shí)現(xiàn)的,如圖4所示。
圖4AUVPID航向角閉環(huán)控制算法設(shè)Ji-1,Ji為AUV的2個(gè)節(jié)點(diǎn),AUV即A點(diǎn)從Ji-1到Ji點(diǎn)運(yùn)行。設(shè)正北方向矢量為k=(1,0),根據(jù)圖5按照下式可計(jì)算出角度θ。角度θ計(jì)算公式為:
θ=AJie北|AJi|?|e北|
=(Jix-Ax,Jiy-Ay)?(0,1)(Jix-Ax)2+(Jiy-Ay)2?02+12
=Jiy-Ay(Jix-Ax)2+(Jiy-Ay)2
在AUV進(jìn)行Ji-1~Ji段的航行時(shí),AUV根據(jù)導(dǎo)航算法不斷算出坐標(biāo)并判斷是否到達(dá)指定區(qū)域,當(dāng)離指定區(qū)域?yàn)镽時(shí)(R很小),即可判定到達(dá)指定區(qū)域。在到達(dá)指定區(qū)域之前不斷利用AUVPID航向角閉環(huán)控制算法修正航向角θ,最終實(shí)現(xiàn)AUV的GPS/INS組合導(dǎo)航。
圖5航向角計(jì)算圖解4控制軟件界面及實(shí)驗(yàn)結(jié)果
4.1軟件界面
本文設(shè)計(jì)的軟件界面左側(cè)上半部分和右側(cè)主要實(shí)現(xiàn)對AUV的控制,界面左側(cè)中下部分的3個(gè)儀表盤和TAB頁控件顯示AUV的各個(gè)狀態(tài)信息。
單擊開機(jī)、關(guān)機(jī)按鈕將實(shí)現(xiàn)AUV的開啟與關(guān)閉;單擊詢問AUV按鈕,此時(shí)應(yīng)答情況為AUV存在,表示監(jiān)控軟件與AUV的通信正常,否則應(yīng)該檢查無線模塊和AUV。單擊前艙參數(shù)、GPS經(jīng)緯度、GPS時(shí)間、推進(jìn)器狀態(tài)、AUV航向角等按鈕將持續(xù)獲得AUV相應(yīng)的信息;步進(jìn)電機(jī)控制按鈕用于實(shí)現(xiàn)方向舵的調(diào)整,進(jìn)而實(shí)現(xiàn)AUV方向的調(diào)整。為了防止步進(jìn)電機(jī)失步,這里還特意設(shè)計(jì)了步進(jìn)電機(jī)的微調(diào)按鈕,目的是在步進(jìn)電機(jī)失步時(shí)將方向舵調(diào)整回原位置。
該控制軟件還以儀表盤的方式顯示推進(jìn)轉(zhuǎn)速、羅盤、溫、濕度等信息。
以速度儀表盤為例,當(dāng)從串口接收到的數(shù)據(jù)中提取出水平推進(jìn)器或垂直推進(jìn)器速度信息時(shí),將速度信息存放到成員變量m_Spd1或者m_Spd2。利用API函數(shù)得到控件IDC_STATIC_SPD的區(qū)域坐標(biāo)rect2,調(diào)用API函數(shù)InvalidateRect(&rect2)重繪,將進(jìn)入函數(shù)CDspsockDlg::OnPaint()重繪。利用MFC中的函數(shù)Pie,Ellipse,SetBkColor,TextOut[10]畫出儀表盤背景。最后通過下列兩個(gè)公式將速度值轉(zhuǎn)換成對話框上的坐標(biāo)值,調(diào)用函數(shù)畫一條連接該區(qū)域中心位置到該點(diǎn)(a1,b1)的直線[11],最終實(shí)現(xiàn)儀表指針隨速度值的變化。坐標(biāo)(a1,b1)計(jì)算公式如下:b1=60sin((m_Spd1×3/25+150)π/180)
a1=60cos((m_Spd1×3/25+150)π/180)4.2實(shí)驗(yàn)結(jié)果
軟件運(yùn)行期間界面顯示如下。圖6顯示了溫、濕度分別是32°,51.5°;單擊復(fù)位按鈕、溫濕度指針將分別指向-30°,20°位置處;圖6還顯示了2個(gè)推進(jìn)器的速度信息,其中水平推進(jìn)器速度為1180r/min,垂直推進(jìn)器速度為0,此時(shí)AUV在水平方向運(yùn)動(dòng)垂直方向靜止。
軟件設(shè)計(jì)畢業(yè)論文:軟件設(shè)計(jì)類課程實(shí)踐性教學(xué)的研究與實(shí)踐
摘要:本文深入分析了計(jì)算機(jī)實(shí)踐性教學(xué)的內(nèi)涵,探討了軟件設(shè)計(jì)類課程實(shí)踐環(huán)節(jié)的組織模式,研究了這一方案的可行性。
關(guān)鍵詞:實(shí)踐性教學(xué);軟件設(shè)計(jì);課程改革;計(jì)算機(jī)專業(yè);項(xiàng)目實(shí)訓(xùn)
0引言
從1956年哈爾濱工業(yè)大學(xué)率先開辦“計(jì)算裝置與儀器”專業(yè)算起,到現(xiàn)在普遍采用的“計(jì)算機(jī)科學(xué)與技術(shù)”專業(yè),計(jì)算機(jī)專業(yè)教育在中國的大學(xué)里已經(jīng)走過了50年的歷程。70%以上的本科學(xué)校開設(shè)了計(jì)算機(jī)專業(yè),在校學(xué)生近30萬[1],其規(guī)模居所有本科專業(yè)的首位。加上???、高職、中職在內(nèi),其數(shù)量還要大得多。計(jì)算機(jī)專業(yè)人才在信息化建設(shè)過程起著舉足輕重的作用。然而,企業(yè)面對十里挑一的大好形勢,卻經(jīng)常會(huì)找不到合適的人才,造成這種局面的主要原因是學(xué)校培養(yǎng)與單位需要存在一定的脫節(jié)現(xiàn)象,主要表現(xiàn)為重理論輕實(shí)踐,動(dòng)手能力差,因而改革實(shí)踐環(huán)節(jié)提高學(xué)生的操作技能成為高校計(jì)算機(jī)類專業(yè)的必經(jīng)之路。
1軟件設(shè)計(jì)類課程實(shí)踐性教學(xué)的內(nèi)涵
實(shí)踐性教學(xué)是指為配合理論教學(xué),培養(yǎng)學(xué)生分析問題和解決問題的能力,加強(qiáng)專業(yè)訓(xùn)練和鍛煉學(xué)生實(shí)踐能力而設(shè)置的教學(xué)環(huán)節(jié),通常有兩種落實(shí)途徑:一是隨堂實(shí)踐,即課程作業(yè)、實(shí)驗(yàn)、上機(jī)操作等;二是集中實(shí)踐,即社會(huì)調(diào)查、各類實(shí)習(xí)及見習(xí)、課程設(shè)計(jì)以及畢業(yè)論文或畢業(yè)設(shè)計(jì)。教學(xué)計(jì)劃中規(guī)定的作業(yè)、實(shí)驗(yàn)、實(shí)習(xí)等環(huán)節(jié)和集中實(shí)踐環(huán)節(jié)是學(xué)生必修的內(nèi)容,在課程和專業(yè)學(xué)習(xí)中具有突出的地位。不同專業(yè)的實(shí)踐性教學(xué)方式,教學(xué)管理和考核辦法也不相同,但都是以專業(yè)培養(yǎng)目標(biāo)作為前提。對于計(jì)算機(jī)(包括軟件工程)專業(yè)的軟件設(shè)計(jì)類課程,其教學(xué)目的就是培養(yǎng)合格的軟件工程師,適應(yīng)軟件設(shè)計(jì)和項(xiàng)目管理崗位的需要。
1.1軟件工程師崗位需求
任何一個(gè)軟件企業(yè),開發(fā)團(tuán)隊(duì)都需要這樣三類人才:一是既懂技術(shù)又懂管理的軟件人才即系統(tǒng)分析師(高級),二是軟件工程師(中級),三是程序員(初級),這三類人員在軟件企業(yè)的正常比例應(yīng)該是呈金字塔結(jié)構(gòu),根據(jù)國際經(jīng)驗(yàn),高、中、初級軟件專業(yè)人才的比例應(yīng)基本維持在1:4:8。通常系統(tǒng)分析師由研究生承擔(dān),軟件工程師由本科生承擔(dān),程序員則由大專生以及專門培訓(xùn)機(jī)構(gòu)的學(xué)員完成。如圖1所示。
從圖1可以看出,計(jì)算機(jī)專業(yè)的本科生對應(yīng)軟件工程師崗位,在軟件開發(fā)團(tuán)隊(duì)中處于中間層,優(yōu)秀者可以上升到系統(tǒng)分析員層次。同時(shí),軟件工程師也要兼任程序員角色,因?yàn)椴簧佘浖髽I(yè)規(guī)模較小,難以按照軟件工程的規(guī)范細(xì)化分工,需要能做分析、能寫代碼、能做實(shí)施甚至用戶培訓(xùn)的“多面手”。作為高校,必須充分考慮這種情況,以培養(yǎng)軟件工程師為主線,也要提高系統(tǒng)分析能力,同時(shí)還應(yīng)該加強(qiáng)代碼編寫的訓(xùn)練。
1.2軟件設(shè)計(jì)類課程實(shí)踐性教學(xué)的內(nèi)涵
軟件設(shè)計(jì)類課程主要包括計(jì)算機(jī)語言類、開發(fā)類、設(shè)計(jì)類、制作類和工程類課程,共同的特點(diǎn)都是經(jīng)過系統(tǒng)學(xué)習(xí),既能夠按照規(guī)范獨(dú)立設(shè)計(jì)小型軟件,組成團(tuán)隊(duì)后又能夠設(shè)計(jì)出具有實(shí)用價(jià)值的中大型軟件。
軟件設(shè)計(jì)類課程實(shí)踐性教學(xué)標(biāo)目的是培養(yǎng)學(xué)生兩個(gè)方面的能力:即獨(dú)立編程能力和項(xiàng)目合作開發(fā)能力。一方面,能夠利用所學(xué)語言和平臺(tái)設(shè)計(jì)小型軟件,同時(shí)能夠按照項(xiàng)目分工,在項(xiàng)目經(jīng)理(負(fù)責(zé)人)的統(tǒng)一安排下,在技術(shù)上服從既定的設(shè)計(jì)方案完成模塊的開發(fā),并做好相應(yīng)的文檔。良好的責(zé)任心、解決問題的獨(dú)立編程能力和分工合作制的團(tuán)結(jié)協(xié)作精神是必須重點(diǎn)培養(yǎng)的內(nèi)容。軟件設(shè)計(jì)類課程實(shí)踐性教學(xué)的內(nèi)涵如圖2所示:
2軟件設(shè)計(jì)類課程實(shí)踐性教學(xué)的組織
按照軟件設(shè)計(jì)類課程實(shí)踐性教學(xué)的內(nèi)涵,一般應(yīng)包括3個(gè)環(huán)節(jié):課堂實(shí)驗(yàn)實(shí)訓(xùn)、課程設(shè)計(jì)、項(xiàng)目實(shí)踐,分階段實(shí)施。其具體安排如圖3所示:
2.1課堂實(shí)驗(yàn)實(shí)訓(xùn)環(huán)節(jié)
如果一門課程的教學(xué)任務(wù)規(guī)定在一個(gè)學(xué)期內(nèi)完成,課堂實(shí)驗(yàn)實(shí)訓(xùn)環(huán)節(jié)應(yīng)該安排在學(xué)期的前半部分進(jìn)行,以講授語法、數(shù)據(jù)類型、常用類庫、開發(fā)平臺(tái)為主。學(xué)生所學(xué)知識(shí)和編程技術(shù)有限,難以形成完整的程序思路,實(shí)踐環(huán)節(jié)只能是練習(xí)基本功單獨(dú)完成,以每一次堂或者每一個(gè)章節(jié)為單位安排學(xué)生進(jìn)行相關(guān)的訓(xùn)練,以熟練掌握語法的基本用法,為后一階段的課程設(shè)計(jì)做準(zhǔn)備。老師指導(dǎo)時(shí),要注意培養(yǎng)學(xué)生良好的編程習(xí)慣,包括標(biāo)識(shí)符的規(guī)范化命名、注釋語句的廣泛運(yùn)用、編程語句的縮進(jìn)格式、幫助文檔的使用方法,逐漸形成編程思想。
為了配合實(shí)踐性教學(xué),教材的選擇也十分關(guān)鍵,最好是采用基于案例教學(xué)法或者項(xiàng)目驅(qū)動(dòng)教學(xué)法的教材,這種教材往往會(huì)通過一些典型的實(shí)例或企業(yè)項(xiàng)目組織內(nèi)容,大部分章節(jié)的主題相對集中,圍繞項(xiàng)目展開講述,特別適合于實(shí)踐性教學(xué)。如果采用實(shí)踐性較弱的教材,老師需要自行補(bǔ)充一些實(shí)習(xí)實(shí)訓(xùn)內(nèi)容讓學(xué)生當(dāng)場消化吸收。
2.2課程設(shè)計(jì)環(huán)節(jié)
這一階段十分關(guān)鍵,完全模擬軟件企業(yè)的開發(fā)流程組成小組共同完成一個(gè)中小型項(xiàng)目的設(shè)計(jì),一般安排在后半學(xué)期進(jìn)行。這時(shí)要求學(xué)生停止其它課程的學(xué)習(xí),每天八小時(shí)工作制,甚至晚上可以加班加點(diǎn),專心設(shè)計(jì)項(xiàng)目,其最終成果包括軟件和文檔以及用戶操作手冊。以每班30人為例,可以考慮分為5個(gè)小組,每組6人,每個(gè)小組安排組長(項(xiàng)目負(fù)責(zé)人或稱項(xiàng)目經(jīng)理)一人,組長的職責(zé)是:組織成員實(shí)地項(xiàng)目調(diào)研、模塊劃分與任務(wù)分工、接口的確定、進(jìn)度的監(jiān)督與協(xié)調(diào)、集成測試等,組長直接接受指導(dǎo)老師的安排。鑒于組長在在項(xiàng)目設(shè)計(jì)過程所處的重要地位,老師在確定組長時(shí),至少考慮三個(gè)方面:一是組織能力,二是專業(yè)技能的基本功,三是責(zé)任心。
這一過程通常安排兩周到三周集中在校內(nèi)機(jī)房(實(shí)訓(xùn)中心)進(jìn)行,老師每天針對總體要求及當(dāng)天的任務(wù)進(jìn)行講解,然后分小組實(shí)施。選擇課題時(shí),不宜太復(fù)雜,應(yīng)盡可能讓大多數(shù)課題組可以在規(guī)定的時(shí)間內(nèi)做完。一般選取學(xué)生們比較熟悉的內(nèi)容,如學(xué)生成績管理系統(tǒng)、班級管理系統(tǒng)、教材管理系統(tǒng)、倉庫管理系統(tǒng)、工資管理系統(tǒng)、就業(yè)反饋跟蹤系統(tǒng)、水電費(fèi)管理系統(tǒng)等,這些課題的要求大家都比較清楚,在校內(nèi)即可進(jìn)行客戶調(diào)研和需求分析,同時(shí)也具有較強(qiáng)的推廣價(jià)值,為將來的職業(yè)奠定基礎(chǔ)。這時(shí)每個(gè)人同學(xué)都應(yīng)該至少準(zhǔn)備一本項(xiàng)目開發(fā)類指導(dǎo)書作為參考,因?yàn)樯婕暗綌?shù)據(jù)庫、界面、網(wǎng)絡(luò)通信、硬件編程等方面的知識(shí),僅僅靠教材還不夠。
2.3項(xiàng)目實(shí)踐環(huán)節(jié)
項(xiàng)目實(shí)踐環(huán)節(jié)是學(xué)生到軟件研發(fā)企業(yè)(校外實(shí)訓(xùn)基地)全程參與項(xiàng)目開發(fā)的過程,一般應(yīng)安排在學(xué)期的最后一到兩周或者利用假期頂崗實(shí)習(xí),因?yàn)榻?jīng)過了課程設(shè)計(jì),學(xué)生基本掌握了軟件企業(yè)的開發(fā)流程和一般方法,進(jìn)入軟件公司后就能夠較快地進(jìn)入程序員角色,而不至于膽怯,也不會(huì)無所適從。完成本部分實(shí)踐內(nèi)容要做好以下三個(gè)方面的工作:
確定好項(xiàng)目指導(dǎo)老師:企業(yè)開發(fā)與在學(xué)校進(jìn)行課程設(shè)計(jì)并不盡相同,軟件公司具有自己的風(fēng)格,往往更加愿意采用自己熟悉的開發(fā)工具,以達(dá)到客戶的需求作為目標(biāo),并不一定會(huì)使用最新技術(shù),這點(diǎn)與教學(xué)理念不同。理想的方案是由任課老師帶隊(duì)進(jìn)入軟件企業(yè)(校外實(shí)訓(xùn)基地),并選擇目前正在開發(fā)的項(xiàng)目經(jīng)理擔(dān)任總負(fù)責(zé)人(校外實(shí)踐指導(dǎo)老師),任課老師也參與項(xiàng)目實(shí)踐并組織學(xué)生實(shí)施,因?yàn)橐粋€(gè)優(yōu)秀的項(xiàng)目經(jīng)理不一定是優(yōu)秀的老師,能做軟件不見得會(huì)上課,項(xiàng)目負(fù)責(zé)人與任課老師共同配合更能發(fā)揮各自的優(yōu)勢,便于學(xué)生理解項(xiàng)目思想和相互溝通。經(jīng)過簡短的培訓(xùn)后,由模塊責(zé)任人指導(dǎo)學(xué)生設(shè)計(jì)或者由學(xué)生獨(dú)立完成,一切按照企業(yè)的開發(fā)規(guī)范進(jìn)行。考慮到軟件企業(yè)一次難以容納過多實(shí)習(xí)生的特點(diǎn),也可考慮將項(xiàng)目拿到學(xué)校來做,或者將項(xiàng)目經(jīng)理請到學(xué)?,F(xiàn)場指導(dǎo),以節(jié)省時(shí)間和費(fèi)用。
確定項(xiàng)目指導(dǎo)方法:開發(fā)應(yīng)用項(xiàng)目沒有現(xiàn)成的教材,需求分析、概要設(shè)計(jì)說明書、詳細(xì)設(shè)計(jì)說明書、數(shù)據(jù)庫和數(shù)據(jù)字典就是設(shè)計(jì)的依據(jù),老師必須嚴(yán)格按照這些文檔指導(dǎo)學(xué)生進(jìn)行設(shè)計(jì),定期檢查學(xué)生的進(jìn)度及過程,一旦發(fā)現(xiàn)偏差,及時(shí)糾正,將錯(cuò)誤消滅在萌芽狀態(tài)。
及時(shí)組織項(xiàng)目總結(jié):每天規(guī)定一個(gè)時(shí)間,將同組學(xué)生集中起來,針對當(dāng)天完成的任務(wù)進(jìn)行總結(jié),交流自己的想法,提出存在的問題,集體討論,這樣就能夠做到日日有收獲,天天有提高,從而鍛煉自己的實(shí)戰(zhàn)水平和組織經(jīng)驗(yàn)。
3軟件設(shè)計(jì)類課程實(shí)踐性教學(xué)效果的考核
軟件設(shè)計(jì)類課程實(shí)踐性教學(xué)效果的考核也是一個(gè)較難把握的環(huán)節(jié),既要考核學(xué)生的獨(dú)立編程能力,也要考查其團(tuán)隊(duì)協(xié)作精神,同時(shí)還要考慮其組織能力、表達(dá)能力、文檔編寫能力、紀(jì)律性等內(nèi)容。為了客觀科學(xué)地評價(jià)學(xué)生的實(shí)際效果,最好是分階段考核,各部分按照一定的比例綜合得到總成績,可以等級表示,也可以用分?jǐn)?shù)反映。
在課堂實(shí)驗(yàn)實(shí)訓(xùn)階段,可以由任課老師根據(jù)每一次操作任務(wù)的完成情況進(jìn)行登記評分,重點(diǎn)考察其規(guī)范程度,對于具有創(chuàng)新性的作品,可以適當(dāng)加分,并在全班展示,讓設(shè)計(jì)者講解思路,為其它同學(xué)提供啟示。
課程設(shè)計(jì)階段的考核由指導(dǎo)老師和項(xiàng)目組長組織學(xué)生共同進(jìn)行,首先由組長匯報(bào)課題的設(shè)計(jì)思想、主要技術(shù)、任務(wù)分工等情況,并演示軟件,大家可以相互提問。老師根據(jù)項(xiàng)目完成效果確定這個(gè)組的等級,然后由各位成員介紹自己所設(shè)計(jì)的模塊,老師重點(diǎn)檢查此模塊的功能、難易程度、技術(shù)含量、界面美觀等因素,再確定其成績或者等級,這時(shí)還要充分考慮組長對成員在設(shè)計(jì)階段各方面的綜合表現(xiàn)。
項(xiàng)目實(shí)踐階段的考核由校外指導(dǎo)老師和校內(nèi)老師組成考核小組,利用項(xiàng)目匯報(bào)加平時(shí)表現(xiàn)的形式評定,既要考察項(xiàng)目的完成情況,也要考察各位學(xué)生在企業(yè)實(shí)習(xí)期間的領(lǐng)悟能力、工作主動(dòng)性、團(tuán)隊(duì)合作情況、算法的復(fù)雜性、程序的規(guī)范性等方面,其主要依據(jù)是提交的軟件(包括源代碼)以及各種文檔。
實(shí)際上,對于實(shí)踐性教學(xué)的考核可以采用靈活的方式進(jìn)行,不拘一格,比如聘請行業(yè)專家、現(xiàn)場答辯、隨機(jī)抽題、項(xiàng)目論文等形式,只要能夠檢查學(xué)生的真實(shí)技能即可。
4我們的實(shí)踐
我們學(xué)校十分重視實(shí)踐性教學(xué),長期堅(jiān)持強(qiáng)化學(xué)生的動(dòng)手操作能力和實(shí)戰(zhàn)水平、力爭與企業(yè)零距離接軌的做法。為了提高程序設(shè)計(jì)類課程的實(shí)踐性教學(xué)效果,主要采取了以下措施:
4.1嚴(yán)把教師關(guān)
教師是實(shí)踐性教學(xué)效果的基本保證,學(xué)生的水平在一定程度上反映了教師的水平,既具有扎實(shí)的理論功底,也擁有豐富的項(xiàng)目經(jīng)驗(yàn)是優(yōu)秀教師的標(biāo)準(zhǔn)。一方面,我們積極將已有教師定期送到企業(yè)實(shí)地參加項(xiàng)目開發(fā)實(shí)踐,積累經(jīng)驗(yàn),另一方面,不斷從軟件企業(yè)引進(jìn)專業(yè)技術(shù)人才,將他們的成功案例帶回學(xué)校,同時(shí),每年組織專業(yè)教師進(jìn)行實(shí)踐性教學(xué)能力考核,通過考核者才能承擔(dān)課程設(shè)計(jì)和項(xiàng)目實(shí)踐的教學(xué)任務(wù),并頻發(fā)相應(yīng)證書,作為教師晉升職稱和評先評優(yōu)的重要指標(biāo)。
4.2實(shí)踐性教學(xué)環(huán)節(jié)流程化
改革原來的學(xué)期一貫制,將一個(gè)學(xué)期分為兩個(gè)階段,前一階段以學(xué)習(xí)基礎(chǔ)理論為主,隨堂考試,在學(xué)期的最后幾個(gè)禮拜專門安排做課程設(shè)計(jì),一般開設(shè)兩門小課,專心實(shí)踐,在項(xiàng)目指導(dǎo)老師的統(tǒng)一安排下
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年安康貨運(yùn)從業(yè)資格證考試試題及答案
- 2024年牛肉供貨商協(xié)議范本3篇
- 2025年石家莊貨運(yùn)從業(yè)資格考試題目大全及答案
- 2025年赤峰貨運(yùn)從業(yè)資格證試題及答案
- 2024年度文化娛樂項(xiàng)目擔(dān)保終止協(xié)議模板下載3篇
- 2024年度新能源車輛產(chǎn)業(yè)授信合同擔(dān)保與綠色出行3篇
- 2025年房地產(chǎn)合同協(xié)議書范本
- 2024年獨(dú)立合同工服務(wù)合同版B版
- 2024年塔吊租賃合同及設(shè)備檢測與維修服務(wù)3篇
- 2025進(jìn)口貨物合同模板
- 產(chǎn)品研發(fā)合伙人合作協(xié)議書
- 各地最 新作文展播40之13 話題:“超越他人與超越自我”( 高三第二次聯(lián)合測評)
- 部編版二年級語文上冊第二單元復(fù)習(xí)課件
- 2024年度貨物運(yùn)輸安全管理協(xié)議范例版B版
- 肝硬化腹水的治療原則
- 2023-2024學(xué)年廣東省深圳市寶安區(qū)五年級(上)期末英語試卷
- 高壓輸電線路質(zhì)量、檢查、驗(yàn)收培訓(xùn)課件
- Unit 6 Meet my family 說課(說課稿)-2024-2025學(xué)年人教PEP版英語四年級上冊
- 地 理知識(shí)點(diǎn)-2024-2025學(xué)年七年級地理上學(xué)期(人教版2024)
- 媒介思維與媒介批評智慧樹知到期末考試答案章節(jié)答案2024年四川音樂學(xué)院
- 中國畫創(chuàng)作智慧樹知到期末考試答案章節(jié)答案2024年湖北科技學(xué)院
評論
0/150
提交評論