軟件工程(可行性研究講解)

可行性研究

可行性研究的目的,就是用最小的代價在盡可能短的時間內確定問題是否能夠解決。(只是尋找客戶所提需求的解決方案,能干還是不能干的問題。)

可行性研究實質上是要進行一次大大壓縮簡化了的系統分析和設計的過程。

GB 8566-88 《計算機軟件開發規范》中指出:可行性研究的主要任務是“四個方面”

“了解客戶的要求及現實環境,從技術經濟操作社會因素等方面研究并論證本軟件項目目的可行性,編寫可行性研究報告,制定初步項目開發計劃。”

在澄清問題定義之后,分析員應該導出系統的邏輯模型。然后從系統邏輯模型出發,探索若干種可供選擇的主要解法(即系統實現方案)。一般來說,至少該從下述三個方面研究每種解法的可行性。

①技術可行性:使用現有的技術能不能實現整個系統

②經濟可行性:整個系統的經濟效益是否超過它的開發成本

·? “成本-效益”分析

·? 評價經濟的合理性

·? 權衡支出的費用和收到的利益

·? 正確估計開發費用以及最終從所開發的系統獲得的收入和利益是否超過開發系統

③操作可行性:系統的操作方式在這個用戶組織是否行得通。

必要時還應該從法律、社會效益等更廣泛的方面研究每種解法的可行性。

可行性研究需要的時間長短取決于工程的規模。一般說來,可行性研究的成本只是預期的工程總成本的5%-10%。

可行性研究過程

典型的可行性研究過程有以下幾個步驟

1,復查系統規模和目標

①訪問關鍵人員

②仔細查閱和分析有關材料

③改正含糊或不確切的敘述

2,研究目前正在使用的系統

①現有的系統是信息的重要來源,新的目標系統必須也能完成它的基本功能。

②千萬不要花費大多時間去了解和描繪現有系統的實現細節。

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

①從現有的物理系統出發,導出系統的邏輯模型

②參考現有的邏輯模型,設想目標系統的邏輯模型

③根據目標系統的邏輯模型建造新的物理系統

4,進一步定義問題

①用戶和分析員一起再次復查問題定義,工程規模和目標

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

5,導出和評價供選擇的解法

分析員應該從他建議的系統邏輯模型出發,導出若干個較高層次的(較抽象的)物理解法供比較和選擇。導出供選擇的解法的最簡單的途徑,是從技術角度出發考慮解決問題的不同方案。分析員可以確定幾組不同的自動化邊界,然后針對每一組邊界考慮如何實現要求的系統。還可以使用組合的方法導出若干種可能的物理系統,例如,在每一類計算機上可能有幾種不同類型的系統,組合各種可能將有微處理機上的批處理系統、微處理機上的交互式系統、小型機上的批處理系統等方案,此外還應該把現有系統和人工系統作為兩個可能的方案一起考慮進去。

亦時當從技術角度提出了一些可能的物理系統之后,應該根據技術可行性的考慮初步排除一些不現實的系統。例如,如果要求系統的響應時間不超過幾秒鐘,顯然應該排除任何批處理方案。把技術上行不通的解法去掉之后,就剩下了一組技術上可行的方案。

其次可以考慮操作方面的可行性。分析員應該根據使用部門處理事務的原則和習慣檢查技術上可行的那些方案,去掉其中從操作方式或操作過程的角度看用戶不能接受的方案。接下來應該考慮經濟方面的可行性。分析員應該估計余下的每個可能的系統的開發成本和運行費用,并且估計相對于現有的系統而言這個系統可以節省的開支或可以增加的收入。
?????? 最后為每個在技術、操作和經濟等方面都可行的系統制定實現進度表,這個進度表不需要(也不可能)制定得很詳細,通常只需要估計生命周期每個階段的工作量。

6,推薦方針

根據可行性研究結果應該決定的- 個關鍵性問題是:是否繼續進行這項開發工程?分析員必須清楚地表明他對這個關鍵性決定的建議。如果分析員認為值得繼續進行這項開發工程,那么他應該選擇一種最好的解法 .并且說明選擇這個解決方案的理由。通常客戶主要根據經濟上是否劃算決定是否投資于一項開發 工程,因此分析員對于所推薦的系統必須進行比較仔細的成本/效益分析。


7,草擬開發方案
??????? 分析員應該為所推薦的方案草擬一份開發計劃,除了制定工程進度表之外還應該估計對各類開發人員(例如,系統分析員、程序員)和各種資源(計算機硬件、軟件工具等)的需要情況,應該指明什么時候使用以及使用多長時間。此外還應該估計系統生命周期每個階段的成本。最后應該給出下一個階段(需求分析)的詳細進度表和成本估計。


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

可行性研究的步驟總結

邏輯模型表達了系統分析員對新系統必須作什么工作,完成什么任務的理解

1,是否繼續該工程的開發的建議

2,所選擇解決方案的解決的說明

3,比較仔細的成本/效益分析

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/534345.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/534345.shtml
英文地址,請注明出處:http://en.pswp.cn/news/534345.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

軟件工程(系統流程圖講解)

系統流程圖是概括地模型物理系統的工具。 基本符號 系統符號 系統流程圖的習慣畫法是使信息在圖中從頂向下或從左到右流動。 例子 某裝配廠有一座存放零件的倉庫,倉庫中現有的各種零件的數量以及每種零件的庫存量臨界值等數據記錄在庫存清單主文件中。當倉庫中零…

軟件工程(數據流圖)

數據流圖有4種基本符號: 正方形或(立方體)表示數據的源點或者終點; 圓角矩形(或圓形)代表變換數據的處理; 開口矩形(或兩條平行橫縣)代表數據存儲; 箭頭表…

網絡互聯基礎(1)

網絡互聯的基本概念 計算機網絡起始于20世紀60年代,當時網絡的概念主要是基于主機(Host)架構的低速串行(Serial)連接,提供應用程序執行、遠程打印和數據服務功能。IBM的系統網絡架構(System Network Architecture,SNA)于非IBM公司的X.25公用…

Python二級筆記(9)

知識點: 1,算法的空間復雜點是指算法在執行過程中所需要的內存空間。 2,結構化程序設計的思想包括:自頂向下、逐步求精、模塊化,限制使用goto語句。 3,字典中的“鍵”可以是整數或者字符串,但…

Python二級筆記(10)

知識點: 1,線性表的鏈式存儲結構中每個結點都由數據域與指針域兩部分組成,增加了存儲空間,所以一般要多于順序存儲結構。 2,軟件測試是為了發現錯誤而執行程序的過程,測試要以查找錯誤為中心。 3&#x…

Qt圖形界面編程入門(6)

類的私有繼承方式 ①基類公有成員和保護成員都作為私有成員被派生類繼承,派生類自身的函數可直接訪問他們,但是派生類對象則只能通過本類的公有函數間接地訪問它們。 ②基類的私有成員成為派生類中更加封閉的私有成員,派生類內部成員函數也…

Qt圖形界面編程入門(7)

派生類的構造函數和析構函數 基類的構造函數和析構函數不能被繼承。 在派生類中,如果派生類新增的成員進行初始化,就必須加入新的構造函數。與此同時,對所有從基類繼承下來的成員的初始化工作還是由基類的構造函數完成,必須在派…

Python二級筆記(11)

知識點: 1,在棧中,棧頂指針top動態反映了棧中元素的變化情況,在循環隊列中,隊尾指針和隊頭指針的動態變化決定隊列的長度,在鏈式存儲結構中.無論是循環鏈表還是線性鏈表,插入和刪除元素時&…

Python二級筆記(12)

知識點: 1,機器周期的同步標準是指CPU訪問存儲器一次所需要的時間 2,int()函數可以將整數字符串轉換成整數,也可以將浮點數轉化為整數,但是不能將其他字符串轉換成整數。 3,當max(函數的參數是字典時&am…

Python二級筆記(13)

知識點: 1,機器數,不管是正數還是負數,其補碼的符號位取反即是偏移碼。 2,循環隊列是隊列的一種順序存儲結構 3, break語句會跳出break所在的最內層循環; try中 的語句出錯時會被捕獲異常,執行except下的…

Python二級筆記(14)

知識點: 1,在循環鏈表中,只要指出表中任何一個結點的位置,就可以從它出發不重復地訪問到表中其他所有的結點。 單向鏈表只有從頭指針開始,沿各結點的指針掃描鏈表中的所有結點。 雙向鏈表從任何一一個結點位置出發就可以訪問到表中其他所有結…

Python二級筆記(15)

知識點: 1,數據流圖(DFD)的作用是支持系統功能建模 2,一個數據庫可以有多個外模型(也稱子模式或用戶模型),但概念模型和內模式(物理模式)只能有一個。 3&a…

Linux基礎(管道符、重定向、轉義字符與環境變量)

1、輸入輸出重定向 簡而言之,輸入重定向是指把文件導入到命令中,而輸出重定向則是指把原本要輸出到屏幕的數據信息寫入到指定文件中。 標準輸入重定向(STDIN,文件描述符為0):默認從鍵盤輸入,也…

軟件工程(數據流圖例題詳解)

假設一家工廠的采購部每天需要一張訂貨報表,報表按零件編號排序,表中列出所有需要再次訂貨的零件。對于每個需要再次訂貨的零件應該列出下述的數據:零件編號,零件名稱,訂貨數量,目前價格,主要供…

軟件工程(數據流圖的命名、用途和自動化邊界)

數據流圖中每個成分的命名是否恰當,直接影響數據流圖的可理解性。因此,給這些成分起名字時應該仔細推敲。 命名 1.為數據流(或數據存儲)命名 (1)名字應代表整個數據流(或數據存儲)的內容,而不是僅僅反映它的某些成分。 (2)不要使用空洞的…

軟件工程(數據字典)

數據字典 數據字典是關于數據的信息的集合,也就是對數據流圖中包含的所有元素的定義的集合。 任何字典最主要的用這都是供人查閱對不了解的條目的解釋,數據字典的作用也正是在軟件分析和設計的過程中給人提供關于數據的描述信息。 數據流圖和數據字典共…

Qt圖形界面編程入門(Qt的歷史、Qt安裝資源鏈接、Qt Creator簡介)

Qt的歷史淵源 Qt是1991年由挪威的奇趣科技(Trolltech)公司開發的跨平臺C圖形用戶界面(GUI)用程序開發框架,2008年,奇趣科技公司被諾基亞公可收購,Qt也因此成為諾基亞公司旗下的編程語言工具,曾稱霸一時的Symbian手機操作系統就是…

Qt圖形界面編程入門(創建一個簡單的程序)

1,手工編碼方式 利用手工編碼方式建立“Hello Qt!”程序 第一步: 得到界面 2,無UI的向導方式 從圖中,我們發現向導為窗口程序提供了3個基類,分別外QMainWindow、QWidget、QDialog,3個基類的區…

Linux基礎(Vim編輯器與Shell命令腳本)

1、Vim文本編輯器 Vim文本編輯器有三種模式 命令模型:控制光標移動,可對文本進行復制、粘貼、刪除和查找得等工作。 輸入模式:正常的文本錄入 末行模式:保存或退出文檔,以及設置編輯環境。 在每次運行Vim編輯器時&…

Python二級筆記(16)

知識點: 1,進程調度僅負責對CPU進行分配 2,帶鏈的隊列是采用鏈式存儲結構表示的隊列。鏈式存儲的存儲單元是不連續的,因為是不連續的存儲空間,所以指針將不會有規律的地連續變化。當front rear NULL時,…