07-28
2020
基于MCAPI的多核軟件開發(fā)方法隨著技術(shù)的進(jìn)步,電子產(chǎn)品更新?lián)Q代的速度越來越快。單純提高主頻來提升系統(tǒng)性能的方式已經(jīng)接近瓶頸,而使用多片處理器搭建系統(tǒng)又不符合產(chǎn)品的小型化要求。傳統(tǒng)的單核處理器已經(jīng)不能滿足日益增長的性能需求,能夠完成并行任務(wù)處理的多核處理器應(yīng)運而生?,F(xiàn)代多核處理器主要依靠增加核數(shù)而不是頻率來提升性能,同時芯片的高集成度也帶來了資源調(diào)度和功耗等問題。隨著多核處理器并行度的增加,各類同構(gòu)、異構(gòu)多核處理器的出現(xiàn)使得軟件開發(fā)面臨著巨大的挑戰(zhàn)。如何在多核上高效地實現(xiàn)算法,如何合理地分配資源都是需要解決的問題。一、多核DSP器件簡介TMS320C6678是德州儀器公司(Texas Instruments,TI)在2010年推出的一款經(jīng)典的同構(gòu)多核數(shù)字信號處理器(Digital Signal Processor,DSP),包含8個DSP內(nèi)核,每個核在1.4GHz的最高工作頻率下性能可達(dá)到22.4G每秒浮點運算次數(shù)(FLoating—point Operations Per Second,F(xiàn)LOPS),支持Hyperlink等多種高速接口,可廣泛用于移動通信、醫(yī)療電子、高性能計算等領(lǐng)域。核間通信(InterP rocessor Communication,IPC)以及核與外設(shè)的通信是多核軟件開發(fā)的關(guān)鍵所在。針對這一需求,德州儀器公司在其新一代Keystone架構(gòu)的處理器上提供了多核導(dǎo)航器,包括硬件隊列管理器和基于包的直接存儲訪問(Direct Memory Address,DMA),以實現(xiàn)核間高速數(shù)據(jù)傳輸。使用多核導(dǎo)航器進(jìn)行核問通信,可以通過軟件對相應(yīng)的控制寄存器進(jìn)行讀寫和查詢實現(xiàn),也可通過內(nèi)部硬件進(jìn)行事件觸發(fā)實現(xiàn),這種方式可大大簡化核間通信處理,但是仍存在缺點。一旦軟件拓?fù)浣Y(jié)構(gòu)發(fā)生改變,或者需要調(diào)整核的運算負(fù)載來提升系統(tǒng)性能時,這部分工作量很大,而且應(yīng)用受限于廠商。二、多核通信應(yīng)用程序接口概述多核通信應(yīng)用程序接口MCAPI(Muhicore Communications Application Program Interface)是由多核聯(lián)盟提出的基于消息傳遞的輕量級應(yīng)用程序接口標(biāo)準(zhǔn),特別適用于嵌人式系統(tǒng)處理器核間通信和同步。MCAPI的應(yīng)用不受處理器核的數(shù)目、處理器架構(gòu)以及操作系統(tǒng)的限制,并且提供了源碼級的兼容性支持,可擴(kuò)展性很強(qiáng)。相對于普通的多片處理器間通信來說,多核處理器的核間通信普遍要求低延遲、高帶寬。大部分多核處理器都包含片上存儲器或高速緩存(cache)。為了避免出現(xiàn)計算瓶頸,核間通信需要減少不必要的存儲器訪問。MCAPI中定義了域(domain)、節(jié)點(node)、端點(end.point)、通道(channe1)等關(guān)鍵概念。域是依賴于具體實現(xiàn)的,既可以是具有多個處理器核的單個芯片,也可以是板上的多個處理器。節(jié)點可以是線程、處理器或硬件加速器等,通??捎锰幚砥骱俗鳛楣?jié)點。端點是類似于套接字的通信點,一個節(jié)點通常包括多個端點。通道提供了一對端點之間的點到點的先人先出First In First Out,F(xiàn)IFO)存儲器用于通信,方向為單向的。此外,MCAPI定義了3種通信基本類型:消息、包通道和標(biāo)量通道。消息是最常用的通信類型,提供了端點之間收發(fā)數(shù)據(jù)的機(jī)制,支持優(yōu)先級動態(tài)調(diào)整,可用于同步、初始化和負(fù)載平衡。包通道和標(biāo)量通道提供了輕量級的流通信機(jī)制,相應(yīng)的程序開銷很小。三、基于Poly—Platform工具的多核軟件開發(fā)流程3.1Poly—Platform工具簡介Poly—Platform是Poly Core公司提供的針對多核軟件開發(fā)的集成開發(fā)工具套件,包含Poly-Mapper、Poly-Generator、Poly—Messenger/MCAPI、Poly—Templates等功能模塊。采用該工具進(jìn)行開發(fā)可以基于MCAPI標(biāo)準(zhǔn)建立應(yīng)用程序節(jié)點,利用用戶圖形界面(Graphical User Interfaces,GUI1向?qū)ё詣由纱a,在幾乎不修改源代碼的基礎(chǔ)上,實現(xiàn)應(yīng)用程序在同構(gòu)多核、異構(gòu)多核、多處理器等不同平臺上的靈活配置和擴(kuò)展,不受限于廠商,應(yīng)用前景廣闊。3.2多核軟件開發(fā)流程將Poly—Platform軟件使用插件方式集成到Eclipse軟件環(huán)境中后會在TI的Code Composer Studio開發(fā)環(huán)境下出現(xiàn)相應(yīng)的菜單和選項,即可進(jìn)行基于Poly—Platform的多核軟件開發(fā)。這里選擇TMS320C6678多核DSP器件進(jìn)行開發(fā),并且以8個DSP核之間依次相連并傳遞數(shù)據(jù)的環(huán)形拓?fù)浣Y(jié)構(gòu)為例描述開發(fā)流程。(1)建立拓?fù)浣Y(jié)構(gòu)。首先建立一個拓?fù)?Topology)工程,拓?fù)渲饕枋隽藨?yīng)用程序在(多核)平臺上的映射關(guān)系。借助Poly—Mapper工具在建立工程后生成的拓?fù)溆成湮募羞M(jìn)行屬性設(shè)置,選擇處理器類型,設(shè)置節(jié)點個數(shù)為8(對應(yīng)8個DSP核),名稱分別為N0一N7,操作系統(tǒng)為TI的DSP專用操作系統(tǒng)。然后在拓?fù)鋱D中繪制8個節(jié)點,并在每個節(jié)點中間繪制一條鏈路(1ink),得到環(huán)形結(jié)構(gòu)的8節(jié)點拓?fù)浣Y(jié)構(gòu)圖。(2)建立內(nèi)存映射文件并分配資源。建立內(nèi)存映射文件并分配若干個段(section1,設(shè)置其起始地址、大小、方向等參數(shù)。這些段分別用于內(nèi)存訪問區(qū)域(Memory Access Regions,MARs)和鏈路(1ink)。其中內(nèi)存訪問區(qū)域包括一些常用的資源池(poo1),如消息池、消息隊列池、數(shù)據(jù)池、等待池等,不同節(jié)點之間通過MARs共享資源可以提高資源利用效率,提升系統(tǒng)性能。(3)在拓?fù)浣Y(jié)構(gòu)圖中進(jìn)行內(nèi)存映射。針對每一個節(jié)點(N0一N7),設(shè)置其可訪問的內(nèi)存訪問區(qū)域。然后,還需要對內(nèi)存訪問區(qū)域包含的每一個資源池進(jìn)行參數(shù)設(shè)置,如起始地址等。同樣地,對鏈路也需要進(jìn)行參數(shù)設(shè)置。(4)建立節(jié)點工程。這里與常規(guī)的DSP開發(fā)流程基本一致,針對8個節(jié)點(對應(yīng)處理器核)分別建立節(jié)點工程,然后需要將這8個節(jié)點工程與第一步建立的拓?fù)涔こ探⒂成潢P(guān)系。(5)編寫初始化代碼和配置文件。首先利用Poly—Generator工具將拓?fù)浣Y(jié)構(gòu)圖轉(zhuǎn)化為基于拓?fù)涠x的C語言和相應(yīng)的頭文件,并存放到每個節(jié)點工程的工作目錄下。然后利用Polv—Template工具,按照軟件自帶的MCAPI模板,自動為每個節(jié)點工程生成節(jié)點初始化文件和硬件初始化文件。最后編寫TI專用的實時軟件組件Real Time Software Component,RTSC)配置文件和用于存儲器分配的連接器命令文件。(6)編寫每個節(jié)點工程的主函數(shù)。主函數(shù)主要內(nèi)容包括調(diào)用節(jié)點初始化函數(shù),硬件初始化函數(shù),以及節(jié)點之間消息收發(fā)的函數(shù)(基于MCAPI)等。這些都可以利用Poly—Template工具提供的模板快速完成。(7)編寫每個節(jié)點工程的應(yīng)用程序。將用戶的算法進(jìn)行代碼實現(xiàn)并加入節(jié)點工程,這一步與常規(guī)的DSP開發(fā)流程完全一致。(8)建立目標(biāo)配置文件和RTSC平臺。首先建立用于仿真調(diào)試的目標(biāo)配置文件,然后建立RTSC平臺用于硬件配置,并將其加入節(jié)點工程。這些都是TI專用的文件。(9)編譯、調(diào)試、運行。對每個節(jié)點工程進(jìn)行編譯、調(diào)試、運行,觀察程序運行結(jié)果。注意不要編譯拓?fù)涔こ獭?10)程序性能分析和優(yōu)化。借助Poly—inspector工具提供的交互式報告環(huán)境,可以對多核軟件實現(xiàn)進(jìn)行性能分析,方便用戶進(jìn)行程序優(yōu)化和調(diào)整。結(jié)論當(dāng)前計算環(huán)境變得越來越多元化,DSP、可編程邏輯器件(Field Programmable Gate Array,F(xiàn)PGA)、圖形處理器(Graphics Processing Unit,GPU)都具有較強(qiáng)的運算能力,并適用于不同的應(yīng)用場合。多核處理器是當(dāng)前的研究熱點,而高集成度的異構(gòu)多核處理器是未來的發(fā)展趨勢?;诙嗪说能浖_發(fā)始終是一個難點,給軟件開發(fā)人員帶來了巨大的挑戰(zhàn)。本文提出的基于MCAPI的多核軟件開發(fā)方法可應(yīng)用于同構(gòu)多核、異構(gòu)多核以及多處理器平臺,通用性較強(qiáng),不受廠商、處理器、操作系統(tǒng)的限制,可幫助用戶簡化軟件設(shè)計和優(yōu)化過程中的拓?fù)湓O(shè)計、運算負(fù)載平衡以及核間通信和資源分配等工作,顯著地提升開發(fā)效率。以上就是我們深圳市組創(chuàng)微電子有限公司為您介紹的基于MCAPI的多核軟件開發(fā)方法。如果您有智能電子產(chǎn)品的軟硬件功能開發(fā)需求,可以放心交給我們,我們有豐富的電子產(chǎn)品定制開發(fā)經(jīng)驗,可以盡快評估開發(fā)周期與IC價格,也可以核算PCBA報價。我們是多家國內(nèi)外芯片代理商:松翰、應(yīng)廣、杰理、安凱、全志、realtek,有MCU、語音IC、藍(lán)牙IC與模塊、wifi模塊。我們的擁有硬件設(shè)計與軟件開發(fā)能力。涵蓋了電路設(shè)計、PCB設(shè)計、單片機(jī)開發(fā)、軟件定制開發(fā)、APP定制開發(fā)、微信公眾號開發(fā)、語音識別技術(shù)、藍(lán)牙wifi開發(fā)等。還可以承接智能電子產(chǎn)品研發(fā)、家用電器方案設(shè)計、美容儀器開發(fā)、物聯(lián)網(wǎng)應(yīng)用開發(fā)、智能家居方案設(shè)計、TWS耳機(jī)開發(fā)、藍(lán)牙耳機(jī)音箱開發(fā)、兒童玩具方案開發(fā)、電子教育產(chǎn)品研發(fā)。
07-27
2020
軟件開發(fā)中的三層架構(gòu)技術(shù)分析三層架構(gòu)技術(shù),其實就相當(dāng)于在客戶端與數(shù)據(jù)庫端之問加了一個“中間層”,也可以稱之為組件層。這個“中間層”,并不是實際物理意義上的中間層,而指的是邏輯上的中間層,把應(yīng)用程序中的業(yè)務(wù)規(guī)則、數(shù)據(jù)訪問、合法性校驗等工作放到了中間層進(jìn)行處理,客戶端不再直接與數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交互,而是通過中間層來建立連接,再由中間層和數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的交互,最終實現(xiàn)客戶端和數(shù)據(jù)庫端的數(shù)據(jù)的交互。三層架構(gòu)軟件技術(shù)的規(guī)則在軟件開發(fā)的三層架構(gòu)技術(shù)中,第四層數(shù)據(jù)實體層是基本的數(shù)據(jù)源,是必不可少的一層,是軟件操作的基礎(chǔ),它的運算效果取決于計算機(jī)的硬件和數(shù)據(jù)庫設(shè)計的合理性。而對于另外三層,并不是只要項目被劃分成了表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層就稱之為三層架構(gòu),這三層之間還必須要遵守一些約定的規(guī)則:(1)表示層僅僅只是一個和用戶進(jìn)行對接的界面,因而可以將其任意移植到其他類似環(huán)境的項目中。(2)數(shù)據(jù)實體層只能通過數(shù)據(jù)訪問層進(jìn)行數(shù)據(jù)讀取,其他層都不能夠直接從數(shù)據(jù)實體層中讀取數(shù)據(jù)。(3)數(shù)據(jù)訪問層只能作為一個對數(shù)據(jù)庫實體的讀取中間層,而不能進(jìn)行任何業(yè)務(wù)邏輯的處理操作。(4)軟件設(shè)計應(yīng)該以業(yè)務(wù)邏輯層為核心,而不是數(shù)據(jù)訪問層或是數(shù)據(jù)實體層,更不應(yīng)該是表示層。在業(yè)務(wù)邏輯層應(yīng)該以面向?qū)ο蟮姆绞?,實現(xiàn)所有的有業(yè)務(wù)邏輯操作。(5)數(shù)據(jù)層中所有的數(shù)據(jù)都應(yīng)該在一定的抽象程度上做到與系統(tǒng)無關(guān)。(6)設(shè)計的時候,所有的遠(yuǎn)程對象技術(shù)都應(yīng)該考慮到不同的服務(wù)器和多臺服務(wù)器之間的負(fù)載均衡作集群。(7)這3個模塊中的任意模塊都可以運行在不同的服務(wù)器上。一個項目是否需要進(jìn)行三層設(shè)計,首先要看這個項目的復(fù)雜度。實際上,很多項目只需要編輯一個W e bAp plicatio n就足夠?qū)崿F(xiàn)全部功能了,根本不需要更復(fù)雜的技術(shù),而只有真正復(fù)雜的項目,才需要利用三層架構(gòu)技術(shù)進(jìn)行設(shè)計和開發(fā)。三層架構(gòu)技術(shù)的優(yōu)勢通過對三層架構(gòu)技術(shù)的工作原理的理解,我們可以得到通過三層架構(gòu)技術(shù)開發(fā)出來的軟件的優(yōu)點。(1)結(jié)構(gòu)清晰,耦合度低。三層架構(gòu)技術(shù)中層次分明,層與層之間結(jié)構(gòu)清晰,軟件編寫人員分工明確,層與層之間的關(guān)聯(lián)不多,降低層與層之間的依賴性,編寫人員可以只關(guān)注整個結(jié)構(gòu)中的某一層,從而極大地避免了二層技術(shù)開發(fā)的軟件中存在的耦合度問題。(2)可維護(hù)性高,可擴(kuò)展性高。用三層架構(gòu)技術(shù)開發(fā)的軟件在后期維護(hù)的時候,極大地降低了維護(hù)成本和維護(hù)時間。軟件的任意一部分的功能更改和升級,僅需更改某層的設(shè)計和編寫,而不需要對整個系統(tǒng)做出改變,而不像用二層技術(shù)開發(fā)的軟件那樣,一個小程序的變化都需要調(diào)整整個軟件開發(fā),極大地提高了軟件的維護(hù)性和擴(kuò)展陛。(3)利于開發(fā)任務(wù)同步進(jìn)行,容易適應(yīng)需求變化。三層架構(gòu)技術(shù)極大地解決了軟件開發(fā)的問題,特別是大型軟件開發(fā)的問題,讓軟件開發(fā)實現(xiàn)任務(wù)的同步。在二層技術(shù)開發(fā)軟件時,由于僅有2個端點,故軟件開發(fā)時就存在一個編程的先后,必須由一個團(tuán)隊對整個軟件流程十分清楚,并從始至終編寫所有環(huán)節(jié)的程序。而三層架構(gòu)技術(shù)把軟件分成4個層次,而且層與層之間關(guān)聯(lián)不大,故可以將軟件分成4個不同層次進(jìn)行同步開發(fā),實現(xiàn)任務(wù)的同步,從而大大縮短了軟件開發(fā)的時間,更容易適應(yīng)需求的變化。軟件三層架構(gòu)技術(shù)的缺點(1)降低了整個系統(tǒng)的讀取數(shù)據(jù)的速度。在二層技術(shù)結(jié)構(gòu)中,大部分?jǐn)?shù)據(jù)的讀取是通過客戶端直接造訪數(shù)據(jù)庫而得到的結(jié)果,而三層架構(gòu)技術(shù)卻必須經(jīng)1/4個層次的完整過程才能得到最終結(jié)果,無形中增加了中間環(huán)節(jié),從而降低了系統(tǒng)的性能。(2)有時會導(dǎo)致關(guān)聯(lián)層次的修改。由于三層架構(gòu)技術(shù)中層與層之間存在邏輯關(guān)系,當(dāng)其中一個層次由于需要而發(fā)生功能的改變或增加時,很有可能導(dǎo)致其他層次的代碼改變。例如:當(dāng)表示層中增加了一個功能,為了保證其各層設(shè)計的結(jié)構(gòu)合理性,可能需要在對應(yīng)的業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層中都增加相應(yīng)的代碼,從而達(dá)到最終數(shù)據(jù)的一致性。(3)整體代碼編寫的工作量增加。由于三層架構(gòu)技術(shù)增加了層與層之間的接口,有些能夠直接使用的代碼現(xiàn)在不得不分開使用,無形中增加了代碼的編寫工作量。(4)增加了開發(fā)成本。原先一個整體的軟件開發(fā),現(xiàn)在首先必須將其分割成不同功能的層次,而且需要考慮層與層之間的連接接口,無形中增加了整個軟件開發(fā)的過程和工作量,從而增加了軟件開發(fā)的成本??偨Y(jié)總體而言,針對如今軟件開發(fā)的日趨大型化、規(guī)模化的特點,三層架構(gòu)技術(shù)解決了很多二層架構(gòu)技術(shù)中無法解決的問題,從而真正實現(xiàn)了軟件開發(fā)的同步性、可維護(hù)性和可擴(kuò)展性,是軟件開發(fā)進(jìn)步的重要標(biāo)志。以上就是我們深圳市組創(chuàng)微電子有限公司為您介紹的軟件開發(fā)中的三層架構(gòu)技術(shù)分析。如果您有智能電子產(chǎn)品的軟硬件功能開發(fā)需求,可以放心交給我們,我們有豐富的電子產(chǎn)品定制開發(fā)經(jīng)驗,可以盡快評估開發(fā)周期與IC價格,也可以核算PCBA報價。我們是多家國內(nèi)外芯片代理商:松翰、應(yīng)廣、杰理、安凱、全志、realtek,有MCU、語音IC、藍(lán)牙IC與模塊、wifi模塊。我們的擁有硬件設(shè)計與軟件開發(fā)能力。涵蓋了電路設(shè)計、PCB設(shè)計、單片機(jī)開發(fā)、軟件定制開發(fā)、APP定制開發(fā)、微信公眾號開發(fā)、語音識別技術(shù)、藍(lán)牙wifi開發(fā)等。還可以承接智能電子產(chǎn)品研發(fā)、家用電器方案設(shè)計、美容儀器開發(fā)、物聯(lián)網(wǎng)應(yīng)用開發(fā)、智能家居方案設(shè)計、TWS耳機(jī)開發(fā)、藍(lán)牙耳機(jī)音箱開發(fā)、兒童玩具方案開發(fā)、電子教育產(chǎn)品研發(fā)。
07-26
2020
現(xiàn)今,計算機(jī)已經(jīng)成為人們?nèi)粘I畋夭豢缮俚奈锲贰kS著計算機(jī)技術(shù)的不斷發(fā)展,人們對軟件的要求越來越嚴(yán)格,對軟件的開發(fā)和安全性的關(guān)注度不斷加強(qiáng)。本文對計算機(jī)軟件開發(fā)與保護(hù)技術(shù)進(jìn)行總結(jié),希望引起大眾對計算機(jī)開發(fā)與軟件安全應(yīng)用的重視。一、計算機(jī)軟件開發(fā)的安全設(shè)計隨著科技水平的提高,市面上出現(xiàn)許多能夠直接應(yīng)用于程序,且設(shè)計成熟的安全性產(chǎn)品。安全功能產(chǎn)品不僅能提高整個計算機(jī)系統(tǒng)的統(tǒng)一性、整體性,而且還能構(gòu)建應(yīng)用程序模塊,提高原有安全產(chǎn)品的功能,增強(qiáng)安全性。比如,一般情況下,安全產(chǎn)品不會提供數(shù)字簽名的功能,但是通過安裝相關(guān)的應(yīng)用就能夠?qū)崿F(xiàn)該功能安全程序開發(fā)過程就是程序員將有效的安全服務(wù)模塊安裝在一起的過程。在軟件開發(fā)的過程中,技術(shù)部門要先調(diào)查開發(fā)相關(guān)需求,再通過計算機(jī)內(nèi)部建設(shè)構(gòu)建安全工程方面的內(nèi)部控制流程,總結(jié)流程特殊性及相應(yīng)的運行參數(shù),從而降低開發(fā)成本,提升開發(fā)效率。這種開發(fā)方案不僅能夠加強(qiáng)軟件各環(huán)節(jié)的安全性,而且還能提高系統(tǒng)的穩(wěn)定性、可靠性。應(yīng)用程序和文檔管理的保密工作關(guān)鍵在于是否能夠有效的進(jìn)行輸入輸出和處理控制,確保輸入輸出數(shù)據(jù)完整性、準(zhǔn)確性和安全性。進(jìn)行交易時,為避免出現(xiàn)錯誤,需要進(jìn)行數(shù)據(jù)傳輸及處理的程序控制,一旦發(fā)現(xiàn)程序出錯,程序會發(fā)出錯誤提示和修改意見。同時,應(yīng)加強(qiáng)對系統(tǒng)更正完整性、正確性的跟蹤和審計,務(wù)必達(dá)到開發(fā)程序符合業(yè)務(wù)需要的要求。如果設(shè)計時出現(xiàn)各模塊間產(chǎn)生矛盾或者密碼模式不充分的情況,導(dǎo)致安全需要不能全部實現(xiàn),則應(yīng)對其進(jìn)行取舍或選擇其他安全運行機(jī)制,努力滿足安全需求的可行性。二、計算機(jī)軟件保護(hù)技術(shù)分析計算機(jī)軟件保護(hù)技術(shù)開發(fā)的首要目的是預(yù)防、阻止不法商販對正版軟件的復(fù)制傳播,其主要包括以下兩個方面:一是以保護(hù)硬件為目的開發(fā)軟件保護(hù)技術(shù);二是以軟件開發(fā)為目的開發(fā)軟件保護(hù)技術(shù)。目前,軟件保護(hù)技術(shù)應(yīng)用范圍廣泛,包括應(yīng)用軟件、操作系統(tǒng)、驅(qū)動、網(wǎng)絡(luò)等領(lǐng)域。判定軟件保護(hù)技術(shù)及其產(chǎn)品的安全性需要進(jìn)行綜合評判,僅僅通過單一方面評價安全性是不可取的。2.1硬件層面(1)加密狗:加密狗是外形酷似u盤的一種硬件設(shè)備,正名加密鎖,后來發(fā)展成如今的一個軟件保護(hù)的通俗行業(yè)名詞,其是一種插在計算機(jī)并行口上的軟硬件結(jié)合的加密產(chǎn)品一般都有幾十或幾百字節(jié)的非易失性存儲空間可供讀寫,現(xiàn)在較新的狗內(nèi)部還包含了單片機(jī)。軟件開發(fā)者可以通過接口函數(shù)和軟件狗進(jìn)行數(shù)據(jù)交換,即對軟件狗進(jìn)行讀寫,來檢查軟件狗是否插在接口上;或者直接用軟件狗附帶的工具加密自己EXE文件。這樣,軟件開發(fā)者可以在軟件中設(shè)置多處軟件鎖,利用軟件狗做為鑰匙來打開這些鎖;如果沒插軟件狗或軟件狗不對應(yīng),軟件將不能正常執(zhí)行。雖然加密狗優(yōu)點較多,但是卻有便捷性較低、成本造價高的弊端,不能被大范圍推廣。(2)光盤、軟盤。軟盤、光盤均可通過在其存儲空間中隱藏密鑰的方式保護(hù)存入的電子信息此外,軟盤具有寫保護(hù)狀態(tài),可防止誤寫操作,也可避免病毒對它的侵害。在使用的時候最好將一些重要的軟盤(如程序安裝盤和數(shù)據(jù)備份盤)制成寫保護(hù)狀態(tài)。將寫保護(hù)按鈕推向里面蓋住軟盤左后角的孔,露出寫保護(hù)按鈕的方孔,軟盤即可處于書寫狀態(tài),軟盤可接受輸入記錄。一個軟盤可以記錄存儲多個文件,它同時也像錄音磁帶一樣可以重復(fù)使用。但是,光盤、軟盤保護(hù)具有兩個缺點:首先,如若光盤、軟盤遭到損壞,存儲在其中的電子信息將無法修復(fù)。其次,專業(yè)技術(shù)強(qiáng)的黑客很容易判斷密鑰的位置,破解后進(jìn)行盜版。2.2軟件層面(1)序列號:序列號保護(hù)是現(xiàn)今最流行的軟件保護(hù)方式,軟件通過驗證用戶名與序列號之間的換算關(guān)系,確保序列號的合法性。當(dāng)用戶購買軟件并下載到電腦上,如果想進(jìn)行安裝和正常使用,需要進(jìn)行軟件注冊。用戶將個人信息發(fā)送給軟件公司,注冊屬于自己獨有的私人賬號,軟件公司會提供給客戶一個具有唯一性的序列號??蛻舯仨殰?zhǔn)確輸入序列號,并且通過驗證才能使用軟件全部功能。這種方式的優(yōu)點是操作簡捷,成本低廉,容易推廣。(2)Nag窗口:軟件未注冊或軟件的試用版經(jīng)常會彈出一些提示要求注冊的窗口,這些窗口被稱為Nag窗口。Nag窗口在軟件試用期過后,很可能屏蔽軟件的正式窗口或某些具有重要功能的窗口,從而使軟件不能正常使用。同時,軟件可以控制Nag窗口的彈出時間和彈出次數(shù),但由于彈窗會給用戶帶來不佳的印象,因而使用的越來越少。(3)時間、功能限制:對軟件進(jìn)行時間限制的保護(hù)方式現(xiàn)在比較普遍,其包括兩類:一是進(jìn)行單次運行時間限制,超過限定時間數(shù)據(jù)自動停止軟件運行;二是進(jìn)行使用次數(shù)或期限的限制。對軟件功能進(jìn)行限制,就是對軟件中的模塊功能進(jìn)行處理,使用戶不能正常使用,目前此項限制的效果反饋較好。(4)反反匯編:反反匯編是一種較為綜合的軟件保護(hù)技術(shù),通過結(jié)合本文中提到的各種保護(hù)技術(shù)特點實施保護(hù),效果較為理想。此種技術(shù)現(xiàn)在主要用于防范Cracker的動態(tài)跟蹤與分析??偨Y(jié)現(xiàn)階段,計算機(jī)技術(shù)與網(wǎng)絡(luò)飛速發(fā)展,軟件、系統(tǒng)程序逐漸深入我們的工作和學(xué)習(xí)之中,以后甚至可能影響到我們的衣食住行,所以對計算機(jī)軟件的開發(fā)應(yīng)予以高度的重視。而相對的計算機(jī)信息安全也更會夠影響到我們正常的工作生活,因此對計算機(jī)軟件保護(hù)技術(shù)的研究刻不容緩。以上就是我們深圳市組創(chuàng)微電子有限公司為您介紹的計算機(jī)軟件開發(fā)與保護(hù)技術(shù)研究。如果您有智能電子產(chǎn)品的軟硬件功能開發(fā)需求,可以放心交給我們,我們有豐富的電子產(chǎn)品定制開發(fā)經(jīng)驗,可以盡快評估開發(fā)周期與IC價格,也可以核算PCBA報價。我們是多家國內(nèi)外芯片代理商:松翰、應(yīng)廣、杰理、安凱、全志、realtek,有MCU、語音IC、藍(lán)牙IC與模塊、wifi模塊。我們的擁有硬件設(shè)計與軟件開發(fā)能力。涵蓋了電路設(shè)計、PCB設(shè)計、單片機(jī)開發(fā)、軟件定制開發(fā)、APP定制開發(fā)、微信公眾號開發(fā)、語音識別技術(shù)、藍(lán)牙wifi開發(fā)等。還可以承接智能電子產(chǎn)品研發(fā)、家用電器方案設(shè)計、美容儀器開發(fā)、物聯(lián)網(wǎng)應(yīng)用開發(fā)、智能家居方案設(shè)計、TWS耳機(jī)開發(fā)、藍(lán)牙耳機(jī)音箱開發(fā)、兒童玩具方案開發(fā)、電子教育產(chǎn)品研發(fā)。
07-25
2020
小型應(yīng)用軟件快速開發(fā)方法研究計算機(jī)由硬件與軟件構(gòu)成,軟件是其核心,是完成計算機(jī)各種控制和操作的指令集合,硬件是保障計算機(jī)系統(tǒng)正常運行的各種元器件。軟件又分為系統(tǒng)軟件和應(yīng)用軟件,系統(tǒng)軟件是運行在計算機(jī)硬件上的基礎(chǔ)軟件,是其他應(yīng)用軟件運行的基礎(chǔ)平臺,而應(yīng)用軟件是為了滿足使用者對于計算機(jī)系統(tǒng)的不同需求而設(shè)計開發(fā)的具有專業(yè)性和較強(qiáng)應(yīng)用性的程序,其最大的特點就是其應(yīng)用性。軟件開發(fā)是一項特殊工作,其特殊性表現(xiàn)在工作內(nèi)容復(fù)雜且工作量大、開發(fā)時間緊張、需求不清晰、進(jìn)度難保證、錯誤難杜絕,而且軟件產(chǎn)品是一種邏輯產(chǎn)品,不具有實物特征,開發(fā)過程具有一定隱蔽性,因此,應(yīng)用軟件開發(fā)應(yīng)嚴(yán)格遵循軟件工程思想、建立一套嚴(yán)密的開發(fā)流程才能保證軟件產(chǎn)品滿足用戶需求。與大型應(yīng)用軟件開發(fā)相比,小型應(yīng)用軟件開發(fā)工作量較小、復(fù)雜度可控、只需完成特定功能、應(yīng)用范圍窄、功能針對性強(qiáng),小型應(yīng)用軟件只需少量開發(fā)人員或一人獨立開發(fā)就能完成。一、小型應(yīng)用軟件開發(fā)流程軟件的開發(fā)過程和技術(shù)是由軟件的性質(zhì)決定的。小型應(yīng)用軟件開發(fā)流程與大型應(yīng)用軟件開發(fā)流程基本類似,都應(yīng)遵循軟件工程思想,經(jīng)過需求分析、概要設(shè)計、詳細(xì)設(shè)計、編碼、內(nèi)部測試、軟件部署、用戶測試等環(huán)節(jié)才能上線使用。對大型應(yīng)用軟件開發(fā)而言,因其開發(fā)過程復(fù)雜、開發(fā)成本高,為確保開發(fā)的軟件符合用戶需求,大型應(yīng)用軟件開發(fā)的每個步驟都需要多人精心調(diào)研、策劃、論證、確認(rèn),形成相應(yīng)開發(fā)文檔,而小型應(yīng)用軟件開發(fā)相對來說復(fù)雜度較低、工作量較小,每一個開發(fā)環(huán)節(jié)要簡單并且可控,開發(fā)者對小型應(yīng)用軟件的全局和細(xì)節(jié)都能完全掌控,開發(fā)效率自然就有了很大提高,但開發(fā)過程中每一個環(huán)節(jié)都不能少。(如圖1)二、提高小型應(yīng)用軟件開發(fā)效率方法2.1提高軟件頁面開發(fā)效率方法在開發(fā)過程中,我們主要采用VS(Microsoft visual studio2008)集成開發(fā)工具,該開發(fā)工具既適合開發(fā)C/S結(jié)構(gòu)軟件,也可以開發(fā)B/S結(jié)構(gòu)軟件,但VS工具更適合服務(wù)端程序的開發(fā),在頁面開發(fā)效率上,VS不如Dreamweaver工具來得快。為了提高系統(tǒng)頁面開發(fā)效率,我們可以把同一個軟件頁面文件在VS和Dreamweaver中同時打開,并在Dreamweaver中對系統(tǒng)頁面進(jìn)行設(shè)計、修改,VS開發(fā)工具中會自動彈出該文件在其他地方已經(jīng)進(jìn)行修改,提示是否需要保存,我們在VS中保存該修改的文件,那么在Dreamweaver工具中設(shè)計的軟件頁面就能被VS開發(fā)工具識別、認(rèn)可。在Dreamweaver工具中完成軟件頁面設(shè)計,在VS開發(fā)工具中完成服務(wù)端程序開發(fā),我們將VS開發(fā)工具與Dreamweaver頁面設(shè)計工具兩者結(jié)合應(yīng)用,將大大提高軟件頁面開發(fā)效率,從而提高應(yīng)用軟件開發(fā)效率。2.2提高軟件開發(fā)代碼編寫效率方法代碼編寫是應(yīng)用軟件最終實現(xiàn)的基礎(chǔ)。在小型應(yīng)用軟件開發(fā)中,我們在代碼編寫時使用有規(guī)律的變量名稱,在控件命名時也使用有規(guī)律的名稱來命名控,這樣一方面容易查錯,避免變量使用的錯位、遺漏,另一方面可以對代碼有規(guī)律的修改,提高編寫效率。總結(jié)相較于人工操作而言,計算機(jī)的軟件處理能力具有更高的效率,其質(zhì)量也有了很大提高,能明顯降低出錯率。小型應(yīng)用軟件雖然規(guī)模小、應(yīng)用范圍窄,但它針對性強(qiáng),能解決特定問題,如年終考核測評、民主推薦等小型應(yīng)用軟件的應(yīng)用不僅能提高工作效率,同時也可以滿足公平、公正、保密等方面的要求,投入與產(chǎn)出比高。文中提成了兩種方法來提高小型應(yīng)用軟件的開發(fā)效率,首先是將VS開發(fā)工具與Dreamweaver頁面設(shè)計工具兩者結(jié)合應(yīng)用,將大大提高軟件頁面開發(fā)效率,其次,當(dāng)軟件系統(tǒng)中使用到大量同類型控件情況下,利用Excel軟件、記事本軟件來自動生成的代碼文本沒有錯誤,節(jié)省代碼編寫和檢測時間,從而提高了小型應(yīng)用軟件的開發(fā)效率。以上就是我們深圳市組創(chuàng)微電子有限公司為您介紹的小型應(yīng)用軟件快速開發(fā)方法詳情。如果您有智能電子產(chǎn)品的軟硬件功能開發(fā)需求,可以放心交給我們,我們有豐富的電子產(chǎn)品定制開發(fā)經(jīng)驗,可以盡快評估開發(fā)周期與IC價格,也可以核算PCBA報價。我們是多家國內(nèi)外芯片代理商:松翰、應(yīng)廣、杰理、安凱、全志、realtek,有MCU、語音IC、藍(lán)牙IC與模塊、wifi模塊。我們的擁有硬件設(shè)計與軟件開發(fā)能力。涵蓋了電路設(shè)計、PCB設(shè)計、單片機(jī)開發(fā)、軟件定制開發(fā)、APP定制開發(fā)、微信公眾號開發(fā)、語音識別技術(shù)、藍(lán)牙wifi開發(fā)等。還可以承接智能電子產(chǎn)品研發(fā)、家用電器方案設(shè)計、美容儀器開發(fā)、物聯(lián)網(wǎng)應(yīng)用開發(fā)、智能家居方案設(shè)計、TWS耳機(jī)開發(fā)、藍(lán)牙耳機(jī)音箱開發(fā)、兒童玩具方案開發(fā)、電子教育產(chǎn)品研發(fā)。
07-24
2020
微信官方給出的小程序的解釋是:“小程序是不需要下載安裝便可以使用的應(yīng)用,它實現(xiàn)了應(yīng)用觸手可及的夢想,用戶掃一掃或搜一下即可打開應(yīng)用,也體現(xiàn)了用完即走的理念,用戶不用關(guān)心是否安裝太多應(yīng)用的問題,應(yīng)用將無處不在,隨時可用,但又無需安裝卸載。”微信小程序自2017年1月9日正式上線以來,就引起廣泛關(guān)注。微信團(tuán)隊也不停地對小程序進(jìn)行更新。微信小程序的優(yōu)勢十分明顯,小程序觸及了PC網(wǎng)頁,公眾號,H5,APP無法觸及的地方,其無需安裝,用完即走的理念能夠滿足用戶需求且節(jié)省手機(jī)內(nèi)存。站在小程序的擁有者的立場,其開發(fā)成本大大減小,同時可借助微信強(qiáng)大的流量入口,因而也降低了推廣的難度。總的來說,微信小程序是一種全新的方式,能夠更好地在用戶和服務(wù)中建立連接,并且可以在微信中便捷地獲取和傳播,具有不錯的使用體驗。一、小程序開發(fā)前準(zhǔn)備小程序采用了類似React Native和Weex一樣的解析技術(shù),開發(fā)者可以編寫一套程序在多種客戶端運行,同時,相比于公眾號、微商城具有更好的原生體驗。全面開放申請以后,作為企業(yè)、政府、媒體、其他組織或者個人的開發(fā)者,都可以申請并注冊小程序。小程序和微信的訂閱號、服務(wù)號以及企業(yè)號是并行的體系,具有獨立的注冊以及發(fā)布流程。1、小程序接入流程小程序的接入主要有4個步驟。(1)小程序注冊:在微信公眾平臺官網(wǎng)首頁(mp.weixin.qq.com)注冊并提交注冊信息、完善主體信息和管理員信息。(2)完善小程序信息:完善小程序的基本信息如名稱、頭像及服務(wù)范圍等。開發(fā)前需綁定開發(fā)者并獲取APP ID,以保證程序可以通過手機(jī)進(jìn)行掃碼測試。(3)開發(fā)小程序:下載安裝微信開發(fā)者工具,微信官方提供了一套完整的開發(fā)框架,開發(fā)者可以根據(jù)微信開發(fā)文檔進(jìn)行小程序的開發(fā)與調(diào)試。(4)代碼審核及發(fā)布:小程序開發(fā)完成后,不能夠直接發(fā)布,需提交代碼與開發(fā)配置信息提交審核,完成后尚可發(fā)布。2、微信Web開發(fā)者工具官方公布的微信開發(fā)工具名為微信Web開發(fā)者工具,小程序前端開發(fā)框架是微信官方提供的框架。微信Web開發(fā)工具是一種基于Native System系統(tǒng)層的框架,由于并不是運行在瀏覽器中,所以JavaScript在Web中的一些諸如Document,Window等方法均不可使用,以往HTML5在加載的時候在網(wǎng)絡(luò)環(huán)境會有所限制,需要逐步加載HTML,CSS,JS,然后返回數(shù)據(jù),最后渲染頁面展現(xiàn)在瀏覽器中。用戶總是需要等待很久,這樣使得用戶體驗感大大降低。相比之下,小程序的兩個線程:Appservice Thread和ViewThread會同時進(jìn)行、并行加載,甚至Appservice Thread會更早執(zhí)行,當(dāng)視圖線程加載完,通知Appservice,Appservice會把準(zhǔn)備好的數(shù)據(jù)用setData的方法返回給視圖線程。小程序的這種優(yōu)化策略,可以減少用戶的等待時間,加快小程序的響應(yīng)速度。微信Web開發(fā)者工具區(qū)別于H5的開發(fā)工具+瀏覽器Device Mode預(yù)覽的模式,而是基于自己的開發(fā)者工具,可以實現(xiàn)同步本地文件+開發(fā)調(diào)試+編譯預(yù)覽+上傳+發(fā)布等一整套流程。同時小程序自己開發(fā)了一套WXML標(biāo)簽語言和WXSS樣式語言,并非直接使用標(biāo)準(zhǔn)的HTML5+CSS3。同時提供了很多原生APP的組件,之前在HTML5中需要模擬才能實現(xiàn)的功能,在小程序中可以直接調(diào)用組件來實現(xiàn)。二、小程序的結(jié)構(gòu)及其核心技術(shù)1、小程序的文件結(jié)構(gòu)使用微信Web開發(fā)工具新建一個項目,框架會自動生成描述整體程序的APP和多個描述頁面的page文件。完整的小程序主要組成有:一個入口文件:app.js;一個全局樣式:app.wxss;一個全局配置:app.json;在頁面pages下將頁面安裝文件夾劃分,每個頁面存在4個文件,分別是:視圖層:wxml文件、wxss文件;邏輯層:js文件、json文件(頁面配置,不是必須)。(1)app.js是控制小程序邏輯的腳本文件,app.json是小程序的配置文件,負(fù)責(zé)對小程序的全局配置。app.wxss是全局樣式表,作用范圍是項目的每一個頁面。(2)wxml是一種類似xml格式的語言,具有數(shù)據(jù)綁定、條件渲染、列表渲染、自定義模板、事件回調(diào)和外部引用等功能。page.wxml主要通過使用基礎(chǔ)組件構(gòu)建頁面結(jié)構(gòu)。wxss和css格式的語言有相同之處,用于描述wxml的組件樣式,page.wxss的優(yōu)先級比app.json的Window高。同時,微信為小程序新增了尺寸單位rpx,rpx可以根據(jù)屏幕寬度進(jìn)行自適應(yīng),rpx實際上就是系統(tǒng)級的rem(把頁面按比例分割750份,1rpx=innerWidth/750)。page.json可以對獨立定義的頁面進(jìn)行一些屬性的設(shè)置,以滿足實際需要。config.json可以設(shè)置一些個性化配置,當(dāng)重新安裝工具或者換一臺電腦時,只要導(dǎo)入相同的代碼包,開發(fā)工具就會自動恢復(fù)到開發(fā)這個項目時的個性化設(shè)置。JS文件主要用于用戶交互、響應(yīng)用戶點擊等。在小程序中,通過JS腳本來響應(yīng)用戶操作。2、小程序的框架微信小程序的開發(fā)是基于框架的,從軟件設(shè)計角度來說,框架是一個可復(fù)用的軟件架構(gòu)解決方案,規(guī)定了應(yīng)用的體系結(jié)構(gòu),闡明軟件體系結(jié)構(gòu)中各層次間及其層次內(nèi)部各組件間的毅力關(guān)系,責(zé)任分配和控制流程,表現(xiàn)為一組接口、抽象類以及實例間協(xié)作的方法,是指對某一指定應(yīng)用領(lǐng)域中的應(yīng)用系統(tǒng)的部分設(shè)計與實現(xiàn)子系統(tǒng)的整體結(jié)構(gòu)。小程序開發(fā)框架的核心是一個響應(yīng)的數(shù)據(jù)綁定系統(tǒng)。分為視圖層(View)和邏輯層(APP Service),小程序開發(fā)工具提供了視圖層描述語言WXML和WXSS,以及基于JavaScript的邏輯層框架,并在視圖層與邏輯層間設(shè)置了數(shù)據(jù)傳輸和事件系統(tǒng),使得開發(fā)者能夠很簡單地將重心放在數(shù)據(jù)與邏輯上。處理事務(wù)邏輯的地方被稱為邏輯層。在微信小程序中,所有.js腳本文件的集合構(gòu)成邏輯層。邏輯層與視圖層相互配合,完成數(shù)據(jù)處理及接收事件反饋??蚣艿囊晥D層由WXML與WXSS編寫,通過組件進(jìn)行展現(xiàn)。對于小程序本身,.wxml文件與.wxss文件的集合構(gòu)成了視圖層,邏輯層處理數(shù)據(jù)之后,會發(fā)送給視圖層用于與用戶的交互,同時接收用戶對視圖層的反饋。視圖層以給定的樣式展現(xiàn)數(shù)據(jù)并反饋事件給邏輯層,數(shù)據(jù)展現(xiàn)是通過組件來進(jìn)行的。視圖的基本構(gòu)成是組件。3、小程序的相關(guān)組件微信提供了一系列基本組件,可以通過使用這些基本組件組合形成來進(jìn)行小程序的開發(fā)。這里說明幾個比較有特點的組件。(1)<view/>和html5中的<div/>類似,是布局中最基本的一個組件,任何一種復(fù)雜的布局都可以通過嵌套<view/>組件來實現(xiàn),<view/>是一個塊級容器組件,默認(rèn)display:block,它是盒模型,在布局過程中一般推薦display:flx的寫法。(2)<textarea/>是多行輸入框,與HTML中不同的是,它的值需要賦值給value屬性,而不是被標(biāo)簽包裹,是一個自閉合標(biāo)簽,css動畫對<textarea/>組件無效。(3)<navigator/>是頁面鏈接,和HTML中超鏈接標(biāo)簽<a/>一樣,主要進(jìn)行頁面跳轉(zhuǎn)控制。鏈接的內(nèi)容可以是一個字、詞或者一幅圖片,通過點擊內(nèi)容實現(xiàn)頁面的跳轉(zhuǎn)。(4)<canvas/>主要用于繪制圖形,其本身是一塊無色透明區(qū)域,并沒有繪制的能力,僅僅是圖形容器,需要調(diào)節(jié)相關(guān)的應(yīng)用程序編程接口(Application ProgrammingInterface,API)來完成實際的繪圖任務(wù)。4、小程序的API及其配置(1)域名配置:根據(jù)小程序提供的組件,開發(fā)者可以根據(jù)需要設(shè)計UI界面,然而小程序的一些功能就要依賴框架提供的API來實現(xiàn)。在使用API時,首先要對小程序進(jìn)行服務(wù)器域名的配置,每個小程序都需要設(shè)定通信的域名,小程序可以跟指定的域名進(jìn)行網(wǎng)絡(luò)通信。目前支持的有HTTPS(request)、上傳文件(uploadFile)、下載文件(downloadFile)和WebSocket通信。(2)常用API:1)wx.request(Object):實現(xiàn)小程序與開發(fā)者的服務(wù)器實現(xiàn)數(shù)據(jù)交互。request方法的作用是發(fā)起HTTPS請求,在小程序中,只能使用HTTPS請求而不能使用HTTP請求,一個微信小程序同時只能有5個網(wǎng)絡(luò)請求連接。2)WebSocket:request方法是通過客戶端主動向服務(wù)器發(fā)起請求,而服務(wù)器端響應(yīng)返回數(shù)據(jù)來實現(xiàn)通信的目的。這種方法存在缺點,那就是服務(wù)器不能主動向客戶端發(fā)送消息。因此要實現(xiàn)服務(wù)器和客戶端之間的即時通信只能采用輪詢的方法,而且request的Header是十分長的,為了傳輸一個很小的數(shù)據(jù)會占用很多的寬帶。針對這種情況,開發(fā)者可以通過小程序提供的WebSocket相關(guān)API創(chuàng)建WebSocket,WebSocket只需要服務(wù)器和瀏覽器通過HTTP協(xié)議進(jìn)行一個握手的動作后單獨建立一條傳輸控制協(xié)議(TransmissionControl Protocol,TCP)的通信通道就可以進(jìn)行數(shù)據(jù)的傳送,實現(xiàn)長連接以達(dá)到通信的目的。三、小程序設(shè)計的項目發(fā)布1、小程序發(fā)布流程項目開發(fā)完成后,管理員需手動打包上傳代碼,填寫相關(guān)配置類目并將代碼提交審核,若第一次審核未通過,再次提交審核將開放提供測試的入口,該入口由開發(fā)者提供,用于微信審核人員審核微信小程序時登錄。審核后手動發(fā)布即可。2、小程序上傳原理管理員手動將代碼打包上傳是怎樣實現(xiàn)的呢?編輯器本身是基于Web技術(shù)體系實現(xiàn)的。簡單是說就是node+webkit,node提供給我們本地api的能力,而webkit提供給我們Web的能力,兩者結(jié)合之后便可以使用JS+HTML實現(xiàn)本地應(yīng)用程序。既然有nodejs,那打包選項里的功能就好實現(xiàn)了。其中ES6轉(zhuǎn)ES5就是引入babel-core的node包,CSS補(bǔ)全是引入postcss和autoprefixer的node包,代碼壓縮則是引入uglifyjs的node包。結(jié)語微信小程序站在月活躍用戶9億人次的微信的肩膀上,自帶流量趨勢,入口多,功能簡單便捷。小程序功能快速迭代,意味著圍繞小程序的開發(fā)和生態(tài)工具建設(shè)將會是移動互聯(lián)網(wǎng)的一個巨大機(jī)會。目前各行業(yè)內(nèi)諸多企業(yè)單位紛紛加入了小程序開發(fā),開通了小程序功能。雖然前段時間不少聲音都不看好小程序,但小程序進(jìn)行優(yōu)化后,開放了很多入口,使得開發(fā)者和用戶關(guān)注度不斷提升??v使一些高頻和復(fù)雜應(yīng)用暫時無法被小程序取代,但是一些低頻應(yīng)用的主要功能,只要能在小程序上實現(xiàn),APP就可以完全卸載了??偟膩碚f,微信小程序目前發(fā)展空間甚好,至于以后未來的發(fā)展仍舊不能夠準(zhǔn)確預(yù)測。以上就是我們深圳市組創(chuàng)微電子有限公司為您介紹的微信小程序開發(fā)技術(shù)詳情。如果您有智能電子產(chǎn)品的軟硬件功能開發(fā)需求,可以放心交給我們,我們有豐富的電子產(chǎn)品定制開發(fā)經(jīng)驗,可以盡快評估開發(fā)周期與IC價格,也可以核算PCBA報價。我們是多家國內(nèi)外芯片代理商,有MCU、語音IC、藍(lán)牙IC與模塊、wifi模塊。我們的擁有硬件設(shè)計與軟件開發(fā)能力。涵蓋了電路設(shè)計、PCB設(shè)計、單片機(jī)開發(fā)、軟件定制開發(fā)、APP定制開發(fā)、微信公眾號開發(fā)、語音識別技術(shù)、藍(lán)牙wifi開發(fā)等。還可以承接智能電子產(chǎn)品研發(fā)、家用電器方案設(shè)計、美容儀器開發(fā)、物聯(lián)網(wǎng)應(yīng)用開發(fā)、智能家居方案設(shè)計、TWS方案開發(fā)、藍(lán)牙音頻開發(fā)、兒童玩具方案開發(fā)、電子教育產(chǎn)品研發(fā)。
07-23
2020
基于HTML5的Web前端APP開發(fā)伴隨著互聯(lián)網(wǎng)信息技術(shù)的飛速發(fā)展,人們的生活已經(jīng)發(fā)生了翻天覆地的變化,移動互聯(lián)網(wǎng)技術(shù)給人們的生活帶來了巨大便捷和變化?,F(xiàn)如今,只用一個智能手機(jī)在手,幾乎一切問題都可以隨時隨地解決,吃飯、炒股、打電話、在線學(xué)習(xí)、網(wǎng)上購物、網(wǎng)上求職、游戲娛樂等等。APP的開發(fā)層出不窮,HTML5作為一種新的技術(shù)形式,最早是應(yīng)用于桌面瀏覽器,給用戶以使用瀏覽器卻又有使用一個應(yīng)用的感覺體驗。現(xiàn)在,HTML5應(yīng)用到Web前端APP的開發(fā),極大地推動了移動互聯(lián)網(wǎng)技術(shù)的發(fā)展。一、HTML5簡介HTML5是超文本標(biāo)記語言(HTML)的第五次修改,是W3C(World Wide Web Consortium,萬維網(wǎng)聯(lián)盟)與WHATWG(Web Hypertext Application Technology Working Group,Web超文本應(yīng)用技術(shù)工作組)合作的結(jié)果。WHATWG致力于Web表單和應(yīng)用程序,而W3C專注于XHTML2.0。二、HTML5的一些新特性(1)用于繪圖的Canvas元素:本身沒有繪圖功能,通過JavaScript在網(wǎng)頁上繪制2D圖形。<canvas id="myCanvas1”width="300”height="200"></canvas>(2)視頻video元素和聲頻audio元素:HTML5中解決了移動設(shè)備上音頻和視頻的關(guān)鍵問題,不需要插件,通過audio元素就可以渲染音頻,用戶就可以很好地聆聽音樂。在video元素中加上preload=”preload”或只是preload,當(dāng)用戶訪問頁面時便可以進(jìn)行視頻預(yù)載,用戶就可以欣賞豐富的視頻。為移動APP開發(fā)帶來了極大地便利,增添了更多色彩。(3)HTML5能夠?qū)崿F(xiàn)離線存儲:無論互聯(lián)網(wǎng)技術(shù)發(fā)展得多么迅速,總會有出乎意外的時候,比如因為天氣或是其他原因?qū)е戮W(wǎng)絡(luò)信號不好或是網(wǎng)絡(luò)不穩(wěn)定,HTML5能夠使網(wǎng)絡(luò)應(yīng)用程序離線使用,有效地解決了這個問題,為移動開發(fā)帶來了便捷。(4)新的標(biāo)簽元素:如calendar、date、time、email、url、search和article、footer、header、nav、section。三、基于HMTL5的Web前端APP開發(fā)3.1 H5 Web App構(gòu)成與分類每個應(yīng)用都是由多個頁面組成,而HTML5、JS代碼、CSS樣式構(gòu)成了一個頁面描述。在頁面中能調(diào)用服務(wù),實現(xiàn)訪問后臺數(shù)據(jù)庫的功能,還可以通過調(diào)用本地設(shè)備API調(diào)用設(shè)備硬件能力。目前,分為三類基于移動設(shè)備的應(yīng)用:Native App(原生應(yīng)用),是特別為某種操作系統(tǒng)開發(fā)的,比如IOS、Android、黑莓等等,它們是在各自的移動設(shè)備上運行的;Hybrid App(混合應(yīng)用),是原生應(yīng)用和Web應(yīng)用的結(jié)合體,分別采取了原生應(yīng)用和Web應(yīng)用的一部分,所以部分在Web上運行,部分在設(shè)備上運行;Web App(Web應(yīng)用),本質(zhì)上是為移動瀏覽器設(shè)計的基于Web的應(yīng)用,它們是用普通Web開發(fā)語言開發(fā)的,可以在各種智能手機(jī)瀏覽器上運行。對于想要使用哪一種應(yīng)用,可以結(jié)合具體情況而定,針對不同需求和開發(fā)不同類別的Web App。3.2 HMTL5技術(shù)的優(yōu)勢HTML5的顯著優(yōu)勢一次開發(fā),跨平臺使用,擺脫了對平臺的依賴,且很多瀏覽器(如Chrome(谷歌瀏覽器)、Firefox(火狐瀏覽器)、Safari(蘋果瀏覽器)、IE(微軟瀏覽器)、Opera(歐明瀏覽器)以及基于IE或Chromium所推出的360瀏覽器、搜狗瀏覽器、QQ瀏覽器和獵豹瀏覽器等國產(chǎn)瀏覽器)都支持HTML5,節(jié)省時間,提高了運行效率;并且HTML5支持手機(jī)端的跨應(yīng)用切換,不需要回到桌面,用戶便可以在不同的APP之間進(jìn)行來回切換,如此,為人們使用APP帶來了便捷,節(jié)省了時間,帶來了更好的用戶體驗;其書寫代碼清晰簡潔易懂并且全部都進(jìn)行了加密,本地應(yīng)用解密后再運行,變得更加安全,如今已經(jīng)被很多公司采用,HTML5技術(shù)如已經(jīng)被百度網(wǎng)站看中并使用,被很多人學(xué)習(xí)運用投入到生活實際,待到HTML5規(guī)范開發(fā)完成時,將成為主流。3.3基于HTML5的Web前端APP開發(fā)的發(fā)展前景從現(xiàn)代社會層出不窮的移動應(yīng)用就知道,在這個智能手機(jī)和平板電腦等移動設(shè)備大爆炸的時代,移動優(yōu)勢已經(jīng)成為勢不可擋的趨勢,不管開發(fā)什么,現(xiàn)如今都是以移動為主,HTML5開發(fā)技術(shù)降低了對適配終端和應(yīng)用的技術(shù)門檻,跨平臺跨網(wǎng)絡(luò),使得成本大大降低,有利于促進(jìn)行業(yè)的良性發(fā)展。目前全球?qū)⒂?0億手機(jī)瀏覽器支持HTML5,同時Web開發(fā)者的數(shù)量迅猛提升,數(shù)量將達(dá)到300萬。按照互聯(lián)網(wǎng)的發(fā)展速度,人們現(xiàn)在的生活方式,已經(jīng)離不開網(wǎng)絡(luò),以后對于APP的需求變得更大,未來極有可能生活中的一切都會與智能手機(jī),Web應(yīng)用有關(guān),一切可以在網(wǎng)上實行。總結(jié)如今移動互聯(lián)網(wǎng)已經(jīng)成為時代的潮流,而HTML5技術(shù)的發(fā)展將會是一種無法阻擋的趨勢,雖然HTML5技術(shù)仍然在不斷完善和改進(jìn)中,但是在未來移動互聯(lián)網(wǎng)的發(fā)展的大趨勢下,將為HTML5的發(fā)展錦上添花,使得HTML5的發(fā)展空間更為廣闊,發(fā)展前景更加光明,在目前未來的一段時間內(nèi)一定是發(fā)展的主流,值得人們學(xué)習(xí)研究并應(yīng)用。以上就是我們深圳市組創(chuàng)微電子有限公司為您介紹的基于HTML5的Web前端APP開發(fā)方法。如果您有智能電子產(chǎn)品的軟硬件功能開發(fā)需求,可以放心交給我們,我們有豐富的電子產(chǎn)品定制開發(fā)經(jīng)驗,可以盡快評估開發(fā)周期與IC價格,也可以核算PCBA報價。我們是多家國內(nèi)外芯片代理商:松翰、應(yīng)廣、杰理、安凱、全志、realtek,有MCU、語音IC、藍(lán)牙IC與模塊、wifi模塊。我們的擁有硬件設(shè)計與軟件開發(fā)能力。涵蓋了電路設(shè)計、PCB設(shè)計、單片機(jī)開發(fā)、軟件定制開發(fā)、APP定制開發(fā)、微信公眾號開發(fā)、語音識別技術(shù)、藍(lán)牙wifi開發(fā)等。還可以承接智能電子產(chǎn)品研發(fā)、家用電器方案設(shè)計、美容儀器開發(fā)、物聯(lián)網(wǎng)應(yīng)用開發(fā)、智能家居方案設(shè)計、TWS耳機(jī)開發(fā)、藍(lán)牙耳機(jī)音箱開發(fā)、兒童玩具方案開發(fā)、電子教育產(chǎn)品研發(fā)。注:部分圖片內(nèi)容來源于網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系刪除。
07-22
2020
基于OCR技術(shù)的室內(nèi)定位APP開發(fā)隨著我國經(jīng)濟(jì)的不斷發(fā)展、人民生活水平的日益提高,各種室內(nèi)場所也趨向于大型化、復(fù)雜化,例如圖書館、醫(yī)院、大型超市、高鐵站、地下車庫等,在大型室內(nèi)環(huán)境下的定位需求也隨之產(chǎn)生。不同于GPS、北斗衛(wèi)星定位系統(tǒng)等室外定位系統(tǒng),室內(nèi)定位系統(tǒng)是移動應(yīng)用領(lǐng)域的一大挑戰(zhàn)?;贠CR技術(shù)的室內(nèi)定位系統(tǒng),是通過建立室內(nèi)的標(biāo)志物上的文字信息與其對應(yīng)坐標(biāo)的數(shù)據(jù)庫,使得用戶在GPS信號弱的室內(nèi),也可以享受較為精確的定位服務(wù)。通過手機(jī)上的APP對室內(nèi)標(biāo)志物的文字信息進(jìn)行拍照,如店鋪名、路牌、展品介紹等,APP中接入的OCR識別引擎會識別圖中的文字信息,然后傳輸?shù)椒?wù)器,在數(shù)據(jù)庫中對文字信息進(jìn)行檢索和匹配,匹配成功后返回坐標(biāo),并在APP上以地圖和坐標(biāo)點的形式顯示位置。一、室內(nèi)定位APP的系統(tǒng)分析1.1定位APP系統(tǒng)架構(gòu)軟件的架構(gòu)需要UI組件、UI處理組件、百度OCR引擎、高德地圖SDK、數(shù)據(jù)訪問組件等。UI組件用來顯示用戶界面,百度OCR引擎提供文字識別服務(wù),高德地圖提供地圖源,軟件通過數(shù)據(jù)訪問組件和數(shù)據(jù)庫交換信息。此外,還需考慮到通信、運行管理以及系統(tǒng)安全性等方面的問題。軟件架構(gòu)如圖1所示。1.2室內(nèi)定位APP主要功能模塊室內(nèi)定位APP主要包括6大功能模塊。(1)注冊模塊:注冊方式為手機(jī)號或者郵箱注冊,點擊獲取驗證碼來驗證手機(jī)號或者郵箱的正確性,防止惡意注冊或錯誤注冊。驗證成功后需要設(shè)置登錄密碼,填寫兩次且兩次密碼相同才算注冊成功,然后自動登錄系統(tǒng),無需再次輸入賬號和密碼,同時系統(tǒng)將注冊信息傳輸?shù)椒?wù)器端,插入用戶表中。(2)登錄模塊:用戶需要輸入賬號和密碼,如果不記得密碼的話可以點擊“忘記密碼”,驗證手機(jī)號或者郵箱后可以重置密碼。點擊登錄后,登錄信息會傳輸?shù)綌?shù)據(jù)庫中進(jìn)行比對,完全正確才能進(jìn)入主界面。(3)設(shè)置模塊:在主界面中點擊齒輪圖標(biāo)后會進(jìn)入設(shè)置界面,可以在設(shè)置中選擇修改密碼、地圖管理、是否允許管理員進(jìn)行消息推送、是否允許WiFi下自動下載最新版本軟件、清除緩存以及退出登錄等功能。其中,地圖管理是指可以下載指定城市的地圖,這樣可以節(jié)省流量,不必每次打開軟件后都要聯(lián)網(wǎng)接收地圖資源。(4)OCR識別模塊:點擊頂部搜索欄右側(cè)的相機(jī)圖標(biāo)后,軟件會打開系統(tǒng)相機(jī)進(jìn)行拍照,然后自動調(diào)用百度OCR引擎進(jìn)行識別,識別出的文字顯示出來后,用戶可以選擇手動修改文字,修改好后上傳至服務(wù)器,或者直接上傳。(5)地圖模塊:使用高德提供的地圖,根據(jù)服務(wù)器返回的坐標(biāo)信息,在地圖上顯示當(dāng)前位置。(6)歷史記錄模塊:在主界面點擊時鐘圖標(biāo)后會進(jìn)入歷史記錄界面,可以看到用戶定位的記錄,包括時間、地點和OCR識別的文字信息。1.3定位APP系統(tǒng)流程打開軟件后點擊搜索框右側(cè)的相機(jī)圖標(biāo),打開手機(jī)相機(jī),拍攝照片后,系統(tǒng)會調(diào)用百度OCR引擎識別照片中的文字,識別失敗會提示用戶重新拍攝清晰的照片,識別成功后系統(tǒng)會將識別出的文字顯示出來,讓用戶檢查是否正確,若有錯誤可以選擇手動修改文字,無錯誤則直接上傳至服務(wù)器,然后在數(shù)據(jù)庫中進(jìn)行查詢和匹配,匹配失敗就會返回到拍照界面,提示用戶重新選擇標(biāo)志物,匹配成功則會返回坐標(biāo)值,然后系統(tǒng)調(diào)用高德地圖源,顯示室內(nèi)地圖和坐標(biāo)點,一次室內(nèi)定位完成。二、APP設(shè)計的主要技術(shù)2.1數(shù)據(jù)庫設(shè)計本系統(tǒng)在服務(wù)器端的MySQL數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)庫表,根據(jù)不同的數(shù)據(jù)格式,將數(shù)據(jù)分為用戶登錄數(shù)據(jù)、用戶行為數(shù)據(jù)以及位置坐標(biāo)數(shù)據(jù)3大類進(jìn)行存儲。用戶登錄數(shù)據(jù)包括用戶的登錄賬號和密碼等信息,由于這類數(shù)據(jù)相當(dāng)重要,不應(yīng)以明文的方式存儲在數(shù)據(jù)庫中,通過使用MySQL的AES_ENCRYPT函數(shù)加密數(shù)據(jù),因為加密后的數(shù)據(jù)比較難看,所以再使用to_base64函數(shù)轉(zhuǎn)碼數(shù)據(jù),將加密后的用戶信息存儲在數(shù)據(jù)庫中。用戶行為數(shù)據(jù)包括用戶使用該軟件進(jìn)行室內(nèi)定位的時間、OCR識別出的文本、用戶修改后的文本以及定位后的位置坐標(biāo)。該數(shù)據(jù)內(nèi)容供用戶在歷史記錄中查看,用戶可自行刪除。位置坐標(biāo)數(shù)據(jù)包括室內(nèi)環(huán)境下特征物上的文字信息以及對應(yīng)的坐標(biāo)值。通過匹配用戶上傳的字符串,返回坐標(biāo),用于在手機(jī)客戶端顯示當(dāng)前所在位置并在地圖上進(jìn)行標(biāo)注。2.2調(diào)用OCR接口該軟件使用百度的OCR進(jìn)行文字識別,百度的OCR服務(wù)免費,不過每天有次數(shù)的限制,但對于學(xué)生項目來說夠用。首先,在百度AI開放平臺中進(jìn)入控制臺,找到文字識別的產(chǎn)品服務(wù),創(chuàng)建應(yīng)用后填寫相關(guān)信息,獲得AK、SK。然后,下載license文件,在項目中如果直接用AK、SK明文調(diào)用百度的OCR,很不安全,可能會被別人反編譯之后獲得用戶的AK、SK,而license文件集成了AK、SK,放在項目中可以防止別人破解。之后,再下載百度OCR的Android SDK,添加進(jìn)項目中。準(zhǔn)備工作完成后就可以開始調(diào)用百度的OCR接口了。在需要進(jìn)行識別的頁面所在的文件中創(chuàng)建根據(jù)License文件初始化OCR實例的函數(shù),并在onCreate()方法中調(diào)用。接下來新建一個可以存放OCR的識別方法的類RecognizeService,在onActivityResult方法中,調(diào)用剛剛新建的類的recAccurateBasic方法,此方法接收3個參數(shù),分別是context、拍照獲取的圖片路徑和在RecognizeService類中定義的監(jiān)聽接口,在onResult方法中,返回的result字符串即為識別結(jié)果的json字符串,只需要對JSON進(jìn)行解析就能得到識別結(jié)果。2.3獲取室內(nèi)地圖服務(wù)該軟件使用高德提供的地圖服務(wù)。在高德開放平臺中進(jìn)入控制臺,創(chuàng)建應(yīng)用,獲取API KEY,下載Android平臺下的地圖SDK文件,將解壓后的jar包導(dǎo)入工程中。開發(fā)環(huán)境配置好后,在工程的“AndroidManifest.xml”文件中添加用戶KEY和所需要的權(quán)限,在布局xml文件中添加地圖控件,創(chuàng)建地圖Activity,管理地圖生命周期。總結(jié)本文基于Android平臺設(shè)計并開發(fā)了基于OCR技術(shù)的室內(nèi)定位APP,為室內(nèi)定位提供了一個新的解決方案。現(xiàn)階段比較成熟的室內(nèi)定位方案,是需要基礎(chǔ)設(shè)施的,比如室內(nèi)部署密集的接入點或者基站,例如各種傳感器,信號接收裝置,信號發(fā)射器等,成本較高,且需要維護(hù)設(shè)備。而基于OCR技術(shù)的室內(nèi)定位方案的成本是很低的,并不需要各種用來定位的設(shè)備,較為麻煩的只是第一步,建立坐標(biāo)庫。將室內(nèi)標(biāo)志物上的文字信息提取出來,并建立坐標(biāo)庫。這的確是不小的工作量,但是隨著OCR技術(shù)和人工智能技術(shù)的發(fā)展,未來可能只需用無人機(jī)將室內(nèi)所有場景拍攝下來,然后系統(tǒng)便可以自動整理出圖片并匹配其對應(yīng)的坐標(biāo),導(dǎo)入數(shù)據(jù)庫中,這樣就可以大大降低工作量,甚至可以打開攝像頭,通過錄像的方式來實現(xiàn)室內(nèi)的實時定位。作為一種無需傳感器的室內(nèi)定位方案,它可以給我們提供更多的創(chuàng)新想法和研究方向。以上就是我們深圳市組創(chuàng)微電子有限公司為您介紹的基于OCR技術(shù)的室內(nèi)定位APP開發(fā)技術(shù)。如果您有智能電子產(chǎn)品的軟硬件功能開發(fā)需求,可以放心交給我們,我們有豐富的電子產(chǎn)品定制開發(fā)經(jīng)驗,可以盡快評估開發(fā)周期與IC價格,也可以核算PCBA報價。我們是多家國內(nèi)外芯片代理商:松翰、應(yīng)廣、杰理、安凱、全志、realtek,有MCU、語音IC、藍(lán)牙IC與模塊、wifi模塊。我們的擁有硬件設(shè)計與軟件開發(fā)能力。涵蓋了電路設(shè)計、PCB設(shè)計、單片機(jī)開發(fā)、軟件定制開發(fā)、APP定制開發(fā)、微信公眾號開發(fā)、語音識別技術(shù)、藍(lán)牙wifi開發(fā)等。還可以承接智能電子產(chǎn)品研發(fā)、家用電器方案設(shè)計、美容儀器開發(fā)、物聯(lián)網(wǎng)應(yīng)用開發(fā)、智能家居方案設(shè)計、TWS耳機(jī)開發(fā)、藍(lán)牙耳機(jī)音箱開發(fā)、兒童玩具方案開發(fā)、電子教育產(chǎn)品研發(fā)。
07-21
2020
軟件工程的出現(xiàn)是為了應(yīng)對因為軟件的需求量大量增加而出現(xiàn)軟件開發(fā)的“軟件危機(jī)”而產(chǎn)生的。所謂的軟件工程就是借鑒傳統(tǒng)工程的方法進(jìn)行軟件開發(fā),軟件工程中經(jīng)典的軟件開發(fā)流程包含幾個階段,分別是需求分析、概要設(shè)計、詳細(xì)設(shè)計、編碼、測試、運行和維護(hù)。軟件工程的出現(xiàn),使得研發(fā)出質(zhì)量過關(guān)、成本合算的軟件產(chǎn)品成為常態(tài),“軟件危機(jī)”的問題得到了解決,但是隨著軟件使用的進(jìn)一步廣泛,軟件產(chǎn)品在人們生產(chǎn)和生活中所占的地位越來越重要,出現(xiàn)了新的問題,就是軟件安全。而原有的軟件開發(fā)的工程流程無法很好地解決軟件安全問題。以原有的軟件工程中的軟件開發(fā)流程為基礎(chǔ),并參考已有的軟件安全開發(fā)流程SDL,進(jìn)行適當(dāng)?shù)母脑?,提出一種新的軟件安全開發(fā)流程。一、現(xiàn)有的軟件安全開發(fā)流程1、SDL介紹隨著軟件使用的普及,已經(jīng)有一些有識之士對軟件安全問題有所研究,并有一些可以使用的成果,在這之中,軟件安全開發(fā)流程也應(yīng)運而生。迄今,最為普及的軟件安全開發(fā)流程是微軟提出的軟件安全開發(fā)周期—-SDL,這個流程的典型之處在于它把安全工作貫穿于整個軟件開發(fā)的生命周期中,而且,即使僅僅是對其中的一個過程進(jìn)行安全工作,也能大大提高軟件的安全性。下面對SDL進(jìn)行簡單的說明。在一個完整的軟件SDL實施過程中,一共可以分為13個階段。(1)安全教育和提高安全意識;(2)項目啟動;(3)定義并遵從設(shè)計最佳實踐;(4)產(chǎn)品風(fēng)險評估;(5)產(chǎn)品風(fēng)險分析;(6)為客戶創(chuàng)建安全文檔,工具;(7)安全編碼策略;(8)安全測試策略;(9)安全推動活動;(10)產(chǎn)品最終安全評審;(11)安全響應(yīng)計劃;(12)產(chǎn)品發(fā)布;(13)執(zhí)行安全響應(yīng)。SDL可以有效地提高軟件安全性,降低軟件安全問題。據(jù)微軟提供的相關(guān)數(shù)據(jù)顯示,使用SDL進(jìn)行開發(fā)的WindowsVista所發(fā)現(xiàn)的安全漏洞比沒有使用SDL的Windows Xp減少45%;使用SDL開發(fā)流程的sQLServer2005發(fā)現(xiàn)的安全漏洞比沒有使用SDL的SQL Server2000減少91%。SDL具有一些明顯的優(yōu)勢,它既可整體使用也可以在某一個階段使用,靈活性高,而且它與一般的開發(fā)流程比較匹配,所以實用性很高。另外,SDL不僅僅適合微軟的平臺,還適用于多種平臺;SDL有比較充分的工具支持,例如威脅建模和靜態(tài)源代碼分析工具;SDL屬于微軟開發(fā),所應(yīng)有的文檔非常詳細(xì)。2、SDL應(yīng)用現(xiàn)狀通過2010年在美國舊金山的RSA會議上對軟件開發(fā)流程與安全結(jié)合的調(diào)查數(shù)據(jù)發(fā)現(xiàn),目前的軟件公司已經(jīng)開始關(guān)注軟件的安全問題,而且其中超過50%的調(diào)查參與者表示對SDL進(jìn)行關(guān)注。但是進(jìn)一步的調(diào)查數(shù)據(jù)顯示,在開發(fā)過程中真正應(yīng)用了SDL的參與者僅僅13%。沒有使用軟件安全開發(fā)流程的調(diào)查參與者也給出了自己的理由,主要是其時間成本、資源成本以及暫時的安全意識。由此看來,即使對軟件安全開發(fā)流程的關(guān)注度越來越高,但是其實際使用情況仍不夠理想。通過調(diào)查發(fā)現(xiàn),企業(yè)規(guī)模是影響是否使用安全開發(fā)流程的重要因素之一。大企業(yè)可以承擔(dān)更大的資源投入,保證安全工具和安全活動的費用,而一些中小企業(yè)對投入有一定的擔(dān)憂。二、對SDL的改進(jìn)有大量的數(shù)據(jù)證明,軟件安全測試介入的時間越晚,所需要的付出越多。在軟件發(fā)布后對安全漏洞的修復(fù)所需的成本至少是在軟件設(shè)計和編碼階段就進(jìn)行修復(fù)的30倍。SDL的出現(xiàn)正是為了解決上述問題,但是現(xiàn)有的SDL具有一定的限制性,為了提高SDL的適用對象,降低其經(jīng)濟(jì)要求,將SDL進(jìn)行了適當(dāng)?shù)母脑臁=?jīng)過改造的軟件安全開發(fā)流程的核心是安全知識庫,安全知識庫在軟件生命周期中一直有效,并起到不同的作用。為了將軟件開發(fā)流程變得更加靈活,將軟件開發(fā)周期簡化為需求、設(shè)計、測試、維護(hù)4個階段。在這4個階段中,采取不同的活動來提高軟件安全性。1、軟件安全知識庫在所改造的軟件開發(fā)流程中,安全知識庫是最核心的存在,它可以包含很多內(nèi)容,包括產(chǎn)品風(fēng)險庫,軟件安全漏洞庫,軟件安全開發(fā)設(shè)計規(guī)則,安全工具,甚至包括一些相應(yīng)的安全知識培訓(xùn)。產(chǎn)品風(fēng)險庫:包括在項目開展之初的需求風(fēng)險和已經(jīng)評估的風(fēng)險。安全工具:包括網(wǎng)絡(luò)安全測試工具以及白盒安全測試工具。例如AppScan,Sninffer;白盒安全測試工具包括Fortify或者CheckMarx。安全知識文檔:項目累積的安全經(jīng)驗文檔或者培訓(xùn)文檔。安全漏洞庫:能夠收集到的相關(guān)的產(chǎn)品安全漏洞,包括網(wǎng)絡(luò)和代碼級。安全設(shè)計規(guī)則:安全開發(fā)基礎(chǔ)知識,例如編碼規(guī)則。安全知識庫在軟件安全開發(fā)流程中的地位極其重要,在每一個開發(fā)階段都可以使用安全知識庫中的內(nèi)容。2、軟件開發(fā)需求階段需求階段的主要工作是需求收集和需求分析。在這個階段,可以根據(jù)安全知識庫的產(chǎn)品風(fēng)險庫對產(chǎn)品需求進(jìn)行分析,把隱含安全風(fēng)險的需求重新設(shè)計,或者計算針對某些功能或者過程不進(jìn)行安全活動將會有多大的損失。3、軟件安全設(shè)計階段設(shè)計階段分為概要設(shè)計和詳細(xì)設(shè)計。概要設(shè)計階段,將主要是對軟件架構(gòu)設(shè)計,軟件模塊功能定義,在這一階段需要參考產(chǎn)品風(fēng)險庫和漏洞庫,對一些已知的安全問題進(jìn)行預(yù)處理,尤其是一些網(wǎng)絡(luò)軟件,面對各種廣為人知的攻擊手段做出相應(yīng)的設(shè)計。詳細(xì)設(shè)計階段的工作主要是代碼編寫,這時要根據(jù)漏洞庫---主要是白盒安全漏洞和安全設(shè)計規(guī)則進(jìn)行編碼。對于白盒安全漏洞,現(xiàn)在已經(jīng)有比較成熟的定義,例如fortify對白盒安全漏洞的分類和定義,參考這些漏洞分類,結(jié)合已經(jīng)比較成熟的保證編碼質(zhì)量的編碼規(guī)則進(jìn)行詳細(xì)設(shè)計工作。4、軟件安全測試階段軟件安全的測試工作,主要分為3種類型,第一種是模糊測試:這種測試的原理是向目標(biāo)系統(tǒng)發(fā)送非預(yù)期的輸入并觀察結(jié)果來發(fā)現(xiàn)軟件漏洞。一般是設(shè)置大量非正常形數(shù)據(jù)進(jìn)行解析,并包含了對網(wǎng)絡(luò)協(xié)議和不信任的訪問所產(chǎn)生的問題代碼的測試。第二種是滲透測試:這種測試是為了證明網(wǎng)絡(luò)防御按照預(yù)期設(shè)置正常運行的一種機(jī)制。它主要用來測試網(wǎng)絡(luò)和主機(jī)系統(tǒng)的操作配置以及補(bǔ)丁的修復(fù)程度,較多的是使用模擬攻擊發(fā)現(xiàn)信息系統(tǒng)中的漏洞,發(fā)現(xiàn)系統(tǒng)的脆弱性。第三種是運行時驗證:對運行中的問題進(jìn)行驗證,用來完成常規(guī)運行中的測試和對問題日志的分析??梢允褂萌毕莘诸惐砘蛘唢L(fēng)險分類表來對測試出的缺陷進(jìn)行統(tǒng)計,使用相應(yīng)的測試方法修復(fù)發(fā)現(xiàn)的缺陷。在這一階段,可以大量的使用安全工具進(jìn)行測試,比如網(wǎng)絡(luò)軟件的安全,使用一些滲透性測試工具進(jìn)行測試(如Ac-tivePerl,Sniffer);代碼級的安全測試,主要依靠一些靜態(tài)測試工具和動態(tài)測試工具,比如專門代碼靜態(tài)安全測試的forti-fy,CheckMarx;還有一些對于軟件使用環(huán)境和整體軟件系統(tǒng)的安全測試,例如美國的安全軟件nessus?,F(xiàn)在,軟件安全測試工具越來越多,已經(jīng)涌現(xiàn)出許多成熟的或者有特點的商業(yè)的或者開源的軟件安全測試工具,國內(nèi)也有一些不錯的軟件安全工具,例如啟明星辰天鏡或者安華明鑒,這些都為實施軟件安全的測試工作提供便利。在這一階段,從成本考慮出發(fā),大量的開源工具是優(yōu)先考慮的。5、軟件維護(hù)階段維護(hù)階段的工作主要是處理已經(jīng)出現(xiàn)的安全問題并且將問題和處理方法搜集入安全知識庫,為以后的軟件安全開發(fā)提供知識儲備。經(jīng)過簡化后的軟件安全開發(fā)流程僅僅包括了需求、設(shè)計、測試、維護(hù)4個階段,這4個階段都需要使用到安全知識庫,所以建立的這套流程核心仍然是安全知識庫。改造后的軟件安全開發(fā)流程更加靈活,可是適應(yīng)不同的開發(fā)流程,一旦建立安全知識庫后,也可以在不同的階段開展軟件安全開發(fā)工作,降低安全成本??偨Y(jié)軟件安全開發(fā)生命周期的應(yīng)用主要是為了減少安全漏洞和降低安全漏洞的影響。但是軟件開發(fā)僅僅是基于目前最優(yōu)的安全方案,新的攻擊手段層出不窮,所以安全問題和軟件漏洞是不可能被徹底消除的。軟件安全工作現(xiàn)在更多的是體現(xiàn)在安全測試上,在軟件安全開發(fā)上進(jìn)行的工作仍然稀少,這與現(xiàn)有的軟件開發(fā)流程所需成本較高,流程復(fù)雜有一定關(guān)系。通過對現(xiàn)有的軟件安全開發(fā)流程SDL進(jìn)行簡化以適應(yīng)中小企業(yè)的需要,也可以作為一些敏捷開發(fā)或者流程簡單的開發(fā)使用。優(yōu)化后的軟件開發(fā)流程主要有這幾個優(yōu)點:開發(fā)時間更靈活,強(qiáng)調(diào)安全工具包括免費工具的使用,流程進(jìn)行了簡化,成本有所降低。以上就是我們深圳市組創(chuàng)微電子有限公司為您介紹的對軟件安全開發(fā)流程的研究。如果您有智能電子產(chǎn)品的軟硬件功能開發(fā)需求,可以放心交給我們,我們有豐富的電子產(chǎn)品定制開發(fā)經(jīng)驗,可以盡快評估開發(fā)周期與IC價格,也可以核算PCBA報價。我們是多家國內(nèi)外芯片代理商,有MCU、語音IC、藍(lán)牙IC與模塊、wifi模塊。我們的擁有硬件設(shè)計與軟件開發(fā)能力。涵蓋了電路設(shè)計、PCB設(shè)計、單片機(jī)開發(fā)、軟件定制開發(fā)、APP定制開發(fā)、微信公眾號開發(fā)、語音識別技術(shù)、藍(lán)牙wifi開發(fā)等。還可以承接智能電子產(chǎn)品研發(fā)、家用電器方案設(shè)計、美容儀器開發(fā)、物聯(lián)網(wǎng)應(yīng)用開發(fā)、智能家居方案設(shè)計、TWS方案開發(fā)、藍(lán)牙音頻開發(fā)、兒童玩具方案開發(fā)、電子教育產(chǎn)品研發(fā)。
07-20
2020
近年來,網(wǎng)絡(luò)社交工具應(yīng)用越來越多,比如QQ、微博、微信、MSN等等,這些社交工具無疑席卷了現(xiàn)代社會,已經(jīng)走進(jìn)每個人的生活、工作和學(xué)習(xí),教育領(lǐng)域也受到強(qiáng)烈影響。一方面,網(wǎng)絡(luò)社交中存在大量不良信息的傳播,對青少年的危害很大,嚴(yán)重影響學(xué)生的健康成長。另一方面,網(wǎng)絡(luò)社交工具存在積極的有利的因素,可以促進(jìn)教育教學(xué)的改革增效。比如,筆者通過調(diào)查發(fā)現(xiàn)微信公眾號在教育領(lǐng)域的應(yīng)用場景就越來越多,很多學(xué)校、老師嘗試使用微信公眾號進(jìn)行教育、教學(xué)、宣傳、推廣工作,取得了可喜的成績。但微信公眾號在教育領(lǐng)域的應(yīng)用目前還處于一種自發(fā)的狀態(tài),也存在很多不確定的問題。因此,興利除弊,因勢利導(dǎo)將網(wǎng)絡(luò)變成一個有利于大學(xué)生成長的工具就是本項目研究所要達(dá)到的目標(biāo)。一、微信公眾號需求分析當(dāng)前,高職院校內(nèi)已經(jīng)部署有網(wǎng)絡(luò)中心、電子教室、多媒體教室和實驗室等信息化教育教學(xué)環(huán)境,在這種條件下只需要再部署移動網(wǎng)絡(luò)即可以實現(xiàn)移動校園內(nèi)場景的學(xué)習(xí)。然后在軟件環(huán)境上實現(xiàn)平臺的搭建,可以實現(xiàn)學(xué)生隨時隨地利用自己的移動網(wǎng)絡(luò)進(jìn)行學(xué)習(xí)。通過調(diào)研發(fā)現(xiàn),本項目所研究的基于HTML5和微信公眾號的直播課堂需要解決一下問題:1)移動端應(yīng)用,系統(tǒng)不需要安裝,直接通過微信公眾號進(jìn)行訪問。2)針對不同手機(jī)平臺,只需開發(fā)一套。3)版本不需要時常更新,服務(wù)器更新代碼,所有客戶訪問即可更新。4)可實現(xiàn)客戶實時流與直播服務(wù)器傳輸。5)可實現(xiàn)直播服務(wù)器流的轉(zhuǎn)發(fā)與中繼。6)白板和文檔演示。7)視頻流、音頻流、白板信息、文檔信息同步。8)直播數(shù)據(jù)的云存儲與云播放。9)滿足輕量級的在線直播服務(wù)。二、微信公眾號系統(tǒng)設(shè)計系統(tǒng)設(shè)計的主要理論依據(jù)是軟件工程原理、加涅的九段教學(xué)策略、建構(gòu)主義學(xué)習(xí)理論、教學(xué)傳播優(yōu)化原理中的重復(fù)作用和共同經(jīng)驗原理。根據(jù)設(shè)計需求可以將平臺功能分為三大部分:教學(xué)信息發(fā)布、交流反饋、輔助平臺學(xué)習(xí)。根據(jù)教學(xué)內(nèi)容、教學(xué)環(huán)節(jié)、教學(xué)安排等情況可以進(jìn)一步細(xì)分為:預(yù)習(xí)、講授、復(fù)習(xí)、拓展、總結(jié)、交互和考核7個功能模塊。預(yù)習(xí):主要是讓學(xué)生了解學(xué)習(xí)目標(biāo)、學(xué)習(xí)重點、學(xué)習(xí)難點、學(xué)習(xí)方法等。講授:可以是直播講授,也可以是微課、MOOC等制作好的課程資源講授。復(fù)習(xí):主要是鞏固重點知識,解決難點問題,加深記憶和理解。拓展:提供拓展資源,拓寬學(xué)生視野,激發(fā)學(xué)生思維,促進(jìn)知識向應(yīng)用轉(zhuǎn)化。總結(jié):通過提煉內(nèi)容框架,讓學(xué)習(xí)者掌握知識的脈絡(luò),自我評測、自主建構(gòu)知識體系??己耍禾峁┛己速Y源,自動組卷,自主檢測,也可統(tǒng)一考核。交互:主要是師生間答疑解惑,學(xué)習(xí)交流,資源共享。預(yù)習(xí)、講授、復(fù)習(xí)、拓展、總結(jié)、交互、考核等7個模塊相輔相成,構(gòu)成一個學(xué)習(xí)過程的完整閉環(huán),可激發(fā)學(xué)習(xí)動機(jī),明確學(xué)習(xí)目標(biāo),鞏固學(xué)習(xí)基礎(chǔ),拓寬學(xué)習(xí)視野,建構(gòu)學(xué)習(xí)體系,交流學(xué)習(xí)經(jīng)驗,共享學(xué)習(xí)資源,考核學(xué)習(xí)成效。三、微信公眾號開發(fā)和應(yīng)用該平臺主要解決教育教學(xué)場景下的如下問題:①教學(xué)內(nèi)容發(fā)布,可以在平臺上發(fā)布通知、消息、學(xué)習(xí)資料,學(xué)習(xí)資料可以是文本、圖片、PPT、錄音、微課、MOOC、源程序等,用于學(xué)生的課前課后自主學(xué)習(xí)。②個性化設(shè)置,公眾平臺可以用關(guān)鍵字實現(xiàn)“對話即搜索”的服務(wù),也可以通過用戶設(shè)置,實現(xiàn)自動回復(fù)。③留言板管理,在平臺上開辟出留言板區(qū)域,可以實現(xiàn)發(fā)布交流主題或者就某些問題提問、發(fā)表自己的看法,實現(xiàn)問題的深層次、多用戶交流。④應(yīng)用情況統(tǒng)計,如用戶人數(shù)、交流主題數(shù)、點贊人數(shù)等,用圖表形式展示。⑤資源管理,資源庫分為教學(xué)資源庫、拓展資源庫、考核資源庫,資源提前放置到管理庫中。⑥用戶管理,可以對用戶進(jìn)行分級、分組,用戶自己也可以修改某些信息等。根據(jù)公眾號和我們要求的功能,要實現(xiàn)需求,結(jié)合實際情況我們選擇以下技術(shù)的支持。1、RTSPRTSP(Real Time Streaming Protocol),RFC2326,實時流傳輸協(xié)議。該協(xié)議定義了一對多應(yīng)用程序如何有效地通過IP網(wǎng)絡(luò)傳送多媒體數(shù)據(jù)。該協(xié)議有如下特點:①傳輸方式靈活,RTSP在體系結(jié)構(gòu)上位于RTP和RTCP之上,可以根據(jù)網(wǎng)絡(luò)情況選擇TCP或UDP完成數(shù)據(jù)傳輸。②雙向請求,HTTP與RTSP相比,HTTP請求由客戶機(jī)發(fā)出,服務(wù)器作出響應(yīng);使用RTSP時,客戶機(jī)和服務(wù)器可以雙向請求。③多媒體流,RTSP是用來控制聲音或影像的多媒體串流協(xié)議,并允許同時多個串流需求控制。④支持多方視頻應(yīng)用,允許同時多個串流需求控制可以降低服務(wù)器端的網(wǎng)絡(luò)用量,支持多方視頻應(yīng)用。該技術(shù)和項目的應(yīng)用場景高度契合,非常適合分布式教育應(yīng)用,可實現(xiàn)單播和組播,現(xiàn)場數(shù)據(jù)和存儲剪輯數(shù)據(jù)的應(yīng)用。2、WebrtcWebRTC實現(xiàn)了基于網(wǎng)頁的視頻會議,標(biāo)準(zhǔn)是WHATWG協(xié)議。項目的最終目的主要是讓W(xué)eb開發(fā)者能夠基于瀏覽器快捷開發(fā)出豐富的實時多媒體應(yīng)用,而無需下載安裝任何插件。①該協(xié)議功能強(qiáng)大,提供了視頻會議的核心技術(shù),包括音視頻的采集、編解碼、網(wǎng)絡(luò)傳輸、顯示等功能。②并且還支持跨平臺:windows,linux,mac,android。便利的交互體驗,豐富的產(chǎn)品功能。③支持大規(guī)模觀看可以在全球范圍內(nèi)進(jìn)行音視頻高清、大規(guī)模、穩(wěn)定的直播教學(xué)。④豐富的課件類型除傳統(tǒng)的靜態(tài)課件,還支持動態(tài)ppt課件。支持全格式多媒體的播放,支持本地文件直接推流,秒級打開,流暢還原。3、HTML5萬維網(wǎng)的核心語言、標(biāo)準(zhǔn)通用標(biāo)記語言下的一個應(yīng)用超文本標(biāo)記語言(HTML)的第五次重大修改即為HTML5。HTML5的設(shè)計目的是為了在移動設(shè)備上支持多媒體。用HTML5的優(yōu)點主要是可以進(jìn)行跨平臺的使用。另外,它是一種自適應(yīng)網(wǎng)頁設(shè)計技術(shù),可以根據(jù)不同大小的屏幕,自動調(diào)整布局。正是這些優(yōu)點,本項目在web技術(shù)上選擇HTML5。項目完成后,經(jīng)過動漫軟件與教育學(xué)院軟件16級和17級師生的應(yīng)用驗證。在實踐中,通過手機(jī)等移動式設(shè)備隨時進(jìn)行學(xué)習(xí),使學(xué)習(xí)不受時空的限制。在這種學(xué)習(xí)方式下,學(xué)生互動得到激勵,教師利用微信公眾號推送學(xué)習(xí)內(nèi)容,學(xué)生參加在線討論,幫助學(xué)生積累知識,優(yōu)化知識結(jié)構(gòu),學(xué)生的學(xué)習(xí)積極性得到顯著提高,學(xué)習(xí)成效顯著。同時,微信公眾號作為師、生、家長間有效的溝通工具,開創(chuàng)了一種新的交往模式,給人們之間的交往活動提供了許多便利,實現(xiàn)三方的有效溝通,能夠及時了解和掌握學(xué)生的學(xué)習(xí)情況,并使資源通過網(wǎng)絡(luò)實現(xiàn)利益最大化。平臺滿足各類教室的需求允許創(chuàng)建各類教室,支持課前暖場,現(xiàn)場排麥,錄播課。豐富的互動功能支持各種常用的授課功能,聊天問答,桌面共享,點名簽到,抽獎投票等。支持桌面,區(qū)域,程序等屏幕共享手段。服務(wù)器端錄制、回放支持服務(wù)器端1080P高清錄制,自動生成回放,可上傳下載。針對回放亦可進(jìn)行二次編輯,生成定制的錄制件。開放的接口,網(wǎng)頁互動直播全終端覆蓋,支持網(wǎng)頁和客戶端,PC(MAC)和移動端??偨Y(jié)通過項目開發(fā)和實踐應(yīng)用,基于微信公眾平臺的直播課堂能夠激發(fā)學(xué)習(xí)者的學(xué)習(xí)興趣,可以使學(xué)習(xí)者反復(fù)練習(xí)和鞏固,夯實基礎(chǔ),拓展提高,學(xué)習(xí)效果提升明顯。實踐結(jié)果表明基于HTML5的微信公眾平臺直播課堂簡單易用,快速直連,場景多樣化滿足直播課堂、學(xué)術(shù)講座、公開課等各類大規(guī)模教學(xué)場景的應(yīng)用需求,是教育教學(xué)手段的有益補(bǔ)充,在條件允許的情況下可以推廣使用。以上就是我們深圳市組創(chuàng)微電子有限公司為您介紹的基于HTML5微信公眾號的直播課堂設(shè)計方法。如果您有智能電子產(chǎn)品的軟硬件功能開發(fā)需求,可以放心交給我們,我們有豐富的電子產(chǎn)品定制開發(fā)經(jīng)驗,可以盡快評估開發(fā)周期與IC價格,也可以核算PCBA報價。我們是多家國內(nèi)外芯片代理商,有MCU、語音IC、藍(lán)牙IC與模塊、wifi模塊。我們的擁有硬件設(shè)計與軟件開發(fā)能力。涵蓋了電路設(shè)計、PCB設(shè)計、單片機(jī)開發(fā)、軟件定制開發(fā)、APP定制開發(fā)、微信公眾號開發(fā)、語音識別技術(shù)、藍(lán)牙wifi開發(fā)等。還可以承接智能電子產(chǎn)品研發(fā)、家用電器方案設(shè)計、美容儀器開發(fā)、物聯(lián)網(wǎng)應(yīng)用開發(fā)、智能家居方案設(shè)計、TWS方案開發(fā)、藍(lán)牙音頻開發(fā)、兒童玩具方案開發(fā)、電子教育產(chǎn)品研發(fā)。
07-19
2020
軟件開發(fā)項目人工成本控制流程設(shè)計與應(yīng)用一、國內(nèi)軟件開發(fā)項目人工成本管理現(xiàn)狀及存在的問題項目成本包括直接成本和間接成本。直接成本包括直接人工成本、軟硬件采購成本、差旅費等直接費用。間接成本包括管理費用分?jǐn)偟取\浖_發(fā)項目中人工成本所占比重很高,管理好人工成本意義重大。人工成本等于人員工時投入乘以人員單價。對人工成本的管理,可以簡化為對工時的管理。人工成本管理包含兩個方面,一方面要準(zhǔn)確估算,制定合理的成本基準(zhǔn);另一方面要控制成本投入,使實際成本控制在成本基準(zhǔn)之內(nèi)。目前,國內(nèi)IT行業(yè)在這兩個方面都還不是很成熟,存在的問題主要有如下幾個方面。1.1沒有統(tǒng)一的估算標(biāo)準(zhǔn),估算結(jié)果偏差大整個軟件行業(yè)長期以來缺乏科學(xué)的估算方法和估算標(biāo)準(zhǔn),成本定額計算問題一直沒有得到很好解決,導(dǎo)致在軟件開發(fā)項目招投標(biāo)活動中,頻頻出現(xiàn)惡意競標(biāo)現(xiàn)象,這已成為軟件產(chǎn)業(yè)進(jìn)一步發(fā)展的障礙。為了解決行業(yè)的迫切需求,工業(yè)和信息化部于2010年正式立項啟動了《軟件研發(fā)成本度量規(guī)范》制定工作,該規(guī)范將作為國家電子行業(yè)標(biāo)準(zhǔn)進(jìn)行發(fā)布。該標(biāo)準(zhǔn)以快速功能點方法衡量軟件功能規(guī)模,估算軟件工作量,從而確定軟件研發(fā)成本。盡管行業(yè)標(biāo)準(zhǔn)即將出臺,但由于很多企業(yè)不了解標(biāo)準(zhǔn)內(nèi)容,不掌握估算方法,在估算時仍然依據(jù)個人經(jīng)驗進(jìn)行,估算結(jié)果千差萬別。在合同簽訂或招投標(biāo)階段,即使用戶提出了明確的軟件開發(fā)項目需求,不同的供應(yīng)商采用不同的估算方式,考慮不同的估算因素,產(chǎn)生不同的估算結(jié)果,導(dǎo)致同一個項目估算成本相差巨大。由于沒有統(tǒng)一的標(biāo)準(zhǔn),作為甲方,面對相差懸殊的合同報價,很難判斷哪個供應(yīng)商的估算結(jié)果和報價是接近客觀事實的、合理的,哪個供應(yīng)商在哄抬價格或惡意競爭?作為乙方,估算不準(zhǔn)往往導(dǎo)致在預(yù)算階段利看項目利潤很高,但在決算時發(fā)現(xiàn)實際利潤很低甚至虧本。估算不準(zhǔn)對甲乙雙方都可能造成傷害?;诓粶?zhǔn)確的估算制定的項目人工成本基準(zhǔn)也不準(zhǔn)。基準(zhǔn)缺乏科學(xué)性,導(dǎo)致項目人工成本管理從源頭上缺乏執(zhí)行的嚴(yán)肅性。1.2管理粗放,僅做人工成本統(tǒng)計,但分析、控制不夠一般情況下,各IT企業(yè)都統(tǒng)計軟件開發(fā)項目投入的工時,用統(tǒng)計的工時作為項目人工成本預(yù)決算的參考數(shù)據(jù),但是,很多企業(yè)僅做統(tǒng)計,不做分析和控制,或分析和控制很弱。之所以出現(xiàn)這樣的現(xiàn)象,有幾方面原因。首先,思想認(rèn)識問題,即工時分析控制工作動力不足。由于估算不準(zhǔn),大家認(rèn)為后期工時基準(zhǔn)可以變更,進(jìn)行工時分析和控制意義不大,統(tǒng)計一下實際投入就夠了。其次,很多企業(yè)的管理還不夠精益化。項目管理的精益化是需要成本的,也是管理能力水平的體現(xiàn)。例如,從理論上講,在項目執(zhí)行過程中,應(yīng)當(dāng)進(jìn)行掙值分析,關(guān)注成本績效指數(shù),出現(xiàn)偏差時,立刻分析原因,進(jìn)行糾正。但是,要真正做到,需要建立掙值分析模型,制定相關(guān)的制度要求,配備管理人員等。第三,信息化支持不夠。如果沒有信息化手段做支撐,僅通過手工方式完成工時統(tǒng)計分析,效率低、成本高、準(zhǔn)確性差,即使有精益化管理思想和要求,也很難在操作層面執(zhí)行。二、軟件開發(fā)人工成本管理解決思路針對軟件開發(fā)項目人工成本管理中存在的問題,主要解決思路是,學(xué)習(xí)掌握先進(jìn)的估算方法,依據(jù)即將頒布的行業(yè)估算標(biāo)準(zhǔn),進(jìn)行科學(xué)的估算,從源頭上控制人工成本基準(zhǔn),并在此基礎(chǔ)上設(shè)計控制流程,在各個環(huán)節(jié)設(shè)置明確的控制點,通過信息系統(tǒng)保障管理思想落地實施。具體如下:(1)跟蹤行業(yè)標(biāo)準(zhǔn),掌握標(biāo)準(zhǔn)內(nèi)容,在實際估算操作中應(yīng)用標(biāo)準(zhǔn),形成重視估算、尊重科學(xué)的企業(yè)文化。依據(jù)標(biāo)準(zhǔn)進(jìn)行估算,將使人工成本估算更趨準(zhǔn)確,并徹底解決甲乙雙方對軟件開發(fā)人工成本計算口徑不統(tǒng)一的問題。(2)引入精益化管理手段,加強(qiáng)項目執(zhí)行過程中的成本分析和控制。對成本的管理不是等項目結(jié)束時做分析,而是每周統(tǒng)計分析成本績效指數(shù)CPI,并且與進(jìn)度績效指數(shù)SPI進(jìn)行匹配分析,實時關(guān)注人工成本的使用情況。在項目結(jié)束時,要重新對軟件規(guī)模進(jìn)行計數(shù)統(tǒng)計,根據(jù)實際發(fā)生的人工工時計算企業(yè)的生產(chǎn)率,用于指導(dǎo)新項目人工成本估算過程。(3)提出人工成本管理需求,開發(fā)信息系統(tǒng),使管理思想、管理流程通過信息系統(tǒng)進(jìn)行固化和不斷優(yōu)化。只有通過系統(tǒng)實現(xiàn)項目預(yù)算、項目計劃、工作任務(wù)包、實際填報的工作日志工時、項目進(jìn)度績效指數(shù)、項目成本績效指數(shù)等的聯(lián)動,才能使人工成本控制高效、準(zhǔn)確、透明。三、軟件開發(fā)人工成本控制流程設(shè)計(1)從項目售前階段開始,控制估算和預(yù)算。設(shè)專崗進(jìn)行工時成本審核。軟件開發(fā)項目,可以采用快速功能點法,也可以采用類推/類比法,或德爾菲方法。工時專員根據(jù)事先準(zhǔn)備的審核檢查表進(jìn)行審核。審核重點在于估算、預(yù)算過程的規(guī)范性及有關(guān)參數(shù)選擇的合理性。(2)預(yù)算表導(dǎo)入項目管理系統(tǒng),自動形成里程碑,作為后續(xù)控制依據(jù)。(3)項目計劃導(dǎo)入系統(tǒng),或直接在系統(tǒng)中拆分工作包,形成項目組員的工作計劃。(4)項目組成員在系統(tǒng)中填報工時,由系統(tǒng)自動生成工時相關(guān)的各統(tǒng)計數(shù)據(jù)報表,如SPI、CPI、完工率、人員使用率、人員產(chǎn)出率等。(5)項目管理辦公室QA定期分析異常數(shù)據(jù)的形成原因,發(fā)現(xiàn)存在的問題或風(fēng)險,與項目組一起制定改進(jìn)措施。(6)公司對異常數(shù)據(jù)產(chǎn)生的原因、問題風(fēng)險等統(tǒng)一管理,不斷改進(jìn),形成度量庫和相應(yīng)的數(shù)據(jù)基線,作為后續(xù)項目估算人工成本的參考,使得人工成本控制越來越科學(xué)、越來越精益。四、軟件項目管理系統(tǒng)需實現(xiàn)的主要需求及技術(shù)實現(xiàn)4.1軟件項目主要需求(1)預(yù)算表導(dǎo)入:根據(jù)公司的項目預(yù)算體系,針對不同合同類型,實現(xiàn)不同的預(yù)算模板。預(yù)算表導(dǎo)入后直接形成一級摘要。項目的各個里程碑、里程碑的開始日期、結(jié)束日期、工作量等全部自動形成。預(yù)算表導(dǎo)入的一級摘要只能由QA手工修改。如預(yù)算表變更,由QA手工修改。(2)項目計劃導(dǎo)入:項目計劃導(dǎo)入項目管理系統(tǒng)時,具體要求為:計劃中的標(biāo)題生成摘要,且自動將責(zé)任人設(shè)為項目經(jīng)理;計劃中的具體任務(wù)生成工作包,任務(wù)中的資源對應(yīng)工作包資源;如計劃中為虛擬人員,則導(dǎo)入系統(tǒng)時默認(rèn)為項目經(jīng)理;預(yù)算表生成的一級摘要不能被修改。4.2軟設(shè)計技術(shù)實現(xiàn)人工成本控制方式在原有工時填報系統(tǒng)的基礎(chǔ)上擴(kuò)展實現(xiàn)。采用Microsoft.NET平臺,B/S方式,數(shù)據(jù)庫是SQLserver2000。該系統(tǒng)實現(xiàn)excel導(dǎo)入、導(dǎo)出;project導(dǎo)入、導(dǎo)出等功能??偨Y(jié)從跟蹤行業(yè)標(biāo)準(zhǔn)、依據(jù)標(biāo)準(zhǔn)進(jìn)行估算、工時專員獨立審核、通過系統(tǒng)實現(xiàn)工時填報、到SPICPI定期分析、發(fā)布生產(chǎn)率基線和提升目標(biāo),從各個環(huán)節(jié)進(jìn)行有效的人工成本控制,該方式實現(xiàn)了對軟件開發(fā)項目人工成本控制的目標(biāo),幫助組織提升了項目管理能力和贏利能力。以上就是我們深圳市組創(chuàng)微電子有限公司為您介紹的軟件開發(fā)項目人工成本控制流程設(shè)計與應(yīng)用。如果您有智能電子產(chǎn)品的軟硬件功能開發(fā)需求,可以放心交給我們,我們有豐富的電子產(chǎn)品定制開發(fā)經(jīng)驗,可以盡快評估開發(fā)周期與IC價格,也可以核算PCBA報價。我們是多家國內(nèi)外芯片代理商:松翰、應(yīng)廣、杰理、安凱、全志、realtek,有MCU、語音IC、藍(lán)牙IC與模塊、wifi模塊。我們的擁有硬件設(shè)計與軟件開發(fā)能力。涵蓋了電路設(shè)計、PCB設(shè)計、單片機(jī)開發(fā)、軟件定制開發(fā)、APP定制開發(fā)、微信公眾號開發(fā)、語音識別技術(shù)、藍(lán)牙wifi開發(fā)等。還可以承接智能電子產(chǎn)品研發(fā)、家用電器方案設(shè)計、美容儀器開發(fā)、物聯(lián)網(wǎng)應(yīng)用開發(fā)、智能家居方案設(shè)計、TWS耳機(jī)開發(fā)、藍(lán)牙耳機(jī)音箱開發(fā)、兒童玩具方案開發(fā)、電子教育產(chǎn)品研發(fā)。
07-18
2020
基于組件的軟件開發(fā)方法研究計算機(jī)硬件技術(shù)的快速發(fā)展導(dǎo)致各種硬件快速組裝在一起,能夠既方便又省錢的快速組裝處一臺計算機(jī)。但大多數(shù)的軟件組裝一般都會浪費很多不必要的時間,或者是費用超出預(yù)算。近幾年來,軟件開發(fā)的技術(shù)已經(jīng)日趨成熟?;诮M件的開發(fā)(CBD)由第一代和第二代服務(wù)器發(fā)展而來,對軟件開發(fā)過程中的被動局面起到了明顯的緩解作用,令開發(fā)者通過自己手動組裝組間并裝成應(yīng)用程序,為軟件組裝行業(yè)帶來新的生命力。CBD和面向?qū)ο笾g存在著本質(zhì)上的差異,作為一種新的分布計算的方法,CBD能夠提高軟件的可重復(fù)使用率,擺脫軟件的小作坊式生產(chǎn)模式,CBD是軟件開發(fā)過程中的必要環(huán)節(jié)和必然結(jié)果。一、基于組件開發(fā)的相關(guān)概念有一些對象類組成的物理意義上的包叫做組件,組件具有獨立可傳遞性,是軟件開發(fā)中的能夠替換的軟件單源,它封裝了設(shè)計決策,同時與其他組件相結(jié)合。組間具有特定的功能,能夠跨越進(jìn)程的邊界,實現(xiàn)網(wǎng)絡(luò)、語言、應(yīng)用陳旭和開發(fā)。2.2 CBDCBD是一種利用可重用的軟件組件構(gòu)建應(yīng)用程序的技術(shù)。組成組件的三部分分別是組件的說明書、組件如何工作的實現(xiàn)設(shè)計和在指定平臺上開發(fā)的傳遞方法。CBD的基本活動包括收集組件、改善組建的質(zhì)量以及令組件之間相互適應(yīng),最后是組裝組件和更新組件。CBD工具的基本要素是組件倉庫、組件的建模工具、組件搜索工具、以及可運行的系統(tǒng)。CBD的特征與結(jié)構(gòu)化軟件開發(fā)技術(shù)相比,CBD特征顯著:首先CBD具有高度的互相操作性,能夠?qū)崿F(xiàn)真正的軟件重用。組件是完成通用或特定的一些能夠互相操作和利用的模塊,開發(fā)者可以再不頭痛的領(lǐng)域中利用它們形成合適的系統(tǒng)。其次,CBD的接口具有可靠性。組件的接口是不變的,一旦被發(fā)表就不能修改。這也說明一旦使用組件者從某個接口獲得某項服務(wù),南無他可以總從這和接口獲得這項服務(wù)。隨意一般組件封裝之后只能通過已定義的借口來提供合理的、一致的服務(wù)。這種接口定義的穩(wěn)定性使客戶應(yīng)用開發(fā)者能夠開發(fā)出堅固的應(yīng)用。同時CBD還具有可擴(kuò)充服務(wù)和強(qiáng)有力的基礎(chǔ)建設(shè)。二、CBD的主要研究重點目前關(guān)于CBD的研究重點主要分為三個方向,組件軟件、組建軟件的過飯和基于知識的方法和給予架構(gòu)的軟件構(gòu)建。2.1組件軟件這里所指的組件軟件是指通過一系列通過對象和文檔模型實現(xiàn)組件之間相互聯(lián)系和應(yīng)用的活動。例如Microsoft的COM和OMG等均屬于對象模型的一種,他們對如何進(jìn)行對象之間的語言、地址空間、計算機(jī)類型和操作系統(tǒng)邊界無關(guān)的通信進(jìn)行了描述。文檔模型如OLE2能夠提供給用戶不同數(shù)據(jù)類型和統(tǒng)一管理這些數(shù)據(jù)的應(yīng)用程序。這一技術(shù)產(chǎn)生了新的可視編程工具,從而改變了編程者對信息表達(dá)的方法和處理過程,令用戶更加容易理解和接受。2.2組件軟件的規(guī)范和基于知識的方法解決組件標(biāo)準(zhǔn)化的問題是組件軟件的規(guī)范任務(wù),目前看來分布式對象標(biāo)準(zhǔn)的分布形式多樣,且組件本身不具有統(tǒng)一明確的定義,所以增加了異種標(biāo)準(zhǔn)組件之間組裝的難度?;谥R的方法研究主要是在學(xué)術(shù)界進(jìn)行的,為了在領(lǐng)域知識的基礎(chǔ)上實現(xiàn)軟件系統(tǒng)過程的自動化,通過規(guī)范的方法對組間的組裝過程進(jìn)行描述。2.3基于架構(gòu)的軟件構(gòu)建這一方向是提供給系統(tǒng)開發(fā)者在特定領(lǐng)域應(yīng)用程序的架構(gòu)和參考體系結(jié)構(gòu)。基于組件的應(yīng)用程序不僅是一些普通部分的簡單拼湊,同時也是為了部分特定領(lǐng)域所構(gòu)建的,所以需要一種體系能夠?qū)⒔M件裝配到一起,實現(xiàn)組件之間的互相操作性,從而提高工作效率,所以不同領(lǐng)域的體系結(jié)構(gòu)的研究就變得非常的重要,對于組件的治療和組件的重復(fù)使用程度產(chǎn)生直接和關(guān)鍵的影響。參考體系結(jié)構(gòu)對組件和特定領(lǐng)域之前的關(guān)系進(jìn)行了描述,架構(gòu)則為運行對象提供了有組織的環(huán)境。因此在構(gòu)建一系列組件時能夠?qū)崿F(xiàn)設(shè)計和一致性。在組件軟件的過程中,開發(fā)者對軟件內(nèi)部的工作和操作原理不需要進(jìn)行明確和了解,只需要在外部使用上做足心思,這是一種黑盒式的軟件重用。架構(gòu)則通過繼承來實現(xiàn)軟件的重用,是一種白盒式的軟件重用,兩者存在著本質(zhì)上的差別。研究架構(gòu)的專家建議應(yīng)從白盒式逐漸過渡為黑盒式,現(xiàn)在架構(gòu)的使用非常普遍。結(jié)語正在CBD的初期需要對基本的程序組件進(jìn)行編寫,其中花費了工作者大量的時間、金錢和精力,因此在后期逐漸提高了組件的重用率,優(yōu)勢是減少了生產(chǎn)和開發(fā)成本,縮減了勞動力,提高了工作效率,同時在修改系統(tǒng)是,只需要對部分相關(guān)組件進(jìn)行修改,而不影響其他部分的使用。同時組件可以實現(xiàn)并行開發(fā)的夢想。用戶在逐漸對分布計算加深了解之后,開始認(rèn)識到了系統(tǒng)是在一個空間某處松散結(jié)合的服務(wù),在獲取服務(wù)是不需要了解信息存在于何處。同時基于主機(jī)的系統(tǒng)壯行server等計算時,使一個應(yīng)用程序不再是單片的,而是分離的和相互的。隨著軟件開發(fā)技術(shù)的逐漸成熟和發(fā)展,CBD技術(shù)更加得到重視,作為一名如阿健開發(fā)者對于CBD的掌握和關(guān)注不可或缺,對于軟件開發(fā)中遇到的問題,包括軟件的質(zhì)量、開發(fā)軟件的速度以及開發(fā)費用等都可以通過CBD技術(shù)尋求良好的解決辦法,雖然過渡到CBD的道路存在坎坷,但不可否認(rèn)的是CBD技術(shù)已經(jīng)成為互諒網(wǎng)且能夠發(fā)展的必然趨勢,具有良好的發(fā)展前景。以上就是我們深圳市組創(chuàng)微電子有限公司為您介紹的基于組件的軟件開發(fā)方法。如果您有智能電子產(chǎn)品的軟硬件功能開發(fā)需求,可以放心交給我們,我們有豐富的電子產(chǎn)品定制開發(fā)經(jīng)驗,可以盡快評估開發(fā)周期與IC價格,也可以核算PCBA報價。我們是多家國內(nèi)外芯片代理商:松翰、應(yīng)廣、杰理、安凱、全志、realtek,有MCU、語音IC、藍(lán)牙IC與模塊、wifi模塊。我們的擁有硬件設(shè)計與軟件開發(fā)能力。涵蓋了電路設(shè)計、PCB設(shè)計、單片機(jī)開發(fā)、軟件定制開發(fā)、APP定制開發(fā)、微信公眾號開發(fā)、語音識別技術(shù)、藍(lán)牙wifi開發(fā)等。還可以承接智能電子產(chǎn)品研發(fā)、家用電器方案設(shè)計、美容儀器開發(fā)、物聯(lián)網(wǎng)應(yīng)用開發(fā)、智能家居方案設(shè)計、TWS耳機(jī)開發(fā)、藍(lán)牙耳機(jī)音箱開發(fā)、兒童玩具方案開發(fā)、電子教育產(chǎn)品研發(fā)。
07-17
2020
現(xiàn)代系統(tǒng)設(shè)計許多都是由C/C++,Python等高級語言來完成,而且這些系統(tǒng)越來越復(fù)雜,涉及到的算法的運算量也越來越大,許多算法需要用硬件實現(xiàn)來滿足算法的實時性要求。FPGA是一種可編程的邏輯器件,它具有便于修改,調(diào)試,并能并行地完成大量的運算,從而提高算法的實時性,并且隨著硬件制造水平不斷地提高,F(xiàn)PGA的資源越來越大,工作頻率也越來越高,使得能在其上面完成的算法也越來越復(fù)雜。但是傳統(tǒng)的軟硬件分開設(shè)計的方法由于軟硬件設(shè)計者采用不同的設(shè)計語言,存在軟硬件設(shè)計者之間難以溝通導(dǎo)致設(shè)計周期長等問題,這種設(shè)計方法已不能滿足快速地增長的市場要求,如何將這些系統(tǒng)設(shè)計中的算法快速轉(zhuǎn)換為相應(yīng)的硬件來實現(xiàn),需要新的軟硬件協(xié)同設(shè)計方法。當(dāng)前基于C/C++的軟硬件協(xié)同設(shè)計,有一個SystemC標(biāo)準(zhǔn)化組織一直致力于這個工作,可以將C/C++算法轉(zhuǎn)換為相應(yīng)的硬件。Python是一種簡單易學(xué)并且功能強(qiáng)大的編程語言,有許多算法是由Python來實現(xiàn),而且這些算法很多是免費、開源的,和C/C++類似需要如何完成基于Python的軟硬件協(xié)同設(shè)計。一、基于Python的軟硬件協(xié)同設(shè)計發(fā)展由于Python的強(qiáng)大的軟硬件描述能力,近年來許多研究者在Python的軟硬件協(xié)同設(shè)計方面進(jìn)行了許多研究,其中一種稱為MyHDL的Python擴(kuò)展包來進(jìn)行軟硬件協(xié)同設(shè)計,采用MyHDL完成了一個接口設(shè)計實例。這些開發(fā)工具各自具有自己的一些特點,但是他們有一點是相同,就是采用Python來進(jìn)行軟硬件協(xié)同設(shè)計。下面以MyHDL為例介紹基于Python的軟硬件協(xié)同設(shè)計。二、基于Python的MyHDL包簡介MyHDL采用Python擴(kuò)展包的形式使其能支持硬件設(shè)計和仿真并在仿真結(jié)果符合要求后可將軟件算法自動轉(zhuǎn)換為相應(yīng)的采用Verilog或VHDL硬件描述,由于MyHDL包是基于Python的硬件擴(kuò)展,下面主要對MyH?DL硬件方面的一些主要特點做簡要介紹。1、數(shù)據(jù)類型:標(biāo)準(zhǔn)Python的int類型已經(jīng)具有許多硬件設(shè)計所需要特征,但是在硬件設(shè)計中由于包含許多位操作和處理,MyHDL設(shè)計了intbv類,提供索引和切片操作來支持位的操作和處理。2、模塊,端口和信號:在MyHDL采用函數(shù)來對硬件的模塊進(jìn)行建模,My?HDL也有信號對象,類似于VHDL語言的信號,采用信號作為函數(shù)的參數(shù)來定義模塊的端口。3、發(fā)生器:發(fā)生器是MyHDL的一個關(guān)鍵概念,用來建立并發(fā)性模型,對應(yīng)于Verilog的always塊或者VHDL的進(jìn)程。4、自動轉(zhuǎn)換:在一定限制條件下,MyHDL使用toVerilog()或者toVHDL()函數(shù)將MyHDL設(shè)計自動轉(zhuǎn)換為相應(yīng)的Veril?og或者VHDL代碼,如果符合MyHDL可綜合子集的要求,就可使用MyHDL完成可硬件綜和的代碼并在FPGA上實現(xiàn)。5、仿真:MyHDL通過Cosimulation對象使其能支持仿真,對于自動轉(zhuǎn)換的Verilog代碼或者VHDL代碼,MyHDL還可作為硬件校驗語言來對轉(zhuǎn)換后的Verilog或VHDL進(jìn)行協(xié)同仿真和校驗。三、采用MyHDL的硬件設(shè)計優(yōu)點Verilog和VHDL是當(dāng)前的主流硬件設(shè)計語言,但是使用基于Python的MyHDL作為硬件設(shè)計也具有許多優(yōu)點使得其可以作為設(shè)計者特別是硬件設(shè)計的初學(xué)者另外一種較好的選擇。1、MyHDL使用成本低:MyHDL是免費的并且開源,在使用MyHDL設(shè)計的工具鏈中同樣可以使用大量的免費工具比如ICArus,IVERILOG仿真工具,GTKWAVE查看仿真波形,從而可以減少設(shè)計成本。2、在硬件設(shè)計中使用先進(jìn)的軟件開發(fā)技術(shù):由于Python本身是一種軟件開發(fā)語言,現(xiàn)代軟件開發(fā)的先進(jìn)方法比如快速應(yīng)用開發(fā),測試驅(qū)動開發(fā)都在Python上得以體現(xiàn),由于硬件描述語言的硬件設(shè)計和軟件開發(fā)具有一定的相似性,采用MyHDL可以使用最新的軟件開發(fā)技術(shù)。3、軟硬件設(shè)計可以采用同樣的開發(fā)環(huán)境:Python是算法實現(xiàn)的一種理想的語言,很多算法都由Python實現(xiàn),通常算法的軟硬件實現(xiàn)由不同工程師來實現(xiàn),軟件工程師使用Python,硬件工程師使用通用的硬件描述語言,例如Verilog或VHDL,硬件工程師和軟件工程師之間存在一條鴻溝,而采用MyHDL,就可以在同一個Python環(huán)境實現(xiàn)算法設(shè)計,仿真和校驗。4、其他優(yōu)點:對于沒有一定硬件設(shè)計經(jīng)驗的設(shè)計者,通常采用Verilog設(shè)計會混淆阻塞和非阻塞賦值,不清楚Verilog的符號運算,采用VHDL進(jìn)行設(shè)計又不理解VHDL的信號概念,會覺得VHDL的類型和位寬轉(zhuǎn)換很繁瑣,但是如果采用基于Python的MyHDL包作為設(shè)計語言,這些都將不成為問題。四、基于Python的軟硬件設(shè)計流程在現(xiàn)代系統(tǒng)設(shè)計中,軟件工程師采用Python等高級語言,而硬件系統(tǒng)設(shè)計多采用Verilog,VHDL硬件描述語言,在如何將Python描述的軟件映射為相應(yīng)的硬件上,軟硬件開發(fā)者之間的交流存在一道天然的鴻溝,而采用Py?thon來進(jìn)行軟硬件協(xié)同設(shè)計就可以解決這一個問題,基于Python的軟硬件協(xié)同設(shè)計的流程如圖1所示。首先采用Python進(jìn)行系統(tǒng)設(shè)計,然后根據(jù)系統(tǒng)性能要求進(jìn)行軟硬件劃分,對于系統(tǒng)性能要求比較高的部分采用Python的MyHDL擴(kuò)展包的形式來由硬件實現(xiàn),同時采用Python來編寫硬件測試平臺。測試仿真如果不符合系統(tǒng)設(shè)計要求可以重新進(jìn)行軟硬件劃分,如果測試仿真結(jié)果不正確,可重新修改。仿真通過后可以用MyHDL擴(kuò)展包自動將Python轉(zhuǎn)換為Verilog代碼,這時的Python測試平臺無需修改還可以與轉(zhuǎn)換后的Verilog代碼一起進(jìn)行混合仿真,如果仿真通過就可以進(jìn)行硬件的綜合,下載,測試階段,這與傳統(tǒng)的硬件設(shè)計過程相同。結(jié)語從上面分析可以看出基于Python的MyHDL既是一種軟硬件協(xié)同設(shè)計方法,同時其也是Python的擴(kuò)展包,使得整個開發(fā)過程僅使用一種Python語言,并可以很方便地將一個軟件算法快速地轉(zhuǎn)換為其相應(yīng)的硬件實現(xiàn),從而完成一個軟硬件系統(tǒng)設(shè)計。由于Python目前的可綜合子集的限制和其本身還處在發(fā)展階段,基于Python的軟硬件設(shè)計還主要用于系統(tǒng)的建模方面,將其用于芯片設(shè)計的應(yīng)用還不是很多,有研究者比較過MyHDL與傳統(tǒng)硬件設(shè)計語言的實現(xiàn),對于小規(guī)模的應(yīng)用優(yōu)勢不是很明顯。但是隨著現(xiàn)代系統(tǒng)的算法越來越復(fù)雜性,系統(tǒng)規(guī)模也不斷增大,相對于傳統(tǒng)的軟硬件設(shè)計方法采用Python來進(jìn)行軟硬件協(xié)同設(shè)計的優(yōu)勢就會體現(xiàn)出來,系統(tǒng)設(shè)計、仿真、校驗的速度會大大提高,采用Python進(jìn)行系統(tǒng)設(shè)計的產(chǎn)品能更快地進(jìn)入市場。隨著基于Python系統(tǒng)設(shè)計方法和工具的發(fā)展,基于Python的軟硬件協(xié)同設(shè)計方法將會有廣泛的應(yīng)用前景。