當前位置:首頁 » 軟體百科 » 為什麼對軟體進行工作分解

為什麼對軟體進行工作分解

發布時間: 2022-08-17 01:48:10

Ⅰ 相關的軟體工程國家標准把軟體生存周期劃分為8個階段,是那8個階段

軟體工程
軟體工程一直以來都缺乏一個統一的定義,很多學者、組織機構都分別給出了自己的定義:

Boehm:運用現代科學技術知識來設計並構造計算機程序及為開發、運行和維護這些程序所必需的相關文件資料。

IEEE:軟體工程是開發、運行、維護和修復軟體的系統方法。

Fritz Bauer:建立並使用完善的工程化原則,以較經濟的手段獲得能在實際機器上有效運行的可靠軟體的一系列方法。

軟體工程(SoftWare Engineering)的框架可概括為:目標、過程和原則。

(1)軟體工程目標:生產具有正確性、可用性以及開銷合宜的產品。正確性指軟體產品達到預期功能的程度。可用性指軟體基本結構、實現及文檔為用戶可用的程度。開銷合宜是指軟體開發、運行的整個開銷滿足用戶要求的程度。這些目標的實現不論在理論上還是在實踐中均存在很多待解決的問題,它們形成了對過程、過程模型及工程方法選取的約束。

(2)軟體工程過程:生產一個最終能滿足需求且達到工程目標的軟體產品所需要的步驟。軟體工程過程主要包括開發過程、運作過程、維護過程。它們覆蓋了需求、設計、實現、確認以及維護等活動。需求活動包括問題分析和需求分析。問題分析獲取需求定義,又稱軟體需求規約。需求分析生成功能規約。設計活動一般包括概要設計和詳細設計。概要設計建立整個軟體系統結構,包括子系統、模塊以及相關層次的說明、每一模塊的介面定義。詳細設計產生程序員可用的模塊說明,包括每一模塊中數據結構說明及加工描述。實現活動把設計結果轉換為可執行的程序代碼。確認活動貫穿於整個開發過程,實現完成後的確認,保證最終產品滿足用戶的要求。維護活動包括使用過程中的擴充、修改與完善。伴隨以上過程,還有管理過程、支持過程、培訓過程等。

(3)軟體工程的原則是指圍繞工程設計、工程支持以及工程管理在軟體開發過程中必須遵循的原則。

軟體工程必須遵循什麼原則

圍繞工程設計、工程支持以及工程管理已提出了以下四條基本原則:

(1)選取適宜的開發模型

該原則與系統設計有關。在系統設計中,軟體需求、硬體需求以及其它因素間是相互制約和影響的,經常需要權衡。因此,必需認識需求定義的易變性,採用適當的開發模型,保證軟體產品滿足用戶的要求。

(2)採用合適的設計方法

在軟體設計中,通常需要考慮軟體的模塊化、抽象與信息隱蔽、局部化、一致性以及適應性等特徵。合適的設計方法有助於這些特徵的實現,以達到軟體工程的目標。

(3)提供高質量的工程支撐

工欲善其事,必先利其器。在軟體工程中,軟體工具與環境對軟體過程的支持頗為重要。軟體工程項目的質量與開銷直接取決於對軟體工程所提供的支撐質量和效用。

(4)重視軟體工程的管理

軟體工程的管理直接影響可用資源的有效利用,生產滿足目標的軟體產品以及提高軟體組織的生產能力等問題。因此,僅當軟體過程予以有效管理時,才能實現有效的軟體工程。

軟體工程是指導計算機軟體開發和維護的工程學科。

採用工程的概念、原理、 技術和方法來開發與維護軟體,把經過時間考驗而證明正確的管理技術和當前能夠 得到的最好的技術方法結合起來,這就是軟體工程。

軟體工程強調使用生存周期方法學和各種結構分析及結構設計技術。它們是

在七十年代為了對付應用軟體日益增長的復雜程度、漫長的開發周期以及用戶對

軟體產品經常不滿意的狀況而發展起來的。人類解決復雜問題時普遍採用的一個策

略就是「各個擊破」,也就是對問題進行分解然後再分別解決各個子問題的策略

。軟體工程採用的生存周期方法學就是從時間角度對軟體開發和維護的復雜問題

進行分解,把軟體生存的漫長周期依次劃分為若干個階段,每個階段有相對獨立

的任務,然後逐步完成每個階段的任務。採用軟體工程方法論開發軟體的時候,

從對任務的抽象邏輯分析開始,一個階段一個階段地進行開發。前一個階段任務

的完成是開始進行後一個階段工作的前提和基礎,而後一階段任務的完成通常是

使前一階段提出的解法更進一步具體化,加進了更多的物理細節。每一個階段的開

始和結束都有嚴格標准,對於任何兩個相鄰的階段而言,前一階段的結束標准就

是後一階段的開始標准。在每一個階段結束之前都必須進行正式嚴格的技術審查

和管理復審,從技術和管理兩方面對這個階段的開發成果進行檢查,通過之後這

個階段才算結束;如果檢查通不過,則必須進行必要的返工,並且返工後還要再

經過審查。審查的一條主要標准就是每個階段都應該交出「最新式的」(即和所

開發的軟體完全一致的)高質量的文檔資料,從而保證在軟體開發工程結束時有

一個完整准確的軟體配置交付使用。文檔是通信的工具,它們清楚准確地說明了

到這個時候為止,關於該項工程已經知道了什麼,同時確立了下一步工作的基礎

。此外,文檔也起備忘錄的作用,如果文檔不完整,那麼一定是某些工作忘記做

了,在進入生存周期的下一階段之前,必須補足這些遺漏的細節。在完成生存周

期每個階段的任務時,應該採用適合該階段任務特點的系統化的技術方法——結

構分析或結構設計技術。

把軟體生存周期劃分成若干個階段,每個階段的任務相對獨立,而且比較簡

單,便於不同人員分工協作,從而降低了整個軟體開發工程的困難程度;在軟體

生存周期的每個階段都採用科學的管理技術和良好的技術方法,而且在每個階段

結束之前都從技術和管理兩個角度進行嚴格的審查,合格之後才開始下一階段的

工作,這就使軟體開發工程的全過程以一種有條不紊的方式進行,保證了軟體的

質量,特別是提高了軟體的可維護性。總之,採用軟體工程方法論可以大大提高

軟體開發的成功率,軟體開發的生產率也能明顯提高。

目前劃分軟體生存周期階段的方法有許多種,軟體規模、種類、開發方式、

開發環境以及開發時使用的方法論都影響軟體生存周期階段的劃分。在劃分軟體

生存周期的階段時應該遵循的一條基本原則就是使各階段的任務彼此間盡可能相

對獨立,同一階段各項任務的性質盡可能相同,從而降低每個階段任務的復雜程

度,簡化不同階段之間的聯系,有利於軟體開發工程的組織管理。一般說來,軟

件生存周期由軟體定義、軟體開發和軟體維護三個時期組成,每個時期又進一步

劃分成若干個階段。下面的論述主要針對應用軟體,對系統軟體也基本適用。

軟體定義時期的任務是確定軟體開發工程必須完成的總目標;確定工程的可行

性,導出實現工程目標應該採用的策略及系統必須完成的功能;估計完成該項工程

需要的資源和成本,並且制定工程進度表。這個時期的工作通常又稱為系統分析

,由系統分析員負責完成。軟體定義時期通常進一步劃分成三個階段,即問題定

義、可行性研究和需求分析。

開發時期具體設計和實現在前一個時期定義的軟體,它通常由下述四個階段組

成:總體設計,詳細設計,編碼和單元測試,綜合測試。

維護時期的主要任務是使軟體持久地滿足用戶的需要。具體地說,當軟體在

使用過程中發現錯誤時應該加以改正;當環境改變時應該修改軟體以適應新的環境

;當用戶有新要求時應該及時改進軟體滿足用戶的新需要。通常對維護時期不再

進一步劃分階段,但是每一次維護活動本質上都是一次壓縮和簡化了的定義和開

發過程。

下面扼要介紹軟體生存周期每個階段的基本任務和結束標准。

1問題定義

問題定義階段必須回答的關鍵問題:「要解決的問題是什麼?」如果不知道

問題是什麼就試圖解決這個問題,顯然是盲目的,只會白白浪費時間和金錢,最

終得出的結果很可能是毫無意義的。盡管確切地定義問題的必要性是十分明顯的

,但是在實踐中它卻可能是最容易被忽視的一個步驟。

通過問題定義階段的工作,系統分析員應該提出關於問題性質、工程目標和

規模的書面報告。通過對系統的實際用戶和使用部門負責人的訪問調查,分析員

扼要地寫出他對問題的理解,並在用戶和使用部門負責人的會議上認真討論這份

書面報告,澄清含糊不精的地方,改正理解不正確的地方,最後得出一份雙方都

滿意的文檔。

問題定義階段是軟體生存周期中最簡短的階段,一般只需要一天甚至更少的

時間。

2可行性研究

這個階段要回答的關鍵問題:「對於上一個階段所確定的問題有行得通的解

決辦法嗎?」為了回答這個問題,系統分析員需要進行一次大大壓縮和簡化了的

系統分析和設計的過程,也就是在較抽象的高層次上進行的分析和設計的過程。

可行性研究應該比較簡短,這個階段的任務不是具體解決問題,而是研究問題的范

圍,探索這個問題是否值得去解,是否有可行的解決辦法。

在問題定義階段提出的對工程目標和規模的報告通常比較含糊。可行性研究

階段應該導出系統的高層邏輯模型(通常用數據流圖表示),並且在此基礎上更

准確、更具體地確定工程規模和目標。然後分析員更准確地估計系統的成本和效

益,對建議的系統進行仔細的成本/效益分析是這個階段的主要任務之一。

可行性研究的結果是使用部門負責人做出是否繼續進行這項工程的決定的

重要依據,一般說來,只有投資可能取得較大效益的那些工程項目才值得繼續進

行下去。可行性研究以後的那些階段將需要投入要多的人力物力。及時中止不值

得投資的工程項目,可以避免更大的浪費。

3需求分析

這個階段的任務仍然不是具體地解決問題,而是准確地確定「為了解決這個問題,

目標系統必須做什麼」,主要是確定目標系統必須具備哪些功能。

用戶了解他們所面對的問題,知道必須做什麼,但是通常不能完整准確地表

達出他們的要求,更不知道怎樣利用計算機解決他們的問題;軟體開發人員知道

怎樣使用軟體實現人們的要求,但是對特定用戶的具體要求並不完全清楚。因此系統

分析員在需求分析階段必須和用戶密切配合,充分交流信息,以得出經過用戶確

認的系統邏輯模型。通常用數據流圖、數據字典和簡要的演算法描述表示系統的邏

輯模型。

在需求分析階段確定的系統邏輯模型是以後設計和實現目標系統的基礎,因

此必須准確完整地體現用戶的要求。系統分析員通常都是計算機軟體專家,技術

專家一般都喜歡很快著手進行具體設計,然而,一旦分析員開始談論程序設計的

細節,就會脫離用戶,使他們不能繼續提出他們的要求和建議。較件工程使用的結

構分析設計的方法為每個階段都規定了特定的結束標准,需求分析階段必須提供完

整准確的系統邏輯模型,經過用戶確認之後才能進入下一個階段,這就可以有

效地防止和克服急於著手進行具體設計的傾向。

4總體設計

這個階段必須回答的關鍵問題是:「概括地說,應該如何解決這個問題?」

首先,應該考慮幾種可能的解決方案。列如,目標系統的一些主要功能是用

計算機自動完成還是用人工完成;如果使用計算機,那麼是使用批處理方式還是

人機交互方式;信息存儲使用傳統的文件系統還是資料庫……。通常至少應該考慮

下述幾類可能的方案:

低成本的解決方案。系統只能完成最必要的工作,不能多做一點額處的工

作。

中等成本的解決方案。這樣的系統不僅能夠很好地完成預定的任務,使用

起來很方便,而且可能還具有用戶沒有具體指定的某些功能和特點。雖然用戶沒

有提出這些具體要求,但是系統分析員根據自己的知識和經驗斷定,這些附加的

能力在實踐中將證明是很有價值的。

高成本的「十全十美」的系統。這樣的系統具有用戶可能希望有的所有功

能和特點。

系統分析員應該使用系統流程圖或其他工具描述每種可能的系統,估計每種

方案的成本和效益,還應該在充分權衡各種方案的利弊的∩希萍鮃桓黿蝦?nbsp;

的系統(最佳方案),並且制定實現所推薦的系統的詳細計劃。如果用戶接受分

析員推薦的系統,則可以著手完成本階段的另一項主要工作。

上面的工作確定了解決問題的策略以及目標系統需要哪些程序,但是,怎樣設

計這些程序呢?結構設計的一條基本原理就是程序應該模塊化,也就是一個大程

序應該由許多規模適中的模塊按合理的層次結構組織而成。總體設計階段的第二

項主要任務就是設計軟體的結構,也就是確定程序由哪些模塊組成以及模塊間的

關系。通常用層次圖或結構圖描繪軟體的結構。

5詳細設計

總體設計階段以比較抽象概括的方式提出了解決問題的辦法。詳細設計階段

的任務就是把解法具體化,也就是回答下面這個關鍵問題:「應該怎樣具體地實現這

個系統呢?」

這個階段的任務還不是編寫程序,而是設計出程序的詳細規格說明。這種規

格說明的作用很類似於其他工程領域中工程師經常使用的工程藍圖,它們應該

包含必要的細節,程序員可以根據它們寫出實際的程序代碼。

通常用HIPO圖(層次圖加輸入/處理/輸出圖)或PDL語言(過程設計語言

)描述詳細設計的結果。

6編碼和單元測試

這個階段的關鍵任務是寫出正確的容易理解、容易維護的程序模塊。

程序員應該根據目標系統的性質和實際環境,選取一種適當的高級程序設計

語言(必要時用匯編語言),把說細設計的結果翻譯成用選定的語言書寫的程序

,並且仔細測試編寫出的每一個模塊。

7綜合測試

這個階段的關鍵任務是通過各種類型的測試(及相應的調試)使軟體達到預定

的要求。

最基本的測試是集成測試和驗收測試。所謂集成測試是根據設計的軟體結構

,把經過單元測試檢驗的模塊按某種選定的策略裝配起來,在裝配過程中對程

序進行必要的測試。所謂驗收測試則是按照規格說明書的規定(通常在需求分析

階段確定),由用戶(或在用戶積極參加下)對目標系統進行驗收。

必要時還可以再通過現場測試或平行運行等方法對目標系統進一步測試檢驗。

為了使用戶能夠積極參加驗收測試,並且在系統投入生產性運行以後能夠正確

有效地使用這個系統,通常需要以正式的或非正式的方式對用戶進行培訓。

通過對軟體測試結果的分析可以預測軟體的可靠性;反之,根據對軟體可靠

性的要求也可以決定測試和調試過程什麼時候可以結束。

應該用正式的文檔資料把測試計劃、詳細測試方案以及實際測試結果保存下

來,做為軟體配置的一個組成成分。

8軟體維護

維護階段的關鍵任務是,通過各種必要的維護活動使系統持久地滿足用戶的

需要。

通常有四類維護活動:改正性維護,也就是診斷和改正在使用過程中發現的

軟體錯誤;適應性維護,即修改軟體以適應環境的變化;完善性維護,

即根據用戶的要求改進或擴充軟體使它更完善;預防性維護,即修改軟體為將來

的維護活動預先做准備。

雖然沒有把維護階段進一步劃分成更小的階段,但是實際上每一項維護活動

都應該經過提出維護要求(或報告問題),分析維護要求,提出維護要求,提出

維護方案,審批維護方案,確定維護計劃,修改軟體設計,修改程序,測試程序,

復查驗收等一系列步驟,因此實質上是經歷了一次壓縮和簡化了的軟體定義和開

發的全過程。

都應該經過提出維護要求(或報告問題),分析維護要求,提出維護要求,提出

維護方案,審批維護方案,確定維護計劃,修改軟體設計,修改程序,測試程序,
復查驗收等一系列步驟,因此實質上是經歷了一次壓縮和簡化了的軟體定義和開
發的全過程。
參考資料:"
還不錯,希望你採納。

Ⅱ 在項目管理過程中,為什麼要進行工作分解

工作分解是項目管理的基礎工作,可以滿足項目管理過程的各種需要。
①工作分解可以使項目根據各個子任務確定項目管理的組織機構並人員安排;
②明確人員責任;
③進行項目工期計劃、成本計劃、質量計劃等;
④為項目招標、發包提供依據;⑤更好地實施項目風險控制和合同控制。

Ⅲ 為什麼要進行軟體需求分析

軟體需求分析免費下載

鏈接:https://pan..com/s/1qNBwqvbRS5ziBSIeanLQAQ

提取碼:qoyw

需求分析也稱為軟體需求分析、系統需求分析或需求分析工程等,是開發人員經過深入細致的調研和分析,准確理解用戶和項目的功能、性能、可靠性等具體要求,將用戶非形式的需求表述轉化為完整的需求定義,從而確定系統必須做什麼的過程。

Ⅳ 在軟體開發中項目管理進行任務分解的基本步驟是

進行工作分解的標准應該統一,不能有雙重標准。選擇一種項目分解標准之後,在分解過程中應該統一使用此標准,避免因使用不同標准而導致的混亂。可以採用生存期為標准、產品的功能為標准或者以項目的組織單位為標准。進行任務分解的基本步驟如下(1)確認並分解項目的主要組成要素。通常,項目的主要要素是這個項目的工作細目。以項目目標為基礎,作為第一級的最整體的要素。項目的組成要素應該用有形的、可證實的結果來描述,目的是使績效易檢測。(2)確定分解標准,按照項目實施管理的方法分解,而且分解的時候標准要統一。分解要素是根據項目的實際管理而定義的。不同的要素有不同的分解層次。例如:項目生存期的階段可以當作第一層次的劃分,把第一層次中的項目細目在第二階段繼續進行劃分。(3)確認分解的詳細程度以及作為費用和時間估計的標准,明確責任。工作細目的分解如果在很久的將來才能完成,就不存在確定性。(4)確定項目交付成果。根據項目規范的衡量標准檢測交付結果。(5)驗證分解正確性。驗證分解正確後,建立一套編號系統。

Ⅳ 軟體開發有哪幾個階段,每個階段的任務是什麼

軟體開發一般分為五個階段:
1.問題的定義及規劃
此階段是軟體開發與需求放共同討論,主要確定軟體的開發目標及其可行性。
2.需求分析
在確定軟體開發可行性的情況下,對軟體需要實現的各個功能進行詳細需求分析。需求分析階段是一個很重要的階段,這一階段做的好,將為整個軟體項目的開發打下良好的基礎。「唯一不變的是變化本身」,同樣軟體需求也是在軟體愛你開發過程中不斷變化和深入的,因此,我們必須定製需求變更計劃來應付這種變化,以保護整個項目的正常進行。
3.軟體設計
此階段中偶要根據需求分析的結果,對整個軟體系統進行設計,如系統框架設計、資料庫設計等。軟體設計一般分為總體設計和詳細設計。還的軟體設計將為軟體程序編寫打下良好的基礎。
4.程序編碼
此階段是將軟體設計的結果轉化為計算機可運行的程序代碼。在程序編碼中必定要制定統一、符合標準的編寫規范。以保證程序的可讀性、易維護性。提高程序的運行效率。
5.軟體測試
在軟體設計完成之後要進行嚴密的測試,一發現軟體在整個軟體設計過程中存在的問題並加以糾正。整個測試階段分為單元測試、組裝測試、系統測試三個階段進行。測試方法主要有白盒測試和黑盒測試。

以上就是軟體開發過程的五個階段,但是有的時候在軟體愛你開發過程中並不是必須按照這個過程進行的。

Ⅵ 什麼是工作分解結構

工作分解結構(簡稱WBS)跟因數分解是一個原理,就是把一個項目,按一定的原則分解,項目分解成任務,任務再分解成一項項工作,再把一項項工作分配到每個人的日常活動中,直到分解不下去為止。即:項目→任務→工作→日常活動。工作分解結構以可交付成果為導向,對項目要素進行的分組,它歸納和定義了項目的整個工作范圍,每下降一層代表對項目工作的更詳細定義。WBS總是處於計劃過程的中心,也是制定進度計劃、資源需求、成本預算、風險管理計劃和采購計劃等的重要基礎。

目錄

1基本定義

2基本內容

▪ 分解原則

▪ 創建要求

▪ 分解方式

3主要用途

4結構種類

▪ 綱要結構

▪ 項目結構

▪ 合同結構

5工作包

6使用

▪ 實踐經驗

▪ 分解作用

▪ 分解優點

7分解結構

1基本定義編輯

作分解結構(WorkBreakdownStructureWBS):以可交付成果為導向對項目要素進行的分組,它歸納和定義了項目的整個工作范圍每下降
一層代表對項目工作的更詳細定義。無論在項目管理實踐中,還是在PMP考試中,工作分解結構(WBS)都是最重要的內容。WBS總是處於計劃過程的中心,
也是制定進度計劃、資源需求、成本預算、風險管理計劃和采購計劃等的重要基礎。WBS同時也是控制項目變更的重要基礎。項目范圍是由WBS定義的,所以WBS也是一個項目的綜合工具。
2基本內容編輯
分解原則
1、將主體目標逐步細化分解,最底層的日常活動可直接分派到個人去完成;

2、每個任務原則上要求分解到不能再細分為止;

3、日常活動要對應到人、時間和資金投入。

二、任務分解的方法

1、採用樹狀結構進行分解;

2、以團隊為中心,自上而下與自下而上的充分溝通,一對一個別交流與討論,分解單項工作。

三、任務分解的標准

1、分解後的活動結構清晰,從樹根到樹葉,一目瞭然,盡量避免盤根錯節;

2、邏輯上形成一個大的活動,集成了所有的關鍵因素包含臨時的里程碑和監控點,所有活動全部定義清楚,要細化到人、時間和資金投入。

在我們日常管理項目時,要學會分解任務,只有將任務分解得足夠細,足夠明了,才能統籌全局,安排人力和財力資源,把握項目的進度。
創建要求
創建WBS時需要滿足以下幾點基本要求:

1、某項任務應該在WBS中的一個地方且只應該在WBS中的一個地方出現。

2、WBS中某項任務的內容是其下所有WBS項的總和。

3、一個WBS項只能由一個人負責,即使許多人都可能在其上工作,也只能由一個人負責,其他人只能是參與者。

4、WBS必須與實際工作中的執行方式一致。

5、應讓項目團隊成員積極參與創建WBS,以確保WBS的一致性。

6、每個WBS項都必須文檔化,以確保准確理解已包括和未包括的工作范圍。

7、WBS必須在根據范圍說明書正常地維護項目工作內容的同時,也能適應無法避免的變更。

五、表示方式

WBS可以由樹形的層次結構圖或者行首縮進的表格表示。

在實際應用中,表格形式的WBS應用比較普遍,特別是在項目管理軟體中。

工作分解結構(分級的樹型結構)

樹型結構圖的WBS層次清晰,非常直觀。結構性很強,但不是

工作分解結構
很容易修改,對於大的、復雜的項目也很難表示出項目的全景。由於主觀性,一般在小的,適中的項目中的較多。
分解方式
WBS的分解可以採用多種方式進行,包括:

1、按產品的物理結構分解。

2、按產品或項目的功能分解。

3、按照實施過程分解。

4、按照項目的地域分布分解。

5、按照項目的各個目標分解。

6、按部門分解。

7、按職能分解。
3主要用途編輯
WBS具有4個主要用途:1、WBS是一個描述思路的規劃和設計工具。它幫助項目經理和項目團隊確定和有效地管理項目的工作。

2、WBS是一個清晰地表示各項目工作之間的相互聯系的結構設計工具。

3、WBS是一個展現項目全貌,詳

相關書籍
細說明為完成項目所必須完成的各項工作的計劃工具。

4、WBS定義了里程碑事件,可以向高級管理層和客戶報告項目完成情況,作為項目狀況的報告工具。

WBS是面向項目可交付成果的成組的項目元素,這些元素定義和組織該項目的總的工作范圍,未在WBS中包括的工作就不屬於該項目的范圍。WBS每下降一層就代表對項目工作更加詳細的定義和描述。項目可交付成果之所以應在項目范圍定義過程中進一步被分解為WBS,是因為較好的工作分解可以:

防止遺漏項目的可交付成果。幫助項目經理關注項目目標和澄清職責。建立可視化的項目可交付成果,以便估算工作量和分配工作。幫助改進時間、成本和資源估計的准確度。幫助項目團隊的建立和獲得項目人員的承諾。為績效測量和項目控制定義一個基準。輔助溝通清晰的工作責任。為其他項目計劃的制定建立框架。幫助分析項目的最初風險。
4結構種類編輯
綱要結構
(SWBS:SummaryWBS)綱要性工作分解結構是指導性的、戰略性的工作分解結構。該分解結構只

工作分解結構
有上面的三級:

第一級:整個系統即防務裝備項目,如:飛機系統、電子系統、導彈系統、軍械繫統、空間系統和地面車輛系統。

第二級:防務裝備項目的重大單元,如航空飛行器、艦船、系統實驗和資料等。

第三級:從屬於第二級的單元,如機體、推進裝置、資料、服務和技術出版物等。
項目結構
(PSWBS,ProjectSWBS)

項目綱要性工作分解結構是針對某一特定項目,對綱要性工作分解結構進行裁剪得到的工作分解結構。
合同結構
(CWBS,ContractWBS)

合同工作分解結構是適用於特定合同或采購活動的完整的工作分解結構。CWBS概括了項目的任務,確定了這些任務與項目的組織機構、技術狀態的關系,為項目的性能、技術目標、進度和費用之間的聯系,確定了邏輯上的約束框架。合同工作分解結構應與合同規定的層次相一致。合同應指出在合同的哪一級別上進行費用累計。承包商為控制其費用而用到的合同WBS的擴延級,應具有費用累計的追溯能力。

而在其他某些具體的應用領域,常見的其他分解結構主要包括:

A、合同工作分解結構(CWBS)——它主要用於定義賣方提供給買方報告的層次,通常不如賣方管理工作使用的工作分解結構(WBS)詳細。

B、組織分解結構(OBS)——它用於顯示各個工作元素被分配到哪個組織單元。

C、資源分解結構(RBS)——它是組織分解結構的一種變異,通常在將工作元素分配到個人時使用。

D、材料清單(BOM)——表述了用於製造一個加工產品所需的實際部件、組件和構件的分級層次。

E、項目分解結構(PBS)——它基本上與工作分解結構(WBS)的概念相同。
5工作包編輯
WBS的最低層次的項目可交付成果稱為工作包(WorkPackage),具有以下特點:1、工作包可以分配給另一位項目經理進行計劃和執行。

工作分解結構
2、工作包可以通過子項目的方式進一步分解為子項目的WBS。

3、工作包可以在制定項目進度計劃時,進一步分解為活動。

4、工作包可以由惟一的一個部門或承包商負責。用於在組織之外分包時,稱為委託包(CommitmentPackage)。

5、工作包的定義應考慮80小時法則(80-HourRule)或兩周法則(TwoWeekRule),即任何工作
包的完成時間應當不超過80小時。在每個80小時或少於80小時結束時,只報告該工作包是否完成。通過這種定期檢查的方法,可以控制項目的變化。[編輯]
創建WBS的過程

創建WBS的過程非常重要,因為在項目分解過程中,項目經理、項目成員和所有參與項目的職能經理都必須考慮該項目的所有方面。制定WBS的過程是:

1、得到范圍說明書(ScopeStatement)或工作說明書(StatementofWok,承包子項目時)。

2、召集有關人員,集體討論所有主要項目工作,確定項目工作分解的方式。

3、分解項目工作。如果有現成的模板,應該盡量利用。

4、畫出WBS的層次結構圖。WBS較高層次上的一些工作可以定義為子項目或子生命周期階段。

5、將主要項目可交付成果細分為更小的、易於管理的組分或工作包。工作包必須詳細到可以對該工作包進行估算(成本和歷時)、安排進度、做出預算、分配負責人員或組織單位。

驗證上述分解的正確性。如果發現較低層次的項沒有必要,則修改組成成分。如果有必要,建立一個編號系統。隨著其他計劃活動的進行,不斷地對WBS更新或修正,直到覆蓋所有工作。
6使用編輯
對WBS需要建立WBS詞典(WBSDictionary)來描述各個工作部分。WBS詞典通常包括工作包描述、進度日期、成本預算和人員分配等信息。對於每個工作包,應盡可能地包括有關工作包的必要的、盡量多的信息。當WBS與OBS綜合使用時,要建立賬目編碼(CodeofAccount)。賬目編碼是用於惟一確定項目工作分解結構每一個單元的編碼系統。成本和資源被分配到這一編碼結構中。
實踐經驗
最多使用20個層次,多於20層是過度的。對於一些較小的項目4-6層一般就足夠了。

WBS中的支路沒有必要全都分解到同一層次,即不必把結構

工作分解結構
強製做成對稱的。在任意支路,當達到一個層次時,可以作出所要求准確性的估算,就可以停止了。
分解作用
1.明確和准確說明項目的范圍;

2.為各獨立單元分派人員,規定這些人員的相應職責;

3.針對各獨立單元,進行時間、費用和資源需要量的估算,提高時間、費用和資源估算的准確度;

4.為計劃、成本、進度計劃、質量、安全和費用控制奠定共同基礎,確定項目進度測量和控制的基準;

5.將項目工作與項目的財務帳目聯系起來;

6.便於劃分和分派責任;

7.確定工作內容和工作順序;

8.估算項目整體和全過程的費用。
分解優點
(一)能夠為工作定義提供更有效的控制。

一般來說,良好的項目管理具有下列幾個原則:

1.通過設施的結構化分解來進行管理;

2.關注結果:實現什麼,而不是怎樣實現;

3.通過工作分解結構,技術和人員、系統和組織之間可以平衡結果;

4.在項目涉及的所有部門之間,通過定義角色、責任和工作關系來建立一個契約;

5.採用一個簡明的報告結構。

使用工作分解結構可以滿足有效項目管理的五個原則中的前三個,而避免了計劃的誤區——即只在一個詳細的層次上定義工作。以一個結構化的方式來定義工作可以保證得到更好的結果。通過可交付成果來進行工作定義,在項目向前進行時,只有那些對生產設施有必要的工作才做,因此計劃也變得更加固定。在環境不斷變化的情況下,項目所需的工作可能發生變化,但不管怎麼變化,一定要對最終結果的產生有益。

(二)把工作分配到相應的工作包中(相應的授權)。

WBS中的工作包是自然的,因為WBS的目的是生產產品,在分配責任的同時也賦予每個產品或服務的單獨的部門。如果
工作只是在一個詳細的層次上定義,並匯集成工作包,那麼這個工作包就不是自然的了,項目經理只能每天忙於告訴人們一些技術和方法,而不是讓他們自己獨立去
完成工作。

(三)便於找到控制的最佳層次。

人們在較低層次上進行控制可能意味著在控制上所花的時間要比完成工作所需的時間更多,而在較高層次上進行控制則意味著有些重要情況在我們不經意時會溜走。通過WBS,我們可以找到控制的最佳層次。一般情況下,控制活動的長短應該與控制會議召開的頻度相一致。

(四)有助於限定風險。

在以上討論時我們都限定計劃和控制的范圍都不包含較高的風險。實際上WBS的分解層次不一定是固定不變的,WBS的最低層次可根據風險的水平來確定。在風險較低的項目中,工作分解的最低層次可以是工作包,而在一個風險較高的項目中,我們可以繼續到項目的一個最低層次上。

項目經理在規劃和控制其工程項目的過程中,工作分解結構是非常有用的工具。編制完整的WBS確定了工程項目的總目標,並確定了各項單獨的工作(部分)與整個項目(整體)的關系。

(五)是信息溝通的基礎。

在現代大型復雜項目中,一般要涉及大量的資源,涉及許多公司、供應商、承包

工作分解結構

等等,有時還會有政府部門的高技術設施或資金投入,因而要求的綜合信息和信息溝通的數量往往相當大。這些大項目涉及巨資並歷時若干年,因此項目開始進行時
設想的項目環境會隨著項目的進展而發生很大的變化,即我們已經多次提到的項目早期階段的不確定性[pp1]。這就要求所有的有關集團要有一個共同的信息基
礎,一種各有關集團或用戶從項目一開始到最後完成都能用來溝通信息的工具。這些集團包括:業主、供應商、承包人、項目管理人員、設計人員以及政府有關部門等等。而一個設計恰當的工作分解結構將能夠使得這些集團或用戶有一個較精確的信息溝通連接器,成為一種相互交流的共同基礎。利用工作分解結構作為基礎來編制預算、進度和描述項目的其它方面,能夠使所有的與項目有關的人員或集團都明了為完成項目所需要做的各項工作以及項目的進展情況等。

(六)為系統綜合與控制提供了有效手段。典型的項目控制系統包括進度、費用、會計等不同的子系統。這些子系統在某種程度上是相互獨立的,但是各個子系統之間的系統信息轉移是不可缺少的,必須將這些子系統很好地綜合起來,才能夠真正達到項目管理的目的。而工作分解結構的應用可以提供一個這樣的手段。

在WBS的應用中,各個子系統都利用它收集數據,這些系統都是在與WBS有直接聯系的代碼詞典和編碼結構的共同基礎
上來接受信息的。由於WBS代碼的應用使所有進入到系統的信息都是通過一個統一的定義方法作出來的,這樣就能確保所有收集到的數據能夠與同一基準相比較,
並使項目工程師、會計師以及其他項目管理人員都參照有同樣意義的同種信息,這對於項目控制的意義是顯而易見的。

例如:許多項目中的典型問題之一是會計系統和進度控制系統不是採用完全相同的分類或編碼,但是在一個有組織的共同基礎之上對成本和進度作出統一、恰當的解釋、分析和預測對於項目的有效管理是非常重要的。此外,各個子系統之間在WBS基礎上的共同聯系越多,對項目控制就越有益,因為這樣可以減少或消除分析中的系統差異。
7分解結構編輯
WBS將項目的「交付物」自頂向下逐層分解到易於管理的若干元素,以此結構化地組織和定義了項目的工作范圍。 工作細目(WORK ITEM),工作包(WORK PACKAGE)

WBS的制定沒有固定的方法,但一般可以參考以下原則:

◇確保能把完成每個底層工作包的職責明確地賦予一個成員、一組成員或者一個組織單元,同時考慮盡量使一個工作細目容易讓具有相同技能的一類人承擔。

◇根據80小時的原則,工作包的時間跨度不要超過2周時間,否則會給項目控制帶來一些困難;同時控制的粒度不能太細,否則往往會影響項目成員的積極性

◇可以將項目生命周期的各個階段做為第一層,將每個階段的交付物做為第二層。如果有的交付物組成復雜,則將交付物的組成元素放在第三層。

◇分解時要考慮項目管理本身也是工作范圍的一部分,可以單獨做為一個細目。

◇對一些各個階段中都存在的共性工作可以提取出來,例如人員培訓作為獨立的細目

◇確保能夠進行進度和成本估算。

Ⅶ 什麼是軟體設計

軟體設計是從軟體需求規格說明出發,形成軟體的具體設計方案的過程,也就是說在需求分析階段明確軟體是「做什麼」的基礎上,解決軟體「怎麼做」的問題。
結構化設計方將把軟體設計分為概要設計和詳細設計兩個階段。概要設計的主要任務是,通過分析需求規格說明對軟體進行功能分解,確定軟體的總體結構;詳細設計階段確定每個模塊功能所需要的演算法和數據結構,設計出每個模塊的邏輯結構。軟體設計階段結束時的工作成果是軟體設計說明書,它描述軟體系統的組成模塊結、模塊間的調用關系,以及每個模塊的輸入、輸出和詳細的過程描述 。
軟體設計的基本目標是用比較抽象、概括的方式確定目標系統如何完成預定的任務,軟體設計是確定系統的物理模型。軟體設計是開發階段最重要的步驟,是將需求准確地轉化為完整的軟體產品或系統的唯一途徑 。
從技術觀點上看,軟體設計包括軟體結構設計、數據設計、介面設計、過程設計;
(1)結構設計定義軟體系統各主要部件之間的關系;
(2)數據設計將分析時創建的模型轉化為數據結構的定義 ;
(3)介面設計描述軟體內部、軟體和協作系統之間及軟體與人之間如何通信 ;
(4)過程設計則把系統結構部件較換為軟體的過程性描述。

Ⅷ 為什麼要對軟體體系結構進行風險分析風險分析的主要步驟有哪些

當前各個領域數據生成速度逐漸加快,需要處理的數據量急劇膨脹。這些巨大的數據資源蘊藏著潛在的價值,需要對其進行有效的分析和利用。當前數據的特點除了數量龐大之外,數據類型也變得多樣化,其中包括了結構化數據、半結構化數據以及非結構化數據。這些數量龐大、種類繁多的海量數據,給傳統分析工具帶來了巨大的挑戰。當前對數據的分析不再是簡單的生成統計報表,而是利用復雜的分析模型進行深人的分析,傳統分析技術例如關系資料庫技術已經不能滿足其要求。在擴展性上,通過增加或更換內存、CPU、硬碟等設備原件以打一展單個節點的能力的縱向打一展(scaleup)系統遇到了瓶頸;只有通過增加計算節點,連接成大規模集群,進行分布式並行計算和管理的橫向打一展(scaleout)系統才能滿足大數據的分析需求[u。因此傳統工具在擴展性上遇到了障礙,必須尋求可靠的數據存儲和分析技術來分析和利用這些龐大的資源。利用雲計算平台搭建Hadoop計算框架成為當前處理大數據的主要手段。然而由於雲計算和Hadoop應用的特點和自身安全機制薄弱,不可避免地帶來了安全風險。1、大數據應用模式雲計算(CloudComputing)是一種基於Internet的計算,是以並行計算(ParallelComputing)、分布式計算(DistributedComputing)和網格計算(GridCompu-tin助為基礎,融合了網路存儲、虛擬化、負載均衡等技術的新興產物。它將原本需要由個人計算機和私有數據中心執行的任務轉移給具備專業存儲和計算技術的大型計算中心來完成,實現了計算機軟體、硬體等計算資源的充分共享[z}。企業或個人不再需要花費大量的費用在基礎設施的購買上,更不需要花費精力對軟硬體進行安裝、配置和維護,這些都將由雲計算服務商CSP(CloudServiceProvider)提供相應的服務。企業或個人只需按照計時或計量的方式支付租賃的計算資源。雲計算服務商擁有大數據存儲能力和計算資源,被視為外包信息服務的最佳選擇[31因此大數據的應用往往與雲計算相結合。Hadoop是當前最廣為人知的大數據技術實施方案,它是Google雲計算中的Map/Rece}4}和GFS(GoogleFileSystem)的開源實現。Hadoop提供了一種計算框架,其最為核心的技術是HDFS(HadoopDistributedFileSystem)以及MapReee}HDFS提供了高吞吐量的分布式文件系統,而MapReee是大型數據的分布式處理模型。Hadoop為大數據提供了一個可靠的共享存儲和分析系統[5-6}v盡管有一些組織自建集群來運行Hadoop,但是仍有許多組織選擇在租賃硬體所搭建的雲端運行Hadoop或提供Hadoop服務。例如提供在公有或私有雲端運行Hadoop的Cloudera,還有由Amazon提供的稱為ElasticMapReee的雲服務等f}l。因此將雲計算與Hadoop結合處理大數據已成為一種趨勢。2、大數據安全風險分析隨著大數據應用范圍越來越廣,對數據安全的需求也越來越迫切。由於雲計算的特點是將數據外包給雲服務商提供服務,這種服務模式將數據的所有權轉移給了CSP,用戶失去了對物理資源的直接控制[A1。而雲中存儲的大數據通常是以明文的方式存在的,CSP對數據具有底層控制權,惡意的CSP有可能在用戶不知情的情況下竊取用戶數據,而雲計算平台亦可能受到攻擊致使安全機制失效或被非法控制從而導致非授權人讀取數據,給大數據安全帶來了威脅。Hadoop在設計之初並未考慮過安全問題,在Ha-doop1.0.0和ClouderaCDH3版本之後,Hadoop加人了Kerberos的身份認證機制和基於ACL的訪問控制機制[91。即使在安全方面增加了身份認證和訪問控制策略,Hadoop的安全機制仍然非常薄弱,因為Ker-beros的認證機制只應用於客戶機(Clients)、密鑰分發中心(I}eyDistributionCenter,I}DC)、伺服器(Serv-er)之間,只是針對機器級別的安全認證,並未對Ha-doop應用平台本身進行認證[}o}。而基於ACL的訪問控制策略需要通過在啟用ACL之後,對hadoop-policy.xml中的屬性進行配置,其中包括9條屬性,它們限制了用戶與組成員對Hadoop中資源的訪問以及Datanode和Namenode或Jobtracke:和Tasktrackers等節點間的通信,但該機制依賴於管理員對其的配置[川,這種基於傳統的訪問控制列表容易在伺服器端被篡改而不易察覺。而且基於ACL的訪問控制策略粒度過粗,不能在MapRece過程中以細粒度的方式保護用戶隱私欄位。況且針對不同的用戶和不同應用,訪問控制列表需要經常作對應的更改,這樣的操作過於繁瑣且不易維護。因此Hadoop自身的安全機制是不完善的。2.1不同應用模式下CSP及Uers帶來的安全風險雲計算中Hadoop有多種應用模式。在私有雲中搭建Hadoop,即企業自己應用Hadoop,使用該平台的是企業內部各個部門的員工,外部人員無法訪問和使用這些資源。這時的CSP指的是Hadoop的創建和管理者,IaaS級和PaaS級CSP為相同的實體;在公有雲平台應用Hadoop,CSP有2級,IaaS級CSP,提供基礎設施;PaaS級CSP,負責Hadoop的搭建和管理。這時兩級CSP往往是不同的實體。

Ⅸ 什麼是軟體開發工作的五個階段

軟體工程生命周期中軟體開發的五個重要階段

第一階段:需求分析 Requirements Capture

軟體需求分析就是回答做什麼的問題。它是一個對用戶的需求進行去粗取精、去偽存真、正確理解,然後把它用軟體工程開發語言(形式功能規約,即需求規格說明書)表達出來的過程。本階段的基本任務是和用戶一起確定要解決的問題,建立軟體的邏輯模型,編寫需求規格說明書文檔並最終得到用戶的認可。

第二階段:系統分析與設計 System Analysis and Design

系統分析與設計可以分為概要設計和詳細設計兩個階段。實際上軟體設計的主要任務就是將軟體分解成模塊是指能實現某個功能的數據和程序說明、可執行程序的程序單元。

第三階段:系統實現 Implementation

系統實現是指把軟體設計轉換成計算機可以接受的程序,即寫成以某一程序設計語言表示的"源程序清單"。充分了解軟體開發語言、工具的特性和編程風格,有助於開發工具的選擇以及保證軟體產品的開發質量。

第四階段:軟體測試 Testing

軟體測試的目的是以較小的代價發現盡可能多的錯誤。要實現這個目標的關鍵在於設計一套出色的測試用例(測試數據和預期的輸出結果組成了測試用例)。

第五階段:軟體維護 Maintenance

維護是指在已完成對軟體的研製(分析、設計、編碼和測試)工作並交付使用以後,對軟體產品所進行的一些軟體工程的活動。即根據軟體運行的情況,對軟體進行適當修改,以適應新的要求,以及糾正運行中發現的錯誤。

通常一個軟體開發流程包括上面五個階段,在不同的階段對軟體進行不同的操作,直到最後得到客戶想要的軟體,這樣一個軟體開發才算真正的完成,在後期當中,還要對客戶不滿意的地方進行修改。

Ⅹ 如何對正在實施的軟體系統(項目)進行問題分析和評估

轉載,供參考。
軟體開發項目進度控制
一、影響軟體開發項目進度的因素

要有效地進行進度控制,必須對影響進度的因素進行分析,事先或及時採取必要的措施,盡量縮小計劃進度與實際進度的偏差,實現對項目的主動控制。軟體開發項目中影響進度的因素很多,如人為因素、技術因素、資金因素、環境因素等等。在軟體開項目的實施中,人的因素是最重要的因素,技術的因素歸根到底也是人的因素。軟體開發項目進度控制常見問題主要是體現在對一些因素的考慮上。常見的問題有以下幾種情況:

1、80-20原則與過於樂觀的進度控制

80-20原則在軟體開發項目進度控制方面體現在:80%的項目工作可以在20%的時間內完成,而剩餘的20%的項目工作需要80%的時間。這個80%的項目工作不一定是在項目的前期,而可能是分布在項目的各個階段,但是剩餘的20%左右的項目工作大部分是在後期。所以軟體開發在進入編碼階段後會給人一種「進展快速」的感覺,使得項目經理、項目團隊成員、用戶以及高層領導產生了過於樂觀的估計。有些領導看到軟體交付給用戶了,就一塊石頭落地「總算交差了」,同時又可能撤出一些被認為不必要的人力資源。但很多情況下這是為了對付用戶不合理的交付期限要求而採用的不得已的措施。這樣的結果是拖延了後期的工作,同時如果軟體還不成熟的話,會給用戶造成不好的影響。

2、范圍、質量因素對進度的影響

軟體開發項目比其他任何建設項目都會有更經常的變更,大概是因為軟體程序是一種「看不見」又「很容易修改」的東東吧,用戶是想改就改,造成需求的蔓延,項目經理有時還不知如何拒絕,加上要說「我能」的心理因素,一般都會答應修改。這樣集少成多,逐漸影響了項目進度。

如果某項工作在進度上表面上達到目標了,但經檢驗其質量沒有達到要求,則必然要通過返工等手段,增加人力資源的投入,增加時間的投入,實際上是拖延了進度。不管是從橫向或縱向來看,部分任務的質量會影響總體項目的進度,前面的一些任務質量中會影響到後面的一些任務質量。

3、資源、預算變更對進度的影響

資源,最主要的還是人力資源,有時某方面的人員不夠到位,或者在多個項目的情況下某方面的人員中途被抽到其他項目、或身兼多個項目、或在別的項目不能自拔無法投入本項目。還有一個很重要的資源,就是信息資源,如某些國家標准、行業標准,用戶可能提供不了,而是需要去收集或購買,如果不能按時得到,就會影響需求分析、設計或編碼的工作。其他資源,如開發設備或軟體沒有到貨,也會對進度造成影響。

預算其實就是一種資源,它的變更會影響某些資源的變更,從而對進度造成影響。

4、低估了軟體開發項目實現的條件

低估軟體開發項目實現的條件表現在低估技術難度、低估協調復雜度、低估環境因素這樣幾個方面。

首先是低估技術難度。軟體開發項目團隊成員,有時甚至是企業的高級項目主管也經常低估項目技術上的困難。低估技術難度實際上也就是高估人的能力,認為或希望項目會按照已經制定的樂觀項目計劃順利地實施,而實際則不然。軟體開發項目的高技術特點本身說明其實施中會有很多技術的難度,除了需要高水平的技術人員來實施外,還要考慮為解決某些性能問題而進行科研攻關和項目實驗;

其次,低估了協調復雜度,也低估了多個項目團隊參加項目時工作協調上的困難。軟體開發項目團隊成員比較強調個人的智慧、強調個性,這給項目工作協調帶來更多的復雜度。當一個大項目由很多子項目組成時,不僅會增加相互之間充分溝通交流的困難,更會增加項目協調和進度控制上的困難。

另外,企業高級項目主管和項目經理也經常低估環境因素,這些環境因素包括用戶環境、行業環境、組織環境、社會環境、經濟環境。低估這些條件,既有主觀的原因,也會有客觀的原因。對項目環境的了解程度不夠,造成沒有做好充分的准備。

5、項目狀態信息收集的情況

由於項目經理的經驗或素質原因,對項目狀態信息收集的的掌握不足,及時性准確性完整性比較差。另外其它一些原因也會造成這種現象。某些項目團隊成員報喜不報憂,不希望別人知道自己工作的不好的情況,例如軟體程序的編制,可能會先編制一些表面的東西,現有界面,看起來好像完成任務了,實際上只是一個「原型系統」或演示系統。給領導造成比較樂觀的感覺。

如果項目經理或者管理團隊沒有及時地檢查發現這種情況,將對項目的進度造成嚴重的影響。當然,如果出現這種需要時時刻刻都互相提防的氛圍,管理人員就應該從管理的角度,從制度的角度檢討一下,進行改進,讓大家實事求是地進行溝通。溫伯格說:「無論你多麼聰明,離開了信息,對項目進行成功的控制就是無源之水、無本之木。」

6、執行計劃的嚴格程度

沒有把計劃作為項目過程行動的基礎,而是把計劃放在一邊,比較隨意去做。例如對於項目團隊內部溝通或外部溝通,在計劃中要說明清楚人員、周期、方式、方法,不能遺漏,但在實際項目過程中,可能出現溝通沒有按時或沒有完整地達到所有項目干係人的情況。若項目計劃本身有錯誤,執行錯誤的計劃肯定會產生錯誤。如,計劃制訂者在計劃系統框架設計考慮上的錯誤、進度安排上的失誤等。實際的項目實施中,除了這種錯誤之外,還可能因為項目執行上的錯誤,造成項目的麻煩。例如,項目的客戶及其他項目干係人沒有及時為項目中出現的情況採取必要的措施或者所採取的措施的不適合具體的情況、沒有效果或者有副作用等。另外,如果在項目中的某項工作(如某個子系統或模塊、組件)被轉包給第三方開發後,不能進行有效的管理,也會造成進度上的延誤。

7、計劃變更調整的及時性

漸近明細是項目的特點,特別是對於軟體開發項目,並不是一個一成不變的過程。開始時的項目計劃可以先制定得比較粗一些,隨著項目的進展,特別是需求明確以後,項目的計劃就可以進一步的明確,這時候應該對項目計劃進行調整修訂,通過變更手續取得項目干係人的共識。計劃應該隨著項目的進展而逐漸細化、調整、修正。沒有及時調整的計劃或者是隨意的不負責任的計劃的項目是難以控制的。在高技術行業,日新月異是主要特點,因此計劃的制定需要在一定條件的限制和假設之下採用漸近明細的方式,隨著項目的進展進行不斷細化、調整、修正、完善。對於較為大型的軟體開發項目的工作分解結構可採用二次甚至多次 WBS 方法。即根據總體階段劃分的總體 WBS ,需求調研階段結束、概要設計完成後專門針對詳細設計或編碼階段的二次 WBS 。由於需求的功能點和設計的模塊或組件之間並不是一一對應的關系,所以只有在概要設計完成以後才能准確地得到詳細設計或編碼階段的二次 WBS ,根據代碼模塊或組件的合理劃分而得出的二次 WBS 才能在詳細設計、編碼階段乃至測試階段起到有效把握和控制進度的作用。有些項目的需求或設計做得不夠詳細,無法對工作任務的分解、均衡分配和進度管理起參考作用,因此要隨著需求的細化和設計的明確,對項目的分工和進度進行及時的調整,使項目的計劃符合項目的變化,使項目的進度符合項目的計劃。

8、未考慮不可預見事件發生造成的影響

假設、約束、風險等考慮「不周」造成項目進度計劃中未考慮一些不可預見的事件發生。例如軟體開發項目還會因為項目資源特別是人力資源缺乏、人員生病、人員離職、項目團隊成員臨時有其他更緊急的任務造成人員流動等不可預見的事件對項目的進度控製造成影響(即項目按時完成是基於如下假設:人力資源不會缺乏、人員不會生病、人員不會流動)。企業環境、社會環境、天災人禍等事件對項目的進度控製造成影響。對項目的假設條件、約束條件、風險及其對策等對於進度的影響在項目計劃要進行充分的考慮,在項目進展過程中也要不斷地重新考慮有沒有新的情況,新的假設條件、約束條件、潛在風險會影響項目的進度。假設是通過努力可以直接解決的問題,而這些問題是一定要解決才能保證項目按計劃完成;約束一般是難以解決的問題,但可以通過其他途徑迴避或彌補、取捨,如犧牲進度、質量等等;假設與約束是針對比較明確會出現的情況,如果問題的出現具有不確定性,則應該在風險分析中列出,分析其出現的可能性、造成的影響、採取的措施。實際上像沒有考慮人的疾病、人員流動這些情況本身也不是什麼問題,因為任何人都不可能把所有以外的情況都考慮完整,實際上也沒有必要。但有些諸如下班或節假日的加班時間都被安排用於項目工作的情況就會造成更多的項目不確定性。在可能的情況下當然要對所有可能情況都做到有備無患,但是有的時候也要冒一定的風險,同時對於風險的防範也需要考慮如果防範的成本大於風險本身造成的損失和影響,則這種防範是沒有必要的。

9、程序員方面的因素對進度的影響

程序員方面有兩種常見的心態影響了進度的控制:一是技術完美主義、二是自尊心。

技術完美主義的常見現象是,有些程序員由於進度壓力、經驗等方面的原因,會匆忙先做編碼等具體的事情,等做到一定程度後會想到一些更好的構思,或者看到一些更好的技術的介紹,或者是覺得外部構架可以更加美化,或者是覺得內部構架可以更加優化,這樣他們會私下或公開對軟體進行調整,去嘗試一下新的技術。而是否使用這些新的技術對完成項目本身的目標並沒有影響,相反可能帶來不確定的隱患。這種做法不是以用戶的需求為本、或以項目團隊的總體目標為本,可能對軟體開發進度造成較大的影響。

自尊心的常見想像是,有些程序員在遇到一些自己無法解決的問題時,傾向於靠自己摸索,而不願去問周圍那些經驗更為豐富的人。有些人也許會通過聊天室等方式匿名地向別人求教。如果運氣好會很快地解決,否則要花很多實踐摸索。而如果向周圍的人求教,可能摸索幾天的問題別人早就解決了。

10、未考慮軟體開發過程的循環、迭代特性

對軟體開發的各個過程分類過於精細,制定進度計劃時各項工作過於緊湊、沒有彈性,造成的後果是,定期提交項目進度階段報告的制度只有在表面上起到效果,按照計劃的時間表提交階段成果也只是在表面上起到效果。因為「上有政策、下有對策」,強行的規定會使人產生一些錯誤的認識:如在項目計劃中「規定」某個時間只能做某某類別的事情,那麼嚴格執行的後果就是編碼階段就不能修改文檔;另外錯誤的「里程碑」概念可能會使大家輕易地相信上一個階段的工作成果都是「通過評審」最終定稿了,而實際上可能只是因為時間到了該提交的人提交、該評審的人評審了。如果上下階段是不同的人就根本不會去檢查其中是否還有錯誤;如果上下階段是同一個人,就可能非正式地修改上一階段的錯誤,但佔用的時間和精力卻是下一階段的,並且這樣的修改時沒有記錄的。這樣關於階段進度控制的措施實際上只是在表面上有效。最為普遍的情況是,用戶在合同中限定了提交軟體系統的時間,實際上這個時間對完成項目任務來說是遠遠不夠的,但計劃只能按照合同來進行,所以要不用戶讓步,要不只能按照時間的約定提交實際上還未完成的軟體系統,完成系統的安裝,但這時候的「完成階段任務」只是一個表面現象,系統雖然安裝了,但可能是沒有經過嚴格徹底測試的,也可能是只完成了部分的功能,省略了某些功能,有些是整塊功能省略,有的是省略了某些功能的某個過程,如數據錄入裡面隱含的數據錄入前預設值設置、數據錄入檢驗等功能,而是實現了比較粗糙的功能。這樣,系統交付並不意味著項目的完成,而在項目交付之後還要花更多的時間。

11、其他因素

以上這些因素是影響項目進度的幾個主要方面,除此之外還有很多其他的影響因素。其實最主要的因素還是人的因素,這里的人包括所有與項目相關的人。項目經理的素質、管理者的水平、用戶的因素、項目成員的因素等等,都會對項目進度造成影響,這是因為由於軟體開發的特性。因為篇幅有限無法一一列舉,只能在此分析一些常見的因素。

不可否認,軟體開發項目進度可控性還是帶有一定運氣成分的。特別是需要用戶配合的那些軟體開發項目,其可控性與用戶的成熟度、軟體應用領域的成熟程度和行業標准規范的完備程度有很大關系。關於可控性方面會涉及到一些與客戶打交道經驗,雖然我們說,顧客是上帝、以顧客為中心,但並不是說我們要把主導權交給他們,而關鍵是我們如何去主導、引導、把握。因此,項目控制的好壞與相關人員人際關系方面的經驗也有關系。

盡管存在很多不可控的因素,我們的任務是首先分清哪些是可以控制的,哪些是我們不能控制的。項目經理一是要盡量擴大可控的領域,減少不可控的領域,二是不要在「不可控」上花太多時間,而是多花一些時間把可控的工作控制好,做好防範措施,減輕不可控因素對項目進度的影響。

項目進入實施階段後,項目經理的幾乎所有的活動都是圍繞進度展開的。進度控制的目標與成本控制的目標和質量控制的目標是對立統一的關系。項目的進度、質量和成本構成一個相互制約的三角關系,需要項目經理去平衡。

二、項目進度控制的目的

項目進度控制和監督的目的是:增強項目進度的透明度,以便當項目進展與項目計劃出現嚴重偏差時可以採取適當的糾正或預防措施。已經歸檔和發布的項目計劃是項目控制和監督中活動、溝通、採取糾正和預防措施的基礎。

1、根據計劃進行監控

項目控制的第一個目的是根據計劃對項目的各項活動進行監控,即根據已經制定並取得共識的軟體開發項目計劃來監控項目的實際表現和進度。為此應該根據項目計劃來監控項目計劃參數的實際值,這些參數包括進度表、項目成本、工作量、工作產品和任務的屬性、使用的資源、項目成員的知識和技能;根據項目計劃來監控項目團隊所作的承諾是否已經或可能兌現、原來的確定的風險是否可以避免或減少損失,是否有新的風險出現;根據項目計劃來收集、管理、使用項目數據;根據計劃監督項目干係人的參與情況,監控各項任務承擔人的參與活動;定期進行必要的進度評審,確定項目是否存在重大偏差、跟蹤變更請求和問題報告直到變更或問題得到解決;在項目的里程碑對項目的成果進行評審。

2、管理糾正和預防措施

項目控制的另外一個目的是管理糾正和預防措施,即當項目進度或者結果已經或即將與計劃有嚴重偏差時,對需要採取的糾正或預防措施進行管理。為此應當收集並且分析項目進行中可能存在的問題,並以此確定解決這些問題的糾正或預防措施;對已經確定的問題採取糾正和預防措施;監控要實施的糾正和預防措施,分析措施採取以後的結果,判斷這些措施的有效性,確定和記錄糾正與計劃結果存在偏差的問題而採取的必要且合適的措施。

項目執行過程中僅僅靠最初建立的一份「完善」的基準計劃是不夠的,最好的計劃也未必會一直有效。根據項目任務漸進明晰的特點,特別是軟體開發項目的特點,在項目進行過程中,肯定需要在適當和必要的時候對項目進行變更控制,這種控制過程包括定期搜集有關項目進展情況的信息,把實際進展情況與計劃進展情況進行對比;如果實際進展情況比計劃進展情況有差距,或可能會有差距,就應當採取糾正或預防措施。變更控制應當在項目期間定期進行,這里所說的變更控制不一定要進行真正的變更,而是說要定期對變更進行控制。

如果在項目生命周期內的某一時間點,把實際進度與計劃中約定的進度相比對,顯示出項目已經延誤或即將延誤、超出預算目標或不符合質量要求,就必須採取糾正或預防措施使項目回到正軌上來,重新符合計劃的安排要求。在已做出執行糾正或預防措施的決定之前,應評估一下糾正與預防措施的有效性和無副作用性,以確保糾正措施使項目回到項目的工作范圍、時間和預算約束內,並對項目的其他目標不會造成太大的影響。

3、在各種項目目標中進行平衡

如果經過評估確定項目確實已無法控制,就應當下定決心以犧牲軟體功能范圍、工作成果范圍(如某些中間文檔)、成本預算、進度計劃或軟體質量中的某一項目標為代價,來保住項目最重要的那些目標,在各種項目目標中進行平衡,最終確定一個最合適的解決方案。有效的項目控制的關鍵是定期及時測量實際進程,並與計劃進程相比較,如有必要就立即採取糾正或預防措施。指望不採取糾正和干預措施,問題就自行消失的想法是不現實的。問題越早發現就越好改正,造成的影響和損失越小。問題越提前發現就越好採取預防措施,可以用最小的代價避免造成損失。基於項目實際進展情況,就有可能准確預測項目進度計劃和成本預算的實施情況,以便順利完成項目。如果這些項目參數超出項目目標的限制范圍,就必須馬上採取糾正措施;如果發現這些項目參數有超出項目目標的限制范圍的趨勢,就必須馬上採取預防措施。

軟體開發項目實施中進度控制是項目管理的關鍵,若某個分項或階段實施的進度沒有把握好,則會影響整個項目的進度,因此應當盡可能地排除或減少干擾因素對進度的影響,確保項目實施的進度。

三、軟體開發項目常用進度控制措施

1、項目進度控制的前提

項目進度控制的前提是有效地項目計劃和充分掌握第一手實際信息,在此前提下,通過實際值與計劃值進行比較,檢查、分析、評價項目進度。通過溝通、肯定、批評、獎勵、懲罰、經濟等不同手段,對項目進度進行監督、督促、影響、制約。及時發現偏差,及時予以糾正;提前預測偏差,提前予以預防。

在進行項目進度控制時,必須落實項目團隊之內或之外進度控制人員的組成,明確具體的控制任務和管理職責。要制定進度控制的方法,要選擇適用的進度預測分析和進度統計技術或工具。要明確項目進度信息的報告、溝通、反饋、以及信息管理制度。

項目進度控制應該由部門經理和項目監控人員共同進行,之所以需要部門經理參與,是因為部門經理負責項目一般要負責一定人事行政的責任,如成員的考核、升遷、發展等。他們只有通過軟體開發項目才能更好地了解項目成員,項目也只用通過對他們有切身利益的管理者參與管理才會更加有效。

2、項目進度控制主要手段

項目計劃書:作為項目進度控制的基準和依據,項目負責人負責製作項目計劃書。項目進度監控人員根據項目計劃書對項目的階段成果完成情況進行監控,如果由於某些原因階段成果提前或延後完成,項目負責人應提前申請並做好開發計劃的變更。對於項目進度延後的,應當分析產生進度延後的原因、確定糾正偏差的對策、採取糾正偏差的措施,在確定的期限內消除項目進度與項目計劃之間的偏差。項目計劃書應當根據項目的進展情況進行調整,以保證基準和依據的新鮮性、有效性。

項目階段情況匯報與計劃:項目負責人按照預定的每個階段點(根據項目的實際情況可以是每周、每雙周、每月、每雙月、每季、每旬等等)定期在與項目成員和其他相關人員充分溝通後,向相關管理人員和管理部門提交一份書面項目階段工作匯報與計劃,內容包括:

a、對上一階段計劃執行情況的描述
b、下一階段的工作計劃安排
c、已經解決的問題和遺留的問題
d、資源申請、需要協調的事情及其人員
e、其他需要處理的問題

這些匯報將存檔,作為對項目進行考核的重要材料。

在計劃制定時就要確定項目總進度目標與分進度目標;在項目進展的全過程中,進行計劃進度與實際進度的比較,及時發現偏離,及時採取措施糾正或者預防;協調項目參與人員之間的進度關系。

在項目計劃執行中,做好這樣幾個方面的工作:

檢查並掌握項目實際進度信息。對反映實際進度的各種數據進行記載並作為檢查和調整項目計劃的依據,積累資料,總結分析,不斷提高計劃編制、項目管理、進度控制水平。

做好項目計劃執行中的檢查與分析。通過檢查,分析計劃提前或拖後的主要原因。項目計劃的定期檢查是監督計劃執行的最有效的方法。

及時制定實施調整與補救措施。調整的目的是根據實際進度情況,對項目計劃作必要的修正,使之符合變化的實際情況,以保證項目目標其順利實現。由於初期編制項目計劃時考慮不周,或因其他原因需要增加某些工作時就需要重新調整項目計劃中的網路邏輯,計算調整後的各時間參數、關鍵線路和工期。

3、進度控制內容

從內容上看,軟體開發項目進度控制主要表現在組織管理、技術管理和信息管理等這幾個方面。組織管理包括這樣幾個內容:

(1)項目經理監督並控制項目進展情況;
(2)進行項目分解,如按項目結構分,按項目進展階段分,按合同結構分,並建立編碼體系;
(3)制訂進度協調制度,確定協調會議時間,參加人員等;
(4)對影響進度的干擾因素和潛在風險進行分析。

技術管理與人員管理有非常密切的關系。軟體開發項目的技術難度需要引起重視,有些技術問題可能需要特殊的人員,可能需要花時間攻克一些技術問題,技術措施就是預測技術問題並制訂相應的應對措施。控制的好壞直接影響項目實施進度。

在軟體開發項目中,合同措施通常不由項目團隊負責,企業有專門的合同管理部門負責項目的轉包、合同期與進度計劃的協調等。項目經理應該及時掌握這些工作轉包的情況,按計劃通過計劃進度與實際進度的動態比較,定期向客戶提供比較可靠的報告等。

軟體開發項目進度控制的信息管理主要體現在編制、調整項目進度控制計劃時對項目信息的掌握上。這些信息主要是:預測信息,即對分項和分階段工作的技術難度、風險、工作量、邏輯關系等進行預測;決策信息,即對實施中出現的計劃之外的新情況進行應對並做出決策。參與軟體開發項目決策的有項目經理、企業項目主管及客戶的相關負責人;統計信息,軟體開發項目中統計工作主要由參與項目實施的人員自己做,再由項目經理或指定人員檢查核實。通過收集、整理和分析,寫出項目進展分析報告。根據實際情況,可以按日、周、月等時間要求對進度進行統計和審核,這是進度控制所必須的。

4、不同階段的項目進度控制

從項目進度控制的階段上看,軟體開發項目進度控制主要有:項目准備階段進度控制,需求分析和設計階段進度控制,實施階段進度控制等這幾個部分。

准備階段進度控制任務是:向業主提供有關項目信息,協助業主確定工期總目標;編制階段計劃和項目總進度計劃;控制該計劃的執行;

需求分析和設計階段控制的任務是:編制與用戶的溝通計劃、需求分析工作進度計劃、設計工作進度計劃,控制相關計劃的執行等。

實施階段進度控制的任務是:編制實施總進度計劃並控制其執行;編制實施計劃並控制其執行等。由甲乙雙方協調進度計劃的編制、調整並採取措施確保進度目標的實施。

為了及時地發現和處理計劃執行中發生的各種問題,就必須加強項目的項目的協同工作。協同工作是組織項目計劃實現的重要環節。它要為項目計劃順利執行創造各種必要的條件,以適應項目實施情況的變化。

5、關於進度落後時的「趕工」措施

進度落後的情況下,有幾種措施來彌補,如加人、加班、加激勵等等,這些都是增加資源而又未必會見效的方法。根據Brooks原則,在某些項目進度延遲的情況下增加人手,有可能會使項目的進度更加延後。因為對於新加入本項目的員工來說,對項目相關背景、需求、設計的培訓、對項目環境的熟悉和項目團隊成員之間的溝通路徑的增加,可能會使項目的工作效率急劇下跌。而加班造成的疲勞會再次使工作效率降低。增加激勵會造成工作成本卻不斷的向上攀升。這些措施並不是完全不可取,而是項目經理要考慮適度原則。最好是要全面分析項目進度延遲的原因,如果確實是不合理的項目交付時限要求,就應當通過溝通變更為合理的項目時限要求,以免因為這樣一個不合理的時限要求造成對軟體質量或團隊成員心理上的負面影響,最終導致項目最終的失敗。否則應從技術、團隊成員心態、環境等方面查找原因,找到提高效率、加快進度的方法。

熱點內容
為什麼嘴有不同的顏色 發布:2024-11-08 17:36:38 瀏覽:285
為什麼你會愛上那麼有錢的男人 發布:2024-11-08 17:29:23 瀏覽:480
蘋果游戲機為什麼伺服器有問題 發布:2024-11-08 17:27:37 瀏覽:319
為什麼下軟體安裝會關機 發布:2024-11-08 17:26:42 瀏覽:216
為什麼鼻樑會壓到眼睛 發布:2024-11-08 17:14:20 瀏覽:99
為什麼一到晚上睡覺就很難入睡 發布:2024-11-08 17:07:03 瀏覽:549
為什麼一吃面就感覺胃裡有東西 發布:2024-11-08 17:05:26 瀏覽:396
蠶絲睡眠面膜為什麼辣眼睛 發布:2024-11-08 16:44:58 瀏覽:739
小雞崽的顏色為什麼深 發布:2024-11-08 16:44:04 瀏覽:329
不來例假為什麼不能吃涼東西 發布:2024-11-08 16:37:20 瀏覽:326