《軟件工程導論》第2章-可行性研究-重點總結

第2章 可行性研究

  1. 並非任何問題都有簡單明顯的解決辦法,事實上,許多問題不可能在預定的系統規模或時間期限之內解決。
  2. 如果問題沒有可行的解,那麼花費在這項工程上的任何時間、人力、軟硬件資源和經費,都是無謂的浪費。
  3. 可行性研究的目的,就是用最小的代價在儘可能短的時間內確定問題是否能夠解決。

2.1 可行性研究的任務

可行性研究的目的不是解決問題,而是確定問題是否值得去解決。
可行性研究實質上是要進行一次大大壓縮簡化了的系統分析和設計的過程,也就是在較高層次上較抽象的方式進行的系統分析和設計的過程。

可行性研究分析過程:

  1. 首先,進一步分析和澄清問題定義
  2. 然後,分析員應該導出系統的邏輯模型
  3. 最後,探索若干種可供選擇的主要解法

至少應該從下述3個方面研究每種解法的可行性

  • 技術可行性:使用現有的技術能實現這個系統嗎?
  • 經濟可行性:這個系統的經濟效益能超過它的開發成本嗎?
  • 操作可行性:系統的操作方式在這個用戶組織內行得通嗎?

2.2 可行性研究過程

怎樣進行可行性研究呢?典型的可行性研究過程有下述8個步驟。

  1. 複查系統規模和目標
  2. 研究目前正在使用的系統
  3. 導出新系統的高層邏輯模型
  4. 進一步定義問題
  5. 導出和評價供選擇的解法
  6. 推薦行動方針
  7. 草擬開發計劃書
  8. 書寫文檔提交審查

2.2.1 複查系統規模和目標

分析員訪問關鍵人員,仔細閱讀和分析有關的材料,以便對問題定義階段書寫的關於規模和目標的報告書進一步複查確認,改正含糊或不確切的敘述,清晰地描述對目標系統的一切限制和約束。這個步驟的工作,實質上是爲了確保分析員正在解決的問題確實是要求他解決的問題。

2.2.2 研究目前正在使用的系統

現有的系統是信息的重要來源。

如果現有的系統是完美無缺的,用戶自然不會提出開發新系統的要求,因此,現有的系統必然有某些缺點,新系統必須能解決舊系統中存在的問題。

應該仔細閱讀分析現有系統的文檔資料和使用手冊,也要實地考察現有的系統。

常見的錯誤做法是花費過多時間去分析現有的系統。因爲該步驟的目的是瞭解現有系統能做什麼,而不是怎樣做。

2.2.3 導出新系統的高層邏輯模型

優秀的設計過程通常是從現有的物理系統出發,導出現有系統的邏輯模型, 再參考現有系統的邏輯模型,設想目標系統的邏輯模型,最後根據目標系統的邏輯模型建造新的物理系統。

2.2.4 進一步定義問題

可行性研究的前4個步驟實質上構成一個循環。分析員定義問題,分析這個問題,導出一個試探性的解;在此基礎上再次定義問題,再一次分析這個問題,修改這個解;繼續這個循環過程,直到提出的邏輯模型完全符合系統目標。

2.2.5 導出和評價供選擇的解法

分析員應該從他建議的系統邏輯模型出發,導出若干個較高層次的物理解法供比較和選擇。

其次可以考慮操作方面的可行性。 分析員應該根據使用部門處理事務的原則和習慣檢查技術上可行的那些方案,去掉其中從操作方式或操作過程的角度看用戶不能接受的方案。

接下來應該考慮經濟方面的可行性。分析員應該估計餘下的每個可能的系統的開發成本和運行費用,並且估計相對於現有的系統而言這個系統可以節省的開支或可以增加的收入。

最後爲每個在技術、操作和經濟等方面都可行的系統制定實現進度表,這個進度表不需要制定得很詳細,通常只需要估計生命週期每個階段的工作量。

2.2.6 推薦行動方針

根據可行性研究結果應該決定的一個關鍵性問題是: 是否繼續進行這項開發工程? 分析員必須清楚地表明他對這個關鍵性決定的建議。

如果分析員認爲值得繼續進行這項開發工程,那麼他應該選擇一種最好的解法,並且說明選擇這個解決方案的理由。

通常客戶主要根據經濟上是否划算決定是否投資於一項開發工程,因此分析員對於所推薦的系統必須進行比較仔細的成本/效益分析。

2.2.7 草擬開發計劃書

分析員應該爲所推薦的方案草擬一份開發計劃,除了制定工程進度表之外還應該估計對各類開發人員和各種資源的需要情況,應該指明什麼時候使用以及使用多長時間。此外還應該估計系統生命週期每個階段的成本。最後應該給出下一個階段(需求分析)的詳細進度表和成本估計

2.2.8 書寫文檔提交審查

應該把上述可行性研究各個步驟的工作結果寫成清晰的文檔請用戶、客戶組織的負責人及評審組審查,以決定是否繼續這項工程及是否接受分析員推薦的方案。


2.3 系統流程圖☆

在進行可行性研究時需要瞭解和分析現有的系統,並以概括的形式表達對現有系統的認識;進行設計階段以後應該把設想的新系統的邏輯模型轉變成物理模型,因此需要描繪未來系統的概貌。
系統流程圖是概括地
描繪物理系統
的傳統工具。

基本思想:
用圖形符號以黑盒子形式描繪組成系統的每個部件(程序、文檔、數據庫、人工過程等)。
系統流程圖表達的是數據在系統各部件之間流動的情況,而不是對數據進行加工處理的控制過程, 因此儘管系統流程圖的某些符號和程序流程圖的符號形式相同,但是它卻是物理數據流圖而不是程序流程圖

2.3.1 符號

利用符號可以把一個廣義的輸入輸出操作具體化爲讀寫存儲在特殊設備上的文件(或數據庫),把抽象處理具體化爲特定的程序或手工操作等。

基本符號: 以概括的方式抽象地描繪一個實際系統時,僅用下圖中列舉出的基本符號就足夠了
在這裏插入圖片描述

系統符號: 需要更具體地描繪一個物理系統時還需要使用下圖中列出的系統符號
在這裏插入圖片描述

2.3.2 例子

某裝配廠有一座存放零件的倉庫,倉庫中現有的各種零件的數量以及每種零件的庫存量臨界值等數據記錄在庫存清單主文件中。
當倉庫中零件數量有變化時,應該及時修改庫存清單主文件,如果哪種零件的庫存量少於它的庫存量臨界值,則應該報告給採購部門以便訂貨,規定每天向採購部門送一次訂貨報告。

該裝配廠使用一臺小型計算機處理更新庫存清單主文件和產生訂貨報告的任務。
零件庫存量的每一次變化稱爲一個事務,由放在倉庫中的CRT終端輸入到計算機中;
系統中的庫存清單程序對事務進行處理,更新存儲在磁盤上的庫存清單主文件,並且把必要的訂貨信息寫在磁帶上。
最後,每天由報告生成程序讀一次磁帶,並且打印出訂貨報告。

庫存清單系統的系統流程圖:
在這裏插入圖片描述

2.3.3 分層

面對複雜的系統時,一個比較好的方法是分層次地描繪這個系統。

  1. 首先用一張高層次的系統流程圖描繪系統總體概貌,表明系統的關鍵功能。
  2. 然後分別把每個關鍵功能擴展到適當的詳細程度,畫在單獨的一頁紙上。這種分層次的描繪方法便於閱讀者按從抽象到具體的過程逐步深入地瞭解一個複雜的系統。

2.4 數據流圖☆

這部分內容放在第三章中。

2.5 數據字典☆

這部分內容放在第三章中。

2.6 成本/效益分析

2.6.1 成本估計

軟件開發成本主要表現爲人力消耗(乘以平均工資則得到開發費用)。
成本估計不是精確的科學,因此應該使用幾種不同的估計技術以便相互校驗。

① 代碼行技術

比較簡單的定量估算方法,估計出源代碼行數以後,用每行代碼的平均成本乘以行數就可確定軟件的成本。

② 任務分解技術

首先把軟件開發工程分解爲若干個相對獨立的任務,再分別估計每個單獨任務的成本,最後累加得出總成本。
任務分解技術最常用的辦法是按開發階段劃分任務。
典型環境下各個開發階段需要使用的人力的百分比:
在這裏插入圖片描述

③ 自動估計成本技術

採用自動估計成本的軟件工具,減輕人的勞動,估計結果更客觀。

2.6.2 成本/效益分析的方法

成本/效益分析方法主要從四個方面考慮:

  1. 貨幣的時間價值
  2. 投資回收期
  3. 純收入
  4. 投資回收率

① 貨幣的時間價值

通常用利率的形式表示貨幣的時間價值。
假設年利率爲i,如果現在存入P元,則n年後可以得到的錢數爲:
在這裏插入圖片描述
這也就是P元錢在n年後的價值。
反之,如果n年後能收入F元錢,那麼這些錢的現在價值是:
在這裏插入圖片描述

例如,修改一個已有的庫存清單系統,使它能在每天送給採購員一份訂貨報表。修改已有的庫存清單程序並且編寫產生報表的程序,估計共需5000元;系統修改後能及時訂貨,這將消除零件短缺問題,估計因此每年可以節省2500元,5年共可節省12500元。但是,不能簡單地把5000元和12500元相比較,因爲前者是現在投資的錢,後者是若干年以後節省的錢。
在這裏插入圖片描述

② 投資回收期

通常用投資回收期衡量一項開發工程的價值。
所謂投資回收期就是使累計的經濟效益等於最初投資所需要的時間。
投資回收期越短就能越快獲得利潤,因此這項工程也就越值得投資。
例如,修改庫存清單系統兩年以後可以節省4225.12元,比最初的投資(5000元)還少774.88元,第三年以後將再節省1779.45元。744.88/1779.45=0.44,因此,投資回收期是2.44年。

③ 純收入

衡量工程價值的另一項經濟指標是工程的純收入,也就是整個生命週期之內系統的累計經濟效益(摺合成現在值)與投資之差。
如果純收入小於零,那麼這項工程顯然不值得投資。

例如,上述修改庫存清單系統,工程的純收入預計是
9011.94-5000=4011.94(元)

④ 投資回收率

已知現在的投資額,並且已經估計出將來每年可以獲得的經濟效益,那麼,給定軟件的使用壽命之後,怎樣計算投資回收率呢?設想把數量等於投資額的資金存入銀行,每年年底從銀行取回的錢等於系統每年預期可以獲得的效益,在時間等於系統壽命時,正好把在銀行中的存款全部取光,那麼年利率等於多少呢?這個假想的年利率,就是投資回收率。
根據上述條件不難列出下面的方程式:
在這裏插入圖片描述
其中,P是現在的投資額;Fi是第i年的效益;n是系統的使用壽命;j是投資回收率。
例如,上述修改庫存清單系統,工程的投資回收率是41%-42%。


2.7 本章小結

  1. 可行性研究的目的,任務,從哪三個方面研究每種解決方案的可行性
  2. 可行性研究過程
  3. 系統流程圖常用符號,會畫系統流程圖(重點)
  4. 瞭解成本/效益分析方法

作業

部分內容放在第三章,可結合完成。

  1. 可行性研究的目的、本質
  2. 需求分析的任務(四個準則)
  3. 與用戶溝通的方法(訪談的四個標題)
  4. 系統流程圖定義、 數據流圖 數據字典的定義及4類元素
  5. 畫實體聯繫圖
    某圖書借閱管理系統,數據庫中有三個實體集。
    一是“書籍”實體集,屬性有書號、類型、數量等;
    二是“出版社”實體集,屬性有出版社名、電話、Email、郵編等;
    三是“借書人”實體集,屬性有借書證號、姓名、單位等。
    出版社與書籍間存在“出版”聯繫,一個出版社可出版多種書籍,同一本書僅爲一個出版社出版;
    書籍和借書人間存在“借還”聯繫,每個借書人可以借閱多種書籍,每種書籍可以被多個借閱人借閱;每一個借書人借閱書籍都有對應的借書日期、還書日期。
    試畫出E-R圖,並在圖上註明屬性、聯繫的類型。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章