在軟件項目早期,需要對軟件問題進行高層構架分析,以確定項目的可行性。還需要根據 可行性分析的結果制定出有效的項目實施計划,以指導軟件項目的順利開展。
一、計算機系統分析
當某個軟件問題被作為項目提出時,即意味着,這個軟件問題將成為一項工程任務,需要按照工程化作業流程來分階段解決。其中,計算機系統分析是軟件項目工程化作業流程中首先 需要進行的預備性工作,它以整個計算機系統作為分析背景,由此得到對有待開發的軟件系統 及其工作環境的全貌性的了解。
1.計算機系統
系統是一個群體概念,一個事物若被稱為系統,則表明這個事物之內包含有許多元素。系統由元素組成,但系統並不是其所包含的元素的簡單組合,而是一個有機整體,其內部元素之間相互關聯、協同工作,具有一致的任務目標。 有些系統是簡單的,比如鋼筆,它僅由筆尖、吸墨器、筆桿、筆套等簡單零件組成,其構造可以一目了然。然而有些系統則是復雜的,比如汽車,具有復雜的內部構造。 一般來說,比較復雜的系統大都具有分層構造,其內部元素也具有系統特征,可以作為子系統看待。計算機系統就是一個非常復雜的系統,包含有:硬件系統、軟件系統、網絡通信系統、人工操作系統等諸多子系統,而其中的軟件系統又由操作系統、數據庫系統、應用程序等更小的系統元素組成,如圖 3-1 所示。

計算機系統還是一個具有智能特性的開放系統。計算機的智能特性就是通過它的軟件系統 提供的,一個新的軟件的誕生,實質上也就是計算機又得到了一次智能擴充。
2.系統分析法
軟件項目是基於計算機的系統工程,因此,針對軟件項目的系統分析需要以計算機這個更大的系統為背景進行,需要將軟件問題放置到整個計算機系統中去看待。因此,針對有待開發的軟件系統的前期分析,也就不只是軟件系統本身了,它還需要分析與有待開發的軟件系統有 關的其他方面的問題,例如,硬件環境、網絡環境、支撐軟件等。 系統分析是對項目的高層分析,需要得到的是系統的基本框架。因此,系統分析並不需要對有待開發的軟件系統的內部構造作出過多的研究,但需要對系統按能夠獨立工作的組件或子系統為單位進行分解,由此使系統能夠從它所處的環境中分離出來,其結果將作為划分系統邊界與確定系統框架結構的基本依據。 系統分析也不需要研究有待開發的軟件系統的控制機制,但卻有必要以獨立組件或子系統為單元,研究系統的工作流程、系統與外界的數據通信。 具體說來,系統分析可以從以下幾個方面對軟件及其相關問題作出描述:
(1)軟件系統的規模大小、功能范圍。
(2)軟件系統對硬件環境、網絡環境、數據環境和支撐軟件的依賴。
(3)軟件系統中有關安全保密問題的考慮。
(4)軟件系統與其他相關系統之間的數據通信。
(5)軟件用戶,包括:用戶單位的組織結構,與軟件有關的用戶的工作流程。
3.建立系統模型
建立系統模型,也就是以作圖方式對系統進行直觀的描述。計算機系統前期分析過程中使用得比較多的圖形模型有:系統框架圖、系統流程圖。其中,系統框架圖用於描述系統的基本 框架,系統流程圖用於描述系統的基本工作流程。下面分別加以介紹。
(1)系統框架圖
系統框架圖使用矩形與帶箭頭的線段來描述系統的基本體系構造,能夠用來描述系統的邏輯框架。 系統框架圖中的矩形用於表示構造系統的組件或子系統,線段則用於表示組件或子系統之 間的關系。
例如圖 3-2 所示的自動閱卷系統的系統框架圖,

它所表達的是:自動閱卷系統由成 績數據庫、讀卡程序、閱卷程序、成績查詢程序、成績分析程序、成績單打印程序和成績備份 程序組成,並以成績數據庫為核心構建。 一般情況下,可以使用系統框架圖說明系統的功能分配和划分系統邊界。
(2) 系統流程圖
系統流程圖被用來描述系統的工作流程,以系統中的物理組件為單元說明系統的基本構造,並由此說明系統對數據的加工步驟。表 3-1 所列是系統流程圖中常用的圖形符號。

顯然, 系統流程圖中的符號是一些可以從系統中分離出來的物理元素,例如,設備、程序模塊、報 表等。
圖 3-3 是關於“自動閱卷系統”的系統流程圖,它所表達的是:閱卷系統首先通過讀卡程序讀入考試答題卡片上的數據,然后經過閱卷程序計算出成績並存入成績數據庫,在產生出成績數據之后,系統可以通過成績查詢程序、成績分析程序、成績單打印程序和成績備份程序, 對成績數據庫中的數據進行相關操作。 顯然,與系統框架圖比較,系統流程圖包含了更多的數據加工細節,並能通過物理元素表現系統的物理構架,以及與外部接口的連接通信等。

二、項目可行性分析
1.可行性分析意義
軟件問題往往以任務立項的形式被作為工程提出,這是軟件項目實施過程中需要進行的又 一項准備工作,涉及對軟件問題的一些概括性描述。例如,項目的名稱、性質和意義,項目的任務來源,有待開發的軟件在功能、性能等方面需要達到的基本目標,項目在資金、設備和技術支持等方面所受到的條件限制等。 軟件任務立項可以被看作為具有宣言意義的綱領,以最簡潔的方式,從項目的最高層面上 表達了項目需要達到的目標。 但需要注意的是,凡是工程項目就必然具有工程風險,其中軟件項目則更是具有高風險的 特征。這也意味着,軟件項目很有可能不能夠達到任務立項時所預期的工程目標。因此,在軟件項目正式實施之前,有必要對其進行可行性分析,由此對軟件項目是否能夠達到任務立項所 預期的工程目標作出一個比較明確的是非判斷。 工程經驗表明:可行性分析對軟件問題解決途徑的探索,能夠給軟件項目帶來以下方面具 有積極意義的影響。
(1)通過少量的費用,對項目能否實施盡早作出決斷,以避免項目開展以后所帶來的大量 的人力、物力和時間的浪費。
(2)根據項目所受到的條件限制,對有待開發的系統在體系構造、工作模式等方面作出高層抉擇,以利於項目今后的實現。
(3)可以把可行性分析看作軟件定義時期需要進行的前導性工作,其結果可以作為一個高 層框架被用於軟件需求分析過程之中,以方便今后軟件規格定義工作的順利開展。
2.可行性分析內容
軟件開發總是離不開對軟件中技術因素的考慮。但是,當軟件問題成為工程問題時,它還將受到來自項目費用預算、開發期限和應用環境等其他方面因素的制約。因此,對軟件項目的可行性分析,也就包括了技術、經濟、應用等諸多方面的分析。
(1) 技術可行性
技術可行性是關於軟件項目技術問題的高層策略,涉及對有待開發系統的高層技術構架的 探索。技術可行性需要確認的是:項目所准備采用的技術是先進的、成熟的,能夠充分滿足用戶系統在應用上的需要,並足以從技術上支持系統的成功實現。 對技術可行性的判斷是基於軟件開發者可能采用的技術而提出的,並需要從技術與技術資 源這兩個方面作出可行性評估。
a.技術限制。一般來說,用於開發軟件的技術會受到先進性、成熟度等因素的限制。
例 如,軟件技術的先進性與成熟度是否能夠保證開發出來的系統達到預期的功能、性能、安全等技術目標。其中,技術的先進性與成熟度是兩個需要平衡考慮的技術因素。例如,開發者可能希望使用一種剛剛誕生不久的新技術,以使所開發的系統能夠獲得技術先進性所帶來的開發上 的便利,並使系統獲得更好的應用效果。但是,剛誕生的新技術卻有可能缺乏使其成熟的比較 充分的工程驗證,因此有可能會給項目帶來比較高的技術風險。
b.技術資源限制。這是指開發機構對所采用的技術的把握程度方面的限制。
例如,開發人員對技術的熟練程度,開發機構目前所擁有的軟件資源、設備、工程經驗和能夠得到的技術支持等。顯然,盡管將采用的技術既先進又成熟,但假如開發機構剛剛使用這種技術不久,其 在該項技術的應用上工程經驗還積累得不夠,技術資料也相對比較缺乏,那么,從工程角度考 慮,它仍有可能不具備可行性。
(2)經濟可行性
經濟可行性分析是對項目實施成本和項目可能帶來的經濟效益的分析,以確定等待實施的 項目是否值得投資。 應該說,任何項目都會受到項目資金的限制,軟件項目也不例外。因此,針對軟件項目必須進行成本估算,並以項目成本是否在項目資金限制范圍以內作為項目的一項可行性依據。 影響經濟可行性的另一個因素是項目的經濟效益。實際上,無論是開發機構或是用戶,都會關心項目效益,因此必須對項目進行效益評估,從中發現項目預期的經濟收益是不是能夠超 過項目投資。 在分析項目效益時需要注意的是,開發機構與用戶會有不同的效益來源,需要分別對待。 其中,開發機構的效益直接來源於軟件產品,而用戶的效益則應該說是來自於對軟件的間接 應用。
(3) 應用可行性
應用方面的可行性將涉及法律法規、用戶操作規程等方面的問題。法律法規方面的問題有: 開發的軟件會不會構成法律侵權,會不會跟國家的相關政策、法律發生沖突,開發者、用戶雙 方的職責和權利有沒有通過合同等法律形式明確體現出來等。用戶操作規程方面的問題有:用 戶單位的組織結構、與軟件有關的用戶工作流程、用戶在計算機應用上的素質等。 軟件是開發給用戶使用的,因此應該考慮所開發的軟件是否能夠跟用戶單位已經形成的管理模式、工作流程、操作方式等保持良好的協調。例如,基於傳統的 C/S 結構的局域網上的信 息系統,由於具有較好的工作性能和便利的操作方式,而且技術成熟、容易實現,它比較適合 一些地域集中的企業的信息化管理。但是,一個跨區域的企業,由於需要通過互聯網進行通信, C/S 結構就可能不太合適了,更加合適的結構可能是基於 B/S 結構的 Web 信息系統。
3.可行性分析過程
可行性分析的一般步驟是:建立系統模型,進行項目可行性評估,撰寫可行性分析報告。 下面將介紹這幾個步驟。
(1) 建立系統模型
可行性分析所針對的是一個尚未創建的新系統,為了使可行性分析具有研究對象,在進行 可行性評估之前有必要先建立起該系統的工作模型。 建立系統模型可以按照以下步驟進行。
a.研究現有系統的物理模型。有足夠的理由使人相信,新的系統將建立在現有系統基礎 之上。例如,新系統與現有系統由相同的用戶使用,新系統與現有系統涉及了一些相同的工作內容,現有系統積累下來的數據,將要由新的系統繼續給予維護等。因此,在建立新系統模型 時,有必要研究現有系統的工作模型。 需要注意的是:現有系統是一個處在工作狀態的現實系統,因此,對現有系統的研究,可 以從它的物理模型着手,例如,可以使用系統流程圖來對它做直觀的物理描述。
b.導出現有系統的邏輯模型。對現有系統的研究是為了更加合理地對新系統提出可供參 考的實施方案,但是,物理模型是一種相對固化的模型,當需要由現有系統對新系統進行推斷時,物理模型不如邏輯模型靈活。因此,為了更方便地構造新系統的工作模型,有必要將現有 系統的物理模型轉化成為它的邏輯模型,例如,從現有系統的系統流程圖模型推導出它的數據流圖模型。
c.設想新系統的邏輯模型。邏輯模型具有變通性,因此,可以將現有系統的邏輯模型作 為前提條件,並以新系統需要獲得的功能為目標,對新系統的邏輯模型作出合理的設想。
d.提出新系統的物理模型。可行性研究是對項目能否實施、軟件能否實現的可行性評估。 由於軟件系統的實現最終都將體現為某種具體的物理形態,因此,為了使得可行性研究所提出 的建設性意見更加具有可信度,還需要以系統的邏輯模型為依據,提出有關系統的物理模型。 需要注意的是:由於邏輯模型所體現出來的只是系統的功能構架,往往可以采用許多種不 同的物理方案給以具體實現。因此,基於同一個邏輯模型,有必要提出幾個適當的物理模型供 項目參考。
(2)進行可行性評估
隨着系統初步模型的產生,可行性分析已經有了一個適當的研究對象。 在新系統的物理方案被提出來以后,接下來需要進行的工作就是針對所提出的物理方案,從 技術、經濟、應用等方面進行可行性評估,並由此歸納出對於軟件項目的總的可行性評估結論。 下面是一些可供參考的可行性評估結論:
a.項目各方面條件都已經基本具備,並能夠產生很好的影響或獲取有效的成果,建議立即着手實施項目。
b.主要條件已基本具備,但准備工作仍顯得不充分,例如,項目管理中還缺少專門的質 量監控機構,有關技術資源不夠充分等,建議在相關條件得到進一步完善之后,再着手實施項目。
c.項目實施的基本條件不具備,例如,項目資金缺口太大、項目技術難以在限定時間內 有所突破等,建議中止項目。
(3) 撰寫可行性分析報告
可行性分析是軟件工程過程中的一個重要階段,因此可行性分析中產生的一系列結論要以 文本形式體現出來。例如,按照一定的格式撰寫成“可行性分析報告”,並報送有關部門或機構 (例如:用戶單位、項目領導小組等)進行審核。
三、項目成本效益分析
經濟可行性研究是對項目實施成本和所能帶來的經濟效益的分析,以確定等待實施的項目 是否值得投資。
1.項目成本估算
在項目初期,無論是進行可行性分析,還是制定項目預算,或是向客戶提供軟件報價,都 需要針對軟件項目進行成本的初步估算。下面將要介紹的是一些常用的軟件項目成本估算方法。
(1)基於軟件規模的成本估算
傳統的軟件規模是通過代碼行數計算的。也就是說,通過估算軟件代碼總行數,可以計算 出創建軟件的總工作量和軟件總成本。 基於軟件代碼行數的人力成本估算公式是:
WC = ( TCL / MPACL ) × MPAP
計算公式中的 WC 是軟件工作成本, TCL 是軟件總代碼行數, MPACL 是以參入項目所有人員 為基數計算的每月人均完成的代碼行數, MPAP 是以參入項目所有人員為基數計算的每月人均工 資。其中,參入項目所有人員既包括技術人員,也包括管理人員。 在對軟件代碼行數進行估算時,往往需要先將軟件按功能進行分解。例如,可以將軟件系 統按照功能分解為許多子系統,子系統又可以繼續分解為許多功能模塊,這種對軟件系統的分 解工作可以一直進行到基本模塊。應該說,基本模塊的代碼行數是比較容易估算的,而通過對 基本模塊代碼行數進行估算與累計,可以估算出整個系統的總代碼行數。 代碼行數估算方法比較適合一些需求比較容易確定,並且采用傳統開發工具(例如:匯編 語言、C 語言等)開發的系統。但在目前,更多的應用項目是面向用戶的,項目非常龐大,軟 件需求在項目初期也往往只有一個框架。開發這些系統所采用的開發工具則一般是面向對象或 基於組件的,例如:C++、Java、Visual Basic 等;並且在軟件實現過程中,還有可能會大量 地應用到諸多重用技術,例如,將一些已經存在的對象或組件引用到當前新的項目之中來。這 些都給代碼行數估算方法帶來了困難。對於這樣的軟件系統,一種更加合適的軟件規模估算是 基於面向用戶的應用對象進行的,例如,用戶的操作窗口、提供打印的數據報表、用於數據計 算的功能組件、數據庫中的數據表或數據視圖等。這個時候,諸多復雜程度不同的應用對象可以采用合適的對象點數加以標識,例如,簡單的用戶窗口其對象點數取“1”;中等復雜程度的 用戶窗口其對象點數取“2”;而非常復雜的用戶窗口其對象點數則可以取“3”等。 顯然,比起傳統的代碼行數估算方法來,基於應用對象的軟件規模估算,能夠更加方便地 在項目初期對那些只是進行了高層結構描述的軟件系統進行成本估價。 基於應用對象的人力成本估算公式是:
WC = ( (∑ ( NOP ( 1 - R ) ) ) / PROP ) × MPAP
計算公式中的 WC 是軟件工作成本, NOP 是應用對象的對象點數, R 是構造應用對象的代碼 復用率, PROP 是以參入項目所有人員為基數計算的每月人均完成的對象點數, MPAP 是以參入項 目所有人員為基數計算的每月人均工資。其中,參入項目所有人員既包括技術人員,也包括管理人員。
(2)基於任務分解的成本估算
這是一種以項目任務的人力消耗為依據的成本估算方法。可以把項目任務分解成諸多活 動,例如,按照工程過程將項目任務分解成需求分析、概要設計、詳細設計等若干個階段,然后根據每個階段的人員配備、周期長短和階段任務參加人員平均工資情況,而估算出每個階段 的人力成本,由此累計出項目總成本。 例如為某企業開發“企業資源綜合管理系統”時考慮按表 3-2 所列進行人員配備。 
(3)成本估算中的其他因素
軟件成本主要是工作成本,上述對軟件成本的估算主要是基於軟件開發的任務量計算的。 盡管如此,軟件項目中的其他因素也不能完全忽略不計,例如,計算機硬件設備費用,軟件資 源費用,差旅培訓費用,開發場地、電力和網絡通信費用等。在項目初期制定項目預算時,需 要將諸多問題逐項列出,以防止由於計算遺漏而造成項目實施過程中出現經費短缺現象。 實際項目中,影響項目成本的因素可能更多,例如,軟件的應用領域、開發環境、開發隊 伍、國家差別等。實際上,影響軟件成本的諸多因素大都是一些模糊因素,這使得對項目成本 的估算不可能很精確。為了避免成本估算中出現大的偏差,對成本的估算還可以考慮采用其他 不同方法,並有必要運用統計技術。例如,邀請多位軟件技術和應用領域方面的專家,由他們 分別用其所熟悉的方法對項目做成本估算,然后再進行成本統計分析。 為了提高成本估算的准確性和便利性,開發機構有必要根據自己的項目經驗或有關資料, 建立項目成本模型,並依靠有關模型參數使諸多經驗數據在成本估算中產生作用。其中,項目 的類型、規模、難度、應用領域等,都可以作為量化參數。另外,在項目具體實施以后,還需 要根據項目的實際進展情況和項目的需求變動等情況,對項目成本進行修正,這可以使對項目 成本的估算更加接近實際。
2.項目效益分析
無論是開發機構或是用戶,都會關心項目效益,但值得注意的是,開發機構的效益直接來源於軟件產品,而用戶的效益則來自於對軟件的應用。並且不同的軟件產品會有不同的效益來源,例如,軟件機構自主開發的通用軟件和用戶委托開發的定制軟件,它們在效益來源上就分別有各自不同的途徑。 通用軟件由軟件機構自主開發,然后投放到軟件市場上銷售。開發機構的最低期望可能是, 軟件在銷售中所獲取的直接經濟利益至少能超過軟件的開發成本,以保證收回投資。對於通用軟件,開發機構大都需要在開發軟件之前進行深入的市場分析,看軟件市場是否已有了同類型 的產品,假如已有同類型產品,則要看開發的產品在功能、性能、價格等方面是否具有市場優 勢等。 而對於由用戶委托開發的軟件項目,開發機構的效益則取決於用戶對項目的資金投入與軟 件實際成本的差額值,其計算看起來是簡單的。但是,這些項目由於完全由用戶進行巨額投資, 其效益也就必然受到用戶的特別關注,所以計算起來非常復雜。用戶的期望可能是,花費巨額 資金開發出來的軟件在其使用過程中能夠提高工作效率、改善工作質量、節約工作成本、拓寬 業務領域等,由此帶來的間接經濟效益至少能夠超過軟件的開發成本。
在計算項目的經濟效益時,還不得不注意到,軟件的經濟效益是在軟件投入使用之后的若 干年里逐漸產生出來的,而資金投入則是當前之事。為了更加合理地計算資金效益,未來效益 中產生的資金需要折算為現值進行計算。 資金折現公式是:
資金折現值 = 資金未來值 / ( 1 + k ) n
其中, k 是銀行利率; n 是年份。 可以使用一些經濟指標來衡量項目的經濟效益,其主要經濟指標有:
(1)純收入:指軟件在估算的正常使用期內產生的資金收益被折算為現值之后,再減去項 目的成本投入。
(2)投資回收期:指軟件投入使用后產生的資金收益折算為現值,到項目資金收益等於項 目的成本投入時所需要的時間。
(3)投資回收率:指根據軟件的資金收益進行利息折算,可以將其與銀行利率做比較。 顯然,若項目的投資回收期超過了所開發軟件的正常使用期,或項目的投資回收率低於銀行利率,或純收入為負值,則項目在經濟效益上不具有可行性。 例如某“企業資源綜合管理系統” 的開發。假設開發過程中,人力、設備、支撐軟件等 各項成本總計預算是 20 萬,計划一年開發完成並投入使用。表 3-5 所列為預計有效 5 年生命期 內的逐年經濟收益與折現計算。其中,銀行年利率按 6%計算。

由表 3-5 可以推算出以下結果:
(1)純收入 = 293 600–200 000 = 93 600(元)。
(2)投資回收期 = 3 + ( 200 000 – 47 000 – 71 200 – 67 200 ) / 63 200 = 3.23(年)。
(3)投資回收率的計算則相對比較復雜,需要通過一個高階代數方程才能計算出來。當前 軟件問題的投資回收率計算的高階代數方程是: 5 / (1 + j ) + 8 / (1 + j )2 + 8 / (1 + j )3 + 8 / (1 + j )4 + 6 / (1 + j )5 =20
四、項目規划
專業的軟件開發總是要受到成本預算、工程進度、質量要求等因素的制約。因此,開發機構在項目實施之前需要對項目作出全面的規划,並通過計划書的形式明確體現出來。一些常用的項目計划書包括:項目開發計划、驗收計划、質量計划、維護計划、配置管理計划、人員計划等。 軟件工程對項目的要求是計划在先、實施在后,這意味着:項目初期擬定的計划將會成為 項目開展的驅動或指南。
1.項目開發計划
當項目經過可行性評估獲得通過以后,接着就應該編制項目開發計划,其涉及的內容包括:
(1)開發團隊的組織結構,人員組成與分工。
(2)項目成本預算。
(3)項目對硬件、軟件的資源需求。
(4)項目任務分解和每項的任務里程碑標志。
(5)基於里程碑的進度計划和人員配備計划。
(6)項目風險計划。
(7)項目監督計划。
項目開發計划需要給出影響軟件項目的各項約束條件,例如:項目交付期限、現有的人員情況、項目總體預算等。但是,項目初期的問題往往是比較模糊的,項目進行過程中也有可能 出現一些沒有預料到的問題。因此,制定開發計划時應該有一定的靈活性,以保證當項目進行 過程中出現偶然事件或沒有完全按計划達到預期目標時,能夠對計划做適當的調整。 當需要調整的計划和用戶所提出的要求發生矛盾時,就不得不和用戶進行協商了。為了避 免或減少出現這些問題,有經驗的項目管理者在項目初期制定計划時往往會保持一種低調,他 會把各種不利因素盡量考慮進去。
2.項目進度表
項目進度是基於里程碑制定的,例如,可行性分析、需求分析、概要設計等。每一個里程碑都將產生明確的結果導出。通過里程碑來管理項目進度,其好處是能夠使對項目的管理落實到項目過程中的每一個關鍵點上去,由此達到對項目的微觀管理的目的。 在安排項目進度時,需要估算完成各項活動所需的時間和資源,並按照一定的順序把它們 嚴密地組織起來。除非進行進度安排的項目與原來的項目相似,否則新的項目進度不能沿用原來的安排。由於不同的項目可能使用不同的設計方法和實現語言,使得對資源和時間的估算更 為復雜。 項目進度需要把項目中的所有工作分解為若干個獨立的活動,並需要判斷完成這些活動所需的時間。通常,有些活動需要並行進行,以保證人力資源得到充分利用。在安排進度時,關鍵任務要重點考慮,要避免因某項關鍵任務沒有完成而使整個項目延期交付的情形出現。 正常情況下項目的各項活動應該至少持續一個星期。因此,項目進度中的活動可以以“周” 為單位計量,更細的計量划分則意味着在項目進度的估算和進度表的修訂上會花掉太多時間。 項目進行過程中難免有偶然事件發生。例如,做這個項目的個別人員可能生病或離職,設 備可能會出故障,按計划需要配備的一些基本支持軟件或硬件有可能沒有按時配備等。如果這是個新項目並且技術先進,還有可能遇到沒有預計到的技術困難。因此,在估算進度時,需要有一定的時間寬松。各項活動之間還應該有短暫的時間間隔,以利於活動的過渡。
可以使用進度圖表來描述項目進度。其中,甘特圖表是一種比較常用的進度圖表,可以直 觀地描述項目任務的活動分解,以及活動之間的依賴關系、資源配置情況、各項活動的進展情 況等。 甘特圖表使用條形圖表示每項活動的開始、結束時間以及活動進展,通過鏈接的箭頭線可 以表達活動之間的依賴關系,還可以通過表格對每項活動進行詳細的描述。例如圖 3-4 中的甘特圖,能夠清楚地展現某“人力資源管理系統”開發過程中各項活動的時間安排,活動之間的 依賴關系,以及各項活動的進展情況

小 結
1. 計算機系統分析
(1)計算機系統 計算機系統是一個非常復雜並具有智能特性的開發系統,包括:硬件系統、軟件系統、網 絡通信系統、人工操作系統等諸多子系統。
(2)系統分析 系統分析是對軟件項目的高層分析,需要獲取的是有關系統的框架描述,並需要使系統從 它所處的環境中分離出來,為划分系統邊界與確定系統構架提供依據。
(3)系統分析模型 分析模型是指采用作圖方式對系統進行直觀的描述。系統前期分析過程中經常使用的圖形 模型有系統框架圖和系統流程圖。其中,系統框架圖用於說明系統的基本構造框架,而系統流 程圖則用於表現系統的基本加工流程。
2. 項目可行性分析
(1)意義
• 以少量的費用對項目能否實施盡早作出決斷。
• 根據項目條件限制,對系統的體系構造、工作模式等作出高層抉擇。
• 其結果可作為一個高層框架被用於需求分析之中。
(2)分析內容
• 技術可行性:從技術與技術資源這兩個方面作出可行性評估。
• 經濟可行性:從項目投資和經濟效益這兩個方面作出可行性評估。
• 應用可行性:從法律法規、用戶操作規程等方面作出可行性評估。
(3)分析過程
• 建立系統模型。
• 進行可行性評估。
• 撰寫可行性研究報告。
3. 項目成本效益分析
(1)項目成本估算方法:基於軟件規模的成本估算;基於任務分解的成本估算。
(2)項目效益分析指標:純收入;投資回收期;投資回收率。
4. 項目規划
(1)項目開發計划 項目開發計划涉及的內容包括:
• 開發團隊的組織結構,人員組成與分工。
• 項目成本預算。
• 項目對硬件、軟件的資源需求。
• 項目任務分解和每項的任務里程碑標志。
• 基於里程碑的進度計划和人員配備計划。
• 項目風險計划。
• 項目監督計划。
(2)項目進度表 項目進度是基於里程碑制定的,可以使用進度圖表來描述項目進度。甘特圖表是一種常用 的項目進度圖表,可以直觀地描述項目任務的活動分解,以及活動之間的依賴關系、資源配置 情況、各項活動的進展情況等。
