嚴(yán)志揚(yáng)
摘 要: 本文介紹了軟件工程經(jīng)濟(jì)分析系統(tǒng),講述了軟件工程需求分析意義和困難、系統(tǒng)目標(biāo)、系統(tǒng)功能、系統(tǒng)結(jié)構(gòu)等內(nèi)容。
關(guān)鍵詞: 軟件工程;經(jīng)濟(jì)分析;系統(tǒng)功能
軟件工程經(jīng)濟(jì)分析專家系統(tǒng),隨著人們在軟件開發(fā)過程中不斷積累和豐富實(shí)踐經(jīng)驗(yàn),以及考慮的因素不斷增多和全面,軟件工程經(jīng)濟(jì)分析的問題也將更加復(fù)雜,決策者或決策機(jī)構(gòu)作出科學(xué)的判斷和決策將會(huì)變得更加困難,因此迫切需要借助于領(lǐng)域?qū)<业闹R(shí)、經(jīng)驗(yàn)等來輔助決策者或決策機(jī)構(gòu)作出科學(xué)的判斷和決策。因而,隨著信息技術(shù)和人工智能的不斷發(fā)展和完善,軟件工程經(jīng)濟(jì)分析專家系統(tǒng)將會(huì)應(yīng)運(yùn)而生,并將得到迅速發(fā)展。軟件工程經(jīng)濟(jì)分析就是研究軟件開發(fā)過程中,在軟件生命周期中各個(gè)階段影響經(jīng)濟(jì)的因素,從而可以明確軟件工程經(jīng)濟(jì)分析的基本需求。下面為了分析軟件開發(fā)過程方便性,將軟件生命周期分為可行性分析階段、需求分析階段、系統(tǒng)分析和設(shè)計(jì)階段、代碼編寫與單元測試階段、系統(tǒng)集成與系統(tǒng)測試階段和系統(tǒng)運(yùn)行維護(hù)階段。
1.軟件工程需求分析意義和困難
系統(tǒng)需求分析階段位于系統(tǒng)開發(fā)的前期,它的基本任務(wù)是準(zhǔn)確地定義未來開發(fā)的系統(tǒng)的目標(biāo)和功能,以明確開發(fā)出來的系統(tǒng)能夠完成什么樣的任務(wù)。系統(tǒng)需求分析階段又可分為兩個(gè)階段:需求調(diào)研階段和需求規(guī)約階段。需求調(diào)研階段就是通過系統(tǒng)分析員不斷的與用戶溝通和交流來明確用戶要求系統(tǒng)完成什么樣的功能和任務(wù)。需求規(guī)約階段就是分析用戶提出的所有需求是否合理,是否可以滿足用戶的要求,最終以需求文檔的形式確定下來。
系統(tǒng)需求分析的意義在于系統(tǒng)需求分析階段的好壞直接關(guān)系到整個(gè)系統(tǒng)的成敗。如果系統(tǒng)需求分析做的不好,該系統(tǒng)所完成的功能可能就不是用戶最終想要的功能,從而就導(dǎo)致了大量的人力、物力和財(cái)力的浪費(fèi)。因而,系統(tǒng)需求分析是任何一個(gè)系統(tǒng)開發(fā)不可以缺少的階段,必須通過不斷的積極與用戶進(jìn)行充分的溝通和交流,來明確系統(tǒng)的功能性需求和非功能性需求。
由于需求分析面臨著三大困難,因此需求定義是一項(xiàng)嚴(yán)肅而艱巨的工作,它包括韻范圍非常廣泛,必須在不同的信息系統(tǒng)設(shè)計(jì)中對其內(nèi)容加以取舍,首先抓住系統(tǒng)的主要需求。
2.軟件工程經(jīng)濟(jì)分析系統(tǒng)目標(biāo)
為了滿足軟件企業(yè)中、高層領(lǐng)導(dǎo)和決策者在軟件項(xiàng)目開發(fā)的各個(gè)階段對項(xiàng)目經(jīng)濟(jì)分析提供有效的決策支持。利用計(jì)算機(jī)系統(tǒng)對軟件工程經(jīng)濟(jì)分析決策提供輔助支持,提供有效的分析和預(yù)測支持工具,以準(zhǔn)確反映軟件開發(fā)各個(gè)階段的進(jìn)度、成本等要素,為經(jīng)濟(jì)分析決策提供可靠的依據(jù)。作者將系統(tǒng)的目標(biāo)歸納為以下六個(gè)方面:
(1)能夠和決策者進(jìn)行方便的人機(jī)交互,將內(nèi)部復(fù)雜的調(diào)度、分析處理過程封裝起來,使決策者只關(guān)注系統(tǒng)最終輸出的數(shù)據(jù)和信息,而不必要關(guān)心具體的處理過程。
(2)能夠?qū)浖こ探?jīng)濟(jì)分析的相關(guān)知識(shí)、數(shù)據(jù)進(jìn)行組織、存儲(chǔ)和管理,方便系統(tǒng)內(nèi)部和外部的查詢和調(diào)用。
(3)能夠?qū)⒏鞣N軟件成本估算模型和常用的數(shù)學(xué)統(tǒng)計(jì)分析方法組織、存儲(chǔ)和管理起來。方便系統(tǒng)內(nèi)部和外部的查詢、修改、刪除和調(diào)用。
(4)能夠利用知識(shí)庫中的規(guī)則和事實(shí)對決策者描述的決策問題進(jìn)行推理,可以給出最終的推理結(jié)果。
(5)能夠?qū)Q策結(jié)果以多種形式加以輸出,以保證輸出結(jié)果的直觀性、清晰性、方便性和數(shù)據(jù)信息的持久性。
(6)能夠幫助決策者進(jìn)行知識(shí)學(xué)習(xí)、提高知識(shí)水平。擴(kuò)展知識(shí)視野,提高決策能力。
3. 軟件工程經(jīng)濟(jì)分析系統(tǒng)功能
軟件工程經(jīng)濟(jì)分析統(tǒng)的主要功能是輔助軟件經(jīng)濟(jì)分析的決策。在進(jìn)行決策的過程中,軟件工程經(jīng)濟(jì)分析能夠?qū)浖?xiàng)目的各個(gè)階段提供輔助決策的功能。根據(jù)軟件工程經(jīng)濟(jì)分析決策的五個(gè)基本決策過程的要求,確定了軟件工程經(jīng)濟(jì)分析如下功能:
(1)軟件項(xiàng)目來源與競爭分析功能。在軟件項(xiàng)目啟動(dòng)的前期,能夠根據(jù)不同的軟件項(xiàng)目來源做不同的決策功能。軟件項(xiàng)目的來源可以是國家部門或地方政府的項(xiàng)目,也可以是企業(yè)公開招標(biāo)的形式的項(xiàng)目。還能夠分析該軟件的市場前景、市場占有率、客戶的經(jīng)濟(jì)實(shí)力、市場反應(yīng)速度和競爭對手的綜合實(shí)力的評(píng)價(jià)等很多衡量指標(biāo)進(jìn)行預(yù)算。以明確該項(xiàng)目的風(fēng)險(xiǎn)大小,決定該項(xiàng)目是否可以啟動(dòng)。
(2)軟件項(xiàng)目可行性分析功能。對軟件項(xiàng)目從經(jīng)濟(jì)可行性、技術(shù)可行性和社會(huì)可行性、項(xiàng)目國民經(jīng)濟(jì)評(píng)價(jià)、項(xiàng)目不確定性和風(fēng)險(xiǎn)性分析這幾個(gè)方面對該項(xiàng)目進(jìn)行整體的權(quán)衡和分析。以決定下階段是否投入人力、物力和財(cái)力。
(3)軟件項(xiàng)目成本估算功能。能夠根據(jù)決策者選擇不同的模型對軟件的成本、工作量和工期的估算。對該項(xiàng)目所耗費(fèi)的資源進(jìn)行預(yù)算。
(4)軟件項(xiàng)目定價(jià)與經(jīng)濟(jì)效益分析功能,可以根據(jù)決策者選擇不同的定價(jià)模型完成軟件的定價(jià)。還可以完成經(jīng)濟(jì)效益的評(píng)估。
(5)件項(xiàng)目的規(guī)劃功能。首先確定項(xiàng)目目標(biāo)和功能。然后確定項(xiàng)目工序與時(shí)間進(jìn)程并根據(jù)輸入的數(shù)據(jù)繪制出計(jì)劃網(wǎng)絡(luò)圖.接著就可以計(jì)算出項(xiàng)目的關(guān)鍵路徑、關(guān)鍵工序、項(xiàng)目工期和難度系數(shù)。根據(jù)計(jì)劃網(wǎng)絡(luò)圖,確定人力需求、資金需求、設(shè)備需求和其它資源需求,然后再細(xì)化軟件項(xiàng)目各階段所需的人力和資金需求等。
4. 軟件工程經(jīng)濟(jì)分析系統(tǒng)結(jié)構(gòu)
依據(jù)華為公司的IPD.CMM3.O的運(yùn)作流程,對于大型項(xiàng)目的系統(tǒng)設(shè)計(jì)要分析概要設(shè)計(jì)(High Level Design,簡稱HLI))和詳細(xì)設(shè)計(jì)階段(low Level Design,簡稱LLD)兩個(gè)階段:而對于小型項(xiàng)目則將兩個(gè)階段融合到一個(gè)階段,即系統(tǒng)設(shè)計(jì)階段(system Design,簡稱SD),由于SEEADSS系統(tǒng)是一個(gè)原型系統(tǒng),因此本文采用后一種方案來完成系統(tǒng)設(shè)計(jì)和規(guī)劃。對于一個(gè)象SEEADSS這樣復(fù)雜的決策支持系統(tǒng),在設(shè)計(jì)時(shí)采用自頂向下、逐步細(xì)化的設(shè)計(jì)方法。按照需求分析階段的結(jié)果,把系統(tǒng)分成人機(jī)對話系統(tǒng)、通用管理系統(tǒng)、數(shù)據(jù)庫系統(tǒng)、模型庫系統(tǒng)、知識(shí)庫系統(tǒng)和問題處理系統(tǒng)這五大部件。
可以看出,通用管理系統(tǒng)是SEEADSS系統(tǒng)的總控模塊,它負(fù)責(zé)戶各功能模塊之間的協(xié)調(diào)和管理等工作。
問題處理系統(tǒng)是SEEADSS系統(tǒng)中重要的組成部分,是系統(tǒng)的中心部件,也是用戶與計(jì)算機(jī)共同作出決策的紐帶和橋梁。用戶通過人機(jī)對話系統(tǒng)輸入決策問題,通用管理系統(tǒng)調(diào)用問題處理系統(tǒng)來協(xié)調(diào)數(shù)據(jù)庫、模型庫、知識(shí)庫等系統(tǒng)的工作來輔助決策活動(dòng)的完成。
模型庫系統(tǒng)完成對模型的管理、組織和存儲(chǔ)。在模型庫中將存放大量成熟的模型,這些模型的組合將能完成許多實(shí)際決策問題的需要。在對模型庫系統(tǒng)設(shè)汁時(shí),首先要考慮的問題是模型的表示形式、模型的組織和存儲(chǔ)結(jié)構(gòu),只有當(dāng)這些問題確定下來以后,才可以考慮模型管理系統(tǒng)如何對模型有效的管理,模型字典的結(jié)構(gòu)才得以確定。然后考慮當(dāng)遇到一個(gè)新的決策問題時(shí),是建立新模型、選用已有的模型還是組合現(xiàn)有模型。對于某些新問題。在選用現(xiàn)有的已成功的模型都不能加以解決的情況下,就要重新建立模型。如何實(shí)現(xiàn)模型的動(dòng)態(tài)建立和生成也是模型庫系統(tǒng)設(shè)計(jì)中面臨的一個(gè)問題。在模型庫系統(tǒng)中,一般是將求解方法融入模型求解程序之中。
知識(shí)庫系統(tǒng)完成對知識(shí)的組織、存儲(chǔ)和管理。在知識(shí)庫中存放了大量的領(lǐng)域?qū)<医?jīng)驗(yàn)知識(shí),如何將所有這些知識(shí)進(jìn)行合理的安排組織,將會(huì)影響到知識(shí)庫中推理機(jī)實(shí)現(xiàn)的問題。在知識(shí)庫的設(shè)計(jì)過程中要考慮軟件工程領(lǐng)域、工程經(jīng)濟(jì)領(lǐng)域和決策支持系統(tǒng)領(lǐng)域主要有哪些知識(shí),然后分析所有這些知識(shí),從知識(shí)表示形式中選擇一種或幾種適合于該領(lǐng)域的知識(shí)的表示形式。
數(shù)據(jù)庫中存放了大量的模型和方法管理數(shù)據(jù)、知識(shí)管理數(shù)據(jù)、招投標(biāo)過程中專家信息、投標(biāo)單位信息、用戶管理信息等。數(shù)據(jù)庫系統(tǒng)的設(shè)計(jì)過程中主要考慮各模塊數(shù)據(jù)間的邏輯關(guān)系。如果表結(jié)構(gòu)設(shè)計(jì)的不合理,就會(huì)導(dǎo)致數(shù)據(jù)庫中有大量的冗余數(shù)據(jù),從而也就影響整個(gè)系統(tǒng)的性能。
參考文獻(xiàn)
[1]曲晟,張毅,許俊華.基于W曲的企業(yè)協(xié)調(diào)化集成模型庫系統(tǒng)的研究.計(jì)算機(jī)集成制造系統(tǒng),2000,6(4):55~56.
[2]鄧伸華.信息系統(tǒng)分析與設(shè)計(jì).科學(xué)出版社。2003.endprint