發布時間:2022-06-06 06:13:00
序言:寫作是分享個人見解和探索未知領域的橋梁,我們為您精選了8篇的軟件設計開發研究樣本,期待這些樣本能夠為您提供豐富的參考和啟發,請盡情閱讀。
關鍵詞:軟件開發;數據庫設計;理論;實踐
中圖分類號:TP393 文獻標識碼:A文章編號:1007-9599 (2011) 16-0000-02
Database Design Theory Practice Study in Software Development
Jiang Ke
(Jiangxi Provincial Rural Credit Cooperatives,Nanchang330039,China)
Abstract:As an application of a strong discipline,database technology is increasingly applied in wide range of software development,software development,database design theory and practice more and more research-oriented industry.In this paper,the main problem of database design and design theory are described to introduce several principles of database design,and database design steps and some examples of analysis.
Keywords:Software development;Database design;Theory;Practice
我們知道,數據庫的設計工作在自動化或交互式的半自動化設計上還存在很大的欠缺。除了關系型數據庫外,目前尚缺乏一套完善的數據庫設計理論、方法和工具。數據庫今后的研究方向或焦點將是數據庫設計理論與實踐研究。本文就軟件開發中數據庫設計理論實踐問題主要介紹了以下幾個方面的內容。
一、數據庫設計及設計理論概述
在整個軟件開發過程中,一般會分為五個階段,即需求分析、軟件設計、軟件編碼、軟件測試和對軟件的維護。在具體的設計階段,首要的任務就是設計出模塊的程序流程、設計出算法和數據結構,次要的任務是對數據庫進行設計。因此,可以看出,數據庫的設計在整個軟件開發過程中占據著十分重要的地位。通常,數據庫的設計主要是指根據不同用戶的不同需求,在一定的數據庫管理系統的基礎上來實現通過設計出的數據庫的結構并建立起數據庫的過程。它是建立數據庫及其應用系統的一種很強的技術,所以,數據庫設計是信息系統的開發和建議中的一項核心技術。
對于數據庫的設計理論大致如下:數據庫的組成=實體+關系;實體:用主鍵來表示;關系:用外鍵來表示;范式:指導如何找實體;關系:指導如何將各實體聯系起來;通俗的理解就是通過范式建立起各個表,而表中只有主鍵,即只能找一個個單獨的實體,實體之間沒有關聯。通過關系將每一個單一的實體聯系起來,才會產生外鍵。
二、數據庫設計的幾個原則
(一)命名的規范化。我們知道,不一樣的數據庫產品對于對象的命名是有不同要求的。在數據庫設計中,對于各對象的命名以及在編寫后臺程序的代碼上都應采用大小寫的字母形式,命名長度不超過30個字符。
(二)慎用游標。對大表或者多表定義的游標,即大的數據集合而言,在使用游標逐行進行遍歷數據時極易導致程序進入到一種漫長的等待甚至死機的狀態,因此,使用游標時,我們可以建立一個臨時的表,將那些符合條件符合要求的數據行轉入到該臨時表中,再對該臨時表定義游標操作,這樣做能夠使游標的性能大大提高。
(三)索引的使用。顯然,索引一般是用于快速訪問表中的數據。通常,大型的數據庫會有兩種索引,一種是簇索引,一種是非簇索引。無論是添加哪一種索引,都可以使按索引列查詢的速度大大提高,雖然在速度上有所提高。但是在插入、更新、刪除等操作上性能會有所降低,特別是在填充因子比較大時,降低效果更明顯。因此,對索引較多的表進行頻繁的插入、更新、刪除操作時,在對于表和索引的建立上,應該設置較小的填充因子。這樣才能方便在各項數據頁中留下足夠的自由空間,以減少頁分割或重新組織的工作量,才能夠有效提高性能。
(四)數據的完整性和一致性。為了有效保證數據庫的完整性和一致性,通常設計人員會設計比較多的表間關聯,以最大程度地降低數據的冗余。由于表間的關聯是一種強制性的措施,所以建立表后,對于父表和子表的插入、更新、刪除等操作都會占用系統整體的開銷。還有,盡量不要選用Identify屬性的字段來作為主鍵與子表關聯。另外,為了能夠很好地提高系統的響應時間,選擇合理的數據冗余也是很有必要的。
(五)事務的使用。事務一般是要一次性完成的操作。這些操作都是單個的操作,但數據庫系統可以保證事務這一組操作全部完成或者一點都不做。大型數據庫的這一優越特性,使數據的完整性在很大程度上得到了保證。
(六)數據庫性能的調整。在網絡設計和計算機硬件配置確定的情況下,影響應用系統性能的因素主要是客戶端程序設計和數據庫性能。大部分的數據庫設計員都會采用兩步法開展數據庫設計。具體的設計步驟是:首先是邏輯設計,其次進行物理設計。邏輯設計有效去除了冗余數據,很大程度上提高了數據吞吐速度,從而保證了數據的完整性,清楚地表達出了數據元素之間的關系。對于多表間的關聯查詢,其性能可能會有所降低,同時也提高了客戶端編程的難度。因此,在物理設計中需進行折中考慮,結合業務規則,確定關聯表數據量的大小、數據項的訪問頻度等,對這樣的數據表頻繁的關聯查詢時應適當提高數據冗余設計。
(七)數據類型的選擇。數據類型的合理選擇會在很大程度上影響到數據庫的性能和操作。因此,要根據具體的設計要求與規則選擇合適的數據類型。
三、數據庫設計步驟及實例分析
數據庫的設計過程一般可分為六個大的階段。下面,筆者通過實例來介紹和分析各階段的功能和特點。
(一)需求分析階段。需求分析階段是第一個階段,該階段主要是用來分析和調查用戶的業務以及數據的使用情況,以此熟悉這些業務活動和數據的類別、數據的數量以及使用范圍,還能了解它們在業務活動中的交流情況等,從而來確定用戶對數據庫系統的使用條件和各種其他約束條件,達成共識后形成一定的用戶需求。在這一階段,在定義數據庫表及字段需求時,首先必須要檢查報表,查詢和視圖,以此決定哪些是必要的表和字段。舉個例子,先假設,比如一個客戶需要一個報表按照其郵政編碼的排序,求和及分段。這種情況下,就必須要保證其中包括單獨的郵政編碼字段,不能把這些郵政編碼錯亂地參與到地址字段里。
(二)概念設計階段。本階段通過對用戶描述的現實世界的某一處的分類概括以及聚集,進而建立一種抽象的概念數據庫模型。舉個例子,以擴充的實體聯系模型的方法為例。當然,還是首先要明確在現實世界中的各部門含有的所有實體及屬性,明確實體間的關聯以及對信息的制約條件等,列出各個部門所有信息的局部描述環境;再將得到的多個用戶的局部視圖集合成為一個全局的視圖,這樣就形成了用戶要求描述的現實世界的概念數據模型。
(三)邏輯設計階段。這一階段的主要工作就是把現實世界的概念模型設計成為數據庫的邏輯模型,而且這種邏輯模型應適用于某一種特定的數據庫管理系統。很顯然,邏輯設計階段在整個數據庫的設計過程中起著非常重要的作用。
(四)物理設計階段。物理設計階段要求在數據庫管理系統的存儲方法和儲存結構上,要選取合適的方法路徑與存儲結構。同時,這些合適的方法或路徑還必須要依賴于計算機具體的物理設計。
(五)驗證設計階段。這一階段是很關鍵的一個階段,也是不可缺少的一個階段。我們知道,任何一個大型數據庫的設計都會經過多重循環和反復驗證。在整個驗證過程中,一旦發現某一步驟出現錯誤,就必須馬上回到上一步驟來進行調整與修改。所以,在驗證設計階段,應該考慮到以后的修改維護與解決方案。
(六)軟件運行和維護階段。這基本是最后的環節了,在數據庫系統正式投入運行中,要不斷地進行調整和修改維護。
四、結束語
顯然,使整個數據庫的設計更加的工程化、規范化和便捷化將是我們今后要不斷去爭取做好的。未來數據庫設計的研究方向是數據庫設計理論方面的內容,通過完善的理論研究來建立起準確的模型,在整個數據庫的設計中充分體現出其先進的思路和方法,最終達到數據庫的設計更加的工程化、規范化和便捷化的目的。
參考文獻:
[1]何玉潔等.數據庫原理與應用-第2版[J].機械工業,2011,4:1
[2]陶宏才.數據庫原理及設計[M].清華大學出版社,2004,11
概述
刀具管理軟件支持FTP協議,實現文件的上傳和下載功能。另外,快速數據庫查詢和存取以及局域網服務的使用,能減少編輯程序與編輯工藝周期、改善技術人員之間的交流和減少各種人工的差錯,從而提高生產效率,為企業節省成本與占用資金。
一、研究背景及意義
目前部分企業由于數控設備與產品的多樣性,導致了數控刀具的多樣性,而在編輯數控程序或編輯工藝的過程中,經常需要一些刀具的特征參數或庫存數量,比如刀具長度,刀具直徑,使用壽命等。過去,這些數據的獲得通常是由人工查詢圖紙或相關資料,耗費大量人力成本與時間,所記錄的數據分散且不容易查找,不利于刀具的特征參數與刀具庫存數量的快速查找,從而導致編輯程序與編輯工藝周期過長,也可能導致重復購買與刀具兼容性的忽視。
隨著計算機技術的在工程領域中的發展應用,為確保企業信息最大程度地實現共享,避免各種信息成為孤島,計算機刀具管理軟件已經逐步代替了人工用Excel記錄刀具庫存和刀具參數。
二、研究軟件的功能及應用
根據數控刀具管理系統的需求及特點,該軟件具體分為十大模塊,分別是:附件/零件模塊、單一組件模塊、刀具模塊、設置篇模塊、庫存模塊、重磨模塊、進程模塊、進程模塊、測量模塊、訂單計劃模塊。
(一)附件/零件模塊
手動刀具,轉動附件,機器備件等均稱為附件/零件,該模塊主要功能是讓管理員清楚知道工具存放位置,工具的數量與種類,更能清楚了解什么樣的刀具用什么樣的工具進行安裝或拆卸,減少了準備工作的浪費,提高了生產的效率。
(二)單一組件模塊
刀片,刀柄 ,刀桿,拉丁等均稱為單一組件。該模塊主要是讓管理員清楚知道刀片、刀柄等存放位置,以及數量與種類,更可提供采購部門需要的數據,在最快的時間反應出,哪種刀片已經快使用完,需要購買,這樣不僅可以減少等待加工時間,提高生產效率。更重要的是,通過合理的管理及計算,預測車間每個月可以節約相當客觀的成本,隨著車間規模的逐漸壯大,節約的成本也會逐漸增加。
(三)刀具模塊
刀具是由許多單一組件組成的。該模塊主要功能是賦予這些刀具特有的ID編碼,技術人員在編輯刀具ID編碼時,需將刀具特征加入其中,如:TD-56-312-90-2-CTY,TD表示鏜刀,56表示直徑,312表示長度,90表示度數,2表示2個刀刃,C表示可更換刀片,T表示涂過層,Y表示硬質合金,這樣就把刀具的基本特征描繪出來了,它的作用是:第一,方便技術人員選擇與尋找刀具,也方便了管理人員管理刀具。第二,此模塊可以使技術員清楚地知道這些刀具是由哪些單一組件組成的,以及這些單一組件的型號,從而方便了再次購買。第三,由于每把刀具都配上了身份證,現場的操作人員不容易搞混,大大提高了,生產節奏,也提高了生產效率。
(四)設置篇模塊
設置篇模塊含有:待加工零件圖號,加工此零件所需要用的所有刀具,加工此零件所用的機床,以及操作員。使管理人員與技術人員清楚地知道,每臺數控機床所需要加工哪幾種零件,以及用哪些刀具,如果出現問題,方便了管理人員與技術人員進行追溯,以便及時解決問題。
(五)庫存模塊
所有的附件/零件,單一組件,刀具,都必須建立庫存數據庫。該模塊主要功能是讓管理員清楚的知道,所有的附件/零件,單一組件,刀具庫存數量有多少 。 第一,可以避免重復購買。第二,為銷售部及時提供了即將用完的單一組件信息。建立庫存數據庫,有效的控制了成本,降低了不必要的浪費(重復購買),提供了技術人員與采購人員所需要的信息。
(六)進程模塊
該模塊能自動記錄各種數據,例如:用戶登錄刀具管理軟件時,詳細的記錄了ID帳號與登陸時間,當該用戶提取庫存時,有詳細的記錄時間與數量,重磨刀具時詳細的記錄時間與數量等等,出現問題時,管理人員能夠迅速的憑借進程上記錄的時間,追根溯源。
(七)測量模塊
對刀儀通過此模塊,將測量數據直接傳送到電腦上。該模塊主要功能是能夠記錄刀具測量數據之后,生成刀補程序,接著通過DNC輸入到數控機床里。
(八)訂單計劃模塊
該模塊主要針對采購部,當某樣部件數量小于設定的最小庫存時,此部件將會出現在訂單計劃中,當采購員打開刀具管理軟件使用訂單計劃模塊時,對話框將會跳出來,提醒采購員對此部件進行購買。使用該模塊可以有效節省企業的占用資金,配合黃金分割原理x=(-1+ 5^-2)/2,例如,使用同一種型號刀片,數量為100片時,庫存數量=100X0.382=38.2,也就是說庫存數量為38片的時候占用資金最為節省,但考慮到,刀片一般以盒來計算,大多數一盒刀片里有10片刀片,那定義最少庫存為40片。當庫存少于40片刀片時,此部件將會出現在訂單計劃中,提醒采購員進行購買。
三、建立數據庫
(一)刀具參數數據庫
刀具管理軟件利用單一組件模塊和刀具模塊,第一,對該刀具在刀具管理軟件上進行組裝,一把刀具是由多個單一組件組裝而成的。第二,組裝完畢時,必須給予刀具一個唯一的ID編碼,確保刀具的唯一性,這樣不僅有利于技術人員快速查找,也便于大家對相似刀具的區分。第三,有了ID編碼之后,對該刀具的各種參數進行測量或分析,并填入相應的位置。要注意,ID編碼是不能隨意更換的,改變ID編碼,原有的ID編碼不會消失,導致數據庫參數出錯,因此在編輯ID編碼時需謹慎。建立刀具參數數據庫之后,刀具管理人員可以很方便的使用各種模塊對刀具進行管理,并可以快速的提供技術人員所需要的刀具信息。
(二)刀具與零配件庫存數據庫
刀具管理軟件利用附件/零件模塊、單一組件模塊與刀具模塊,對各個零件與刀具的數量建立數據庫。要注意,為了能夠存儲每一條數據記錄每個庫存字段目都必須配置一個代碼,如果記錄的所有項均填寫完畢,須保存當前數據記錄。建立刀具與零配件庫存數據庫之后,刀具管理員可以清楚的知道刀具以及零配件的數量,防止了刀具或零配件因缺少而導致產品不能加工。
四、取得的效益
降低刀具使用和管理發生的間接費用其中包括:1. 降低刀具的庫存,減少冗余的刀具,提高刀具的利用率;2. 在刀具供貨中引入市場機制;3. 減少對人員、資金、設備、廠房的占用;4. 減少備刀、調刀的差錯。 提高加工效率及刀具應用水平其中包括: 1. 服務工藝創新;2. 選擇更好的刀具,更佳的切削參數,減少隨意性;3. 提供應用技術;4. 提高加工效率,保證加工質量;5. 提高數控機床的利用率5%~50%;6. 加強分析與監督的作用。
五、研究結論
刀具管理軟件采用局域網訪問方式,方便了各個部門對刀具庫存與刀具參數進行查找,并通過DNC直接將刀補參數輸入至數控設備,從而有助于生產車間實現無紙化管理。本軟件的投入使用,為生產車間提供有利條件,縮短編程與編輯工藝的時間、降低成本、縮減占用資金。既能滿足企業要求,又具有廣泛的應用前景。
計算機專業不同與其他學科,學生的實踐都是在計算機上面完成的。作為老師,如何更多的、更詳細的了解學生目前的學習情況?而學生,離開了課堂和老師,又該如何進行自主學習和自我測試?因此,一種具有試題閱卷和能夠反饋成績的教學軟件對于教師和學生來講,是很重要的,這種教學軟件不僅方便,而且還能夠讓老師實時了解學生的學習情況,同時也激發了學生對學習的興趣。
一、VB的概述和功能
Visual Basic是美國微軟公司推出的通用、面向對象以及采用事件驅動的程序設計語言,Visual是指開發用戶界面圖形的方法,編輯其界面的時候無需編寫大量代碼,只需要采用搭積木的建構程序方式編寫程序即可,是開發人數使用最多的編程工具之一。而Basic則是指Basic語言,它是計算機技術發展史上被廣泛應用的語言。總的來講,Visual Basic是在Basic語言原有的基礎上得到了進一步的發展,其不但提供了新的數據庫和Web工具,還增加了SQL Server交互方法。總的來說,Visual Basic是目前最流行、使用最廣泛的應用軟件開發平臺。另外,Visual Basic 程序設計主要應用于多媒體開發、數據庫開發、網絡開發、圖形開發等程序中。其數據訪問的特性在允許對企業數據庫的格式建立相應的數據庫和前端應用程序的同時,還可以調整其服務端。程序員可以用Visual Basic高效、快速的開發Windows編程環境下的各種應用軟件系統。
二、VB6的集成開發環境
VB6與之前的VB版本不同,之前的VB所有版本的集成開發環境都是由標題欄和菜單欄組成。而VB6則不同,它是Visual Studio家族的一個組件,在保留Visual Basic 5.0優點的基礎上,對開發環境進行了改進,VB6的標準欄和菜單欄是由工具欄、窗體設計器、控件箱、彈出式菜單、工程管理器窗口、屬性窗口、對象瀏覽器、工程管理器、窗體布局窗口組成。同時,VB6的數據訪問技術采用了新的數據訪問技術,第一,VB6增加了ADO控件和數據庫可視化的工具。不但能夠有效且快速的訪問本地及遠程的數據庫,而且還允許程序員在數據環境方面,除了可以創建可視化和操作ADO之外,還可以連接其命令,這些都為程序員對數據源的操作提供了極大的方便。第二,加強了Internet的功能,使Internet成為當前最強有力的開發工具之一。第三,VB6在智能化向導方面也增加了新的特性。
三、VB開發教學軟件在計算機基礎操作中的應用
(一)界面設計與文件結構
界面設計分為兩步,先按照軟件結構圖設計好控件,然后再確定控件的屬性。而文件結構則是,當設計好一套試題之后就建立相應的試題目錄,題目少的情況可以應文本文件儲存,題目多的話則用Access數據庫來存儲。教學軟件開發工具均采用VB,一是因為VB與VC類的開發軟件相比,除了更容易上手,并且開發的周期短、效率高。二是因為office軟件里面的宏都是VBA,,而VBA只是VB的一個子集,如果使用VB開發的話,不但能夠使兩者更好地結合,并且還可以快速且有效的寫出閱卷程序代碼。
(二)開發教學軟件的選題
當設計好教學軟件的界面題目之后,才能夠編寫開發教學軟件的功能模塊代碼。為了避免學生抽取的試題一樣,可以將選題的按鈕可以做成按鈕控件數組。其次,選題因為使用了FSO復制文件、復制文件夾這兩個方法,所以在對文件和文件夾進行創建、改變、移動、刪除等操作,以及檢測文件、文件夾的信息以及路徑時,都需要用到FSO對象模型。
(三)實現了閱卷的功能
計算機教學中最常見的操作試題有Windows操作題、Word操作題、Excel操作題以及PowerPoint操作題。以Windows操作題為例,沒有編寫過測試教學軟件的老師會覺得對操作題的閱卷很困難,也不知道學生有沒有對試題進行操作。其實,Windows操作題的閱卷很簡單,教學模擬軟件有一個自動閱卷的功能,而開發軟件的新建、刪除、復制、剪切等操作就是用來判斷學生做題的文件或者文件夾是否存在。而當學生做完測試題之后,點擊“閱卷”按鈕也可以得到反饋成績,
四、基于VB6開發的計算機基礎模擬軟件考試系統
目前,有不少院校為了方便學生考試和老師教學,利用VB6開發系統的,模塊和界面開發了計算機基礎模擬軟件,該模擬軟件有操作題和客觀題兩部分。操作題的VB編程與后臺的宏語言聯系密切,而數據存儲方面,也可以選擇用VB文件系統對數據文件進行編程,VB文件系統在給數據加密的同時,也減小了系統的大小。
(一)基于VB6開發程序下的Windows操作題及系統打包技術
在VB6系統的FSO對象模型下,系統中最簡單的部分就是Windows操作題,Windows操作題通過訪問FSO對象模型的方法和屬性,就可以青色生成試題內容及相應的評分。而系統打包則需要使用免費開源的安裝制作軟件Inno Setup,Inno Setup的外觀不但小巧、簡便,并且還能夠快速有效地制作出Windows的標準安裝界面。
(二)基于office對象模型開發的office操作題
在VB6程序設計開發系統中,所有office產品都被引入了office對象模型,并且office產品中也都裝置了VBA程序代碼以及宏記錄器,因此,office對象模型可以利用VBA程序代碼,實現對office操作題的自動評分。另外Word操作題、Excel操作題以及PowerPoint操作題的模塊代碼與Word的路徑一直,所以,僅對Word操作題的評分原理進行闡述。
首先,基于VB6開發的計算機基礎教學模擬軟件會對考生文件下的Word文檔進行檢測,檢測其是否存在,如果存在則會繼續進行操作,如果不在則會退出本模塊。當過程執行完之后,考生的成績以及試題出現錯誤的部分都會保存到全局字符串變量中,最后由評分模塊訪問這個變量并顯示Word操作題的所以信息。
(三)基于VB6開發程序下的客觀題模塊設計
觀題模塊下的加載客觀題對于VB6開發程序下來講是一個極具挑戰性、技巧性的問題,問題的關鍵之處就在于加載客觀題的控件是動態生產的。在VB6開發程序中,只有兩種方法才能生成動態控件,一種是使用VB6之前的控件數組,第二種則是在使用VB6開發程序的同時,引入With Events變量,由于VB6程序不允許創建并使用With Events變量數組,所以,為了生產動態控件,只能使用第一種控件數組方案來顯示加載客觀題的內容。
五、總結
整體來看,VB6開發軟件對計算機基礎教學有很大的幫助,不但方便了老師對學生學習情況的了解,還培養了學生對學習的自主能力以及提高了學生的操作實踐能力。
關鍵詞 計算機軟件 開發設計 難點措施
中圖分類號:TP31 文獻標識碼:A
0引言
隨著計算機信息化的應用越來越越廣泛,對于軟件的要求也越來越高。一套完整的計算機系統是由硬件和軟件組成,而軟件的質量優劣直接關系到計算機運行處理的水平及性能。軟件的開發生存期一般包括分析、設計、測試以及運營維護。軟件的設計開發就是根據軟件設計的要求以及規范對需求項目系統進行模塊結構的建立。
1我國的軟件開發設計概述
當前,我國軟件開發設計領域中,有很多不同的設計手法和設計支持工具,設計的成果也比較可觀理想。但仍有較多的難題和狀況。相對于一般軟件的開發設計,實時軟件的開發設計過程更為復雜,技術人員多采用面向對象法和數據流兩種方法進行開發設計工作。經過軟件開發設計技術人員的不斷努力和創新,有了Ada和運用Petri網的方式進行軟件的開發和設計。
2軟件開發設計的難點
2.1軟件需求分析不到位
在進行軟件開發設計中,開發設計人員常常會對要求設計的項目分析的不夠充分,導致分析不完整、不清晰,以至于出現太籠統的現象,不被可測試性的軟件內容,導致出現不同的設計開發問題,影響到軟件在實際應用中的效果,對軟件的開發和設計進程有很大的影響。
2.2軟件開發設計的規劃不實際
對于軟件的整個開發設計過程,其是相當的復雜。它是有不同的程序組合而成的一個項目工程。在軟件開發的實際進行中,出現沒有按照相關的規定規范進行,導致開發設計時間周期加大,或者對復雜的軟件工程沒有充足的時間進行,而是用少量時間進行的,以致于軟件的實際運用質量大大降低。“慢工出細活”對于軟件的開發設計是很好的體現,軟件開發是一項復雜而又量大的工作,需要充足時間、精力投入到開發設計中去。
2.3軟件的前期測試不充分
一套軟件在正式推廣和使用前,必須做好充分到位測試以及檢驗檢測工作。然而在當前為了所謂的效益,在軟件開發設計中,這塊的工作沒有到位,出現了眾多問題。對企業的正常運營操作帶來直接的影響。同時,對于客戶對軟件的個性化和自我功能的需求,這些新的程序功能加大了軟件開發的的難度和復雜度,對軟件的后續運作有較大的不利。因而,在軟件開發設計完成上線使用中,盡量對軟件不進行修改和增加,保證軟件的整體性和穩定性。
3解決措施
3.1面向對象法
面向對象法可以有效的發現計算機軟件開發設計的難點。在軟件的運用中,軟件多用于實體,比如:功能性的開關、傳感器、信號傳輸和轉換器等。面向對象的設計方法以實體和模塊等進行軟件的程序和功能開發設計。面向對象法,是應用非形式化的方式,讓對象把其需要的功能羅列出來,再經簡單的運行規則進行相關的處理工作,可以確定軟件的屬性和操作方式,得出對象所需的軟件模型,可以有效的解決設計和開發中的難點和難題。
3.2模塊化法
模塊化的設計法是目前計算機開發和設計中常用的一種。此設計法可以有效的降低軟件的設計復雜性,還可以對軟件進行修改和增加。模塊設計是把不同的軟件工程和小程序組合設計的,可以有效的確保不同程序的獨立性,模塊設計是由不同分工的設計技術人員參與完成的,有利于軟件的快捷性。
3.3數據流和數據結構設計
在眾多的軟件設計中,由于層次和使用領域模糊,出現設計難題。而數據流的設計法可以進行軟件程序結構化處理和操作,主要利用采集到的信息數據進行設計開發,在數據設計中,可以完整的去頂軟件的結構和獨立性[3]。而數據結構的設計主要是用于軟件的設計數據以層次結構表現出來。根據不同的結構、順序、重復和選擇進行,在具體設計中應對軟件的數據結構進行分析調查,按照不同的結構進行描述,確定操作程序的設計,完成完整的軟件開發設計。
4結語
隨著計算機信息化和網絡化的應用需求的增加,對計算機的軟件設計要求也越來越高。而軟件的設計開發直接關系到計算機的運行。準確運用好面向對象、模塊化、數據流和數據結構的方法進行分析、設計、測試等,完全可以設計出優秀的軟件,為我國的計算機軟件開發業做出重要的貢獻。
參考文獻
[1] 李大鵬.關于計算機軟件開發的語言研究[J].計算機軟件和應用,2012,23,(6):65-66.
【關鍵詞】智能家居 家電控制 系統開發 軟件設計 研究
隨著科技文化以及經濟水平的不斷提升,人們對舒適、快捷、安全的家居環境追求的渴望日益增加。而計算機軟件設計開發的飛速發展為智能化家居理念,注入無窮的力量也帶來了無限的希望。智能化家居也是近年來剛興起的新理念,這一理念充分顯示了人們對智能化居家環境的追求。智能化家居隨著互聯網的發展以及無線網絡的出現,逐步進入無線網絡控制時代。智能家居主要由無線網絡、計算機、網絡信息、網絡通信以及系統化模塊等綜合運用于家居,形成的智能化家居控制系統。智能家居控制系統主要有智能化照明控制系統、智能化安保監控報警系統、智能化家電控制系統、智能化編程定時系統、智能化室內環境調控系統以及室內外遠程操控系統等。下面我們就針對智能家居控制系統軟件設計開發以及軟件調試進行研究。
1 智能化家居控制系統的特色
隨著智能化的不斷發展,智能家居理念應運而生。智能家居這一理念的提出目的就是:利用多功能化的智能服務為家庭帶來環保、舒適、便捷、安全的居家環境。這樣的居家環境不僅能給人們帶來高效舒適的生活,也能幫助家庭成員保持交流的暢通,優化家庭的生活方式,幫助我們合理安排時間節省時間,增強居家環境的安全性。這些目標、這些優點的進一步實現,無一不需要智能化控制系統來進行操控運行。因此智能化家居控制系統作為智能化家居的的核心,其重要性也是不言而喻了。
然而傳統的智能化家居在遠程操控上的具有控制效率低、控制方式單一等缺點。隨著無線網絡以及物聯網的飛速發展,我們就能將檢測系統控制系統以及互聯網有機的結合在一起進行研究,彌補傳統的智能家居在控制系統上的不足。智能化家居控制系統需要結合各種模塊進行開發設計,下面我們就針對智能化家居的核心內容,智能化家居控制系統的模塊分類、各大模塊控制系統的軟件設計開發等方面展開論述研究。
2 智能家居控制系統的分類以及軟件設計研究
智能家居控制系統由軟件和硬件系統結合構成,這里我們可以把硬件比作我們的身體軀干,軟件就是我們的大腦。那么正常運行的基礎是硬件,進行分析操控、命令的主要部分是軟件系統控制。智能化家居控制系統主要分為照明控制系統、家電控制系統、環境控制系統、安保監控報警系統等。下面分別對各類控制系統進行分析以及各類智能家居控制系統的軟件設計研究。
2.1 照明控制系統以及控制軟件設計
一天內有一半時間屬于夜晚,因此照明控制系統對于智能化家居控制系統來說是必不可少的。照明控制系統主要包含各類照明燈具、光敏感應器、聲敏感應器、單片機系統、輸入輸出控制器、紅外傳感器以及電線等構成。
照明系統的核心就是單片機,在這里單片機是整個系統的終端控制芯片,可以進行數據采集分析以及數據命令來完成人們的智能化網絡操作等。紅外感應器以及光敏感應器是用來檢測光的強度和是否有人,以此來產生分辨信息輸入到單片機控制系統,來控制照明系統的開關。光敏和聲敏器件可以構成一個對光強度和聲控相結合的智能化照明模塊。首先,要連接好控制線路,以及各個感應器的正確安裝,然后通過串聯、并聯或者串并聯相結合的方式,就可以令這幾類照明系統的選擇具有可操控性。可以通過控制系統的軟件進行調控命令的,分別控制或者一起控制都是可供選擇,可供調控的。
2.2 家電控制系統以及家電控制系統的軟件設計
舒適的居家環境內,各類家電的使用是必不可少的。常用家電主要有空調、冰箱、電視、洗衣機、熱水器以及各類廚具等等。現如今家電可謂是琳瑯滿目,品類眾多,功能眾多,讓我們無法很好的選擇品類,很好的運用其功能。這時我們就可以設計一款軟件,配合相應的家電控制系統來完成對各類家電的智能化使用。
家電控制系統由各類家電、數據采集器、輸入控制器、單片機系統、輸出控制器、智能開關以及線路等相應器件構成。現今各類家電中,大多數家電已具有單獨的智能化操控系統,如空調、電視、洗衣機、熱水器等都有各自的智能化操控模塊。因此對于家電控制系統我們要做的就是如何把這些單獨的小模塊給并入到一個整體之中。這時,數據采集器的作用就凸顯出來了,我們可以通過系統終端命令,數據采集器進行分析調控,然后通過輸入輸出控制器經由單片機系統進行智能開關的終端控制。要想多個家電一起精確控制就必須把各個家電的位置進行地址編碼,把位置編碼輸入到控制系統的芯片中,根據不同地址編碼來精確到對哪個家電進行操控。再把這些小的模塊進行串并聯整合,通過數據命令進行編碼解碼來調控終端的數據,進行我們對家電的需求命令。把單獨的小模塊系統做好后就只需要調控連接在一起,就可以通過軟件對終端進行控制了。
2.3 室內環境控制系統以及其軟件設計
一個舒適的室內環境是生活的必要條件,那么如何能夠營造出適合所有人的室內環境呢?這里我們就可以通過智能化室內環境控制系統來實現我們的想法。人對環境的要求也不盡相同,濕度、溫度、氧含量等都是最重要的指標。因此智能化室內環境系統必須包含智能化空氣濕度調節器,空{,空氣清新器等電器,還要有濕度感應器、溫度感應器、氧含量感應器等各類感應器,以及數據接收系統,單片機控制系統,輸入、輸出系統。
可以通過各個小器件的連接來構成智能化控制系統。控制系統在軟件可由不同接口控制,來制定不同按鍵的不同功能。例如室內環境可由加濕、除濕、升溫、降溫、送風、開機、關機七個接口,七個按鍵進行最基本的控制。我們在軟件上的設計只需把不同的器件進行相應的接口連接,然后通過不同的按鍵來產生相應指令數據進行傳輸調節控制。我們需要注意的就是如何讓它們在一起運行而不會產生不兼容的問題。這些都需要我們在系統模塊設計連接以及相應的軟件開發過程中解決。
2.4 安保監控報警系統以及相應的軟件設計
居家環境的一個很重要的影響因素就是安全性,這里我們就來說一下安保監控報警系統。毫無疑問,居家環境中安全永遠是第一位的。安全性因素主要分為外來的和內在的兩種。外來的安全性影響因素在安保監控報警系統中主要體現在防偷防盜功能上,可通過視頻監控報警系統來實現。內在的安全性影響因素在安保監控報警系統中主要體現在防火防電等功能上,可通過可燃氣體報警器、煙霧感應器等報警裝置來實現。
視頻監控系統模塊由視頻采集與編碼、視頻錄像、遠程傳輸這三部分構成。視頻采集與編碼一般采用mp4的壓縮格式,然后對視頻數據進行緩存,傳輸至 客戶終端進行識別驗證。這些緩存的視頻也能讓我們做到對自己家居環境的實時監控,如有偷盜發生,既能提前進行報警,也能留下不法分子的行竊罪證。可以設置軟件程序聯接至電話上,如遇強行破門破窗而入的情況進行識別,智能打電話到110報警電話以及業主電話上進行報警。
報警模塊的軟件設計主要是由家居內布置的各個探測器發出警報信息,在報警模塊中報警信號分為開、關兩中情況,系統由探測器的開關狀態來決定是否需要報警。由于家居內報警探測器眾多,需要對每一個報警探測器進行逐一位置編碼,把位置編碼信息輸入到系統控制芯片中,這樣如果系統接到報警信號的輸入,就可以具體定位到哪個報警探測器的位置,也就可以確定需要識別的危險位置在哪兒,然后進一步識別分辨處理。家居內一般主要有消防報警裝置,可燃氣體報警裝置等,通過軟件程序的設置,把報警信號在控制系統中進行編寫輸出,智能報警給相關單位和業主。
3 總結
隨著智能化的普及,智能家居理念應運而生,本文就智能家居控制系統軟件設計研究展開相關論述分析。通過上文分別對智能化家居控制系統的特色,以及智能化家居控制系統的各大模塊進行介紹分析。主要介紹了照明控制系統、家電控制系統、環境控制系統、安保監控報警系統等模塊,還有對各個控制系統模塊進行分析以及各類智能家居控制系統的軟件設計等方面研究。
參考文獻
[1]張小貝,周鳳星.基于嵌入式控制器和 RS485的智能家居系統[J].電子測量技術,2012,35(08):62-65.
[2]周興中,陳萬林,劉林菊等.基于51單片機的智能家居監測系統硬件設計[J].計算機與信息技術,2012(02):12-13,17.
[3]陶莉,黃佩偉,溫細金.基于RS-485 總線的智能家居系統[J].自動化儀表,2007(11):49-51,54.
[4]姜楠.基于STC89C51紋機的紅外遙控智能家居系統設計[J].現代電子技術,2012,35(24):162-164.
[5]余文俊,凌志浩.一種物聯網智能家居系統的研究[J].自動化儀表,2015,32(08):56-59.
[6]滕海坤,陸二慶.給予 RTSJ的智能家居系統網關設計[J].桂林理工大學學報,2011,31(01):148-151.
[7]袁敏.給予物聯網的遠程智能家居控制系統的設計[J].制造業自動化,2012(22):23-24.
[關鍵詞]構件化 軟件 可靠性
隨著計算機技術的飛速發展,軟件已經逐漸應用到各種安全關鍵領域,例如航空航天、核電、國防、工業控制、交通運輸、金融等。這類軟件通常都規模龐大、結構復雜,對可靠性和安全性有著極高的要求。長期以來,由于此類系統的軟件失效和安全性問題,造成生命財產損失,甚至給環境造成嚴重災難的事例層出不窮,這就使得軟件的可靠性分析、評估和保障變得尤其重要。
一、軟件構件概念
隨著軟件工程的發展,軟件復用技術逐漸成為研究熱點。基于構件的軟件開發(Component-Based Software Development,CBSD)方法 ,改變了傳統的基于“數據結構+算法”的開發模式,提出了基于“構件開發+構件組裝”的開發新思路,使已有成果得以復用,因而得到了廣大開發人員的推崇并迅速發展。軟件構件,是指軟件系統中具有相對獨立功能、可以明確辨識、接口由契約指定、和語境有明顯依賴關系、可獨立部署、可組裝的軟件實體。它由接口、實現和部署三大要素構成。其中,接口主要解釋構件所能完成的功能,實現是讓此構件運作的代碼,部署是構件的存在形式,即為二進制代碼或可執行文件。
基于構件的軟件開發具有適用范圍廣、重用效率高的特點,其效率的發揮需要大量標準的構件群來支持,這就需要標準統一的構件封裝技術規格和應用于具體領域的大量構件。這兩個方面現在是構件化發展的阻礙。構件封裝技術規格的統一需要資深軟件公司和國際性的軟件機構深化合作、統籌兼顧來制定實用、有效、科學的標準。領域構件群的創建需要學術組織和有責任有遠見的軟件公司加大投入,深化構件化軟件開發的應用,在業界形成模范作用。而中小型軟件公司應該建立自己的構件庫,在開發中盡量應用構件化軟件開發方法,總結經驗,為構件化時代的到來和繁盛做準備。有了統一的規格標準和各個領域豐富的構件群,那么構件化的開發將極大提高軟件開發效率,解決軟件危機。
二、基于構件的軟件開發過程
基于構件的開發,是指將軟件系統的開發過程看作是在體系結構的指導下,用構件組裝方式開發軟件系統的軟件開發方法。基于構件的軟件開發過程可以概括為以下四個階段:
1.問題域分析與建模( 問題分析階段)
針對問題描述,通過領域工程的思想,進行問題域分析與建模。分析階段的主要任務是通過對問題域的抽象,區分出共性問題和變性問題,分析的結果是將問題域進行形式化表示,即建立問題域模型,可采用UML模型來表示。
2.求解域模型設計( 構件設計階段)
根據對問題域的分析與建模,可得出求解域模型,即系統的體系結構及系統所需構件。對于已存在的、可復用的構件,分析其接口是否需要擴展;對于需要新增的構件,通過合理的分析及設計,保證構件滿足求解域的要求,并盡可能保構件的可復用性。
3.構件開發及組裝( 系統開發階段)
從構件庫中選取滿足需要的構件,擴展其接口使之應用于當前工程;對新開發的軟件構件,不僅應該使其應用于當前工程,還要將其存儲到構件庫中,以便復用。通過組裝得到完整的系統,經測試后可運行。
4.應用系統演化( 系統維護階段)
基于構件的應用系統的演化實際上是構件升級、替換和擴充的過程,針對用戶需求或實際運行效果進行軟件的調整,以適應新的環境要求。
三、基于構件化設計的軟件可靠性分析
1.可靠性分析基礎
軟件可靠性是指軟件在規定的時間內軟件不失效的概率。構件可以自行開發,可以購買商業構件,也可以從相關領域構件庫中獲取。雖然獲取的構件一般都有相應的可靠性說明,但同一構件在不同的軟件系統中所處狀態不同,其可靠性也需要進行重新分析。在基于敏捷開發的構件化軟件實踐中,每一次軟件版本,都是以構件測試為基礎,用戶必須對各構件進行使用性測試以發現軟件失效。小規模、多版本,使用戶可以在早期發現軟件中與自己所提的需求不一致的地方,用戶可以持續地參與到測試中來。用戶通過現場使用并快速反饋,為敏捷團隊修正開發方向提供依據,可以說迭代增量開發、持續集成、小版本這些實踐都是自適應的。對當前版本進行現場使用測試,獲得失效數據(測試成功與失敗次數),可獲得該版本可靠性的點估計。
2.可靠性分析
首先,它可以便于設計開發者之間相互理解和交流。只要系統是使用某種風格或模式的規范方法來組織,則別的設計者就很容易理解系統的體系結構。譬如某人把系統描述為“管道—過濾器”模式,則他不必給出細節,人們立刻明白系統是如何組織起來的,并在腦海中清晰地得到此系統的圖像;
第二,使用軟件體系結構促進了設計的復用。許多經過實踐證明的軟件結構可以用來解決許多相似類型的新問題,這對新軟件的開發帶來了便利和質量保證;
第三,使用軟件體系結構也促進了顯著的代碼復用。對于體系結構中的不變部分,不同的系統可以共同應用同一段實現代碼,從而提高了該段代碼的應用價值;
第四,使用軟件體系結構的標準風格和模式有利于支持互操作性,例如像CORBA這種面向對象的結構和基于事件機制的工具集成。
總之,使用軟件體系結構的模式有利于軟件開發者之間的交流和理解,有利于提高軟件設計實施的效率和質量。軟件體系結構的觀念能否成熟到使軟件設計開發發生根本性改變,關鍵在于各類體系結構、設計模式的完善和系統化。軟件體系結構設計中很重要的成就之一就是抽象出了許多常見的軟件系統構建模式。這些構建模式是軟件系統設計人員多年工作經驗的總結,它們將為軟件設計的系統分析和設計工作提供豐富的參考資料。
軟件體系結構的選擇往往成為一個系統設計成敗的關鍵。人們在開發研制軟件的長期實踐中積累總結了許多成功的經驗。不同類型的功能需要不同類型的構件實現。
參考文獻:
[1]楊芙清,梅宏. 構件化軟件設計與實現[M]. 北京 :清華大學出版社,2008.
關鍵詞:軟件;抽取;需求
信息化產業經過幾十年的發展和建設,正逐步從最初的用于解決局部問題的小型或簡單軟件,向復雜、成體系、網絡化的企業級系統擴展。軟件系統的構成不再只是模塊,越來越多的是功能構件和子系統,使軟件系統成為“系統的系統”,或叫復雜系統。如何構建可擴充、可裁剪、可生長的滿足企業應用的大型軟件系統,已成為軟件業研究的重要課題之一。其中,復雜系統的結構設計是人們最關注的核心問題。
1 軟件設計的需求分析
軟件通常是因需求才進行設計開發,由用戶方從解決業務問題的角度提出,均以專業的術語或事務性的語言描述。高質量、清晰準確的需求描述,可有效約束軟件系統的結構設計和功能定位。邊緣清晰、描述規范的要求,會在一定程度上降低軟件設計和開發的成本,提高軟件質量和開發效率。但是,需求的成長和變化,往往伴隨軟件的整個開發過程,這種現狀使得軟件設計的難度不斷增加,程序開發也從傳統的開發方法向敏捷編程轉化。
用戶基于一定的業務需要提出需求,通常不能直接指導軟件的開發,只有經過軟件設計者的分析提取,通過規范的技術語言描述,形成面向軟件開發者的需求規格說明,才能指導軟件的研制。抽取需求是軟件設計師必須完成的工作,傳統的需求抽取方法一般包括面談、問卷、觀察和業務文檔研究等,這些方法簡單、成本低,對業務邏輯清晰、封閉性較好的需求比較適合,而對復雜且很難封閉的需求,采用傳統的抽取方法,則風險很大。在軟件開發領域,需求抽取方法有原型法、聯合應用開發法和快速應用開發法三種。
1.1 原型法
通過構造軟件演示系統,即根據理解的需求,建立一個快速而粗糙的工作模型,由可視化方法獲得用戶的反饋。
1.2 聯合應用開發法
是將領導、用戶、開發人員、系統設計師等召集起來通過會議的方式,集中所有人的智慧,對要求進行分析抽取。
1.3 快速應用開發法
就是集前兩種方法,加上最優方案的系統研制而進行的一種需求抽取方法,是一種快速軟件開發方法。
以上是目前常被采用的需要抽取方法,但對于系統分析員或系統設計師來說,無論采用哪種方法,都必須面臨提取關鍵需求、判斷需求增長點和發展方向的問題。
2 需求分析對系統體系結構設計的影響
2.1 抽取影響軟件結構的需求,是需求分析的核心
關鍵需求是軟件結構設計的核心,而提取關鍵需求是軟件結構設計師必備的技能。以一個數據錄入軟件為例,一般需要提供一個交互式界面,由用戶鍵入所需數據,提交存儲到文件或數據庫里即可。但用戶要求錄入的數據項,應能隨著業務的不斷變化而進行增加或刪減,可多人同時進行錄入。同時,要求對存儲的數據按照需要的方式進行查詢調閱,甚至進行一定的復合計算或評估分析等。對于這樣的需求,錄入項不斷變化、多人同時操作、存儲要求等都是核心元素,這些元素將直接影響軟件結構的設計。軟件設計應考慮分布式并發機制和大量的數據存儲訪問要求。這些需求均與功能無關,但會影響軟件結構的設計。數據庫訪問相關的軟件,一般采用傳統的C/S結構。當用戶增加到一定量時,該結構會導致數據庫服務器負載加重,甚至系統崩潰。為了適應這種變化,應采用多層結構,將用戶操作與數據存儲進行分離。采用多層結構,不僅可以緩解數據庫服務訪問壓力,還能降低數據庫變化給用戶操作帶來的影響。錄入項的變化需求,潛在地存在著數據項擴充、界面調整等功能要求。一般情況下,完全適應這種變化的軟件很難設計。為此,可把錄入項作為配置要素,界面設計和數據存儲項根據配置項進行定制,應用服務層要在接口設計上考慮數據項的擴充能力。具有這類需求的軟件,一般由界面構造工具、錄入界面、應用服務軟件和數據庫服務器構成。
在抽取關鍵需求的過程中,抽取與業務無關的需求非常重要。“與業務無關”指支撐業務功能運行且與業務處理邏輯無關的功能。傳輸服務是典型的與業務無關的功能,在任意基于網絡運行的軟件中,不可避免的需要信息傳輸功能的支持。抽取與業務無關的需求,需要分析人員有豐富的軟件設計經驗,這種公共需求的抽取,有利于開發過程中軟件的重用,可降低開發成本。
2.2 關注需求中與規模發展相關的因素
軟件設計應用規模的發展速度,是軟件結構設計時應考慮的主要需求之一。規模是考驗軟件支撐能力的主要因素。規模的發展可能是用戶量的膨脹,也可能是數據量的迅猛增長,或兩者都有。軟件能力的成長性設計,通常會使開發付出代價,這是由于一方面在設計初期沒有考慮這種成長性,導致設計失敗;另一方面,雖然考慮了成長性,但由于軟件復雜度的增大,增加了開發成本和風險。因此,對并發和負載的設計,應在設計之前就要給予充分考慮。
2.3 捕捉需求的變化方向
確定需求的增長點是考驗軟件適應能力的關鍵。需求的變化和調整是客觀存在的,軟件設計者分析需求時,應考慮到需求中可能存在的變化點或變化趨勢,以提高軟件的適應能力和成長能力。需求的增長點通常隱含在企業發展和技術發展中,一類是業務發展引起的工作流變化或增長。這種軟件結構應具備新業務處理軟件的集成能力;一類是業務轉向。原有的業務處理軟件不能滿足轉向后的業務處理要求,存在改造、裁剪、新增能力等潛在需求。軟件結構還應具備可裁剪、可擴充的能力,否則將會造成巨大的經濟損失。
抓住需求的變化點,設計合適的體系結構,可增強軟件的生命力。面對需求多變的現實,降低結構的耦合度是有效緩解軟件適應能力的方法之一。但是,降低耦合度一般會帶來效率或系統復雜度的上升。因此,小型軟件選擇這種方法應慎重。(下轉第16頁)(上接第13頁)
綜上所述,設計滿足需求的軟件結構,重點關注的是功能,而設計適應需求變化的軟件結構,關注的往往是非功能性需求,這需要系統設計師除了具備豐富的經驗和敏銳的洞察力外,還應花大量的時間和精力同用戶不斷溝通與交流,從中獲取最需要的需求,以支持軟件整體結構的設計。
參考文獻:
關鍵詞:軟件成本估算;專家輔助系統;框架;裝備軟件;開發需求
中圖分類號:TP393
文獻標識碼:A
文章編號:1009-2374(2009)17-0041-02
進行準確的裝備軟件成本估算是保證裝備軟件開發順利進行的關鍵和必要手段,也是保證裝備采購人員能夠對裝備軟件進行準確定價,避免軍費浪費。但是,當前對裝備軟件成本估算的手段單一,方法不多,不夠精確。在裝備軟件的估算過程中,由于裝備軟件開發過程的諸多不確定性,導致在估算過程中必須要有具備深厚專業知識的專家人員,但是在產品開發的實際中,這種專業深厚的高水平專家人員比較少,完全依靠領域專家來進行估算成本代價太高,不切實際。因此,設想開發一套裝備軟件成本估算專家輔助系統,用于在開發過程中對裝備軟件的項目時間、成本進行估算,解決缺乏專業領域專家人員的情況下對裝備軟件進行估算。估算人員只需要輸入開發軟件的相關信息或者整個軟件編碼,經過系統的匹配和綜合的估算,把估算結果顯示于界面上,方便快捷。如圖1所示:
一、開發背景
當前,裝備軟件成本估算主要存在估算的方法有限,精確度不夠,直接影響了裝備軟件的設計開發和增加了采購成本。主要表現在兩個方面:
1、裝備軟件的設計開發主要是依據軍方立項,通過國家指定的軍品生產廠方,依據確定的標準和要求進行的。但是大多數承制方缺乏專業領域知識深厚的專家,并且,裝備軟件的設計開發缺乏市場競爭,參與的企業少,規范的軟件生產企業不多,對設計開發過程中的裝備軟件成本估算不足,因而直接影響了裝備軟件開發的順利進行和產品質量。
2、在軍方采購人員中,大部分人員是軍校畢業后直接進入采購部門工作,既沒有經過專業的理論培訓也沒有相關領域的經驗,對軟件的成本估算只懂皮毛甚至不懂,大部分是按照國家關于軍品的微利補貼原則,以承制方的價格為基礎進行采購,這樣條件下的采購無疑是帶有較大的盲目性,難以避免對軍費的浪費。因此,如果能設計一套專家輔助系統,其意義較重大。
二、設想理論框架
裝備軟件成本估算專家輔助系統理論框架主要由兩個部分組成。一個是存儲各種算法和估算標準的數據庫。該數據庫由算法知識庫、歷史模型庫、儲存比較庫、智能估算執行庫組成。算法知識庫主要是對當前各種關于裝備軟件成本估算的算法進行編程存檔(LOG法、Delphi法、經驗類比法、功能點估計法、COCOMO法等),主要提供給智能執行庫的估算模型原則。歷史模型庫主要存儲許多歷史經典裝備軟件模型,收集盡可能多的模型,為估算軟件提供近似匹配依據。智能估算執行庫主要是完成對輸入的估算程序調用算法知識庫中的各種算法進行估算,同時對裝備軟件進行歷史模型匹配,得到近似估算值,儲存結果比較庫主要是把各種估算結果存儲下來并根據智能執行庫的指令進行比較,最后對估算值進行按預定比例系數進行加權處理,得到最終估算結果經傳輸設備傳出。另一個框架就是操作系統和人機交換框架,主要是操作系統對第一個框架內的各種數據進行維護管理,科學地組織和存儲數據,高效地獲取和維護數據,準確的物理尋址,并及時對數據進行更新,用戶通過人機交互界面與系統打交道,把要估算的裝備軟件信息或者編碼輸入進計算機,調用第一個框架內的數據,獲取知識,并進行推理,得到解釋,并對數據庫進行維護,并把估算結果顯示出來。
三、開發人員框架
裝備軟件成本估算專家輔助系統的功能是完成對裝備軟件的成本估算,主要為解決廠方在進行軟件項目開發時對軟件成本的預算不準和軍方在采購過程中對裝備軟件的知識不深厚導致對其成本估算不準確。在開發這個系統需要四類人員參與才能完成開發。第一類就是眾多領域專家進行知識收集和整理,建立各種算法和模型;第二類就是知識工程師進行知識建模、形式化、編輯以及語法檢查;第三類是開發軟件工程師根據系統的目的和已建模型進行系統設計和調試;第四類是最終用戶對系統進行軟件成本估算。如圖2所示:
四、開發需求
裝備軟件成本估算專家輔助系統首先要對目標用戶的要求做出準確定位。即:裝備軟件成本估算專家輔助系統主要是供給廠方在進行裝備軟件項目開發和軍方在對裝備軟件采購定價時用,因此,對廠方和軍方最需要了解的是裝備軟件成本的組成和估算精確度的問題。由此可以確定該系統要達到的要求,以及用什么方式實現這些要求,這就需要組織大量的專業領域專家進行論證和算法研究及建模,收集更多的歷史模型,方便地對模型進行建模管理、存取管理、運行管理、模型組合,能方便地對知識進行插入、修改、更新、查詢等,及時對數據庫進行維護和更新。
五、工作過程
首先,由眾多領域專家進行知識的收集整理,進行各種算法的研究探討,并對算法進行驗證可行,此過程也稱為抽象的過程;在此基礎上,由知識工程師根據領域專家的各種算法進行數學建模,成為可以理論計算的模型,此過程就是把抽象到具體的過程;然后,由軟件開發工程師根據已有的數學模型進行計算機編程,成為計算機可執行的程序編碼并存儲與計算機內,此過程就是把具體到應用的過程;在前三個過程結束后,實際工作中的用戶只需要將相關信息輸入進計算機便可以進行成本的估算了。用該系統進行成本估算主要有兩種工作方式:一種是廠方進行裝備軟件項目的開發設計時,主要對該軟件項目的成本進行預算;一種是針對軍方采購人員進行采購是便于對裝備軟件的定價而進行成本估算。總的來說其原理是一樣的。用戶把需要估算的軟件相關信息或者整個程序編碼輸入計算機,通過操作系統把相關信息傳輸到智能執行庫,智能執行庫根據接收到的相關信息進行分項估算,調用算法庫中的相關算法結合相關的信息進行估算,把估算的結果存儲在存儲比較庫中暫存,再根據歷史模型庫中的模型匹配進行概算,得到的結果也存儲于存儲比較庫中暫存,最后智能執行庫根據存儲比較庫中的暫存數據進行加權平均計算,將最后優算得結果經操作系統的指令直接傳出到人機交互界面,供給用戶參考。
六、結語
成本估算專家輔助系統的主旨是在缺乏專業領域專家人員的情況下,便于裝備軟件在開發設計時能準確對其成本進行預算和在采購時便于對裝備軟件定價而進行估算。文章中的理論框架為軟件設計提供了清晰的結構,是開發裝備軟件成本估算專家輔助系統的基礎。開發裝備軟件成本估算專家輔助系統在理論框架、人員框架、開發需求的指導下,通過詳細設計、數據庫設計、編碼實現、測試等過程實現系統全部功能。開發該系統之前需要大量的工作才能完成,但是一旦該系統設計開發完成后,將對實際工作過程中具有重要現實意義。文中提出的框架結構和開發需求對于裝備軟件成本估算以及裝備軟件成本估算專家輔助系統設計研究具有很好的指導作用。
參考文獻
[1]張家浩,白思俊,軟件項目管理[M]機械工業出版社,2005
[2]李幟,林立新,曹亞波,功能點分析方法與實踐,北京:清華大學出版社,2005
[4]任永昌,趙穎應用COCOMOI模型估算軟件開發工作量渤海大學學報(自然科學版),2007,23(3)