計算機軟件基礎范文
時間:2023-05-06 18:23:25
導語:如何才能寫好一篇計算機軟件基礎,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公文云整理的十篇范文,供你借鑒。

篇1
關鍵詞:關鍵詞:計算機軟件;數據結構;算法
中圖分類號:TP311 文獻標識碼:A 文章編號:
1.計算機軟件基礎數據結構之算法概述
1.1算法的兩要素
算法有兩部分:其中一部分是對信息的操作處理,一共有四種常見的處理方式:分別為邏輯符號“與”、“或”、“非”;數學計算;信息的對比:大,小,相等和不等;信息的傳遞:傳入,傳出,定值等;另一部分是對信息的處理方式的操作結構,它引導各指令的有序進行,一般,采用流程圖法來對其進行描述。
1.2算法的特征
算法是有限指令的整體,這些指令明確了處理問題的步驟。針對相應問題,該整體能夠對任何定值按照預先設定的指令逐步進行運算處理,并且通過一定數量的運算后傳送出計算機最后得出的結果,從整體看,其必須包含有限數量的指令,并且每條指令必須意思明確,不能有多層意思;其次,這些指令必須是計算機能力以內的,若超出其能力范圍,該指令就不能夠執行,對后面也會有影響;它自身對被處理對象沒有要求,被處理對象的數量不會對這些指令產生影響,但是 ,一定要有一個或多個傳遞末端,否則,這個算法就什么意義業也有了[1]。
1.3算法的表示
從某種程度來講,大部分人可以采用各種文字和符號來編譯算法,目前,現行的主要有這幾種:一般性文字,C語言、程序圖、N-S圖、PAD圖等。其中一般性文字和C語言是具體詳細的描述算法的,而其他的則是描述算法大致內容的作圖形式,它可以直觀的表達出設計者的思路想法,更便于理解學習,
1.4常用算法
1.4.1枚舉法
枚舉法的主要內容是通過信息的的某些特點來估計運行結果的大概區域,接著通過一些手段來逐一檢驗該區域中的每一個結果,一直驗證到所有的符合才停止,并且,如果在這些被驗證過的對象中有能夠滿足該算法的所有要求的,那么這個對象就是計算機最終會傳遞的結果,如果在驗證過程中沒有一個達到要求的,那么就表明該算法無解。
通過其運行原理,可以發現其特點有:工作原理簡答明了,容易接受。但是有一個顯著缺點就是運行速度慢,工作量大。它一般只適用于一些無法用其他方法解決的問題。在實際中,大部分人會采用它解決“某個問題是否有解”、“組合情況 ”等相似問題,設計者在設計算法時用循環來構造枚舉法的整體。例如本國偉大的數學家張丘建在《算經》中的“千幣千鴨問題”就可以用枚舉法來解決。
其次,筆者還總結了采用枚舉法時可以遵循的大致步驟:
第一步:通過問題,預估問題大致范圍;
第二步:選出枚舉法的具體形式——一般枚舉法的具體形式有順序列舉,逐一列 舉,按類型列舉等方法;
第三步:逐個代入并驗證;
第四步:確定所要的答案,得出結果,或者該算法無解;
1.4.2迭代法
該方法所求結果不是精確的,是一種粗略求法,生活中很多方面,多要采用這種方法來處理問題,它有一個特征就是:將一個很麻煩的問題等價轉變成為比較簡單的迭代算式,并且重復循環這一步驟,最終由繁化簡,得出問題的答案,這種算法一般只適用于非數值類的問題。
1.4.3遞推和遞歸法
這兩種方法在算法指令的編寫中占據了主導地位,而且都運用了一些特殊的公式的性質逐項推導出來的,例如,運算出級數的結果,條件是,一般給出該式的規律,從而求出該數列的通項。
其中,遞推法也就是通過特殊的公式,從簡單的入手,把前面的出的結果逐個的帶入到后項中進行求解,該法的重要之處是特殊公式(滿足一定的規律),例如:計算出某個數的階乘,從表面就可以看出該特殊公式是G(m)=m G(m
-1),但是,有時候有些問題的特殊是不好得到[2]。
2.計算機軟件基礎數據結構之算法的設計要求
語言,是一門藝術。不論是交流,溝通,還是成為記憶的另一種形式,都在生活中起到了主導作用。一句話可以創造奇跡,同時也可以毀滅奇跡。算法,就像語言一樣,它是人類和計算機溝通的語言,通過它,人們可以和計算機交流,讓它按照預先設計的指令執行任務,但是,所給出的指令有一定的要求——就像人們之間交流的行為準則一樣。
2.1正確性
設計者必須按照算法的規則來編譯指令,這樣才能正確的和計算交流,讓它正確的執行任務,所以,其正確性中的最重要的一點就是不能出現語法錯誤(這就好比所學習的英語和其他國家的語言一樣),這樣,先不談論結果的正確性,至少計算機可以得出滿足規定的的答案。
2.2可讀性
算法的可讀特性,它的意思是算法的總體思路易于理解,試想,一個混亂的算法,頭腦在聰明的人也不能一下子就明白算法的原理,更何況是讓電腦得出所要的答案呢。
2.3穩定性
算法的穩定性,就好比機械設備一樣,如果它的工作狀態不夠穩定,那么它就很容易產生出奇怪難懂的問題,算法也是如此,如果它自身不夠穩定,那么計算機在運行時,就會很容易產生處錯誤,最頻繁的錯誤就是出現亂碼,雖然不是次次都會這樣,但是給人的總體效果就像是算法存在問題,因此,穩定性對于算法來講,也相當重要,好的算法都有這一特點。
2.4高效低耗性能
眾所周知,計算機的內部器件的好壞決定了其自身的性能的好壞,算法也是如此,好的算法都能以最低的消耗,以最短的時間得出答案,這些都是有計算機內部工作原理決定的:最主要的因素就是運算速度和存儲大小的聯系。這些,就是算法主要的一些特點,也是計算機數據結構的基礎[3]。
3.計算機軟件基礎數據結構之算法的復雜度分析
算法的復雜度決定了該算法在執行過程中并最終得出結果所消耗的總時間,設計者一般也是由算法的復雜度來判斷某一類算法的辦事效率的,因為消耗時間直接和算法所需要的內存大小直接掛鉤。而評判者的主要判斷依據就是運行時長和內存消耗。
3.1運行時長
一般,設計者不是根據所計算的算法運行的總時間來衡量時長的大小的,原因是算法運行的載體仍舊是計算機,而計算機的運行速度有和蠻多因素相關,比如:環境溫度,計算機的外部設備 和內部設備等。所以,一樣的算法在不同的運行載體上所產生的效果也不是完全一樣的。同時,這一數據的大小并不是用來衡量某一算法效率的,而是用來判定算法在時間上的損耗,進而作為評判算法的好壞的標準之一,而且所占的比重是比較大的。
3.2內存消耗
內存消耗指的是計算機在運行某一算法時暫時需要用到空間大小的尺度,它也和上文中提到的z函數有關。它的主要內容有傳入傳出信息所占的內存以及算法運行過程中暫時性占用的內存大小。其中,傳入傳出信息所占的內存和需要解決的問題相關,并由它來決定其大小,一般不會隨著算法的變化而變化;而運行過程中暫時性占用的內存大小恰恰由算法來決定,不同的算法所需要的內存也會不一樣,因此,一般較好的算法方式,所需要的內存大小都比較少,這也是為什么內存消耗會成為判定一算法好與壞的又一重要標準之一[4]。
4.結語
總而言之,計算機軟件基礎數據結構之算法 是學習者了解數據結構的基礎,它所包含的內容,可以幫助學習者了解計算機內部的運行情況,便于學習者更好地掌握計算機起到了一定的作用,同時,設計者可以學以自用,解決一些在數學,生活中遇到的不易解決的麻煩。
參考文獻:
[1]楊飛宇.計算機應用基礎項目教程[J].社會科學,2009(2).
[2]肖明輝. 淺談計算機基礎數據結構[J].新課程,2010(12).
篇2
(荊楚理工學院,湖北 荊門 448002)
摘要:隨著現代社會經濟的快速發展,以及計算機網絡信息技術的推廣普及.在現代社會計算機軟件應用范圍極大擴展,幾乎囊括了社會經濟的所有領域,這種情況下計算機軟件的開發工作也逐漸成為一個涉及廣泛的龐大產業.在計算機軟件的設計過程中因為計算機軟件個體的特殊性原因,設計工作的效率比較難提高、設計成本也比較難以控制.當前解決這一問題的主要方式是計算機軟件開發的基礎架構理念水平提升.因此本文將從基礎架構原理的角度出發,結合現代計算機軟件開發的實際情況,對計算機軟件開發的基礎架構原理進行簡要分析.
關鍵詞 :計算機;軟件開發;基礎架構原理
中圖分類號:TP31文獻標識碼:A文章編號:1673-260X(2015)05-0025-02
在社會經濟發展的強力推動下,現代計算機軟件技術已經滲透到社會生活的各個領域,對社會經濟活動具有舉足輕重的影響.由于計算機軟件技術產生的較晚,我國與其他國家的計算機軟件設計水平差距不大,始終保持著國際均勢.當前要想進一步提高計算機軟件的設計水平,已經不能單純依靠設計技術的進步,而應該從在算機軟件設計的框架原理上進行創新,只有優秀的基礎架構才能保證計算機軟件設計的高效.
1 計算機軟件設計概述
1.1 計算機軟件設計的概念
在計算機產生的早期,受計算機性能和應用范圍的限制,并沒有計算機軟件這一概念.但是在晶體管和大規模集成電路應用以后,計算機的性能有了極大的提升.同時其適用的領域也有了極大的拓展,在這種情況下為了更加科學、合理的應用計算機的能力,就需要計算機軟件的介入.由此產生了計算機的操作系統,也就是計算機最早的系統軟件.由于計算機軟件的存在能夠極大的提升計算機的應用性能,所以計算機在不同領域應用設計人員就會根據這一領域的特點設計了不同的計算機軟件系統.如在機械制造領域就有CAD和CAM等軟件,在設計領域有PhotoShop等軟件,隨著計算機應用范圍的擴展和應用數量的增加,在一些特殊領域需要應用到之前沒有的軟件,就需要計算機軟件的設計主體進行計算機軟件的開發工作.
在具體的計算機軟件開發工作中軟件開發共分為兩種,一種軟件開發形式是開發主體先進行開發,在開發完成以后在尋找市場.一種軟件開發針對目前市場上的應用需求,進行針對性的應用軟件開發.
1.2 計算機軟件開發的特點
計算機軟件開發活動在持續了多年以后,已經逐漸形成了獨立的學科體系,當前國內很多高校等開設了計算機軟件設計這一課程.計算機軟件在具體的開發實踐中表現出了兩個主要特點:持續性和針對性.計算機軟件開發活動持續了很多年,市面上的計算機軟件數量極多,但是因為經濟發展和技術進步,還是不斷有新的計算機軟件需求產生,不斷有新的計算機軟件開發出來.同時因為計算機軟件本身是在特定邏輯關系上形成的描述語句,所以根本不會有完美的軟件產生,每一個計算機軟件在誕生以后都需要不斷的修補和完善,所以計算機軟件開發最大的特點就是持續性.
受現代社會經濟發展形勢的影響,當前社會經濟發展體系逐漸完善,新生的經濟形式更多的向微觀經濟領域發展,企業主體對計算機軟件的需求愈發個性化.同時隨著計算機軟件設計企業數量的增多,計算機軟件設計主體為了迎合用戶的需求,更多的推出了針對性的計算機軟件設計理念,針對性成為新時期計算機軟件設計的新特征.
1.3 計算機軟件開發的發展
計算機誕生后不久,在晶體管和大規模集成電路基礎上形成的操作系統逐漸成型.而計算機之所以能夠執行特定的任務是因為CPU將線路的通與不通和二進制數聯系在一起,這樣操作人員就可以借助二進制數對計算機命令.但是因為二進制數本身并不符合人們本身的使用習慣而且較為復雜,所以設計人員在二進制數的基礎上開發了計算機編程的高級語言.從某種程度上來說計算機軟件開發受到高級語言的影響極大,在現代社會借助高級編程語言VF和VB即使是非專業軟件開發人員也能夠完成簡單的計算機軟件開發任務.細數計算機軟件開發的發展過程就會發現,計算機軟件的開發活動正向著簡單化的方向發展.同時隨著社會經濟的發展和社會化大生產模式的普及,社會分工越來越細,能夠在不同領域通用的計算機軟件越來越少,計算機軟件開發工作對開發人員的綜合素質要求提升[1].
2 計算機軟件開發中基礎架構原理分析
2.1 基礎架構的需求分析
在計算機軟件的開發活動中,軟件本身的需求分析是最為重要的一個環節,如前文所述現代社會經濟主體對計算機軟件系統的需求表現出高度的個性化,企業經營項目的不同、運營方式的不同、管理方式的不同都會導致用戶對計算機軟件設計的不同需求.所以計算機軟件設計的需求分析是軟件開發的第一步也是最重要的一步.如果不能透徹的理解用戶的計算機軟件需求,就可能會導致計算機軟件設計的偏差,甚至是失敗.
當前我國的計算機軟件開發主體在運營過程中對需求分析環節的重視程度還存在不足.具體表現為我國的計算機軟件設計企業在運營模式上采取經營主體與設計主體分開的經營方式,與客戶就軟件設計需求進行溝通的往往是計算機設計企業的經營人員,而從事計算機軟件具體開發的人員往往是設計人員.用戶的需求經過經營人員的轉述后往往會導致設計人員對用戶需求的誤解[2].
2.2 基礎架構的編寫
在具體的需求分析工作完成以后,就需要設計主體根據用戶的設計需求進行軟件的編寫工作,當前在軟件編寫工作中應用最多的編程語言是C語言,這種編程語言的主要特點是結構性突出、基礎架構優秀,能夠為后繼的編寫工作提供更多的便利.在軟件的實際編寫過程中為了提高軟件的編寫速度,設計主體往往會采用多個工作面同時工作的方式進行編寫.具體而言就是根據計算機軟件的結構特性將軟件分為幾個關鍵模塊,每個模塊形成一個工作面由一個編程人員進行編寫,在編寫工作完成之后再設置一個主函數連接各個模塊,從軟件應用的整體來看,使用者需要應用軟件的某個功能主函數就能夠調用某個模塊滿足用戶的需求[3].在保證計算機軟件開發質量的基礎上,最大限度的提升了計算機軟件編程的效率.
2.3 基礎架構的測試與維護
從計算機軟件設計主體的角度來看,設計完成的計算機軟件是不能直接應用的,因為工程設計軟件與目標設計相比還存在著較大的差距,盲目的應用會危害到計算機軟件的安全,也會對應用企業主體造成損失.設計完成的計算機軟件只有在完成測試工作之后才能投入實用.在計算機軟件測試領域傳統的測試方法是數值輸入測試法,以預先計算好結果的數據輸入到軟件系統中,如果輸出的結果是正確的那么就可以斷定計算機軟件沒有問題.但是這種測試方法本身存在著較大的局限性,因為輸出結果的正確性是不能保證計算機軟件系統內部數據處理過程的正確性的.也就是說計算機軟件顯示正確結果可能是一個偶然性事件,并不能夠完全證明軟件本身的合理性.所以在這一疑問的推動下設計人員開發了專門針對計算機軟件特點設置的測試軟件,應用測試軟件能夠保證對計算機軟件系統結果和過程的全方位檢測[4].
3 計算機軟件開發中的基礎架構選擇
3.1 基礎架構的重要性
計算機的軟件設計是利用特定的邏輯關系對軟件內容的定義,具體的軟件設計工作就是對軟件內容的定義,而特定的邏輯關系就是計算機軟件開發的基礎架構.計算機軟件設計的基礎架構不僅能夠決定計算機軟件的運行方式和流程,而且還會對軟件的未來維護和擴展產生影響,例如計算機軟件的基礎架構如果是封閉式的就不具備基本的擴展能力.
當前計算機軟件設計領域應用最廣泛的基礎架構就是表示層、邏輯層和數據層三層結構組成的B/S基礎架構,在這一基礎架構中軟件的表示層、邏輯層和數據層,分別對應軟件系統的人機交互界面、邏輯關系和計算機語言區.在軟件的設計活動中,設計主體可以以此為節點將整個軟件拆分為幾個部分,進行分別設計.同時在軟件系統擴展和維護中,也可以對任意一個層次的內容進行修改而不用擔心修改會對系統的其他部分造成影響,由此可見一個優秀的計算機軟件設計基礎架構能夠極大的提升計算機軟件的設計效率和應用效率[5].
所以在具體的軟件設計活動中,設計主體應該根據用戶主體的實際需求和軟件的功能實際,選擇有針對性的、高效的計算機軟件基礎架構,以提升計算機軟件的設計質量和效率.
3.2 基礎架構的選擇
現代計算機軟件設計已經成為一個系統性的工程,軟件設計的其他環節已經形成了一定的模式,所以計算機軟件設計活動中最為重要的就是基礎架構的設計.只有選擇一個優秀的基礎架構才能保證計算機軟件后繼的程序編寫、維護和拓展的高效和便利,因此在實際的計算機軟件開發活動中,必須根據軟件的目標功能,對現有的基礎框架進行分析和甄選,最后選擇一個最為適合的基礎架構.當前計算機軟件設計的主要編程語言C語言已經應用較長時間,積淀了大量的優秀計算機軟件架構,基本不需要基礎架構的重新開發,設計主體只要根據軟件的目標功能和結構選擇一個合適的架構就可以[6].
4 結論
計算機軟件開發隨著計算機軟件應用范圍的擴大而備受關注,計算機軟件開發的過程中基礎架構原理是影響軟件開發效果的直接因素,因此對計算機軟件開發的基礎架構原理的研究具有鮮明的現實意義.本文從計算機軟件設計概述、計算機軟件開發中基礎架構原理分析、計算機軟件開發中的基礎架構選擇三個方面對這一問題進行了簡要分析,認為在計算機軟件開發活動中基礎架構的影響是基礎性的,計算機軟件開發的基礎架構選擇應該秉承符合實際、功能優先的原則來進行.
參考文獻:
〔1〕向健極.計算機軟件開發的基礎架構原理分析[J].武漢冶金管理干部學院學報,2014(02):70-72.
〔2〕潘斌.計算機軟件開發的基礎架構原理分析[J].電子制作,2014(19):223-224.
〔3〕杜彥斌.面向服務軟件體系架構原理與范例研究[D].首都經濟貿易大學,2005.
〔4〕王運嘉.計算機軟件整體保護模式之探討[D].中國政法大學,2014.
篇3
一、系統計劃:它包括系統定義及分析、可行性研究和實施計劃報告的編寫。1、系統定義是制定軟件計劃的第一步,它應決定所開發軟件的總目標,其任務包括首先是確定所開發軟件的總體要求和適用范圍,描述所開發軟件與外界接口的關系;其次是確定所需硬件和軟件的支持,對開發的進度和成本作初步估計;第三是分析系統的可行性是否確定所開發軟件與原軟件的兼容性或其它關系;最后是確定所開發軟件的性能與其內部復雜性之間的折中關系。2、可行性研究它包括技術可行性、經濟可行性及社會可行性方面。技術可行性是研究應弄清現有技術條件能否順利完成開發工作,對參加開發工作的人員應有哪些技術方面的要求。硬件配置能否滿足開發的需要,估計的進度是否恰當以及對用戶的技術方面的要求是否合理等等;經濟可行性研究的目的是希望以最小的開發成本取得最佳的經濟效益的軟件產品;社會可行性研究則是指所開發的軟件項目是否涉及到版權糾紛等法律問題,這樣的軟件產品投入運行后,對生產、管理或經營體制帶來有什么社會影響。3、實施計劃報告的編寫是開發進度、人員投入計劃、人員的組織及其資源的利用作個計劃報告提綱。
二、系統需求分析:需求分析的任務在于完全地弄清用戶對軟件系統的確切需求,它具有三大特點:準確性和一致性;清晰性和沒有二義性;直觀、易讀和易于修改。比如,你首先要知道做這個項目是為了解決什么問題;測試案例中應該輸入什么數據等等,為了清楚地知道這些需求,你經常要和客戶、項目經理交流等。需求分析的步驟:1、通過對現實環境的調查研究,獲得當前系統的具體模型;2、去掉具體模型中的非本質因素,抽象于當前系統的邏輯模型;3、分析當前系統與目標的差別,建立目標系統的邏輯模型;4、對目標系統進行完善和補充,并寫出完整的需求說明;5、對需求說明進行復審,直到確認文檔齊全,并且符合用戶的全部需求為止。
三、系統設計:主要分成兩步即概要設計(總體設計或結構設計)和詳細設計。概要設計階段應著重解決實現需求的程序模塊設計問題,如何把被開發軟件系統劃分成若干模塊,并決定模塊的接口,模塊間的相互關系以及模塊之間傳遞的信息。詳細設計則是要決定每個模塊內部的具體算法。經概要設計和詳細設計完成后,需要進行必要的階段評審,其目的在于使設計發生問題能夠及時發現并得到及時的解決。實際上軟件設計的主要任務是就是將軟件分解成模塊,該模塊是指能實現某個功能的數據和程序說明、可執行程序的程序單元。
四、系統編碼:系統編碼即編程序是軟件開發的最終目標,是產生能在計算機執行的程序,其目的是使用選定的程序設計語言,把模塊的過程性描述翻譯為用該語言書定的源程序。實質上,軟件=程序+文檔。編碼的目的是產生程序,其余階段是產生文檔。軟件編碼是指把軟件設計轉換成計算機可接受的程序,寫成以某一程序設計語言表示的“源程序清單”。能充分了解軟件開發語言、工具特性和編程風格,有助于開發工具的選擇以及保證軟件產品的開發質量。
五、系統測試:包括測試的方法與技術和測試步驟。測試在軟件生命期中占重要地位,不僅是因為測試階段占的時間、花費的人力和成本占軟件開發的比重很大,而且它直接影響著軟件的質量。程序中許多細微的地方要求絕對正確無誤,不能半點馬虎。軟件開發工作在測試以前已經歷了制定計劃、需求分析、設計和編碼等許多階段,每一個人的思維不可能絕對周密,而不可能不出現差錯,更不用說,在大中型軟件開發項目中,系統內各部分之間、各種數據之間、各種人員之間存在著復雜的關系,因而目前可采用的開發方法都不能完全避免發生差錯。1、測試的方法與技術主要是機器測試與人工測試和白盒測試與黑盒測試。機器測試是在設定的測試數據上執行被測程序的過程,又稱為動態測試。人工測試并不是可有可無的,為了節約計算機機時采取的權宜措施。它是機器測試的準備,也是程序測試中不可缺少的環節。而白盒法和黑盒法主要依據是軟件的功能或軟件行為描述,發現軟件的接口、功能和結構錯誤。其中接口錯誤包括內部、外部借口、資源管理、集成化以及系統錯誤。2、測試步驟。分單元測試(模塊測試)、綜合測試、確認測試和系統測試四部分組成。它是整個計算機系統(包括軟件與硬件)的測試,可與系統的安裝和驗收結合進行。測試的目的是讓你知道,什么時候算是完成了,這樣可以及時知道你是否真的完成。
測試是軟件開發時期最繁重的任務,也是保證軟件可靠性最主要的手段,測試的目的是發現程序的錯誤,而不是證明程序沒有錯誤,軟件的測試通常分散在3個階段進行。編碼階段完成單元測試,包括靜態分析與動態測試。
篇4
關鍵詞:嵌入式;計算機軟件;測試;關鍵技術
前言
隨著我國的工業不斷地進步,科學技術的不斷發展,嵌入式計算機技術也得到了很大程度的提升。我們身邊普通的計算機并不是嵌入式計算機,嵌入式計算機指的是專門針對某一個項目或者是某一個行業進行開發的專業計算機。嵌入式計算機不僅僅能夠實現對需求開發的功能,有效地提升工作的效率。嵌入式軟件是嵌入式計算機中安裝的軟件,一般情況下,嵌入式軟件都需要根據不同的工作需要,完成相應的功能,這就要求嵌入式軟件要具備一定的穩定性,對嵌入式計算機軟件進行測試,能夠很好地保證嵌入式軟件的正常工作。
1什么是嵌入式計算機
嵌入式計算機指的是針對某一種技術,或者是某一種網絡、某一種功能等專門開發的計算機系統,利用計算機技術,加入嵌入式系統,能夠實現對計算機硬件和軟件功能的增多,能夠更加適合實際運用的需要。嵌入式計算機針對某一種功能的需要進行開發,對開發的成本、功能的可靠性以及計算機的大小等因素,都有十分嚴格的要求。通過對計算機處理器、硬件、系統、應用等進行嵌入式技術的操作,能夠更加有效地保證計算機技術的實現。嵌入式計算機大多被應用在工業生產中,能夠提升工作效率,保證工作的質量[1]。
2什么是嵌入式計算機軟件
嵌入式計算機軟件指的是在嵌入式計算機中使用的軟件,能夠進行獨立功能的操作,嵌入式計算機軟件包括嵌入式微處理器、傳感器、控制器、定時器、儲存器等等。在嵌入式計算機中使用的電子芯片或是電子器件,將嵌入式計算機軟件安裝到嵌入式計算機中,能夠有效地實現常規計算機不具備的功能,比如:實時監控功能、對設備的管理功能、數據處理功能、進行移動計算等等,真正地實現了現代化自動化的電子處理,是實現現階段自動化與智能化的社會生產力的重要途徑,嵌入式計算機軟件就是自動化的核心部分[2]。我們可以將嵌入式計算機軟件分為:簡單嵌入式系統和復雜嵌入式系統兩種。簡單的嵌入式系統只能夠完成一項功能,比較典型的簡單嵌入式系統就是單片機。單片機通過ROM技術就能夠實現對系統的使用,能夠達到對程序控制的目的。復雜嵌入式系統的功能與普通的計算機系統功能并沒有什么過大的區別,只不過在復雜的嵌入式系統中,安裝了一些微型的嵌入式操作系統,以及嵌入式應用軟件在計算機中,能夠使計算機的功能得到相應的完善,這就是嵌入式計算機軟件的作用[3]。
3什么是嵌入式計算機軟件的測試
嵌入式計算機軟件相比普通的計算機軟件來說,更具有專業性,嵌入式計算機軟件只能夠在某一個制定的平臺或者系統中運行。但是嵌入式計算機軟件的開發環境與運行的環境還存在很大的差異,不能夠使用同一網絡環境。嵌入式計算機軟件需要使用交叉開發的形式,在進行開發的計算機中,安裝并運行開發工具,開始對軟件進行編譯,再將編譯完成的軟件通過下載的方式,將軟件發送到目標計算機中,當開發計算機與目標計算機都有了嵌入式軟件,就能夠建立通訊連接,并且能夠對軟件下達命令、下載數據等等。兩臺計算機的操作系統不同,計算機的處理器也有著一定的差異,這樣的方式會增加嵌入式軟件開發過程的步驟,增加了開發步驟的復雜性[4]。我們將對嵌入式軟件進行開發的計算機稱為宿主機,對軟件進行接收并運行的稱為目標機。宿主機對使用開發工具,利用宿主機的操作系統對計算機軟件進行開發,通過通信連接將計算機軟件發送到目標集中,盡管這一系列的操作看似很簡單,但是卻需要強大的系統和硬件的支持。在這種形式下進行運行的嵌入式計算機軟件開發的活動,一般情況下,宿主機都是我們平時工作生活中使用的通用計算機,也可以是開發微機或者是軟件工作站等等。目標機與宿主機不同,目標機能夠承載宿主機開發的嵌入式計算機軟件的運行,將嵌入式計算機軟件安裝在目標機中,就能夠實現嵌入式軟件的功能[5]。
4對嵌入式軟件測試關鍵技術進行研究
4.1對宿主機進行測試的技術研究
宿主機指的是對嵌入式軟件進行開發的計算機,對宿主機進行測試的方式有兩種,即靜態測試與動態測試兩種,這兩種方式使用的是代碼邏輯的方式對宿主機進行測試。4.1.1靜態測試技術很多計算機軟件開發的專家,在對計算機軟件進行檢測的時候,通常使用的都是人工檢查的方式,由設計人員組成一個小組,小組的成員之間互相交流對軟件開發使用了哪些程序、使用的是什么算法進行的計算,并交代設計數據與軟件的模塊之間有什么樣的關系等。這樣的方式雖然能夠在一定程度上找出軟件中是否存在相關的問題。但是,由于現階段嵌入式計算機軟件的結構越來越復雜,設計的步驟越來越繁瑣,軟件設計的規模也在逐漸擴大,這就要求在一款軟件的設計過程中,可能會有很多的軟件設計師、工程師等一起參與到軟件的開發工作當中,每個工作人員的分工也大有不同,再使用從前的方式對軟件進行檢查,就會加重檢查工作的負擔[6]。這就要求我們,要根據現階段的計算機軟件開發的實際情況,找出最合適現階段軟件開發的檢測技術,對原始的計算機軟件的檢測工作進行優化升級,能夠使計算機軟件的檢查工作更加簡便。在檢查的過程中,加入適當的檢測技術,先對整個嵌入式計算機軟件的開發軟件系統框圖進行整理,并且對其設置自動連接的相關量,軟件的源代碼編程能夠通過自動化技術進行查找。這樣的方式能夠使軟件審查工作的工作效率有很大的提升,能夠使驗證工作的結果更加準確有效。我們可以通過靜態測試的方式,得到軟件中相關信息[7]。(1)軟件的源代碼程序繪制過程的邏輯圖,以及對軟件進行控制的工作流程。(2)軟件系統完整的邏輯框圖,系統內部關系調節的網絡圖。(3)軟件程序運行的路徑分析圖。(4)軟件生成的不同部分的顯示圖。(5)軟件不同部分顯示圖的位置信息,操作的頻率等信息。這些信息都能夠在靜態測試中得到實現,首先要使用靜態測試的系統對軟件的操作邏輯和控制系統進行分析,能夠有效地將軟件分析的更加精確,在進行軟件測試的過程中,能夠使測試的結果更加準確,并且能夠將測試結果更加精準的表現出來,檢測出軟件系統中是否存在相關的問題,并以此對軟件的系統進行改善。4.1.2動態測試技術對宿主機的動態測試主要指的是對軟件的代碼進行測試,能夠有效地檢測出代碼的執行能力,并且分析軟件代碼的覆蓋率,能夠有效地檢測出軟件的功能。能夠有效地了解到軟件的性能,還能夠通過分析更加了解軟件中代碼的執行情況,這樣的檢測方式能夠促進對軟件系統的改進,推進了軟件系統的發展,可以根據檢測的結果,對軟件的功能進行優化和完善[8]。動態測試技術還能夠對軟件設置的完成程度進行測試,能夠對其中已經開發完畢的數據進行檢測,檢查其中是否存在缺少的數據,這樣的方式能夠為軟件的開發工作提供重要的依據。動態測試技術能夠將軟件中的每個函數的情況,以及對內存的分配情況等進行檢測,能夠將軟件中各種元素的分配情況進行顯示,并且能夠同時對相對應的數據、代碼、函數等進行顯示。
4.2對仿真機進行測試的技術研究
仿真機作為宿主機與目標機之間重要的環節之一,通過仿真機的使用,能夠有效地完善計算機軟件測試的功能以及軟件自身的性能,比對宿主機的測試更加直觀、更加真實,并且能夠對軟件中主要的技術進行仿真測試,使測試的結果更具有說服力。其測試的結果既能夠作用于宿主機,還能夠作用于目標機。4.2.1仿真機測試數據獲取技術現階段,針對仿真機的數據監測,一直都是技術上很難實現的問題之一,很多對嵌入式軟件的檢測都需要在測試的過程中先提供軟件設計的源代碼,這樣的方式需要使用的數據量比較大,這就要求我們要針對這類數據的準確性進行技術的提升,才能夠保證檢測數據的精準性。仿真機監測技術能夠從一定程度上保證數據信息的完整性,在對數據進行完全的緩存后,再使用測試工具進行修改,能夠從很大程度上保證數據的正常輸入,在測試結束之后,還能夠對已經進行緩存的數據進行讀取,并將數據整理保存到計算機中。但是,需要注意的是,使用這種方式進行測試,還要保證數據緩存的大小不會超過測試的容量,測試才能夠順利的運行[9]。4.2.2仿真機仿真測試技術對嵌入式計算機軟件進行仿真測試,能夠在測試的過程中,對數據進行集中地管理和處理。仿真測試需要一定的技術支持,能夠將數據進行仿真模擬,在模擬的過程中,能夠看到技術的使用過程,再按照每款軟件不同的性質,分類仿真,使測試的結果更加真實可靠。還要保證在對數據的檢測過程中,傳輸信號是能夠穩定運行的,才能夠保證仿真測試的數據是實時的。
4.3對目標機進行測試的技術
目標機相對于其他部分來說,在測試的過程中,更需要注意目標機的綜合能力,還要能夠測試軟件自身的交互能力,并且測試軟件是否安全可靠,目標機測試的結果能夠更加真實地體現計算機軟件的性能[10]。4.3.1故障注入技術嵌入式計算機軟件在計算機中運行的狀態,可以通過人為的方式進行設置。但是,這就要求目標機的部件能夠具備一定的功能,能夠按照設置的時間、設置的運行方式等進行運作。故障注入技術指的是在目標機中,通過對某一部分的測試,能夠更加有效地檢驗目標機中的性能,比如:魯棒性測試、邊界測試等等。使軟件在運行時的狀態能夠表現的更加明顯。4.3.2內存分析技術嵌入式計算機的系統,一般情況下內存都會比較小。使用內存分析技術,能夠有效地保證在分析的過程中,找出計算機內存存在的問題。在問題的分析過程中,能夠防止內存中的某些內存會產生分配錯誤的問題,很多的計算機軟件故障都是因為內存分配的錯誤造成的。這就要求我們要通過內存分析的技術,來對內存進行判定。一般情況下,我們都會選擇硬件的方式進行分析,但是硬件分析的方式需要耗費的資金比較多,而且分析工具具有一定的環境限制,但是軟件分析會對計算機的代碼產生一定的影響,并且會影響內存的運行。這就要求我們在進行內存分析的過程中,要能夠按照不同的情況對測試的方式進行選擇[11]。4.3.3程序性能分析技術在嵌入式計算機運行的過程中,還有一個十分重要的因素就是程序的性能。一般情況下,嵌入式計算機對程序的性能都有一定的要求,能夠在已經設置的時間內,對某一數據進行中斷處理或者是生成處理,這就要求我們要在測試的過程中,要能夠根據實際情況決定先對那一部分的代碼進行優化,因為嵌入式計算機的優化程序的時間是很寶貴的,要盡可能地避免對一些沒有必要的程序的優化工作。使用程序性能分析技術,能夠將計算機內的數據進行整理,并按照消耗的時間,消耗的類型,消耗的歷時等進行分析。按照這些數據,能夠對計算機中的數據進行判斷,決定先對哪一部分的程序進行優化,才能夠保證對數據檢測的工作效率,保證對程序的優化是有效的。使用程序性能分析的工具,不僅僅能夠顯示計算機中每一部分的優化需要多少時間,還能夠按照需要優化的程度進行排序,引導工作人員對系統程序進行優化分析[12]。在對程序進行測試的過程中,可以先對計算機軟件中的代碼進行分析,能夠找出已經被使用的代碼,以及計算機接口的工作效率等等。可以在測試的過程中使用插樁的方式進行測試,分析完畢后在可執行的代碼當中適當地融入嵌入式軟件,并將二者進行綜合測試,得到的結果就能夠明確地看出,其中的代碼哪些已經執行,哪些被遺漏,或者是哪些數據的信息覆蓋還不夠全面。需要注意的是,使用這類分析工具進行分析,很可能會影響到計算機軟件代碼的運行,導致軟件運行出現故障問題。
5結束語
嵌入式計算機與我們的生活之間的關系十分緊密,能夠產生巨大的影響,我們身邊很多部分都使用了嵌入式計算機進行功能的完成和實現,比如:飛機的飛行控制器,或者是我們家中很多的家用電器,冰箱、洗衣機等等,都在一定程度上使用了嵌入式軟件技術。隨著科學技術的進步越來越快,嵌入式技術也越來越繁瑣。這就要求我們要在不斷地使用中對嵌入式技術進行完善,對嵌入式技術進行優化升級,能夠從一定程度上保證嵌入式技術的發展,對軟件進行測試,能夠大大地提升嵌入式計算機軟件的穩定性。
參考文獻
[1]苗中華,陸鳴超,胡曉東,等.基于虛擬儀器技術的采棉機智能監控系統開發與應用[J].農業工程學報,2014,23:35-42.
[2]沈昌祥,張煥國,王懷民,等.可信計算的研究與發展[J].中國科學:信息科學,2010,2:139-166.
[3]王璞,張臻鑒,王玉璽,等.面向實時嵌入式機載軟件的測試技術研究[J].計算機工程,1998,2:12-15.
[4]王金波,張濤.基于故障注入的嵌入式軟件安全性測試框架及實現[J].計算機應用研究,2012,8:2991-2995.
[5]劉克,單志廣,王戟,等“.可信軟件基礎研究”重大研究計劃綜述[J].中國科學基金,2008,3:145-151.
[6]王守信,方天選,李麗萍,等.山西省“十二五”期間推進兩化融合及發展軟件服務業的戰略研究(續)第二篇發展軟件服務業促進山西經濟轉型跨越發展的研究[J].機械管理開發,2011,2:1-20.
[7]凌楊,邵培南,佟雷,等.基于數字化仿真環境的嵌入式軟件測試方法[J].計算機工程,2011,S1:49-51.
[8]劉斌,高小鵬,陸民燕,等.嵌入式軟件可靠性仿真測試系統研究[J].北京航空航天大學學報,2000,4:490-493.
[9]孫昌愛,靳若明,劉超,等.實時嵌入式軟件的測試技術[J].小型微型計算機系統,2000,9:920-924.
[10]榮國平,劉天宇,謝明娟,等.嵌入式系統開發中敏捷方法的應用研究綜述[J].軟件學報,2014,2:267-283.
[11]宋錫強,汪萍萍,周韶園.智能電能表軟件測試技術概述[J].電測與儀表,2014,11:18-22.
篇5
1 計算機軟件工程管理的主要內容
計算機軟件工程管理工作的開展,需要與軟件產品的性質與特征等緊密的結合起來,其內容主要包括以下方面:
1.1 組織機構管理
不能僅僅停留在簡單集合開發人員的層面上,而是應注重人員分配和組織結構的完整性,使分工確保明確,做到上傳下達信息,這就是所謂的組織機構。但是由于不同工程具有不同的要求,因此,至今并沒有把組織機構的統一模式提出過。
12 用戶管理
用戶使用是軟件開發的最終目標。在軟件開發過程中,應對用戶的需求和操作習慣等進行全面的充分了解,從而使來自外界的干擾因素盡量的被減少。在軟件的開發中,積極的正確用戶使用的建議,能夠做到讓用戶把誠懇的意見提出來,這樣軟件的可操作性和實用性才會具有增強的機會。
1.3 工作人員管理
計算機軟件工程的本文由LWlm.cOm收集整理主體就是工作人員,對資料的查找、和軟件程序的編寫以及處理后續工作等各種項目的實施負主要責任,所以需要不同崗位的工作人員齊心協力,共同配合才能完成這項工作。因此,在分析項目的規模和性質等基礎上,對計算機軟件開發人員進行合理安排,把各自的分工和責任予以明確。但是,由于不同工作人員具有不同的素質和專業能力等,這就應結合實際情況,及時的合理調配與管理。工作人員不僅應該具備本專業知識,而且團隊協作能力也需要具備,因為計算機軟件項目具有復雜性,需要與其他人員共同配合才能夠完成。
1.4 檔案資料管理
在開發計算機軟件的過程中,需要在檔案資料中記錄各個流程,這樣可為各階段的工作提供方便,也為后期開展復查工作帶來便利,使軟件開發的保障性得到提高。因此,需要重視檔案資料的強化程度,把管理效率與質量水平提高上來,這是很重要的環節。
2 目前計算機軟件工程管理中存在的問題
2.1 軟件工程需求和實際業務存在較大差距
在開發計算機軟件的過程中,軟件工程需求和實際業務的差距較大是最主要的問題。此問題形成的根本原因在于在需求項目工程階段,市場調查項目的實體和數據等是重點,但是,這些工作僅僅停留在業務表面的層次上,初步獲得的資料也僅具有框架式的作用,而業務規劃工作卻完全被忽略了。而軟件的后續設計人員在進行業務規劃時也只能通過想象來完成,這樣就造成了實際情況與最終的產品之間產生直接的較大的差距。
2.2 軟件工程管理量較大
工作量極大是計算機軟件工程的特點,這是人所共知的事情。在軟件的開發過程中,影響它的因素很多,其中,開發人員的投人程度和管理水平等人為因素就是最大的影響因素。把人為因素刨除在外,在業務規則被確定的情況下,就較容易估算出軟件的開發量與管理量。
顯而易見,在計算機軟件工程管理中,存在很多地方需要進行改進,但是以軟件的基本為前提是需要改進的地方最實質所在。把有效的業務規劃,數據的處理方法,盡快的找出來,是實現多規則化的前提。
3 計算機軟件工程管理的方法與對策
3.1 構建完善的計算機軟件工程管理體系
首先,需要把軟件工程管理的人才體系構建起來,人才是工程進展的根本,要充分的認識到人才的積極作用,強化人力資源管理,把工作人員的主觀能動性充分的調動起來,使工程各項目標能夠確保順利落實;其次,加強學習與滲透軟件工程的相關知識,專業化培訓管理人員和工作人員等,對軟件工程知識要做到不斷的更新,掌握最新軟件工程知識,做到理論結合實踐,推動軟件的開發水平與利用價值的提升,使工程項目管理效率被提高;再次,加強建設規范制度,在實際中全面徹底的落實獎懲措施,從而把工作人員的積極主動性調動起來,為計算機軟件工程效益目標的實現奠定良好的基礎。
3.2 提高軟件效率
在以往,修改數據前,在操作方法上需要前臺程序控制,但最近幾年,隨著數據庫與信息技術的發展,這種方法已經被網絡計算所逐漸取代。因此說,修改數據程序是軟件工作效率提高的前提條件,把它向計算機的其他層次中進行分配,這是提高工作效率是最佳途徑。
3.3 軟件開發平臺要進行統一規劃
對整個計算機軟件發展造成重要影響的原因就是軟件在運行中不具備統一的平臺。重復開發各種平臺構成軟件開發平臺,而隨著時間的推移和網絡的快速發展,統一規則的軟件開發平臺會很快的構建起來。此外,可以聚集各國軟件開發人員共同開發計算機軟件。
3.4 加強計算機軟件工程的風險管理與進度管理
篇6
軟件作為計算機的靈魂,從計算機應用誕生之日起就主宰著計算機產業的發展。從二進制的指令到最先進的語音及圖像識別系統,勾勒出了軟件發展的趨勢,即面向用戶,方便用戶,贏得用戶。微軟公司的成功有力地說明了這一指導思想在軟件開發中的重要性。
1 軟件工程的概念
1.1 “軟件工程”概念提出
20世紀50、60年代開發大型系統軟件用手工方式進行,其生產效率低、出錯率高。這種狀態不能滿足日益增長的軟件生產的需要,產生以下四個方面的問題。(1)軟件復雜性飛速增長;(2)軟件成本高;(3)開發周期長;(4)維護工作量大。
即出現了“軟件危機”現象。為了擺脫軟件生產的這種局面,在1968年北大西洋公約組織的學術會議上,第一次提出了“軟件工程”這個概念。
1.2 軟件工程學概念
軟件工程學是研究和探討如何利用當代的科學理論和技術指導軟件的開發,以達到利用較少的投資獲得高質量軟件產品的目的科學。
軟件工程學既是邊緣學科,又是一種綜合性學科。它包括計算機科學、系統工程學、管理學、經濟學、人體工程學和心理學等。
2 軟件工程的發展
軟件工程的發展,大體經歷了三個時代,即程序設計時代、軟件時代、軟件工程時代。
2.1 軟件開發的三個階段
前面講過用軟件工程的方式生產軟件的過程類似于機械、建筑工程生產產品的過程。如一個建筑工程從開始到結束,經歷設計、施工和驗收三個階段。軟件產品的生產也要經過定義、開發、維護的軟件開發三個階段。
2.2 軟件工程與其他工程科學不同之處
從上面建筑工程與軟件二種產品開發階段比較,可以看出:(1)建筑工程流程圖中,設計藍圖產生之后,往下的每一步沒有回溯問題。但在軟件開發工程中,每一步都可能經歷不只一次的修改和適應的回溯問題。(2)軟件交付使用后,還有一個運行維護問題,如運行后發現有隱藏錯誤、運行環境有變化、用戶要求的變更等。
3 應用軟件開發方法
一個大型的應用軟件、如計算機輔助設計軟件,大型仿真訓練軟件等,需要多人共同完成。為保證大型應用軟件系統的開發質量,必須嚴格按照軟件工程的思路和原則,采用軟件的開發方法,使用軟件工程提供的圖示工具,組織軟件人員協調一致地完成設計與開發任務。
現應用的軟件開發方法主要有三種:軟件生命周期法、原型化方法、自動形式的系統開發方法。
3.1 軟件開發的生命周期法
生命周期方法是從時間角度對軟件的定義、開發和維護的復雜問題進行分解,分成若干個階段。每個階段的開始和結束都有嚴格的標準(前一階段的結束就是后一階段的開始。標準就是每個階段都應該交出高質量的文檔。軟件生命周期一般分為六個時期,即六個階段。
3.2 原型化方法
傳統的生命周期法的理論基礎較為嚴密。一般說來,在軟件開發過程中,首先要經過嚴格的定義或預先說明,并要求軟件開發人員和用戶在系統的開發初期就要對整個的功能和信息需求做出全面、準確而深刻地認定。
通常用戶給出概括性的軟件目標而無法描述詳細的輸入、處理或輸出需求。而軟件開發人員也可能尚未確定處理算法的效果、操作系統的適用性及即將使用的人機界面形態。在這種情況下,對事務只有邊干邊認識,原型化方法就是基于這一主導思想。
4 軟件工程開發的目標
4.1 可修改性
容許對系統進行修改而不增加原系統的復雜性。它支持軟件的調試與維護,是一個難以達到的目標。
4.2 有效性
軟件系統能最有效地利用計算機的時間資源和空間資源。各種計算機軟件無不將系統的時/空開銷作為衡量軟件質量的一項重要技術指標。
4.3 可靠性
對于實時嵌入式計算機系統,可靠性是一個非常重要的目標。因為軟件要實時地控制一個物理過程,一旦出現問題可能是災難性的,后果將不堪設想。因此在軟件開發、編碼和測試過程中,必須將可靠性放在重要地位。
4.4 可理解性
系統具有清晰的結構,能直接反映問題的需求。可理解性有助于控制軟件系統的復雜性,并支持軟件的維護、移植或重用。
4.5 可維護性
軟件產品交付用戶使用后,能夠對它進行修改,以便改正潛伏的錯誤,改進性能和其他屬性,使軟件產品適應環境的變化,等等。由于軟件是邏輯產品,只要用戶需要,它可以無限期的使用下去,因此軟件維護是不可避免的。
4.6 可重用性
可重用的軟部件有的可以不加修改直接使用,有的需要修改后再用。可重用軟部件應具有清晰的結構和注解,應具有正確的編碼和較低的時/空開銷。
4.7 可適應性
軟件在不同的系統約束條件下,使用戶需求得到滿足的難易程度。適應性強的軟件應采用廣為流行的程序設計語言編碼,在廣為流行的操作系統環境中運行,采用標準的術語和格式書寫文檔。適應性強的軟件較容易推廣使用。
4.8 可移植性
軟件從一個計算機系統或環境搬到另一個計算機系統或環境的難易程度。為了獲得比較高的可移植性,在軟件設計過程中通常采用通用的程序設計語言和運行環境支撐。
4.9 可追蹤性
根據軟件需求對軟件設計、程序進行正向追蹤,或根據程序、軟件設計對軟件需求進行逆向追蹤的能力。軟件可追蹤性依賴于軟件開發各個階段文檔和程序的完整性、一致性和可理解性。
4.10 可互操作性
多個軟件元素相互通信并協同完成任務的能力。為了實現可互操作性,軟件開發通常要遵循某種標準,支持折衷標準的環境將為軟件元素之間的可互操作提供便利。可互操作性在分布計算環境下尤為重要。
結束語
應用軟件必須采用開發者易懂的程序設計語言的格式進行編寫。最低級的編程語言是目標機直接理解的機器代碼;與之相反,高級編程語言是指具有自然結構和數據抽象結構的“類英語語言”。高級編程語言的目的是使編程人員擺脫對計算機硬件知識的依賴性,從面向機器編程的方式轉向面向高級語言。
篇7
關鍵詞:計算機軟件,專利發明,專利審查,專利“三性”
目前發達國家對計算機軟件專利性的討論已經進入第二層面,主要是對軟件專利審查如何制定符合自己國情的科學標準。遺憾的是我國對計算機軟件專利性的探討還處在第一層面或者說還沒有進入第一層面,至今還沒有看到法學界掀起討論軟件是否需要專利性問題的熱潮。如果不及時采取措施,信息時代的國際軟件競爭將把中國拋棄。由于我國與歐盟一些國家有相似的法律傳統,因此,筆者在考證歐盟計算機軟件專利性發展進程[2](P60)基礎上,提出在正式軟件專利性立法之前,先行對我國現行《專利審查指南》做出三點修改。
第一、擴大軟件專利審查的范圍,刪除計算機程序不授予專利發明的規定。
現有的《專利審查指南》指出:“涉及計算機程序的發明是指為解決發明提出的問題,全部或部分以計算機程序處理流程為基礎的解決方案” [3].這僅僅對涉及計算機程序的發明作出了界定,沒有明確提出軟件的法律定義和軟件發明的定義,建議對軟件發明的定義作出明確的界定,以便于劃清授予專利的軟件和非授予專利的軟件之間的界限。歐盟頒布的《計算機執行的發明可專利性的指令》 [4]指出:“計算機執行的發明”是指任何利用計算機、計算機網絡或者任何其他程序處理設備創造的發明,或者具有絕對新穎性等特征,整體或者部分通過計算機程序或者計算機創造的任何發明“。歐盟的定義沒有排除任何軟件的專利性,只要可以通過軟件處理設備執行,具有專利”三性“的標準就可以授予專利權。結合歐盟的規定,筆者認為,可以對軟件作出這樣的法律界定:軟件是指,為完成某種可以應用的功能而由一系列程序包括文檔有機組成的整體。軟件的范圍非常廣泛,包括系統軟件、行業軟件、工具軟件、文字處理軟件等等。并非所有的軟件都可以授予專利權,只有具有技術性,可以工業應用的軟件才能授予專利權。因此,軟件專利發明是指可以硬件執行的由程序組成的有機整體,能工業應用,滿足一定的功能,具有技術性,新穎性的發明。
其次,專利授予軟件類型的客體在軟件授予專利權的前提下也應當拓展。現行的《專利審查指南》指出[5],如果發明專利申請只涉及計算機程序本身或者是僅僅記錄在載體(例如磁帶、磁盤、光盤、磁光盤 、ROM、PROM、VCD、DVD或者其他的計算機可讀介質)上的計算機程序,就其程序本身而言,不論它以何種形式出現,都屬于智力活動的規則和方法。當一件涉及計算機程序的發明專利申請是為了解決技術問題,利用了技術手段,能夠產生技術效果時,表明該專利申請屬于可給予專利保護的客體。但是這也只是說涉及,而不是單純的軟件申請。只有和硬件或者工程結合起來的軟件才有可能授予專利權,說到底,軟件不是是否授予專利性的考慮因素,只要申請授予專利的客體滿足“三性”要求,就可以授予專利權,而不論這樣的技術是否包含了軟件的成分在其中,但是單純的軟件申請不能被授予專利權。嚴格說來,我國的《專利審查指南》并沒有把軟件作為專利申請的客體。在當前各國擴大專利授權客體的大背景下,很有必要擴充我國的《專利審查指南》的范圍。
歐盟對計算機軟件相關發明 [6]的范圍界定為,屬于一個技術領域內與計算機相關的發明都不應當排除到可專利的范圍之外。與計算機相關的發明包括計算機硬件和軟件,對于硬件,傳統的專利法已經給予了充分的保護,指令主要提供對軟件的專利保護,而不涉及到硬件的問題。他們認為 [7](P7)僅僅邏輯算法的存在不能構成區分專利和非專利主體的一個標準,算法也可以構成與計算機相關發明的基礎,也可以構成通常的機器(機械的,電子的等等),或者由機器執行的程序基礎。唯一不同的是,計算機程序由與計算機直接相關的設備來完成,而普通的機器由各個零部件來完成。因此不應當把計算機軟件和其他機械的發明區別對待。
筆者認為,我國可以借鑒歐盟的做法,以改往常傳統保守的觀點,把保護的范圍擴大到單純的軟件申請專利的問題。因為很多具有技術性和新穎性的軟件在工業應用和商業經營中與具體的工業工藝結合起來起到了技術革新和提高生產力的效果,這符合專利法保護的目的和宗旨,因此對此加以保護不但維護了軟件權利人的利益,也更好地鼓勵技術工業應用和推廣,以刺激軟件權人的投資,推動整個軟件工業的發展。
最后,對什么樣的軟件授予專利的問題,應當根據軟件發明申請審查標準來確定。
第二、對傳統的“三性”做適當的調整,制定恰當地適用于軟件專利審查的標準。
在軟件專利申請審查標準問題上,歐盟《計算機執行的發明可專利性的指令》 [8]第三條規定,成員國應當確保一項與計算機相關的發明屬于一個技術的領域。第四條指出了授予專利的實質條件,其規定:可專利保護的條件①各成員國應明確規定與計算機相關的發明只要具有工業實用性、新穎性和創造性就應當授予專利。②各成員國應明確規定具有創造性的條件之一是所申請的軟件發明必須做出了技術貢獻。③對技術貢獻的評價應當考慮:將專利權利要求的范圍作為一個整體,其中可以包括技術的與非技術的特征,以此來比較與現有技術之間的差別。 第五條指出權利要求的類型可以是一種產品,如編程了的計算機、計算機網絡或其它裝置,或是一種由計算機、計算機網絡或類似裝置借助軟件執行的方法。
筆者認為,歐盟指令第三條是TRIPS協議27(1)的具體體現,根據此條款的內容,專利應當授予一切技術領域內的發明,如果申請的產品或者程序(工藝流程)具有新穎性、涉及發明的過程、可以工業應用。與計算機相關的發明雖然屬于一個技術的領域,但是沒有提及任何物資環境的純粹邏輯算法不能滿足計算機相關發明的界定,也沒有落在技術領域范圍之內,當然也不能授予專利權。
第四條提及的授予專利權的實質審查條件可以理解為:第一項要求成員國有義務保護作為任何計算機執行的相關發明,只要所申請的發明滿足歐洲專利公約52(1)規定的基本的新穎性、發明性、工業應用的要求。第二項要求與計算機相關的發明,必須做出技術性貢獻。這個技術領域內的貢獻對于該技術領域內的一般熟練工人必須是非顯而易見的。如果計算機執行的相關發明對先前技術的貢獻沒有技術性特征將被認為缺乏實質性進步,即使其對先前技術的貢獻是非顯而易見的。當評價“創造性進步”的時候,關于技術狀態應當包括的內容和熟練工人的知識的問題必須根據評價創造性的一般標準來確定(這個一般性標準可以在歐洲專利公約中找到)。第三項提供了在決定技術性貢獻中,發明必須作為一個整體進行評價,這與歐洲專利局審理的專利申請采取的措施是一致的。按照此規定,假如發明的一個部分落在歐洲專利公約52(2)規定的非專利的客體上,如果存在非顯而易見的技術貢獻,或許仍然可以授予專利權。如果缺乏技術貢獻,比如對技術的貢獻整體上都是非技術性的,那么這種貢獻是一種純粹的商業方法,不是專利權的客體。
第五條提及的申請形式表明,歐盟指令不僅對與硬件裝置結合起來的軟件授予專利,而且對單純的軟件也可以授予專利權,只要其符合第四條規定的審查的實質條件。
比照歐盟的規定,筆者認為,我國建立的軟件專利的審查標準不應當偏離原來的審查標準,應當保持立法的一致性和連續性。
現行的《專利審查指南》指出,申請發明的專利必須具有新穎性,這是授予專利權的第一必要條件,如果申請的發明已經存在就沒有必要授予專利,其中的新穎性應當根據審查指南的界定來判斷。這種新穎性不僅是指對于所有現存的技術具有新穎性,而且對于所有以其他形式表現的技術也具有新穎性。對于軟件的專利性尤其應當注意的是,應當與以前所有的技術和申請相比較,如果這樣的技術已經存在就不應當授予專利,不能因為原來存在的技術,經過軟件化和程序化,就可以獲得專利權,這樣不僅浪費了專利資源,而且與專利制度本身的宗旨也是向背的。比如,影像、視聽、動畫、電子圖書等等軟件,不能因為其通過軟件的形式體現出來,就意味著可以授予專利權,因為這些內容本來就不是專利法考慮的對象,其仍然屬于著作權法包括的范疇。
其次,所申請的軟件發明必須具有發明創造性,同申請日以前已有的技術相比,該發明有突出的實質性特點和顯著的進步,而且對所屬技術領域的熟練技術人員來說,是非顯而易見的。如果發明是其所屬技術領域的技術人員在現有技術的基礎上通過邏輯分析、推理或者有限的試驗可以得到的,則該發明是非顯而易見的,也就不具備突出的實質性特點。關于技術性的問題,歐盟專利審查員一般根據三點確定[9](P27):①確定最相近的已有技術包括以軟件形式表現出來的技術和其他以傳統的技術方式表現出來的技術。②確定要解決的技術問題。使用客觀的方法確定需要解決的技術問題。這需要研究最相近的已有技術以及該發明與最相近的已有技術之間在特征方面的區別(結構的或者功能的)。③從最相近的已有技術問題出發,考慮權利要求的發明對同領域的技術人員而言是否是顯而易見的。我國可以參照這樣的審查標準確定軟件申請所具有的技術性,但是必須強調一點的是,確定現有技術的范圍應當包括以所有的形式體現出來的技術,這可以有效的防止通過現有技術的軟件化,申請軟件專利的可能,杜絕軟件專利資源的浪費。
關于實用性的問題,是指軟件發明必須能夠在產業上制造或者使用,并且能夠產生積極效果。如果申請的是一種產品(包括發明和實用新型),那么該產品必須在產業中能夠制造,并且能夠解決技術問題;如果申請的是一種方法(僅限發明),那么這種方法必須在產業中能夠使用,并且能夠解決技術問題。只有滿足上述條件的產品或者方法的專利申請才可能被授予專利權。根據此標準,如果所申請的軟件可以工業應用,不應當排除到專利之外。
對于商業方法,筆者不主張目前對其專利保護。有三個理由:①商業方法是專利審查指南明確排除的范圍,組織、生產、商業實施和經濟等管理的方法及制度不能授予專利權,因為其屬于指導人們進行這類活動的規則和方法,不僅沒有技術構思的成分,而且缺乏發明的創造性,不能因為其僅僅軟件化就給其專利權。再說經營的規則和方法本來就是一種有限的資源不能讓少數的人壟斷,這也便于商業競爭和商品流通,推動社會的進步。②來自于美國的研究[10]證明商業方法的專利性是個錯誤的選擇。一是,商業方法專利的成本比其他的專利成本要高;二是,囚犯困境使得公司的研究開發成本轉移到對私有財產的競爭上,這樣反而不利于消費者和社會福利的增加;三是,把計算機軟件在內的商業方法排除在專利之外的原因在于,商業方法很抽象,在法律對主題采取全部保護和不保護之間,專利法很難劃定商業方法專利壟斷的范圍,以恰當平衡創新所得與自由競爭的需要之間的關系。來自于美國的報告表明在某些領域內專利抑制了創新,確切的說,尤其是在軟件的領域。③目前歐洲官方也不主張對商業方法授予專利權,因為EPO沒有發表任何正式聲明或指南,清晰、準確地陳述其對于商業方法專利性的方針政策[11].歐盟內部許多的大型軟件公司也反對商業方法的專利性[12],他們認為,不適當地拓寬專利領域的范圍,容納非技術貢獻的網絡商業方法的行為,將會排除清楚的、對于控制經濟有價值的技術。商業方法的專利除了對經濟造成巨大的破壞性的影響,審查和執行他們也有實際困難,況且作為原則性問題這對于信息社會也是不正確的。總之,在沒有對我國的市場和軟件行業做出明確的調查和研究之前,不能盲目地把專利的范圍擴大到商業方法及其軟件化的商業方法上來。
綜合軟件專利“三性”的標準,筆者認為,可以授予軟件專利的客體包括,可以產業化應用的行業軟件、可以和硬件設備結合起來實現自動化的控制軟件、提高計算機硬件性能的系統軟件、可以控制(或者遠程控制)生產或者物流過程的操作軟件、滿足軟件專利“三性”標準的其他類型軟件。不能授予專利的軟件包括,軟件化的音像(書籍)等電子產品、單純的數據庫軟件、各種游戲軟件、各種形式的文本編輯和教育軟件、不滿足軟件專利“三性”標準的其他類型的軟件。
第三、對一些申請專利的程序問題,包括審查的期限,公布的日期,保護的年限等加以修改。
軟件專利保護存在兩點明顯不足:一是,專利審查的期限過長,與軟件的生命周期不相適應,不能很好地為軟件市場的發展服務;二是,軟件專利申請的費用和成本過高,耗時耗錢,使得一些軟件商無利可圖,相應降低了專利資源的效率。
針對以上兩點不足,結合軟件行業的特點,筆者認為,可以對我國專利審查指南做出調整,對于軟件的申請可以縮短初步審查和公布的期限,同時對于實質審查的期限也可以縮短。針對軟件生命周期短的特點,可以考慮對軟件專利的保護期做出規定,限定為10年或者更短的期限,以便于軟件的更新和節省專利資源。恰當的保護期限應當建立在對我國軟件行業的發展狀況詳細研究的基礎之上,還應當考慮到一些發達國家對軟件專利采用的保護期限。
[文 獻 注 釋]
[1] 本研究屬于國家知識產權局重點課題“計算機軟件發明的專利保護”子課題之一。
[2] 參見李士林,鄭友德。歐盟計算機軟件發明專利保護的發展研究[J].科技與法律,2003,(1)。
[3] 參見《專利審查指南》(2001年文本)第二部分第九章引言部分。
[4] “Proposal for a DIRECTIVE OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL on the patentability of computer-implemented inventions”,網址下載europa.eu.int/comm/internal_market/en/intprop/indprop/index.htm
[5] 參見《專利審查指南》法25.1(2)。
[6] 《歐盟由計算機執行的發明專利性指令》的建議第二條,sipo.gov.cn/sipo/ywdt/gyzscqxx/t20030107_10783.htm.
[7] “Proposal for a DIRECTIVE OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL on the patentability of computer-implemented inventions”,COMMISSION OF THE EUROPEAN COMMUNITIES,Brussels,20.02.2002.
[8] 同[4]見指令相關的條文。
[9] 參見張平。論商業方法軟件專利保護的創造性標準——美、日、歐三方專利審查之比較[J].知識產權,2003(1)。
[10]“Ladas Parry Guide to Statutory Protection for Computer Software in the United States”,載于ladas.com/Patents/Computer/Semiconductor.USA.html.
[11] 朱瑾編譯。美日歐在商業方法專利問題上的分歧[J].載于sipo.gov.cn/sipo/ywdt/gyzscqxx/t20021206_10266.htm.
篇8
購入的軟件與固定資產一同購入與固定資產一同購入的計算機軟件,如果與固定資產不可分,無論是否單獨計價,都應作為固定資產而不是無 形資產核算,如生產設備的自動化控制程序等;如果與固定資產可以分開,且能單獨計價,則應確認為無形資產,按購入成本入賬。
單獨購入單獨購入的計算機軟件,應區別情況進行會計處理:單獨購入用于生產經營或管理的,應按購入成本確認為無形資產,且無形資產達到預定用途后所發生的支出不構成無形資產的成本。若采用分期付款方式購買無形資產,無形資產的成本為購買價款的現值。
單獨購入用于研究與開發的,如果研究與開發活動結束,該軟件還能另作他用,則應按購入成本資本化為無形資產;如沒有其他作用,則應計入“研發支出—— 費用化支出”,按無形資產具體準則處理。
單獨購入用于構成產品的組成部分的,應視這種軟件是否可以重復使用來決定,如果可以復制,應將軟件原版的購入成本資本化為無形資產,區分使用壽命有限的無形資產和使用壽命不確定的無形資產。
對于使用壽命確定的無形資產,以后各期計入產品成本;對于使用壽命不確定的無形資產,則不再攤銷,但至少應當于每年年終進行減值測試。如果不能復制,也就是說要為每件產品購入一個軟件,則購入時應作“存貨”處理且領用時計入當期產品成本。
委托開發的軟件委托開發形成的計算機軟件應按實際支付的委托費入賬。如果該軟件是用于生產經營或管理,應資本化為無形資產;如果用于研究與開發且沒有其他用途,則應計入“研發支出”,否則就予以資本化為無形資產;如果用于產品的組成部分,由于委托開發形成的軟件企業一般可以復制,因此也應資本化為無形資產。
篇9
1實驗概況
本次結構實驗選取某鐵路鋼構三跨PC箱形橋,按照剛度相思的原則,將該橋的尺寸和模型尺寸擬定為18.2:1,該橋模型的總長度為29.6米,在墩身的建筑中,使用的是C40的混凝土,墩臺使用的混凝土型號和墩身使用的混凝土型號保持一致,在橋身的建筑中,采用的是C60的混凝土類型,在1號和4號橋墩采用的支座是活動的,2號和3號橋墩采用的剛性連接支座,并對其采用豎向和水平的加載方式。在本次實驗工況研究中,設置了四種工況,包括水平推力、張拉、配種以及豎向加重。
2對結構實驗的分析
按照結構實驗數據處理的一般流程將軟件化為為三個層次,第一個層次就是數據庫層,主要用于存儲試驗中用到的各種信息;第二層為數據管理層,主要負責對試驗中各種數據的管理;第三層為處理結果層,該層主要是根據第二層下達的任務,實現對數據的結果表達。在Matlab軟件中,設計了一套完整的控制函數,并包括I/O設備訪問所需要的函數,該函數可以實現對硬件的有效控制,同時也滿足了硬件之間的通訊功能。
3對實驗結構數抽象據庫的分析
根據實驗模型的機構體系,根據數據庫的原理,可以得出抽象的數據庫模型,該數據庫的模型可以通過Access2000實現。在該數據庫模型中,涉及到的因素很多,例如用于存儲百分表位移計分布信息的位移測點表,存儲加載歷程和工況的工況信息表,除此以外,還包括應力信息表、壓力信息表、位移測值表以及應變信息表。在數據訪問和數據管理操作中,不會對其他表進行操作,只需要通過位移測點表、測點信息表以及工況信息表來完成。采用這種數據訪問和數據管理方法,可以有效的確保原始數據不受到破壞,提高原始數據的安全性。
4對數據管理和數據處理的分析
在對數據進行相關操作時,要確保數據的安全性。因此,在進行數據庫操作的過程中,應該將其放在安全性比較高的C/S模型中,并在其前端管理程序中實現。通過控制Matlab軟件編程數據管理程序,在ODBC中建立相應的數據庫接口,從而在Database中實現對數據的處理和數據訪問功能。在對數據庫進行管理的過程中,需要實現多個方面的功能,具體來說,主要包含以下幾個部分:首先,要預留出UCAM接入口和PC接入口,并實現對數據的手動導入和自動導入功能。其次,要按照一定的條件,實現對數據的訪問和對數據的查詢功能,并做到便捷和高效。再次,要實現數據處理任務定制功能,根據數據查詢的結果和數據的性質,程度可以對程度做出智能判斷,并建立起數據連接機制和數據導入機制,最后利用Matlab來實現對數據庫的管理功能。根據以上的論述,利用Matlab編程程序,實現了對數據的初步自動化功能和可視化功能。
二總結
篇10
1 簡介
近年來,山東省計算機文化基礎考試已成為山東高職院校計算機必考課程。為此便于考試和教學,我們自主開發了《計算機基礎模擬軟件》。
該模擬軟件包括操作題與客觀題兩部分。我們選擇使用VB6開發考試系統的主要模塊及界面。操作題編程與Office后臺宏語言(Visual Basic)聯系密切,錄制的宏經簡單修改便可形成系統子模塊。在數據存儲方面,我們選用VB的文件系統對數據文件編程,從而在方便數據加密的同時又可減小系統的大小。
2 Windows操作題與系統打包技術
Windows操作題部分在整個系統中屬于最簡單的部分,這得益于VB6封裝良好的FileSystemObject對象。通過訪問此對象的方法與屬性,我們可以輕松地實現試題內容的生成與相應的評分。
系統打包方面,我們選用Inno Setup。Inno Setup是一個免費開源的安裝制作軟件,小巧、簡便,支持pascal腳本,能快速制作出標準Windows2000風格的安裝界面,足以完成一般軟件安裝任務。
3 基于Office對象模型開發Office操作題模塊
微軟Office產品中引入了Office對象模型并內置了VBA編程語言,還內置了友好的宏記錄器,因此利用0ffice提供的VBA功能,實現Office操作題的自動評分。Word、Excel、PowerPoint三個模塊的編程思路極其一致,下面僅Word部分評分模擬的實現原理。
首先,檢測考生文件夾下word文檔是否存在。如果存在則繼續執行;如果不存在則判為分(存儲到全局變量iWord中),并退出模塊。相關代碼如下:
Public Sub Word01(file1 As String)
If bFileExist(file1) = False Then
iWord = 0 ‘存儲word部分試題得分
Exit Sub
End If
Dim oWord As New Word.Application
Dim s() As String
Dim iLower As Integer
Dim i As Integer
oWord.Documents.Open (file1)
oWord.Visible = False
With oWord.ActiveDocument.Paragraphs(2).Range.ParagraphFormat '定義段落格式
If .LineSpacingRule = wdLineSpace1pt5 Then '定義行距為1.5倍
iWord = iWord + 2
Else
iLower = iLower + 1
ReDim Preserve s(iLower)
s(iLower) = "正文第一段行距設置錯誤(-2)" & vbCrLf
End If
End With
Call oWord.ActiveDocument.Close '關閉WORD文檔
oWord.Quit
Set oWord = Nothing
上述過程執行的最后,我們把考生得分及可能的錯誤信息全部保存到全局字符串變量strWordResult,由評分模塊訪問這個變量來顯示Word部分做題信息。
4 客觀題模塊的設計
客觀題內容的屏幕呈現實現于系統主窗體frmMain后臺代碼中,通過操作各客觀題文件實現,是整個系統開發的關鍵之一。
(1)動態顯示客觀題內容。如何顯示跨越屏幕邊界的大對象,這是系統要動態顯示客觀題內容必須解決的問題。我們所采用的方案主要了來自MSDN的技巧:引入兩個Picturebox控件(父子關系),并使用HscrollBar或VscrollBar(本例中使用)控制作為子控件的Picturebox在父Picturebox中的顯示位置,因為作為子控件的Picturebox的某一部分一旦超出了父Picturebox的邊界就成為不可見的。在我們的項目中設置了三對Picturebox控件,分別用來實現動態顯示單選題、多選題及判斷題內容。
(2)加載客觀題內容。加載客觀題內容是一個極具挑戰性和技巧性的問題。問題的關鍵在于這里的控件是動態生成的。一般地,在VB6中動態生成控件主要有兩種方案:一種是使用VB6以前的控件數組,另一種是使用VB6始引入的WithEvents變量。但在本系統環境下需要生成大量的控件,而VB6中是不允許創建WithEvents變量數組的,因此,我們決定使用控件數組方案來生成大量的控件以顯示客觀題內容,而且這樣更便于統一控制控件的事件。
5 小結
總體來看,開發計算機基礎模擬軟件的主要技術關鍵有:Office后臺宏錄制模塊及Office DOM對象模型編程;利用Picturebox控件與VscrollBar控件顯示客觀題與內容的動態定位。
目前,該系統已經成功應用于學院的計算機基礎教學及模擬考試。但是,該系統也存在一些不足,例如,系統僅實現了單機版,需手動記錄學生成績,尚待解決。