時間:2022-07-16 10:29:05
序論:寫作是一種深度的自我表達。它要求我們深入探索自己的思想和情感,挖掘那些隱藏在內心深處的真相,好投稿為您帶來了一篇淺談計算機軟件項目管理范文,愿它們成為您寫作過程中的靈感催化劑,助力您的創作。
論文摘要:本文認真分析了目前國內軟件項目管理中出現的問題,以提高軟件質量、降低成本、加強軟件項目的可控性為目標,在深入研究和探討CMM的基礎上結合軟件過程.給出了一種加強軟件項目管理的實踐模式。該實踐模式定義了CMM中的6個關鍵過程域和3個工作組.并從項目的開發時間和質量方面做效率分析,強調了軟件過程對軟件項目管理的重要性。
論文關鍵詞:軟件項目;軟件過程;CMM;KPA
1.引言
項目管理(PM,projectmanagement)是指利用現有的知識、方法和技術手段,有效地計劃、調度、控制和跟蹤項目的開始、執行、直止終止的過程,是項目順利實現的有效手段。軟件項目管理則是在項目管理的基礎上,結合軟件產品的實際,利用工程的概念和方法來開發與維護軟件,對成本、風險、時間、質量、過程、配置等進行分析、管理、控制,最終目的是為了讓軟件項目的整個生命周期都在管理者的控制范圍內,以預定成本按期、按質完成軟件的開發并交付用戶使用。目前,軟件產品已廣泛應用于各個領域,但是很多軟件項目的成功率并不高.雖然有些公司根據軟件工程理論建立了一些軟件開發管理規范.但并沒有從根本上提高軟件項目管理問題,這就導致軟件產品質量不穩定甚至是項目的失敗,同時也損害了用戶的利益。本文結合我國軟件項目管理的特點并經實踐應用.以提高軟件質量、降低成本、加強軟件項目的可控性為目標,通過對CMM的研究和改進,給出了一個基于CMM加強軟件項目管理的實踐模式,在這個模式中對目前CMM中的KPA做適當的裁減,定義了6個關鍵過程域和3個工作組。
2.軟件項目管理中目前存在的問題
影響軟件項目成功率的因素主要是軟件質量問題,而在整個軟件項目的實施過程中需求不明確、跟蹤和監督不力、缺乏客觀的軟件評審和軟件配置以及風險管理意識不足等都阻礙著軟件質量的提高。
2.1需求不明確
需求管理是軟件項目管理中非常關鍵的一個步驟.需求分析的完整與否可以降低軟件質量、延長項目周期、加大成本。由于用戶對計算機系統認識的不足,對于系統的需求往往比較模糊,遺漏甚至是錯誤的問題經常出現(包括管理流程、業務流程、數據或報表的分析處理等),但這些問題往往沒有暴露給開發人員,而是隨著項目的進展才逐漸明確。對于開發人員來說,需求的變更意味著軟件產品的部分內容必須重新開發,而對于整個軟件項目管理而言,勢必要重新分配資源、調整計劃、估算成本等等,導致軟件產品質量下降。
2.2跟蹤和監督不力
跟蹤和監督主要針對過程而言,也是項目管理中最容易被忽視的環節。軟件項目過程由多個任務構成,大部分任務都有前置任務和后置任務,這就要求項目管理者要嚴格跟蹤和監督每一個任務。任務的完成主要從時間進度和質量兩方面來衡量,還要充分考慮因客戶方引起的一些客觀因素(更改需求分析等)。項目管理者雖然制定了具體的項目進度內容,但如果缺乏有效的跟蹤和監督機制,對于每一個階段所要完成的任務疏于評價,就會影響下階段軟件產品的質量,有時甚至是軟件產品的重新開發,最終影響整個軟件項目。
2.3缺乏客觀的軟件評審
客觀的軟件評審是軟件產品質量的直接保障,軟件評審一直貫穿于整個軟件項目的過程中,對軟件產品的評審應有客戶使用人員和軟件業中的同行來進行。客戶使用人員對軟件產品做階段性的評審可以及時發現軟件產品功能方面的不足,同行評審可以從軟件業的規范及標準去發現問題.軟件評審可以降低軟件開發的成本提高軟件產品的質量。大多情況下項目管理者沒有做任何階段性的評審,通常只是在軟件產品開發基本完成之后來組織評審,果發現了很多問題,但要修改已經非常困難.要花費很長的時間甚至從頭再來。
2.4軟件配置混亂
軟件配置是指軟件產品在各個階段各種版本的文檔、程序及數據的集合,貫穿于整個軟件項目的始終。隨著軟件產品開發的進行,由于各種客觀原因,其中的預算、設計方案、進度等內容都有可能需要大大小小的更改(這些改動可能是合理的),整個改變的過程對軟件項目的參與人員來說必須是可視的,以便提高軟件的可靠性和質量,而這一切都應該有正確的軟件配置來控制如果失去正確的軟件配置管理,那么針對軟件產品發生的任何更改或者是維護都會給軟件項目帶來混亂甚至是失敗。
2.5風險管理意識不足
風險管理是軟件項目中防止失敗的一種重要手段,軟件項目不同的階段存在著不同的風險,并且風險會隨著項目的進展而變化,目前國內的軟件企業大都不注意軟件項目的風險管理。除了社會環境風險、商業風險等這些客觀風險之外.可控的軟件項目風險主要指技術風險。技術風險主要是指與軟件項目本身相關的的技術因素變化帶來的風險,如果在一定的條件下達不到技術條件能夠實現的目標,不但延緩項目的進度而且會增加項目的成本.繼而使整個項目受到影響。
3.通過過程管理加強軟件項目管理的實踐模式
利用cMM fCapabilityMaturityModeforSoftware)的核心思想把軟件項目管理看作一個軟件過程,并根據這一原則對整個軟件項目的開發和管理進行過程監控,監督發現過程中影響項目的關鍵問題并予以解決。軟件過程是指軟件開發人員開發和維護軟件及相關產品的一套行為、方法、實踐及變換過程,包括軟件開發過程和軟件管理過程。CMM把軟件開發機構按照不同開發水平劃分為5個級別。每個等級被分解為幾個KPA(關鍵過程域),KPA是指在某個成熟度等級應重點關注的區域,也是達到此成熟度等級必須解決的關鍵點。①初始級,無過程意義。軟件過程是無序的、隨機的、缺乏總計劃,無預見性,大多數活動是應付危機,經常超期超支,成功取決于個人。②可重復級,具備基本的項目管理。KPA分別是:需求管理、軟件項目計劃、軟件跟蹤與監督、軟件子合同管理、軟件質量保證、軟件配置管理;③已定義級,已定義軟件過程。已將軟件管理和軟件工程兩方面的過程文檔化、標準化,并綜合成該組織的標準軟件過程。KPA分別是:組織過程焦點、組織過程定義、培訓大綱、集成軟件管理、軟件產品工程、組間協調、同行評審;④可管理級,過程可度量。已收集了軟件過程和產品質量的詳細度量方法,軟件過程和產品均可被定量地理解和控制。KPA分別是:定量過程管理、軟件質量管理;⑤優化級,過程控制。通過過程的量化反饋以及新技術、新方法促使過程不斷改進。KPA分別是:缺陷預防、技術更新預防、過程更改管理。
CMM只是一個過程改進的框架.并沒有給出具體實施的辦法。在該模式中對目前CMM中的KPA做適當裁 減.定義了6個關鍵過程域:軟件項目計劃(SPP)、需求管理(RM)、軟件項目跟蹤和監督(SPTO)、軟件質量保證(SQA)、軟件配置(SCM)、同行評審(PR),設置了三個工作組:軟件項目過程組(SPPG)、軟件工程組(SEG)、軟件質量保證組(SQAG)。通過工作組對關鍵過程域的操作來加強軟件項目的管理。
3.1定義KPA
3.1.1軟件項目計劃(SPP)
軟件項目計劃是為要實施的軟件項目編制軟件過程活動的安排,包括進度控制、成本控制、質量控制、風險控制等,也是實施CMM2的核心此階段在安排過程活動的同時開展項目設計的前期工作,設計和界定在整個項目中各階段所需的開發、質量、跟蹤、評審、風險、成本等工作。項目計劃是指導項目過程的具體措施,要在有軟件項目實施經驗的人員領導下投人大量的時間和人力資源來完成。制定項目計劃應注意7個問題。①在科學論證的基礎上制定過程,充分調動人員積極性合理地確定項目組的參加人員;②對軟件項目各程中的任務進行分解,明確項目的里程碑和檢查點;③正確估計軟件項目中的軟件資源、硬件資源、人力資源及其它費用;④正確估計各方面因素帶來的風險并制定應對措施;⑤制定項目實施過程中的跟蹤和監督措施;⑥確定軟件的評審和測試方法;⑦詳細的文檔資料。
3.1.2需求管理(RM)
需求分析主要包括面向用戶的用戶需求和面向開發人員的系統需求.是整個軟件工程的第一步.也是非常關鍵的一個環節。需求分析主要針對用戶的業務流程、系統功能、性能、數據分析進行嚴格的定義.是設計一個軟件應用系統的起點與基本依據,通過它來評判軟件產品是否能夠解決用戶問題,也是項目成功與否的標準。就目前國內現狀來講,一般簽定軟件項目合同的用戶是主管信息技術的負責人,它所關心的可能是整個系統的目標需求,用戶方中層管理人員關心的是業務流程需求.終端操作人員則注重軟件本身的易操作性和功能特性,因此.面向用戶的需求一定要和用戶多方人員多溝通、交流.最終通過雙方有關部門人員的論證以文檔資料的形式確定下來。任何一個需求分析因客觀原因可能存在著需求更改的現象,對于這種情況一定要注意需求更改的可控性.要建立需求的基準版本和更改版本控制文檔資料.使受需求變化影響的產品與需求變更一致。但要注意在更改需求的同時要衡量需求的穩定性,如果一個需求的變更比較頻繁,意味著本項目并沒有真正了解用戶想要解決的實際問題??梢哉f需求分析的完整性和變更可控性直接影響到軟件過程的改進,它可以降低軟件質量、加大軟件開發的成本、甚至是導致項目的失敗。軟件工程組(SEG)中要明確定義一個需求管理員。
3.1.3軟件項目跟蹤和監督(SPTO)
軟件項目的跟蹤和監督始終貫穿于整個軟件項目的過程中,是項目得以控制的前提和條件、是軟件質量的根本保障,其目的是增加軟件過程中進度、成本、工作量、質量、風險等內容的可視性,也是實施CMM2的核心。除去市場、法律等不可控制因素外,根據項目計劃對項目進展的有關情況及影響項目實施的相關因素進行及時、客觀、準確的信息采集,將采集到的需求、成本、進度、風險等內容形成文檔并建立一個項目跟蹤信息平臺。項目負責人定期召集軟件過程人員、開發人員、質量保證人員、用戶方有關人員召開開放式的例會,例會的主要內容是檢查項目進展、數據的分析、認識的偏差、資源的搭配、相關的風險等問題并討論確切的解決辦法,通過跟蹤和監督使項目始終處于可視化的受控狀態。
3.1.4軟件質量保證(SQA)
軟件質量保證是與軟件產品滿足規定的和隱含的需要能力有關的特征或特性的組合。對用戶來講主要體現在軟件產品的有效性、一致性、完整性、可靠性和可操作性等方面,對于軟件產品本身來講體現在軟件產品的可移植性、易維護性、健壯性、可重用性等方面。具體實踐中.軟件質量保證應在軟件項目計劃、需求分析、跟蹤和監督、軟件配置和軟件評審的相互配合下完成.軟件質量保證要做到以事先預防和跟蹤為主,事后糾偏為輔。
3.1.5軟件配置(SCM)
軟件配置是針對軟件產品的跟蹤和控制活動.貫穿于整個軟件項目的過程中.目的是建立和維護在整個生命周期內軟件產品的完整性和一致性,使整個軟件產品的演進過程處于可控的狀態,繼而提高軟件的可靠性和質量。在實踐應用中主要做到五個子項的配置①配置項的標識。標識做到唯一性。便于跟蹤和管理。②版本管理。對整個軟件過程中的文件和目錄提供有效的跟蹤手段。③變更控制。保持并傳遞修改信息。④配置審計。確定整個項目生產周期中產品在技術和管理上的完整性。⑤系統整合。把系統的不同部分集成后完成一組特定的功能。
3.1.6同行評審(PR)
同行評審是根據預定的規范和標準對軟件產品進行評審。評審的結果是衡量軟件產品質量的依據。在整個軟件過程中對詳細設計和軟件綜合測試作為兩個關鍵評審點來進行評審,評審的過程中注意要結合本軟件項目的具體要求和標準。
3.2組的定義
在具體的實踐應用中設置了三個組,在降低了人員成本的同時提高了軟件過程改進能力和軟件質量。
軟件項目過程組(SPPG)組織具體的項目實施活動,管理并協調整個軟件項目的過程,主要完成SPP和SPTO。
軟件工程組(SEG)負責軟件工程的需求分析、概要設計、詳細設計、編碼、測試、維護工作。
軟件質量保證組(SQAG)主要完成SPTO、SCM、PR、SQA等工作。
4.實踐模式效率評估
4.1開發時間
軟件開發由需求分析、概要設計、詳細設計、編碼、軟件測試、項目維護和軟件集成幾部分內容組成,在需求分析和設計階段采用CMM框架實施過程管理所花費的時間要多于沒有實施過程管理花費的時間。首先對項目做大量分析,論證項目的可行性。然后在和用戶做良好溝通、反復論證的基礎上做需求分析,形成文檔資料。這種模式下花費在需求分析和設計上的時間大約占項目總開發時間的40%,但這兩個階段完成了數據流程、算法描述、詳細的規格說明等內容,為代碼編寫、軟件測試、軟件維護等后續內容的工作節省了時間,軟件項目的開發周期大大縮短。經過評估,采用該實踐模式實施軟件過程管理的軟件項目開發周期比沒有實施軟件過程管理的軟件項目開發周期縮短20%。
4.2開發質量
采用CMM標準通過軟件過程管理加強軟件項目管理的實踐模式使軟件質量明顯提高、需求分析周密、代碼錯誤率明顯降低、軟件產品完整性好、功能齊全、維護量下降,軟件項目最終得以順利實現。
5.結語
本文給出的通過軟件過程管理加強軟件項目管理的實踐模式優點非常明顯.軟件過程改進目標明確,可以有效地提升軟件產品質量、節省開發時間、降低成本。同時該模式更能體現團隊精神,擺脫了軟件開發中的個人主義,從整體出發,在強調過程對整體重要性的同時,進一步降低了軟件過程中的各種風險,使軟件項目始終處在可視化的優良受控狀態中
論文關鍵詞:需求分析 用戶方干系人 項目經理 需求分析員
論文摘要:計算機軟件項目管理中的需求分析是提高軟件質量的基礎也是決定一個軟件項目成敗的關鍵。本文介紹了在需求分析研究中探索出的一些有效措施。
眾觀國內計算機軟件業的發展,除遠不如歐美等西方發達國家外,與人均GDP不及我國的印度相比也相距甚遠,軟件業的劣勢正嚴重制約著我國IT業的發展。我國軟件業的劣勢表現在自主開發的成熟軟件不多,而開發的大量軟件工程項目(如ERP等)存在缺陷或完全開發失敗。目前,國家正在加大對軟件工程的研究和對軟件工程人才的培養。根據資料顯示,屬于需求分析造成軟件設計的錯誤和缺陷約占軟件失敗的6400,而屬于程序代碼的錯誤僅占軟件失敗的360a,數據表明需求分析是提高軟件質量的基礎也是決定一個軟件項目成敗的關鍵。通過對軟件項目管理知識的系統學習并結合近年來自己參與部分軟件項目實施的經驗,介紹在需求分析研究中探索出的一些有效措施。
1盡快熟悉項目用戶方干系人全貌
項目用戶方干系人,指所有可能受到項目結果重大影響的人,即項目的風險承擔者,他可能是項目的受益者,也可能是項目的受害者。因此,應當從項目的啟動開始,需求分析員及其項目成員就要分清項目用戶方干系人包含哪些人和組織,通過溝通協調對他們施加影響,驅動他們對項目的支持,調查并明確他們的需求和愿望,減小其對項目的阻力,以確保項目獲得成功。
有些項目在做需求調查時,由于受進度要求等客觀因素影響,需求分析員與建設單位的技術部門交流較多,向業務管理部門和實際使用者調查不夠深入,造成軟件試用后不得不再對需求做較大調整,“從頭再來”的部分比例很高,大大超過進度要求時間。因此,熟悉項目用戶方干系人全貌是進行需求調查的第一步,也是需求調查的基礎。在定制開發項目的項目用戶方干系人中,最重要的是建設單位中的人事組織、業務關系。最好是能夠用組織結構圖畫出相關單位的組織結構;還應當在相關單位組織結構圖基礎上畫出全體項目用戶方干系人結構圖,以便更好更全面地進行需求調研分析;用責任矩陣確定各部分的調研對象;建立調研對象通訊錄以保證調研及分析期間及時的溝通。
2采取正確的需求獲取方法
軟件開發項目的目的就是要實現項目用戶方的需求,項目用戶方的需求包含明確的和隱含的,也可以分為NEED, WANT, WISH等不同的層次。如果對項目所有用戶方干系人沒有進行足夠的溝通和影響,使其盡可能地參與項目,則會出現客戶方相關責任人不明確或對范圍和需求責任心不強,提出的需求具有隨意性,項目前期對需求的確認不夠積極,或者是多個用戶代表各說各話、昨是今非,項目后期需求變化隨意等現象,這就會造成項目范圍的蔓延,進度的拖延,成本的擴大,甚至項目的完全失敗。
各種用戶對系統具有不同的要求,如一個沒有經驗的用戶關心系統是否簡單易用,對于高級用戶則關心產品的易用性和高效性。因而需要對用戶進行分類,每一個用戶類將有自己的一系列功能和非功能要求。在項目中,要盡早為產品確定并描述不同的用戶類,這樣就能從每一個重要的用戶類代表中獲取不同的需求。
項目需求具有雙面性(用戶與開發商)和多面性(項目中各干系人),因此,項目經理和系統集成者應了解用戶干系人需求,用戶干系人也應了解技術方面的需求,兩者缺一不可。正確的需求獲取需要了解需求的來源、用戶的分類、用戶的代表性、用戶需求誰說了算數等因素。開發人員和項目經理要有足夠的耐心聆聽用戶的講述,要足夠詳細地了解每一個細節。項目管理者要善于將需求分類、歸類,善于將需求文檔化,并有所查詢標記。
3可視化需求調研,引導各種客戶挖掘他們的需求
有的客戶因為自己缺乏計算機知識,無法提出完整準確、隱含的或潛在的需求。若這些需求不能滿足將導致用戶的不滿。因此需求調研分析人員應善于想用戶所想,不但要確定明確的需求,還要善于用啟發的方式與用戶探討隱含的或潛在的需求,并結合各種調研分析技術挖掘超出客戶期望的令人興奮的需求。這就要求需求調研分析員要盡快完整地熟悉相關業務,從而能夠站在用戶的立場看待軟件需求,想用戶所想,做好業務與計算機之間的橋梁。利用可視化需求調研的方法可以很好地啟發用戶深人挖掘潛在的需求。可視化需求調研就是使用圖表等工具來啟發引導用戶清楚地敘述需求,并且使需求更加全面完善。
對于高層領導,可以提供系統總體框架圖;對于業務管理人員,可以用業務流程圖來描述新舊系統的業務流程;對于客戶中的技術人員,可以用數據流圖、實體關系圖或UMI中的各種圖形對系統進行各種角度的描述;而對于業務管理人員、客戶中的技術人員、以及各層次各流程中的用戶,畫出用戶界面圖來進行需求挖掘,是個比較有效的溝通方式。
這里特別說明一下用戶界面的重要性。用戶界面的設計按理來說是軟件設計的責任,當然客戶自己對界面有特別提出要求的除外。但是,如果把它提前到需求調研時與客戶進行討論,則可以大大改善需求調研的效果。因為這時客戶對于將來的系統還沒有一個形象上的概念,或者有一個模糊的預想的概念需要表述、驗證、明晰化、完善化,以筆者的經驗,畫出用戶界面草圖與客戶進行討論,可以大大激發他們提供更為準確全面的需求。原來收集資料,描述業務,說明系統模型到了山窮水盡的時候,這種方法可以達到柳暗花明又一村的效果。
4詳細描述各項業務,以便讓所有客戶確認
盡可能全面詳細地調查并且描述原有系統和用戶希望將來系統具有的各項業務的流程,并將這些業務流程文檔化后與客戶進行討論,對描述錯誤或不準確不精確的進行修改,最終讓客戶進行確認。從近年來開發的軟件看,對業務處理過程了解的完整性和準確性非常重要。雖然對數據來說都是SIDUT(查增刪改傳),但具體業務都是分為若干步驟,每個步驟都有其業務名稱,同一步驟可能對多個數據集進行不同操作,需要調查了解清楚才能設計出適合用戶業務特點和習慣的軟件,使開發出來的軟件更受歡迎。當然在進行軟件概要設計時,要盡量排除業務流程的制約,即把流程中的各項業務節點工作作為獨立的對象,充分考慮他們與其他各種業務對象的接口,在流程之間通過業務對象的相互調用實現其業務流程,這樣,在業務流程發生有限的變化時,就能夠比較方便地修改系統程序而實現新的需求。
對于各項業務的調查可以通過對以下資料的收集整理分析來完成,這些資料來自各種各樣的項目用戶方干系人:遵循的標準、組織發放的工作手冊、作業流程、有關業務的上級通知、有關業務的辦事指南、辦理業務時需要填寫的登記表、各種相關的統計報表及通過其他途徑收集的類似系統的介紹、技術資料等等。 5對項目用戶方干系人的愿望進行平衡
不同的項目用戶方干系人其愿望和追求的目標往往相差甚遠,因 此對項目用戶方干系人的愿望進行平衡可能是非常重要而又相當困難的事情。例如:我曾在參與的某醫院計算機管理系統項目中,遇到醫院管理層希望能夠采集盡可能多的信息項以便對數據進行多種多樣的統計分析,同時為了對信息進行有效控制而增加一些審批流程;而門診、藥房等對外辦公的基層窗口則因為客流速度的壓力希望減少信息項的輸人量;甚至有些不良的基層部門由于害怕建立透明度高的信息系統會影響他們的利益而消極地應付,即所謂反需求;而客戶的客戶(就診的病人)則希望相關機構能夠簡化工作流程,加快辦事速度,增加診斷情況和就診費用的透明度;甚至項目組本身因為技術、資源、進度等原因,需要對一些功能進行優先級排序和取舍。雖然不是所有人的需求都是可以滿足的,特別是消極的反需求是不能接受的,但他們的需求都是應當考慮全面并進行平衡的。
如果不同的用戶方干系人有不一致的需求,那么必須決策出滿足哪一類用戶方干系人的需求更為重要。了解可能使用產品的客戶種類的信息和他們的用法與產品的業務目標的關系如何,將有助于決定哪一個用戶類所占份額更大。如果系統分析人員提出的需求與開發者所想要開發的系統發生沖突時,通常由于系統分析人員作為客戶的人,市場需求具有更重的分量,但是,系統分析人員不能一味地遷就客戶需求。
不同的用戶方干系人可能都要求產品按照他們各自的喜好來設計。運用項目的業務目標來決定哪些是你最關心的客戶,非核心客戶的需求可以安排在下一個版本中開發。當開發者想像的產品與客戶需求沖突時,通常應該由客戶作出決策,然而,不要陷人“客戶總是對的”的陷阱中去,現實中,客戶并不總是對的。
6強調實現項目需求的層次遞進性
了解該系統或者該項目用戶所能夠提供的最小的工程費用。當預計經費不能支持時,應當考慮將項目分期實施。在系統上、技術上對用戶進行引導性建議,使用戶了解集成商所要進行的工作,了解集成商是為了幫助用戶實現他的需要、達到用戶的目的,而不僅僅是為了賺錢,用戶更了解集成商,也更了解自己的系統,有利于以后的項目合作、工程實施和系統維護。
分析用戶曾用系統模式、數據結構和庫模式,看是否保持、共用、轉換,這涉及保護用戶投資的問題。根據現在工作業務流情況確定現有的工作模式,還應兼顧將來可能會發生的變化、擴展、新規定,及與同國際接軌可能的帶來的變化。考查工程實施環境是否有保證,尤其是網絡工程,必須在需求調查時充分了解用戶領域的實施環境,當不具有實施環境時,要求進行配套設計和環境改造。
7編寫需求文擋和進行需求評審與其他項目小組成員協作完善系統需求
文檔資料是集成商重要的財富,貫穿于系統集成和項目開發的整個過程,其中包括法律文檔、技術文檔、資料文擋。文擋要求完整性、一致性、可修改性、可跟蹤性。
以原來的需求為基礎的工作完成后,要修補需求錯誤需要大量的工作,研究表明:比起在需求開發階段由客戶發現的一個錯誤,然后更正這一錯誤需要多花到倍的時間。因此,需要進行需求評審。需求審查結束的標準為:已經明確闡述了審查員提出的所有問題、已經正確修改了文檔、修訂過的文檔已經進行了語法檢查、所有TBD問題都已經解決、文檔歸檔。
需求文檔完成之后,并不是把它扔給后面的設計人員就了事了。作為項目組其他成員,對需求的有效性也起到某種程度的驗證作用。雖然軟件項目的生命周期按照各種開發模型有不同階段的劃分,但每個階段的結束不是簡單地把階段工作成果塞給下一階段的成員就可以了。特別是高科技的軟件開發項目,上一階段的工作成果往往要通過多次的溝通才能更為清晰地被下一階段成員接受,其有效性、合理性也要被下一階段的工作所檢驗,通過檢驗有時也有必要對上一階段的工作結果進行相應的調整,需求分析也是如此。因此,無論是同一階段不同人員之間,或是不同階段人員之間都應根據需要相互協作,相互配合,共同完成軟件開發任務。
論文關鍵詞:云技術 多媒體技術 改革現有的教學模式 教學資源的整合 激活學生的學習興趣
論文摘要:在云技術架構下,建立強大的多媒體教學資濠庫。這樣可以集中整合各方優秀的教學資源,建最好的和最豐富的教學課庫,讓各奏學生均可找到適合自己,而且自己感性趣的課程和課件。建立了多媒體教學資涎庫后,既可以垴小東西部教育差距,又能保障教育資濼的均衡發展。
大部分教師(尤其大學教師)的工作應該相應的從向學生灌輸知識,轉向引導學生學習知識,找到激活學生學習智門的鑰匙。
放在云架構內的這些教學資源,隨著不斷的更新、增加,必將成為一筆極大的資源財富,不僅可以供在校學生學習使用,也可以提供給全社會需要再學習、需要更新知識的人士使用,為全社會形成一種不斷學習的氛圍,提供一個強大的資源保障。
一旦形成全社會不斷學習的風氣,社會就會和諧,文明程度的程度就會不斷提高,人們的創新意識和能力就有了源動力,人們就會從更多的追求物質財富轉而進入追求精神財富。
前文我們探討了利用“云技術+多媒體技術改革現有的教學模式”,話題意猶未盡,還想進一步探討一些教學模式改革的細節。當然我們暫且討論的教學對象為大學以上的學生,或部分高中生,因為絕大部分高中生的教學活動還是基本圍繞著高考指揮棒在轉。
在云技術架構下,建立強大的多媒體教學資源庫。這樣可以集中整合各方優秀的教師資源、教學設備資源,建最好的和最豐富的教學課程庫,讓各類學生均可找到適合自己,而且自己感性趣的課程、課件和學習參考資料。
制作這些課程資源可以分工,高層次教師撰寫課程內容,配套各類教師,可以有的整合內容、有的應用多媒體素材加工制作課件、有的制作各類課程教程、而有的則準備相關參考資料以及考試題庫系統等教學資源。
這時的教學資源就不是屬于某個學校、某個團體、某個局部組織,而是屬于國家或全人類的資源,為全人類所共享。
這樣,可能有人會擔心是否教師或相應的人員都要下崗了呢?否!
大部分教師(尤其大學教師)的工作只是從向學生灌輸知識,轉向引導學生學習知識。大部分長期從事教學工作的教師深有體會,好學生不完全是教出來的,而且通過老師啟發性的引導,激活了他們的興趣,或打開了他們的智門,使他們自己要學習,只有激活了學習者的源動力,才能使他們朝著一個一個目標不斷攀登。
那么,教師教學要包括哪些內容呢?我認為教師的教學工作應該圍繞中如何能激活學習者的興趣和以如何能打開他們的智門為衡量指標。方法可以各不相同,因為人是個性化的,當然方法也應該因人而異,當然可以對個性相近的學生采用類似的方法,但還是需要有微調。
具體做法可以不斷摸索。教師可以組織學生開展各種開發、創新活動,可以組織各種競賽活動,可以組織學生參與各種專題討論活動,讓每個學生均有機會表達自己的想法和觀點,很多思想的火花是在交流中產生的,是在實踐過程中綻放的,所以要多提供一些機會讓學生經歷各種活動的鍛煉,活動的過程是最能鍛煉人能力的,如果省略了過程,結果也是不豐實的。
我們提倡多開展各種創新活動來鍛煉學生的能力,而現在學生這方面的鍛煉機會太少,應該增加相應的比例。那么是否就不考試了呢?當然不行!期間,我們的學校大多不考試,結果中學畢業生連簡單的一元一次方程都不會,這樣社會如何發展?考試還是衡量學生學習掌握程度的標尺,當然考試形式可以的筆試,也可以是操作過程,更可以寫論述文章、論文之類形式;考試時間可以是期中、期末考試,可以是融入平時的多次抽查中,也可以羅列各類課程統考時間安排表,學生學習到一定程度,可以報名參加考試,來檢驗自己知識的掌握程度,形式可以通過實踐不斷總結,不斷改進。總之,有助于學生更有效掌握知識、能打開學生智門的方法就是好方法。
學生通過考試,當然需要有一系列學分累積機制,最好將理論課程和實踐課程按不同學分比例分別統計,保證不同學科對理論和實際操作的要求不同。
這樣的機制,對教師的要求不是低了,而是更高。要求教師積極思考,尋找能與學生更好溝通,激活學生心智的鑰匙,這是沒有一個統一模式可循的,教師也必須不斷摸索、創新。
有了這種師生一對一、一對多、多對多的關系機制,學生與教師之間的距離不是遠了,而是更近了,社會也會更和諧。因為從教師的角度來說,必須了解學生,走近學生,才能找出適合他們學習自嘶方法,才能激活他們的學習興趣;從學生的角度來說,有問題、有心結就可以及時與他們所喜歡的教師溝通、請教,盡快排除障礙,琢磨出適合自己學習的好方法。要使學生學習效果好,教師與學生是一個整體,只有雙方的努力、協調,才能找到最佳的教學方法。
如果學生太多,老師顧及不了怎么辦?老師可以到學校與學生面對面的談話,也可以出現在各種活動場合,如:各類研討會老師可以當組織者,讓學生大家來準備內容、暢通各自的觀點,但教師更多的時間可以利用現有的網絡環境、3G環境,老師可以規定時間在網上,利用視頻、語音交流與學生好似面對面的交談,也可以利用手機、短信等的形式及時進行一些師生對話。不遠的將來電腦、手機、電視三網合一,利用任何IT工具都可以及時溝通,現代科學技術的發展已經具備了技術上的條件,問題是我們需要尋找到一系列行之有效的方法來強化師生間的溝通。
放在云架構內的這些教學資源,隨著不斷的更新、增加,必將成為一筆極大的資源財富,不僅可以供在校學生學 習使用,也可以提供給全社會需要再學習、需要更新知識的人士使用,為全社會形成一種不斷學習的氛圍,提供一個強大的資源保障。
一旦形成全社會不斷學習的風氣,社會就會和諧,文明程度的程度就會不斷提高,人們的創新意識和能力就有了源動力,人們就會從更多的追求物質財富逐步進入追求精神財富,那么社會的發展也就更穩健。
隨著社會的進步,我們應該摸索和尋找一種更理性和有利于學生身心健康的教學體制,讓學習者獲得獲取知識的樂趣,讓教師真正成為學生的良師益友。
人類發展方向是朝著地球村的方向發展。我們開始可以建立教學資源的私有云,局部范圍的試點,逐步擴大范圍,最終使我們的教學資源轉而成為全社會的財富。
我們國家的教育資源本來就不夠,建立了多媒體教學資源庫后,既可以縮小東西部教育差距,又能保障教育資源的均衡發展,我們何樂而不為呢?
一、引言
隨著信息技術的飛速發展,軟件產品的規模也越來越龐大,個人單打獨斗的作坊式開發方式已經越來越不適應發展的需要。各軟件企業都在積極將軟件項目管理引入開發活動中,對開發實行有效的管理。我公司是西安一家中型軟件企業,在公司中已經實行了項目管理制度,軟件項目管理是整個項目管理中的一個重要組成部分。
從概念上講,軟件項目管理是為了使軟件項目能夠按照預定的成本、進度、質量順利完成,而對成本、人員、進度、質量、風險等進行分析和管理的活動。實際上,軟件項目管理的意義不僅僅如此,進行軟件項目管理有利于將開發人員的個人開發能力轉化成企業的開發能力,企業的軟件開發能力越高,表明這個企業的軟件生產越趨向于成熟,企業越能夠穩定發展(即減小開發風險)。
軟件開發不同于其他產品的制造,軟件的整個過程都是設計過程(沒有制造過程);另外,軟件開發不需要使用大量的物質資源,而主要是人力資源;并且,軟件開發的產品只是程序代碼和技術文件,并沒有其他的物質結果?;谏鲜鎏攸c,軟件項目管理與其他項目管理相比,有很大的獨特性。
二、軟件項目管理的組織模式
軟件項目可以是一個單獨的開發項目,也可以與產品項目組成一個完整的軟件產品項目。如果是訂單開發,則成立軟件項目組即可;如果是產品開發,需成立軟件項目組和產品項目(負責市場調研和銷售),組成軟件產品項目組。
公司實行項目管理時,首先要成立項目管理委員會,項目管理委員會下設項目管理小組、項目評審小組和軟件產品項目組。
1、項目管理委員會
項目管理委員會是公司項目管理的最高決策機構,一般由公司總經理、副總經理組成。主要職責如下:
(1)依照項目管理相關制度,管理項目;
(2)監督項目管理相關制度的執行;
(3)對項目立項、項目撤消進行決策;
(4)任命項目管理小組組長、項目評審委員會主任、項目組組長.
2、項目管理小組
項目管理小組對項目管理委員會負責,一般由公司管理人員組成。主要職責如下:
(1)草擬項目管理的各項制度;
(2)組織項目階段評審;
(3)保存項目過程中的相關文件和數據;
(4)為優化項目管理提出建議。
3、項目評審小組
項目評審小組對項目管理委員會負責,可下設開發評審小組和產品評審小組,一般由公司技術專家和市場專家組成。主要職責如下:
(1)對項目可行性報告進行評審;
(2)對市場計劃和階段報告進行評審;
(3)對開發計劃和階段報告進行評審;
(4)項目結束時,對項目總結報告進行評審。
4、軟件產品項目組
軟件產品項目組對項目管理委員會負責,可下設軟件項目組和產品項目組。軟件項目組和產品項目組分別設開發經理和產品經理。成員一般由公司技術人員和市場人員構成。主要職責是:根據項目管理委員會的安排具體負責項目的軟件開發和市場調研及銷售工作。
三、軟件項目管理的內容
從軟件工程的角度講,軟件開發主要分為六個階段:需求分析階段、概要設計階段、詳細設計階段、編碼階段、測試階段、安裝及維護階段。不論是作坊式開發,還是團隊協作開發,這六個階段都是不可缺少的。
根據公司實際情況,公司在進行軟件項目管理時,重點將軟件配置管理、軟件質量管理、軟件風險管理及開發人員管理四方面內容導入軟件開發的整個階段。
在八十年代初,著名軟件工程專家B.W.Boehm總結出了軟件開發時需遵循的七條基本原則,同樣,我們在進行軟件項目管理時,也應該遵循這七條原則。它們是:
(1)用分階段的生命周期計劃嚴格管理;
(2)堅持進行階段評審;
(3)實行嚴格的產品控制;
(4)采用現代程序設計技術;
(5)結果應能夠清楚地審查;
(6)開發小組地人員應該少而精;
(7)承認不斷改進軟件工程實踐地必要性。
四、編寫《軟件項目計劃書》
項目組成立的第一件事是編寫《軟件項目計劃書》,在計劃書中描述開發日程安排、資源需求、項目管理等各項情況的大體內容。計劃書主要向公司各相關人員發放,使他們大體了解該軟件項目的情況。對于計劃書的每個內容,都應有相應具體實施手冊,這些手冊是供項目組相關成員使用的。
《軟件項目計劃書》一般應該包括下述內容:
1.引言
1.1計劃的目的
1.2項目的范圍和目標
1.2.1范圍描述
1.2.2主要功能
1.2.3性能
1.2.4管理和技術約束
2.項目估算
2.1使用的歷史數據
2.2使用的評估技術
2.3工作量、成本、時間估算
3.風險管理戰略
3.1風險識別
3.2有關風險的討論
3.3風險管理計劃
3.3.1風險計劃
3.3.2風險監視
3.3.3風險
管理
4.日程
4.1項目工作分解結構
4.2時限圖(甘特圖)
4.3資源表
5.項目資源
5.1人員
5.2硬件和軟件
5.3特別資源
6.人員組織
6.1組織結構
6.2管理報告
7.跟蹤和控制機制
7.1質量保證和控制
7.2變化管理和控制
8.附錄五、軟件配置管理
是否進行配置管理與軟件的規模有關,軟件的規模越大,配置管理就顯得越重要。軟件配置管理簡稱SCM(SoftwareConfiguratioManagement的縮寫),是在團隊開發中,標識、控制和管理軟件變更的一種管理。配置管理的使用取決于項目規模和復雜性以及風險水平。
1、目前軟件開發中面臨的問題
。在有限的時間、資金內,要滿足不斷增長的軟件產品質量要求;
。開發的環境日益復雜,代碼共享日益困難,需跨越的平臺增多;
。程序的規模越來越大;
。軟件的重用性需要提高;
。軟件的維護越來越困難。
2、軟件配置管理應提供的功能
在ISO9000.3中,對配置管理系統的功能作了如下描述:
。唯一地標識每個軟件項的版本;
。標識共同構成一完整產品的特定版本的每一軟件項的版本;
??刂朴蓛蓚€或多個獨立工作的人員同時對一給定軟件項的更新;
??刂朴蓛蓚€或多個獨立工作的人員同時對一給定軟件項的更新;
。按要求在一個或多個位置對復雜產品的更新進行協調;
。標識并跟蹤所有的措施和更改;這些措施和更改是在從開始直到放行期間,由于更改請求或問題引起的。
3、版本管理
軟件配置管理分為版本管理、問題跟蹤和建立管理三個部分,其中版本管理是基礎。版本管理應完成以下主要任務:
。建立項目;
。重構任何修訂版的某一項或某一文件;
。利用加鎖技術防止覆蓋;
。當增加一個修訂版時要求輸入變更描述;
。提供比較任意兩個修訂版的使用工具;
。采用增量存儲方式;
。提供對修訂版歷史和鎖定狀態的報告功能;
。提供歸并功能;
。允許在任何時候重構任何版本;
。權限的設置;
。晉升模型的建立;
。提供各種報告。
4、配置管理軟件PVC6.0
PVCS6.0是一套非常優秀的配置管理軟件,它能夠實現配置管理中的各項要求,并且能和多種流行開發平臺集成,為配置管理提供了很大的方便。
六、軟件質量管理
隨著軟件開發的規模越來越大,軟件的質量問題顯得越來越突出。軟件質量的控制不單單是一個軟件測試問題,在軟件開發的所有階段都應該引入質量管理。我公司除加強了國家標準"信息技術軟件生存期過程"(GB/T8566--1995)的規范管理外,還積極為通過ISO9000.3做準備。
1、軟件質量保證計劃
在進行軟件開發前,需要有一個《軟件質量保證計劃》。目前較常用的是AI/IEEETOL
730--1984,983--1986標準,包括以下內容:
1.計劃目的
2.參考文獻
3.管理
3.1.組織
3.2.任務
3.3.責任
4.文檔
4.1.目的
4.2.要求的軟件工程文檔
4.3.其他文檔
5.標準和約定
5.1.目的
5.2.約定
6.評審和審計
6.1.目的
6.2.評審要求
6.2.1.軟件需求的評審
6.2.2.設計評審
6.2.3.軟件驗證和確認評審
6.2.4.功能評審
6.2.5.物理評審
6.2.6.內部過程評審
6.2.7.管理評審
7.測試
8.問題報告和改正活動
9.工具、技術和方法
10.媒體控制
11.供應者控制
12.記錄、收集、維護和保密
13.培訓
14.風險管理
2、質量管理的基本原則
??刂扑羞^程的質量;
。過程控制的出發點是預防不合格;
。質量管理的中心任務是建立并實施文件化的質量體系;
。持續的質量改進;
。有效的質量體系應滿足顧客和組織內部雙方的需要和利益;
。定期評價質量體系;
。搞好質量管理關鍵在于領導。
3、軟件質量因素
正確性:系統滿足規格說明和用戶目標的程度,即,在預定環境下能正確地完成預期功能的程度。
健壯性:在硬件發生故障、輸入的數據無效或操作錯誤等意外環
境下,系統能做出適當響應的程度。
效率:為了完成預定的功能,系統需要的計算資源的多少。
完整性(安全性):對未經授權的人使用軟件或數據的企圖,系統能過控制(禁止)的程度。
可用性:系統在完成預定應該完成的功能時另人滿意的程度。
風險:按預定的成本和進度把系統開發出來,并且為用戶所滿意的概率。
可理解性:理解和使用該系統的容易程度。
可維修性:診斷和改正在運行現場發現的錯誤所需要的工作量的大小。
靈活性(適應性):修改或改進正在運行的系統需要的工作量的多少。
可測試性:軟件容易測試的程度。
可移植性:把程序從一種硬件配置和(或)軟件系統環境轉移到另一種配置和環境時,需要的工作量多少。有一種定量度量的方法是:用原來程序設計和調試的成本除移植時需用的費用。
可再用性:再其他應用中該程序可以被再次使用的程度(或范圍)。
互運行性:把該系統和另一個系統結合起來需要的工作量的多少。
4、軟件評審
軟件評審并不是在軟件開發完畢后進行評審,而是在軟件開發的各個階段都要進行評審。因為在軟件開發的各個階段都可能產生錯誤,如果這些錯誤不及時發現并糾正,會不斷地擴大,最后可能導致開
發的失敗。下面這組數據可以清楚的看出前期的錯誤對后期的影響。
軟件評審是相當重要的工作,也是目前國內開發最不重視的工作。
(1)評審目標
。發現任何形式表現的軟件功能、邏輯或實現方面的錯誤;
。通過評審驗證軟件的需求;
。保證軟件按預先定義的標準表示;
。已獲得的軟件是以統一的方式開發的;
。使項目更容易管理。
(2)評審過程
A、召開評審會議:一般應有3至5人參加,會前每個參加者做好準備,評審會每次一般不超過2小時。
B、會議結束使必須做出以下決策之一:接受該產品,不需做修改;由于錯誤嚴重,拒絕接受;暫時接受該產品。
C、評審報告與記錄;所提出的問題都要進行記錄,在評審會結束前產生一個評審問題表,另外必須完成評審簡要報告。
(3)評審準則
。評審產品,而不是評審設計者(不能使設計者有任何壓力);
。會場要有良好的氣氛;
。建立議事日程并維持它(會議不能脫離主題);
。限制爭論與反駁(評審會不是為了解決問題,而是為了發現問題;
。指明問題范圍,而不是解決提到的問題;
。展示記錄(最好有黑板,將問題隨時寫在黑板上);
。限制會議人數和堅持會前準備工作;
。對每個被評審的產品要盡力評審清單(幫助評審人員思考);
。對每個正式技術評審分配資源和時間進度表;
。對全部評審人員進行必要的培訓;
。
及早地對自己地評審做評審(對評審準則的評審)。5、ISO9000.3軟件質量認證體系
ISO9000.3是ISO9000質量體系認證中關于計算機軟件質量管理和質量保證標準部分。它從管理職責、質量體系、合同評審、設計控制、文件和資料控制、采購、顧客提供產品的控制、產品標識和可追溯性、過程控制、檢驗和試驗、檢驗/測量和試驗設備的控制、檢驗和試驗狀態、不合格品的控制、糾正和預防措施、搬運/貯存/包裝/防護和交付、質量記錄的控制、內部質量審核、培訓、服務、統計系統等二個方面對軟件質量進行了要求。
6、測試
軟件測試是軟件開發的一個重要環節,同時也是軟件質量保證的一個重要環節。所謂測試就是用已知的輸入在已知環境中動態地執行系統(或系統的部件)。測試一般包括單元測試、模塊測試、集成測試和系統測試。如果測試結果與預期結果不一致,則很可能是發現了系統中的錯誤,測試過程中將產生下述基本文檔:
(1)測試計劃:確定測試范圍、方法、和需要的資源等。
(2)測試過程:詳細描述和每個測試方案有關的測試步驟和數據(包括測試數據及預期的結果)。
(3)測試結果:把每次測試運行的結果歸入文檔,如果運行出錯,則應產生問題報告,并且必須經過調試解決所發現的問題。測試結果:把每次測試運行的結果歸入文檔,如果運行出錯,則應產生問題報告,并且必須經過調試解決所發現的問題。
七、軟件風險管理
軟件項目管理存在著風險,如果我們提前重視風險,并且有所防范,就可以最大限度減少風險的發生。進行風險管理是有效的手段。
1、風險的分類
根據風險內容,我們可以將風險分為項目風險(成本提高,時間延長等)、技術風險(技術不成熟等)、商業風險(銷售問題等)、戰略風險(公司的經營戰略發生了變化)、管理風險(公司管理人員是否成熟等)、預算風險(預算是否準確等)等。
另外,我們還可以將風險分為已知風險(如員工離職等)、可預報風險(從以往經驗得出可能有風險的)和不可預知風險。
2、風險的識別
風險識別的有效方法是建立風險項目檢查表。主要涉及以下幾方面檢查:
。產品規模風險檢查
。業務影響風險檢查
。與客戶相關的風險檢查
。過程風險檢查
。技術風險檢查
。開發環境風險檢查
。與人員的模式和經驗有關的風險檢查
3、風險評估
風險評估主要從下面七個方面進行:
。發生的可能性
。發生的結果(影響)
。建立一個尺度表示風險可能性(如,極罕見、罕見、普通、可能、極可能)
。描述風險帶來的后果
。估計對產品和項目的影響
。確定風險評估的正確性
。根據影響排定有限隊列
另外,要對每個風險的表現、范圍、時間做出盡量準確的判斷。
4、風險的評價
對風險的評價主要依據三個因素:風險描述、風險概率和風險影響。從成本、進度及性能三個方面對風險進行評價。確定項目的中止點,在中止點出再一次進行風險評價。
5、風險的駕馭和監控
風險的駕馭與監控主要要靠管理者的經驗來實施。如,某開發人員的離職概率是0.7,離職后會對項目造成一定的影響,則該風險駕馭和監控的策略如下:
。與在職人員協商,確定流動原因。
。在項目開始前,把環節這些流動原因的工作列入風險駕馭計劃。
。項目開始時,作好人是會流動的準備,采取一些措施確保人員一旦離開時,項目仍能繼續。
。制定文檔標準,并建立一種機制,保證文檔及時產生。
。對所有工作進行細微詳審,使更多人能夠按計劃進度完成自己的工作。
。對每個關鍵性技術人員培養后備人員。
在考慮風險成本之后,決定是否采用上述策略。
八、人員管理
1、對項目經理的要求
。能夠使小組每個成員都能發揮能力
。有一定的組織能力
。能夠使小組美味成員有成就感
。有提出解決問題方案的能力
。對問題的理解有一定的深度
。要能讓成員知道軟件質量的重要性
2、人員的通訊方式
(1)正式非個人方式,如正式會議等;
(2)正式個人之間交流,如成員之間的正式討論等(一般不形成決議);
(3)非正式個人之間交流,如個人之間的自由交流等;
(4)電子通訊,如E-MAIL(電子郵件)、(電子公告板系統)等;
(5)成員網絡,如成員與小組之外或公司之外有經驗的相關人員進行交流;
在實踐中發現,(5)的通訊效率最高,其次是(1)?!拔拿卣尽卑鏅嗨?
人力資源管理中的風險管理
在進行人力資源管理時,我們往往重視招聘、培訓、考評、薪資等各個具體內容的操作,而忽視了其中的風險管理問題。其實,每個企業在人事管理中都可能遇到風險,如招聘失敗、新政策引起員工不滿、技術骨干突然離職等等,這些事件會影響公司的正常運轉,甚至會對公司造成致命的打擊。如何防范這些風險的發生,是我們應該研究的問題。特別是高新技術企業,由于對人的依賴更大,所以更需要重視人力資源管理中的風險管理。
一 項目管理過程
一個軟件項目的管理過程包括以下幾個方面的內容:
1 啟動一個軟件項目
軟件人員和用戶是在系統工程階段確定項目的目標和范圍。目標標明了軟件項目的目的但不涉及如何去達到這些目的。范圍標明了軟件要實現的基本功能,并盡量以定量的方式界定這些功能。
2 度量
進行度量工作,是為了幫助軟件人員了解產品開發的技術過程和產品。度量的作用是為了有效地定量地進行管理。度量的目的是為了把握軟件工程過程的實際情況和它所產生的產品質量。
3 估算
在軟件項目管理過程中一個關鍵的活動是制定項目計劃。在做計劃時,必須就需要的人力、項目持續時間、成本作出估算?,F在有許多用于軟件開發的估算技術,基本的步驟是:事先建立軟件的工作范圍;以軟件度量為基礎作出估算;把項目分解成科單獨進行估算的小塊。管理人員可使用各種估算技術 。
4 風險分析
每當開始一個新的軟件項目時,總是存在著某些不確定性。如是否能準確地理解用戶的要求?項目的功能能否實現?是否存在目前還未發現的技術難題?等等。風險分析對于軟件項目管理是決定性的。
5 進度安排
每一個軟件項目都要求制定一個進度安排,但不是所有的進度都得一樣安排。軟件項目的進度安排與任何一個工程項目的進度安排沒有實質上的不同。首先識別一組項目任務,再建立任務之間的相互關聯,然后估算各個任務的工作量,分配人力和其他資源,制定進度時序。
6 追蹤和控制
一旦建立了開發進度安排,就可以開始著手追蹤和控制活動。由項目管理人員負責追蹤在進度中標明的每一個任務。如果任務實際完成日期滯后于進度安排,則管理人員可以使用一種自動的項目進度安排工具來確定在項目中間里程碑上進度誤期所造成的影響。
二 軟件項目的組織與計劃
1 軟件項目管理的特點
軟件產品與其他任何產業的產品不同,它是無形的,完全沒有物理屬性,但它確實是把思想、概念、算法、流程、組織、效率、優化等融合在一起了。因此對軟件項目進行管理,涉及到系統工程學、統計學、心理學、社會學以及法律等方面的問題。需要用到多方面的綜合知識,僅靠技術或科研項目的效率很難得到較好的解決。此外,管理技術的基礎是實踐,為取得管理技術的成果必須反復實踐。很顯然,管理能夠帶來效率,能夠贏得時間。在技術迅速發展的今天,必須認真對待技術管理問題??傊?軟件項目的組織涉及到軟件項目研制中的計劃制定、進度估計、資源使用、人員配備、組織機構和管理方法等軟件管理的許多問題。
2 制定計劃
軟件開發項目的計劃涉及到實施項目的各個環節,帶有全局的性質。計劃的合理性和準確性往往關系著項目的成敗。計劃應力求完備,要考慮到一些未知因素和不確定因素,考慮到可能的修改。計劃應力求準確,盡可能提高所依據數據的可靠程度。
三 軟件過程成熟度
多年來軟件開發項目存在著不能如期完成,軟件質量不能令客戶滿意或軟件開發的開銷超出預算等,這些都是軟件開發機構遇到的難題。這一現象促使人們進一步考察軟件過程,從而發現,關鍵問題在于軟件過程的管理不盡人意。在無規則和混亂的管理條件下,先進的技術和工具并不能發揮應有的作用。改進軟件過程的管理是解決上述難題的突破口。
對于不同的軟件開發機構,在組織人員完成軟件項目中所依據的管理策略有很大差別,因而軟件項目所遵循的軟件過程也有很大差別。在此,可用軟件機構的成熟度加以區別。
成熟的軟件機構具有的特點是:建立了機構級的軟件開發和維護過程;軟件過程必要時可做改進;軟件產品的質量和客戶對軟件產品的滿意程度是由負責質量保證的經理負責監控;項目進度和預算是根據以往項目取得的實踐經驗確定因而比較符合實際情況。
四 小結
為使軟件項目開發獲得成功,必須對軟件開發項目的工作范圍、可能遇到的風險、需要的資源、要實現的任務、經歷的過程、花費的成本以及進度安排等做到了如指掌,而軟件項目管理可以提供這些信息。