摘要:傳統(tǒng)軟件工程的過程存在很多不足,通過軟件工程系統(tǒng)的思想能夠給我們的工作起到很好的促進效果。本文對其概念、步驟、模型建設(shè)、風(fēng)險以及成本控制進行了分析,希望對其研究起到一定的指導(dǎo)效果。
關(guān)鍵詞:軟件工程;系統(tǒng)結(jié)構(gòu)模型;項目管理
中圖分類號:TP311.52 文獻標識碼:A 文章編號:1007-9599 (2012) 18-0000-02
1 相關(guān)概念簡述
關(guān)于軟件工程系統(tǒng),當前還沒有對其概念進行明確的描述。普遍接受的一種概念是使用工程系統(tǒng)論這一思想對軟件工程的科學(xué)體系進行考察及研究,并根據(jù)工程系統(tǒng)論的方法來研究其內(nèi)在的規(guī)律和性狀。
一般來說,軟件工程系統(tǒng)都一般結(jié)構(gòu)包括系統(tǒng)環(huán)境、狀態(tài)、結(jié)構(gòu)以及行為間的作用規(guī)律。另外,軟件工程系統(tǒng)具有層次性、復(fù)合性、協(xié)調(diào)性、突現(xiàn)性、有序性等特點。對于軟件工程系統(tǒng)的原則,一般主要有目的性原則、實事求是原則、確定化原則以及適用性原則。
2 軟件工程系統(tǒng)中工作的步驟
軟件工程系統(tǒng)屬于非常復(fù)雜的系統(tǒng),會涉及到很多認為的因素、各種評價標準及要求、組織間的利益等,而且很多時候難以區(qū)分約束和目標。這種背景下,了解軟件工程系統(tǒng)中的步驟對于我們工作的開展有很大的指導(dǎo)作用,一般我們可以將其分為7個步驟:
首先,考察問題的場景,這主要是問題可能存在卻還沒有被明確的某一種環(huán)境。其次,對考察的結(jié)果進行總結(jié),然后使用自然語言將其表達出來,或者通過圖像對其進行描述,這種表述越豐富,則對于我們了解真實的問題越有利。第三,建立根定義來服務(wù)系統(tǒng)概念的建立,這主要有:軟件工程系統(tǒng)的受益者或者受害者,執(zhí)行者,輸入至輸出之間變換的過程,所有者,環(huán)境約束以及世界觀等,通過這些定義我們能夠?qū)ο到y(tǒng)活動要素進行確定。第四,建立一個概念模型,在這個過程中,我們可以利用自然語言表達,也可以通過比較直觀的圖形工具對其進行表達。第五,將現(xiàn)實情景和概念模型進行對比,然后根據(jù)之間的差異來修改概念模型,確保其更加符合實際的模型。第六,提出可能的、必要的改革方案。最后,利用上文中提到的改革方案,得出新情景。
3 建立結(jié)構(gòu)模型
軟件工程系統(tǒng)屬于非常復(fù)雜的系統(tǒng),這一系統(tǒng)主要目的在于開發(fā)出滿足顧客需求的軟件。在系統(tǒng)中,各種要素之間是相互關(guān)聯(lián),相互協(xié)調(diào)的。一般來說,軟件工程系統(tǒng)的組成要素主要可以分為以下5個部分:需求方、開發(fā)方、運作方、開發(fā)方、監(jiān)督方以及使用方。而功能要素則可以抽象為問題、需求、軟件、開發(fā)工具以及支撐技術(shù)。
其中,需求方主要指的是提出需求的個人或者單位,可以是個人,也可以是企業(yè),還可以是政府,甚至可以使國家。另外,有些時候,很可能根本就不存在需求方,這種情況下主要是軟件開發(fā)企業(yè)所虛擬出來的、能提出具體需求的需求方。開發(fā)方則指的是負責程序開發(fā)的工作人員,當然,開發(fā)方也有可能是軟件工程的分包公司。而運作方則是指運行或者操作軟件開發(fā)產(chǎn)品這一工作的個人或者企業(yè)。至于使用方,它主要指的是軟件產(chǎn)品的使用者,這可以使個人,也可以是企業(yè)單位,這也是我們平時所稱的用戶。在大多數(shù)的情況下,使用方及需求方是一個實體。最后,監(jiān)督方則指的是在軟件開發(fā)過程中進行監(jiān)督的個人或者單位,這也可以被稱之為監(jiān)理方或者第三方。
功能要素則可以抽象為問題、需求、軟件、開發(fā)工具以及支撐技術(shù)。其中問題主要代表著軟件產(chǎn)品開發(fā)過程中需要解決的疑難及矛盾;需求代表的是軟件產(chǎn)品開發(fā)過程中的需要及要求;至于軟件主要指的是待開發(fā)軟件產(chǎn)品;支撐技術(shù)代表的是在解決問題的過程中需要的技術(shù);開發(fā)工具則可以總結(jié)為在軟件產(chǎn)品開發(fā)過程中使用的手段。
一般來說,在軟件工程系統(tǒng)中,這些要素之間存在著較多的影響和關(guān)聯(lián),雖然他們之間并不會在全部的方面進行互相的影響,但是,要素的某一方面和另一要素的某一方面是相互關(guān)聯(lián)的,會產(chǎn)生影響。
4 結(jié)構(gòu)模型應(yīng)用的分析
在軟件工程系統(tǒng)中,主要是以系統(tǒng)論作為指導(dǎo)思想和方法論。通過這種方法對軟件工程進行考察和通過傳統(tǒng)的視角來處理面臨的問題是完全不一樣的,這是一種全新的思路,對于我們更好的了解和掌握軟件工程的過程及目標非常有利。
4.1 傳統(tǒng)過程。在軟件工程的傳統(tǒng)過程中,一般其生命周期是由概念開始,然后是開發(fā)、使用、維護,到最后的退役標志著其生命周期的完結(jié)。當前,主流的理論認為它主要有三個時期構(gòu)成:軟件開發(fā)、使用以及維護。在每一個時期中,又可以被劃分為很多小的階段。
4.2 軟件工程系統(tǒng)中的過程。相對于傳統(tǒng)軟件工程中的過程,這是對軟件工程進行整體的、全局的把握。一般來說,在這個過程中,主要可以分為兩條主線,其中一條有問題這一要素出發(fā),然后將其轉(zhuǎn)化為需求要素,再由需求要素轉(zhuǎn)換為軟件要素;另一條則是由需求出發(fā),進行運作方的選擇,然后運作方再進行開發(fā)方的選擇,開發(fā)方則開發(fā)軟件要素。在這個過程中,兩條主線的重要性是一致的。
在問題要素向需求要素轉(zhuǎn)化的時候,我們對需求、方向是否與描述一致要有足夠的注意,假如這種差距比較大,而且沒有很快的發(fā)現(xiàn),就容易使項目失敗或者增大我們的工作量;诖,我們在描述的過程中最佳的選擇是使用形式化語言,并對其內(nèi)容給出準確的、無歧義的、確定的、量化的描述。另外我們還應(yīng)統(tǒng)籌考慮使用方的使用特點等。
在需求要素轉(zhuǎn)化為軟件要素的時候,這是開發(fā)方來完成的,因此,開發(fā)方也是關(guān)鍵。在這個過程中,我們要以適用性原則為指導(dǎo),也就是說并非一定要選擇最好的開發(fā)方,而應(yīng)該選擇最合適的開發(fā)方及運作方。
5 軟件工程系統(tǒng)風(fēng)險分析
在軟件工程中,一個難度比較大的工作就是識別并確認風(fēng)險。在軟件工程共系統(tǒng)中,我們可以對風(fēng)險因素進行系統(tǒng)的、整體的考慮。
一般來說,風(fēng)險是客觀存在的,只要有人為的活動,就避免不了風(fēng)險。事實上,在軟件工程系統(tǒng)里面,最不確定的因素就是人為因素,這主要是以因為人在對系統(tǒng)中的客觀事物進行評價、比較、分析以及決策的過程中,都會受到其自身立場、能力以及素質(zhì)等方面的影響,這必然產(chǎn)生風(fēng)險。
針對這種情況,我們在軟件工程系統(tǒng)模型應(yīng)用時,對于風(fēng)險的控制可以參考工程管理學(xué)中的理論,具體來說,我們可以通過以下措施來做好風(fēng)險的控制:
首先,風(fēng)險預(yù)防,這一工作主要是指對軟件工程系統(tǒng)中的要素進行足夠、正確、充分的評價及認識,在此基礎(chǔ)上使用合理的措施來預(yù)防風(fēng)險。其次,減輕風(fēng)險,這主要是將發(fā)生風(fēng)險的可能性以及其可能導(dǎo)致的不良后果降到最低。第三,回避風(fēng)險,這是指如果風(fēng)險比較大的時候,我們可以選擇放棄目標及行動的方案。第四,自留風(fēng)險,這是指如果具備風(fēng)險的能力,或者說風(fēng)險在可以承擔的范圍之內(nèi),可以接受風(fēng)險。最后,后備措施,這主要是通過事先制定后備的方案來預(yù)防風(fēng)險。
6 結(jié)語
有關(guān)軟件工程系統(tǒng)結(jié)構(gòu)模型的應(yīng)用研究有著重要的意義,本文只是對其進行了一定的概述,更多的細節(jié)尚沒有進行探討。在我們的工作中,我們還要加強這方面的探索,以更好的提升軟件企業(yè)的競爭力。
參考文獻:
[1]王眾托.系統(tǒng)工程引論[M].北京:電子工業(yè)出版社,2006.
[2]吳春華,溫志強.人力資源開發(fā)與管理[M].北京:北京理工大學(xué)出版社,2009.
[3]趙維雙.技術(shù)經(jīng)濟學(xué)[M].北京:兵器工業(yè)出版社,2010.