軟件工程基本原理與信息系統(tǒng)工程項目管理68
本文關(guān)鍵詞:軟件工程基本原理與信息系統(tǒng)工程項目管理,由筆耕文化傳播整理發(fā)布。
軟件工程基本原理與信息系統(tǒng)工程項目管理;ProjectManagementforInfo;BasedonPrinciplesofSoftw;馮鐕釗;FengZanzhao;(廣東省水利水電信息中心2002年);【摘要】本文結(jié)合作者多年從事信息系統(tǒng)項目策劃和管;【關(guān)鍵詞】軟件工程信息系統(tǒng)項目管理;1.引言;國內(nèi)不少信息系統(tǒng)建設項目都或多或少地經(jīng)受過“項目;也有
軟件工程基本原理與信息系統(tǒng)工程項目管理
Project Management for Information System
Based on Principles of Software Engineering
馮鐕釗
Feng Zanzhao
(廣東省水利水電信息中心 2002年)
【摘要】本文結(jié)合作者多年從事信息系統(tǒng)項目策劃和管理的經(jīng)驗,引申軟件工程原理,分析信息系統(tǒng)工程基本任務,探索項目業(yè)主對信息系統(tǒng)項目進行有效管理、順利實現(xiàn)既定目標的一些方法。
【關(guān)鍵詞】軟件工程 信息系統(tǒng) 項目管理
1. 引言
國內(nèi)不少信息系統(tǒng)建設項目都或多或少地經(jīng)受過“項目泥潭”的痛楚:用戶需求含糊,技術(shù)方案粗糙,計劃不嚴謹,管理不規(guī)范,工作難協(xié)調(diào),實際效果與用戶心目中期望的目標相差甚遠,合同糾紛不斷、一改再改,到后期變得無章可循、各說各理。整個項目就象一個爛泥潭,離竣工日遙遙無期。 多數(shù)業(yè)主單位都不是信息技術(shù)本行的,不知如何對信息系統(tǒng)項目進行有效管理,聽任系統(tǒng)開發(fā)商的安排。而不少開發(fā)商自身就嚴重缺乏有效的管理措施。
也有一些業(yè)主單位企圖照搬有形工程(如土建工程)建設管理的方法對信息系統(tǒng)項目進行管理,結(jié)果往往是令人啼笑皆非。
本文結(jié)合作者多年從事信息系統(tǒng)項目策劃和管理的經(jīng)驗,試圖從項目業(yè)主的角度出發(fā),探索對信息系統(tǒng)項目進行有效管理、順利實現(xiàn)既定目標的一些方法,希望起到拋磚引玉的作用。
2. 信息系統(tǒng)工程與軟件工程
毫無疑問,現(xiàn)代信息系統(tǒng)的建設是應用驅(qū)動型的,
因應業(yè)務發(fā)展的需要而提出開發(fā)各種業(yè)務應用軟件,進
而確定所需的系統(tǒng)集成方案,即配置怎樣的網(wǎng)絡運行環(huán)
境,以及它們?nèi)绾斡行У丶稍谝黄鸾M成目標系統(tǒng)。如
圖1所示。
信息系統(tǒng)建設的成敗主要體現(xiàn)在各種業(yè)務應用軟件
的運行是否達到預期目的。而“項目泥潭”通常就容易
發(fā)生在應用軟件的開發(fā)和集成上。
因此,現(xiàn)代信息系統(tǒng)工程的重點和難點都是軟件工
程,軟件工程的基本原理對信息系統(tǒng)工程的建設管理將
起主導作用。
3. 軟件的主要特點與軟件危機
3.1. 軟件的主要特點
(1) 軟件是一種抽象的邏輯實體,其質(zhì)量問題是隱蔽的。
(2) 軟件在運行使用中不會磨損和老化,但會退化(過時)。
(3) 軟件的復雜性使開發(fā)人員之間分工困難,增加人手未必能加快進度,卻可能帶來混亂。
(4) 軟件開發(fā)需要投入大量、復雜、高強度的腦力勞動,且至今尚未完全擺脫手工藝的開發(fā)方式,因而成本相當昂貴。
(5) 軟件的開發(fā)與運行不僅涉及技術(shù)因素,而且相當多地涉及社會因素,涉及機構(gòu)、體制、管理方式、甚至人的觀念和心理。這些非技術(shù)因素直接影響到項目的成敗。
3.2. 軟件危機
在計算機軟件技術(shù)發(fā)展的早期,因程序規(guī)模較小,人們心目中只有程序設計的概念,注重個體編程技巧的發(fā)揮,缺乏軟件系統(tǒng)的概念。
隨著程序規(guī)模逐步擴大,功能越發(fā)復雜,系統(tǒng)化全局性概念要求越來越高,這與那種任由個體發(fā)揮的編程方法之間形成了日益尖銳的矛盾,導致了軟件危機。
在西方發(fā)達國家,“軟件危機”是1960、1970年代的歷史故事。而在我國,軟件危機卻還是當前時常發(fā)生的事情,這就是本文開頭所說的“項目泥潭”。
4. 軟件工程的基本原理
約在1970年代以后,許多軟件科學家嘗試把其它工程領域中行之有效的工程學知識運用到軟件開發(fā)工作中來,結(jié)合軟件技術(shù)自身的特點,經(jīng)過不斷實踐和總結(jié),逐步建立了一套工程化的軟件開發(fā)組織管理方法。這就是軟件工程。
4.1. 軟件工程的定義
1983年IEEE給出的定義為:“軟件工程是開發(fā)、運行、維護和修復軟件的系統(tǒng)方法”。
其中,“軟件”的定義為:計算機程序、方法、規(guī)則、相關(guān)的文檔資料、以及在計算機上運行時所必需的數(shù)據(jù)的集合。這里尤其要注意“軟件”與“程序”兩個概念的區(qū)別。
軟件工程包括三個要素:方法、工具和過程。
方法為軟件開發(fā)提供了“如何做”的技術(shù),包括項目計劃與估算、需求分析、數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)總體結(jié)構(gòu)的設計、算法過程的設計、編碼、測試以及維護等。
工具包括各種軟件工具、開發(fā)機器和開發(fā)過程信息庫,提供自動或半自動的軟件開發(fā)環(huán)境。 過程定義了方法使用的順序、要求交付的文檔資料、為保證質(zhì)量和協(xié)調(diào)變化所需要的管理、及軟件開發(fā)各個階段完成的里程碑。這是本文討論的重點。
4.2. 軟件工程過程
軟件工程過程是為獲得軟件產(chǎn)品所進行的一系列軟件工程活動,通常包含四種基本的過程活動:
(1) P (Plan):軟件規(guī)格說明。規(guī)定軟件的功能及其運行限制;
(2) D (Do):軟件開發(fā)。產(chǎn)生滿足規(guī)格說明的軟件;
(3) C (Check):軟件確認。確認軟件能夠滿足用戶提出的要求;
(4) A (Action):軟件演進。為滿足用戶的變更要求,軟件必須在使用過程中演進。
4.3. 軟件生存周期模型
正如任何事物一樣,軟件也有其孕育、誕生、成長、成熟、衰亡的生存過程。我們稱之為計算機軟件的生存周期。根據(jù)這一思想,把上述基本的軟件工程過程活動進一步展開,可以得到軟件生存周期的六個步驟。軟件生存周期的瀑布模型如圖2所示。
(1) 制定計劃:確定要開發(fā)的軟件系統(tǒng)的總目標、
技術(shù)要求、技術(shù)和經(jīng)濟可行性、實施計劃,編制可行性
研究報告,提交管理部門審批。
(2) 需求分析:對待開發(fā)的軟件提出的需求進行分
析并給出詳細定義,編寫軟件需求說明書或系統(tǒng)功能說
明書、以及初步的系統(tǒng)用戶手冊,提交評審。
(3) 軟件設計:把已確定了的各項需求轉(zhuǎn)換成一個
相應的體系結(jié)構(gòu),進而對系統(tǒng)內(nèi)的每個模塊要完成的工
作進行具體的描述。編寫設計說明書,提交評審。
(4) 軟件編碼:即程序編寫,把軟件設計轉(zhuǎn)換成計
算機可以接受的程序代碼。
(5) 軟件測試:在設計測試用例的基礎上檢驗軟件
的各個組成部分。
(6) 運行/維護:已交付的軟件投入正式使用,并
在運行過程中進行適當?shù)木S護。
實踐表明,上述各項活動之間并非完全是自上而
下、呈線性圖式的。實際情況是,每項開發(fā)活動均處于
一個質(zhì)量環(huán)(輸入-處理-輸出-評審)中。只有當其工
作得到確認,才能繼續(xù)進行下一項活動,在圖2中用向
下的箭頭表示;否則返工,在圖2中由向上的箭頭表示。
5. 信息系統(tǒng)項目過程及其各階段任務
參照軟件生存周期的瀑布模型,我們可以得出包括
業(yè)務應用軟件和運行環(huán)境網(wǎng)絡平臺在內(nèi)的一項完整的、
綜合型的信息系統(tǒng)工程的生存期模型,如圖3所示。
5.1. 定義階段
(1) 制定計劃:由系統(tǒng)分析人員和用戶合作,確定
擬建系統(tǒng)的總目標及其功能、性能、可靠性、接口、運
行管理和維護等技術(shù)要求;研究技術(shù)、經(jīng)濟和人才的可行性、現(xiàn)有條件和解決問題的可能方案;制定實施計劃、運行管理和維護方案;形成完整的可行性研究報告和投資估算,提交主管部門審批立項。
(2) 需求分析:由系統(tǒng)分析人員和用戶合作,深入分析擬建系統(tǒng)的應用需求、軟硬件需求,給出詳細定義,編寫需求分析和系統(tǒng)功能技術(shù)說明書以及項目概(預)算書,提交管理部門組織專家評審。
通常,建設信息系統(tǒng)的目的是為改善當前業(yè)務處理手段。因此,需求分析的任務是要借助當前業(yè)務系統(tǒng)的邏輯模型導出目標系統(tǒng)的邏輯模型,對目標系統(tǒng)要“做什么”給出詳細定義。如圖4所示。
如果系統(tǒng)比較龐大、復雜,甚至涉及多專業(yè)業(yè)務處
理,則應根據(jù)不同專業(yè)的主要技術(shù)特點對總系統(tǒng)進行一
級或多級分解,導出每個子、孫系統(tǒng)的目標邏輯模型,
并詳細定義它們之間的接口關(guān)系。
在系統(tǒng)功能技術(shù)說明書中,對所需的各種設備及其
配件、系統(tǒng)軟件、成品軟件、應用軟件、軟件組件的功
能技術(shù)要求、配置、性能技術(shù)指標等應作出全面、詳盡、
明確和定量的說明。
要注意的是,這些說明應從應用需求角度出發(fā)、撇開具體產(chǎn)品型號而提出。這對于需要公開招標的項目尤為重要。
此外,對于行業(yè)應用軟件的開發(fā)或舊系統(tǒng)改造,如果存在某些必須遵守的技術(shù)標準或約定,也應在系統(tǒng)功能技術(shù)說明書中詳細說明。
5.2. 軟件開發(fā)/系統(tǒng)集成階段
(3) 軟件設計/系統(tǒng)集成設計:
軟件設計如前所述。
系統(tǒng)集成設計根據(jù)審定的系統(tǒng)功能技術(shù)說明書,選擇滿足要求、性能價格比優(yōu)的具體型號產(chǎn)品及其配件,詳細列出軟硬件配置清單,給出詳實的系統(tǒng)集成設計方案和軟硬件采購、安裝調(diào)試計劃。
軟件設計和系統(tǒng)集成設計并非相互獨立的工作,它們之間的關(guān)系非常密切,必須充分溝通和協(xié)調(diào)。 此階段應得到詳實的軟件設計/系統(tǒng)集成設計說明書,交業(yè)主組織專家評審。兩者應盡量同時提交給同一批專家評審。
(4) 軟件編碼/設備采購:
根據(jù)審定的軟件設計/系統(tǒng)集成設計說明書,分別進行程序編寫和設備采購工作。兩者之間并無太多聯(lián)系,但所處時間階段往往大致相同。此外,兩者都屬于生產(chǎn)制造階段,需要特別關(guān)注質(zhì)量控制。尤其對程序編寫,加強程序員的質(zhì)量意識非常重要。
在本階段,因?qū)嶋H運行環(huán)境尚未建立,軟件開發(fā)單位應自己建立一個能充分模擬實際運行環(huán)境的開發(fā)環(huán)境,在該環(huán)境下進行程序編寫。
(5) 軟件測試/設備安裝調(diào)試:兩者之間也無太多聯(lián)系,但完成時間最好大致相同,以便能一起進入系統(tǒng)聯(lián)合調(diào)試。
需特別指出,程序代碼中不可避免會存在錯誤,軟件測試的目的不是證明軟件本身無錯或少錯,而是盡可能多地發(fā)現(xiàn)錯誤并改正之。測試用例應圍繞這個目的而設計。
(6) 系統(tǒng)聯(lián)合調(diào)試:實踐表明,通過了各種測試被認為合格的軟件,集成到實際運行環(huán)境時,往往會出現(xiàn)一些意想不到的問題,其主要原因是開發(fā)環(huán)境與實際運行環(huán)境之間不可避免地存在差異。因此,在軟件開發(fā)和系統(tǒng)集成的最后階段,應該使兩者集成在一起進行聯(lián)合調(diào)試,或叫做交工試運行,測試系統(tǒng)各組成部分能否順利結(jié)合在一起正常運行,能否達到需求分析階段所確定的目標。
系統(tǒng)聯(lián)合調(diào)試通過后,可進行系統(tǒng)交工驗收,標志一個階段結(jié)束。
(7) 考核運行:系統(tǒng)交工驗收后,應安排一段具代表性的時間進行系統(tǒng)考核運行,讓用戶通過實際使用系統(tǒng),檢驗系統(tǒng)是否實現(xiàn)了建設目標?己诉\行期長短視系統(tǒng)支持的應用業(yè)務性質(zhì)和復雜性而定。
考核運行期滿且驗證為合格后,可進行系統(tǒng)竣工驗收。
5.3. 運行維護階段
(8) 運行/維護:竣工驗收后系統(tǒng)投入正式使用,并在運行過程中根據(jù)業(yè)務變化的需要進行適當?shù)木S護、調(diào)整和修改。
6. 信息系統(tǒng)項目管理基本方法
6.1. 項目建設階段管理
目前,信息系統(tǒng)項目建設投資計劃的報批往往是參照有形工程的思路進行的,因此有必要將兩者的項目過程作一些對比,如表1所示。
信息系統(tǒng)工程的基本原理來源于有形工程,,各階段有大致的對應關(guān)系,甚至在必要時可以直接借用有形工程相應階段的名稱,但任務內(nèi)容及所用方法必須保證按信息系統(tǒng)工程自己的特點執(zhí)行,不可照搬有形工程的任務內(nèi)容和方法。 6.2. 兩階段合同管理 在需求分析完成且系統(tǒng)功能技術(shù)說明書得到批準之前,項目建設的內(nèi)容和概(預)算都還是不確定的。如果采用一份合同從頭管到尾,則在項目開始所定的合同是一份建設內(nèi)容不確定的合同,最終會導致“項目泥潭”的結(jié)局。
因此,不管是否需要招標,都應該分兩個階段簽定
合同:
第一階段合同的任務是可行性研究、需求分析,其
成果主要是書面報告。這相當于有形工程的可行性研究
和初步設計合同,合同額只占項目總投資的小部分。
第二階段合同的任務是軟件開發(fā)/系統(tǒng)集成,其成果是實現(xiàn)具體的目標系統(tǒng)供用戶使用。這相當于有形工程的施工合同,合同額將占項目總投資的大部分。注意如果兩個階段的系統(tǒng)開發(fā)商不是同一家,則軟件設計/系統(tǒng)集成設計(相當于“施工設計”)任務應由本階段合同的開發(fā)商執(zhí)行,才能做出切合實際的設計。
有了第一階段合同成果的明確定義,第二階段合同的執(zhí)行就可以避免走向“項目泥潭”。
6.3. 技術(shù)文檔與階段評審的重要性
智者千慮,必有一失。以抽象、隱蔽為主要特征的信息系統(tǒng)工程的每一個階段,都應提交充分的技術(shù)文檔,供用戶和專家詳細評審,盡可能把需要返工的問題控制在當前階段內(nèi),避免跨越一個或多個階段的返工。當具體情況改變時,技術(shù)文檔應得到及時修訂。
有些開發(fā)商總想以最少的工作量盡快把合同款項賺到手,不愿認真進行各階段詳細文檔的編制和評審,結(jié)果從頭到尾積累了一大堆問題需要跨階段返工,到最后反而可能要賠本。項目管理者必須對這種“偷工減料”的情況進行嚴格監(jiān)控。
6.4. 項目監(jiān)理的必要性
信息系統(tǒng)工程建設監(jiān)理是近兩年才提出來的,目前尚在探索中,不象有形工程建設監(jiān)理制度那樣完善。從先行者的探索經(jīng)驗來看,這是很有必要而且成效顯著的。在目前條件下,可以雇請有直接開發(fā)經(jīng)驗的人員充當監(jiān)理角色,幫助業(yè)主監(jiān)管項目建設的整個過程。
7. 結(jié)語
信息系統(tǒng)工程原理來源于有形工程,但又明顯區(qū)別于有形工程。項目管理人員應該按信息系統(tǒng)工程的特點嚴格把握各階段的任務以及衡量其完成的標準,重視各階段技術(shù)文檔的編制、評審和修訂,避免問題跨階段積累,使無形、抽象和隱蔽的信息系統(tǒng)工程的建設過程也能象有形工程那樣得到有效管理,將項目建設一步一步引向既定目標,取得成功。
【參考文獻】
1.《軟件工程高級培訓教程》,鄭人杰主編,清華大學出版社,1999年8月第1版。
2.《實用軟件工程》(第二版),鄭人杰,殷人昆,陶永雷編著,清華大學出版社,1997年4月。
3. 清華網(wǎng)絡學堂軟件工程教學課件,殷人昆,2000年3月。
【作者簡介】馮鐕釗(1962-),男,廣東省北江防洪調(diào)度中心(水利水電信息中心)副主任、高級工程師,從事水利信息化建設和管理工作。
三億文庫3y.uu456.com包含各類專業(yè)文獻、各類資格考試、生活休閑娛樂、行業(yè)資料、文學作品欣賞、軟件工程基本原理與信息系統(tǒng)工程項目管理68等內(nèi)容。
12
下載地址:軟件工程基本原理與信息系統(tǒng)工程項目管理68.Doc
【】最新搜索
軟件工程基本原理與信息系統(tǒng)工程項目管理
70區(qū)域可持續(xù)發(fā)展系統(tǒng)動力學綜合協(xié)調(diào)模型研究
我校舉辦國學經(jīng)典誦讀展示活動_圖文
論我國園林植物造景_田曄林42
78人格測驗16PF解析成果
對二叔丁基苯的制備
2016繼續(xù)教育建設美麗中國答案86分
15小學體育教師業(yè)務考試試卷及答案修改版
淺論中國傳統(tǒng)園林植物造景技藝特征分析
93中學教育
本文關(guān)鍵詞:軟件工程基本原理與信息系統(tǒng)工程項目管理,由筆耕文化傳播整理發(fā)布。
本文編號:162700
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/162700.html