軟件工程第二章

軟工第二章:可行性研究

參考書目

《軟件工程導(dǎo)論(第6版)》是2013年8月1日清華大學(xué)出版社出版的圖書,作者是張海藩嘱丢、牟永敏。本書主要講述了軟件工程的概念、原理和典型的方法學(xué)坦辟,并介紹了軟件項目的管理技術(shù)。本書正文共13章章办,第1章是概述锉走,第2~8章順序講述軟件生命周期各階段的任務(wù)滨彻、過程、結(jié)構(gòu)化方法和工具挪蹭,第9~12章分別講述面向?qū)ο蠓椒▽W(xué)引論亭饵、面向?qū)ο蠓治觥⒚嫦驅(qū)ο笤O(shè)計和面向?qū)ο髮崿F(xiàn)梁厉,第13章介紹軟件項目管理辜羊。附錄講述了用面向?qū)ο蠓椒ㄩ_發(fā)軟件的過程,對讀者深入理解軟件工程學(xué)很有幫助词顾,也是上機實習的好材料八秃。[^1]:百度

[^2]: @當當網(wǎng)

系列文章目錄

軟件工程第0章:點擊跳轉(zhuǎn)文章

軟件工程第一章:點擊跳轉(zhuǎn)文章

文章目錄

軟工第二章:可行性研究

參考書目

系列文章目錄

寫作風格說明

正文

一、可行性研究

(一)是什么肉盹?

(二)為什么昔驱?

(三)怎么辦?

二上忍、系統(tǒng)流程圖

(一)是什么骤肛?

(二)為什么?

(三)怎么辦睡雇?

三萌衬、數(shù)據(jù)流圖(DFD)

一)是什么?

(二)為什么它抱?

(三)怎么辦秕豫?

四、數(shù)據(jù)字典

(一)是什么观蓄?

(二)為什么混移?

(三)怎么辦?

五侮穿、成本/效益分析

(一)是什么歌径?

(二)為什么?

(三)怎么辦亲茅?

總結(jié)

寫作風格說明

在軟件工程這個專欄回铛,我將會盡可能圍繞知識點進行剖析,主要撰寫重難點克锣,不計較細枝末節(jié)茵肃。重點關(guān)注問題是什么,為什么袭祟,怎么樣验残?每周一更,一篇文章基本上是參考書目的一章內(nèi)容巾乳,當然您没,遇到重難點或是篇幅較長的章節(jié)將會適當分割鸟召。

正文

一、可行性研究

(一)是什么氨鹏?

從技術(shù)欧募、經(jīng)濟、工程等角度對項目進行調(diào)查研究和分析比較喻犁,并對項目建成以后可能取得的財務(wù)槽片、經(jīng)濟效益及社會環(huán)境影響進行科學(xué)預(yù)測,為項目決策提供公正肢础、可靠还栓、科學(xué)的軟件咨詢意見。主要從經(jīng)濟传轰、技術(shù)剩盒、社會環(huán)境等方面分析所給出的解決方案是否可行,當解決方案可行并有一定的經(jīng)濟效益或社會效益是才開始真正的基于計算機的系統(tǒng)的開發(fā)慨蛙。

主要內(nèi)容:技術(shù)可行性:現(xiàn)有技術(shù)對系統(tǒng)功能和性能的支持經(jīng)濟可行性:成本-效益分析操作可行性:系統(tǒng)能否在用戶組織內(nèi)正常運作此外還包括法律辽聊、社會效益等方面的分析與研究

(二)為什么?

目的:以最小的代價在最短的時間內(nèi)確定該項目是否可能開發(fā)期贫、是否值得開發(fā)跟匆,從而能夠避免盲目投資,減少不必要的損失通砍。

(三)怎么辦玛臂?

可行性研究過程:①復(fù)查并確定系統(tǒng)規(guī)模和目標②研究正在使用的系統(tǒng)(如果存在的話)③導(dǎo)出新系統(tǒng)的高層邏輯模型④進一步定義問題,直到提出的邏輯模型完全符合系統(tǒng)目標⑤導(dǎo)出和評價供選擇的解法⑥推薦行動方針封孙,即確定是否要將項目進行下去迹冤,如果要的話,用什么解決方案虎忌,并說明理由⑦草擬開發(fā)計劃(進度泡徙、資源、成本)⑧書寫文檔提交審查

二膜蠢、系統(tǒng)流程圖

(一)是什么堪藐?

系統(tǒng)流程圖是概括的描繪系統(tǒng)物理模型的傳統(tǒng)工具。它的基本思想是用圖形符號以黑盒子形式描繪系統(tǒng)里面的每個具體部件(程序挑围、文件庶橱、數(shù)據(jù)庫、表格贪惹、人工過程等),表達數(shù)據(jù)在系統(tǒng)各個部件之間流動的情況寂嘉。

(二)為什么奏瞬?

在進行可行性研究時需要了解和分析現(xiàn)有的系統(tǒng)枫绅,并以概括的形式表達對現(xiàn)有系統(tǒng)的認識;進入設(shè)計階段以后應(yīng)該把設(shè)想的新系統(tǒng)的邏輯模型轉(zhuǎn)變成物理模型,因此需要描繪未來的物理系統(tǒng)的概貌硼端。

(三)怎么辦并淋?

系統(tǒng)流程圖(基本符號)

系統(tǒng)流程圖(系統(tǒng)符號)

舉例:添加用戶操作流程圖

三、數(shù)據(jù)流圖(DFD)

(一)是什么珍昨?

數(shù)據(jù)流圖(Data Flow Diagram):簡稱DFD县耽,它從數(shù)據(jù)傳遞和加工角度,以圖形方式來表達系統(tǒng)的邏輯功能镣典、數(shù)據(jù)在系統(tǒng)內(nèi)部的邏輯流向和邏輯變換過程兔毙,是結(jié)構(gòu)化系統(tǒng)分析方法的主要表達工具及用于表示軟件模型的一種圖示方法。

(二)為什么兄春?

當數(shù)據(jù)在軟件系統(tǒng)中移動時澎剥,它將被系列“變換”所修改。數(shù)據(jù)流圖(DFD)是一種圖形化技術(shù)赶舆,它描繪信息流和數(shù)據(jù)從輸入移動到輸出的過程中所經(jīng)受的變換哑姚。在數(shù)據(jù)流圖中沒有任何具體的物理部件,它只是描繪數(shù)據(jù)在軟件中流動和被處理的邏輯過程芜茵。數(shù)據(jù)流圖是系統(tǒng)邏輯功能的圖形表示叙量,即使不是專業(yè)的計算機技術(shù)人員也容易理解它,因此是分析員與用戶之間極好的通信工具九串。此外绞佩,設(shè)計數(shù)據(jù)流圖時只需考慮系統(tǒng)必須完成的基本邏輯功能,完全不需要考慮怎樣具體地實現(xiàn)這些功能,所以它也是今后進行軟件設(shè)計的很好的出發(fā)點蒸辆。

(三)怎么辦征炼?

1、DFD的基本符號:

數(shù)據(jù)流程圖中有以下幾種主要元素:數(shù)據(jù)流躬贡。數(shù)據(jù)流是數(shù)據(jù)在系統(tǒng)內(nèi)傳播的路徑谆奥,因此由一組成分固定的數(shù)據(jù)組成。如訂票單由旅客姓名拂玻、年齡酸些、單位、身份證號檐蚜、日期魄懂、目的地等數(shù)據(jù)項組成。由于數(shù)據(jù)流是流動中的數(shù)據(jù)闯第,所以必須有流向市栗,除了與數(shù)據(jù)存儲之間的數(shù)據(jù)流不用命名外,數(shù)據(jù)流應(yīng)該用名詞或名詞短語命名。

數(shù)據(jù)源或宿(“宿”表示數(shù)據(jù)的終點)填帽。代表系統(tǒng)之外的實體蛛淋,可以是人、物或其他軟件系統(tǒng)篡腌。對數(shù)據(jù)的加工(處理)褐荷。加工是對數(shù)據(jù)進行處理的單元,它接收一定的數(shù)據(jù)輸入嘹悼,對其進行處理叛甫,并產(chǎn)生輸出。

數(shù)據(jù)存儲杨伙。表示信息的靜態(tài)存儲其监,可以代表文件、文件的一部分缀台、數(shù)據(jù)庫的元素等

2棠赛、DFD的擴展符號:

根據(jù)層級數(shù)據(jù)流圖分為頂層數(shù)據(jù)流圖、中層數(shù)據(jù)流圖和底層數(shù)據(jù)流圖膛腐。除頂層數(shù)據(jù)流圖外睛约,其他數(shù)據(jù)流圖從零開始編號。

頂層數(shù)據(jù)流圖只含有一個加工表示整個系統(tǒng)哲身;輸出數(shù)據(jù)流和輸入數(shù)據(jù)流為系統(tǒng)的輸入數(shù)據(jù)和輸出數(shù)據(jù)辩涝,表明系統(tǒng)的范圍,以及與外部環(huán)境的數(shù)據(jù)交換關(guān)系勘天。

中層數(shù)據(jù)流圖是對父層數(shù)據(jù)流圖中某個加工進行細化怔揩,而它的某個加工也可以再次細化,形成子圖脯丝;中間層次的多少商膊,一般視系統(tǒng)的復(fù)雜程度而定。

底層數(shù)據(jù)流圖是指其加工不能再分解的數(shù)據(jù)流圖宠进,其加工稱為“原子加工”晕拆。

3、DFD分層原則:

在單張數(shù)據(jù)流圖時材蹬,必須注意以下原則:

1. 一個加工的輸出數(shù)據(jù)流不應(yīng)與輸入數(shù)據(jù)流同名实幕,即使它們的組成成分相同。

2. 保持數(shù)據(jù)守恒堤器。也就是說昆庇,一個加工所有輸出數(shù)據(jù)流中的數(shù)據(jù)必須能從該加工的輸入數(shù)據(jù)流中直接獲得,或者說是通過該加工能產(chǎn)生的數(shù)據(jù)闸溃。

3. 每個加工必須既有輸入數(shù)據(jù)流整吆,又有輸出數(shù)據(jù)流拱撵。

4. 所有的數(shù)據(jù)流必須以一個外部實體開始,并以一個外部實體結(jié)束掂为。

5. 外部實體之間不應(yīng)該存在數(shù)據(jù)流

4裕膀、DFD畫法

1. 確定系統(tǒng)的輸入輸出由于系統(tǒng)究竟包括哪些功能可能一時難于弄清楚,可使范圍盡量大一些勇哗,把可能有的內(nèi)容全部都包括進去。此時寸齐,應(yīng)該向用戶了解“系統(tǒng)從外界接受什么數(shù)據(jù)”欲诺、“系統(tǒng)向外界送出什么數(shù)據(jù)”等信息,然后渺鹦,根據(jù)用戶的答復(fù)畫出數(shù)據(jù)流圖的外圍扰法。

2. 由外向里畫系統(tǒng)的頂層數(shù)據(jù)流圖首先,將系統(tǒng)的輸入數(shù)據(jù)和輸出數(shù)據(jù)用一連串的加工連接起來毅厚。在數(shù)據(jù)流的值發(fā)生變化的地方就是一個加工塞颁。接著,給各個加工命名吸耿。然后祠锣,給加工之間的數(shù)據(jù)命名。最后咽安,給文件命名伴网。

3. 自頂向下逐層分解,繪出分層數(shù)據(jù)流圖對于大型的系統(tǒng)妆棒,為了控制復(fù)雜性澡腾,便于理解滩字,需要采用自頂向下逐層分解的方法進行酱床,即用分層的方法將一個數(shù)據(jù)流圖分解成幾個數(shù)據(jù)流圖來分別表示

5列吼、舉例:使用Visio2007制作

1. 訂貨系統(tǒng)的DFD(教材p44圖2.7)

2. 機票預(yù)定系統(tǒng)航空公司為給旅客乘機提供方便拳亿,需要開發(fā)一個機票預(yù)定系統(tǒng)栗竖。各個旅行社把預(yù)定機票的旅客信息(姓名腰池、性別富拗、工作單位伏恐、身份證號碼(護照號碼)纠脾、旅行時間玛瘸、旅行始發(fā)地和目的地,航班艙位要求等)輸入到系統(tǒng)中苟蹈,系統(tǒng)為旅客安排航班糊渊。當旅客交付了預(yù)訂金后,系統(tǒng)打印出取票通知和賬單給旅客慧脱,旅客在飛機起飛前一天憑取票通知和帳單交款取票渺绒,系統(tǒng)核對無誤即打印出機票給旅客。

四、數(shù)據(jù)字典

(一)是什么宗兼?

數(shù)據(jù)字典是指對數(shù)據(jù)的數(shù)據(jù)項躏鱼、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流殷绍、數(shù)據(jù)存儲染苛、處理邏輯等進行定義和描述,其目的是對數(shù)據(jù)流程圖中的各個元素做出詳細的說明主到,使用數(shù)據(jù)字典為簡單的建模項目茶行。簡而言之,數(shù)據(jù)字典是描述數(shù)據(jù)的信息集合登钥,是對系統(tǒng)中使用的所有數(shù)據(jù)元素的定義的集合畔师。

(二)為什么?

數(shù)據(jù)字典最重要的作用是作為分析階段的工具牧牢。任何字典最重要的用途都是供人查詢對不了解的條目的解釋看锉,在結(jié)構(gòu)化分析中,數(shù)據(jù)字典的作用是給數(shù)據(jù)流圖上每個成分加以定義和說明塔鳍。換句話說伯铣,數(shù)據(jù)流圖上所有的成分的定義和解釋的文字集合就是數(shù)據(jù)字典,而且在數(shù)據(jù)字典中建立的一組嚴密一致的定義献幔,很有助于改進分析員和用戶的通信懂傀。

數(shù)據(jù)庫數(shù)據(jù)字典不僅是每個數(shù)據(jù)庫的中心,而且對每個用戶也是非常重要的信息蜡感。用戶可以用SQL語句訪問數(shù)據(jù)庫數(shù)據(jù)字典蹬蚁。

(三)怎么辦?

目前郑兴,數(shù)據(jù)字典幾乎總是作為CASE結(jié)構(gòu)化分析與設(shè)計工具”的一部分實現(xiàn)的犀斋。 在開發(fā)大型軟件系統(tǒng)的過程中,數(shù)據(jù)字典的規(guī)模和復(fù)雜程度迅速增加情连,人工維護數(shù)據(jù)字典幾乎是不可能的叽粹。

如果在開發(fā)小型軟件系統(tǒng)時暫時沒有數(shù)據(jù)字典處理程序,建議采用卡片形式書寫數(shù)據(jù)字典却舀,每張卡片上保存描述一個數(shù)據(jù)的信息虫几。這樣做會使更新和修改比較方便,而且能單獨處理描述每個數(shù)據(jù)的信息挽拔。每張卡片上主要應(yīng)該包含下述這樣一些信息:

名字辆脸、別名、描述螃诅、定義啡氢、位置状囱。

當開發(fā)過程進展到能夠知道數(shù)據(jù)元素的控制信息和使用特點時,再把這些信息記錄在卡片的背面倘是。

五亭枷、成本/效益分析

(一)是什么?

成本效益分析是通過比較項目的全部成本和效益來評估項目價值的一種方法搀崭,成本—效益分析作為一種經(jīng)濟決策方法叨粘,將成本費用分析法運用于政府部門的計劃決策之中,以尋求在投資決策上如何以最小的成本獲得最大的收益瘤睹。常用于評估需要量化社會效益的公共事業(yè)項目的價值宣鄙。

(二)為什么?

在激烈競爭的經(jīng)濟環(huán)境下默蚌,成本控制成為每個企業(yè)關(guān)注的焦點問題。如何科學(xué)分析企業(yè)的各項成本構(gòu)成及影響利潤的關(guān)鍵要素苇羡,找到成本控制的核心思路和關(guān)鍵環(huán)節(jié)绸吸,使企業(yè)更好地應(yīng)對競爭壓力下的成本控制問題。

成本控制絕對不僅僅是單純的壓縮成本費用设江,它需要與宏觀經(jīng)濟環(huán)境锦茁、企業(yè)的整體戰(zhàn)略目標、經(jīng)營方向叉存、經(jīng)營模式等有效結(jié)合码俩,需要建立起科學(xué)合理的成本分析與控制系統(tǒng),讓企業(yè)的管理者全面歼捏、清晰地掌握影響公司業(yè)績的核心環(huán)節(jié)稿存,全面了解企業(yè)的成本構(gòu)架、盈利情況瞳秽,從而把握正確的決策方向瓣履,從根本上改善企業(yè)成本狀況,真正實現(xiàn)有效的成本控制练俐。

(三)怎么辦袖迎?

1. 貨幣的時間價值:設(shè)年利率為i,P元錢在n年后的價值為:F=P(1+i)^n

2. 投資回收期:即工程累計經(jīng)濟效益等于最初投資所需要的時間

3. 純收入:在整個生存周期內(nèi)新系統(tǒng)的累計經(jīng)濟效益與投資之差

4. 投資回收率:P=F1/(1+j)+F2/(1+J)^2…+Fn/(1+j) ^n其中P為現(xiàn)在的投資額腺晾;Fj是第i年年底的效益(i=1燕锥,2,3悯蝉,…归形,n);n是系統(tǒng)的使用壽命泉粉;j是投資回收率连霉。

總結(jié)

可行性研究進一步探討問題定義階段所確定的問題是否有可行的解榴芳。在對問題正確定義的基礎(chǔ)上,通過分析問題(往往需要研究現(xiàn)在正在使用的系統(tǒng))跺撼,導(dǎo)出試探性的解窟感,然后復(fù)查并修正問題定義再次分析問題,改進提出的解法……經(jīng)過定義問題歉井、分析問題柿祈、提出解法的反復(fù)過程最終提出一個符合系統(tǒng)目標的高層次的邏輯模型。然后根據(jù)系統(tǒng)的這個邏輯模型設(shè)想各種可能的物理系統(tǒng)哩至、并且從技術(shù)躏嚎、經(jīng)濟和操作等各方面分析此物理系統(tǒng)的可行性。最后菩貌,系統(tǒng)分析員提出一個推薦的行動方針卢佣,提交用戶和客戶組織負責人審查批準。

在表達分析員對現(xiàn)有系統(tǒng)的認識和描繪他對未來的物理系統(tǒng)的設(shè)想時箭阶,系統(tǒng)流程圖是一個很好的工具虚茶。系統(tǒng)流程圖實質(zhì)上是物理數(shù)據(jù)流圖,它描繪組成系統(tǒng)的主要物理元素以及信息在這些元素間流動和處理的情況仇参。

數(shù)據(jù)流圖的基本符號只有4種嘹叫,它是描繪系統(tǒng)邏輯模型的極好工具。通常數(shù)據(jù)字典和數(shù)據(jù)流圖共同構(gòu)成系統(tǒng)的邏輯模型诈乒。沒有數(shù)據(jù)字典精確定義數(shù)據(jù)流圖中每個元素罩扇,數(shù)據(jù)流圖就不夠嚴密;然而沒有數(shù)據(jù)流圖,數(shù)據(jù)字典也很難發(fā)揮作用怕磨。

成本/效益分析是可行性研究的一項重要內(nèi)容喂饥,是客戶組織負責人從經(jīng)濟角度判斷是否繼續(xù)投資于這項工程的主要依據(jù)。

讀者應(yīng)該著重理解可行性研究的必要性,以及它的基本任務(wù)和基本步驟癌压,在此基礎(chǔ)上再進一步學(xué)習具體方法和工具仰泻。對具體方法和工具的深人認識,又可以反過來加深對可行性研究過程的理解滩届。但是,不要陷于具體方法和工具的細節(jié)中面忽略了對軟件工程基本原理和概念的學(xué)習

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末集侯,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子帜消,更是在濱河造成了極大的恐慌,老刑警劉巖泡挺,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異娄猫,居然都是意外死亡生闲,警方通過查閱死者的電腦和手機月幌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來扯躺,“玉大人,你說我怎么就攤上這事录语。” “怎么了澎埠?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蒲稳。 經(jīng)常有香客問我,道長弟塞,這世上最難降的妖魔是什么拙已? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮倍踪,結(jié)果婚禮上系宫,老公的妹妹穿的比我還像新娘。我一直安慰自己建车,他們只是感情好扩借,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著缤至,像睡著了一般潮罪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上领斥,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天嫉到,我揣著相機與錄音,去河邊找鬼月洛。 笑死何恶,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的嚼黔。 我是一名探鬼主播细层,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼惜辑,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了疫赎?” 一聲冷哼從身側(cè)響起盛撑,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎虚缎,沒想到半個月后撵彻,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡实牡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年陌僵,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片创坞。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡碗短,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出题涨,到底是詐尸還是另有隱情偎谁,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布纲堵,位于F島的核電站巡雨,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏席函。R本人自食惡果不足惜铐望,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一正蛙、第九天 我趴在偏房一處隱蔽的房頂上張望营曼。 院中可真熱鬧,春花似錦锻全、人聲如沸录煤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽新思。三九已至,卻和暖如春夹囚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背假哎。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工舵抹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留劣砍,地道東北人。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓香嗓,卻偏偏與公主長得像靠娱,于是被迫代替她去往敵國和親掠兄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容