《軟件工程導(dǎo)論第3章》由會員分享,可在線閱讀,更多相關(guān)《軟件工程導(dǎo)論第3章(17頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、可行性研究一、目的 開發(fā)任何一個基于計算機的系統(tǒng)都會受到時間和資源的限制。因此,開發(fā)方在接受客戶的項目之前,必須根據(jù)客戶可能提供的時間和資源等條件進行可行性研究。 可行性研究工作要在初步的需求定義之后進行。其主要任務(wù)不是研究如何解決問題,而是要用最小的代價在最短的時間內(nèi)確定該項目是否值得去解決,是否存在可行的解決方案。即在系統(tǒng)層面上論證系統(tǒng)開發(fā)的可行性。 二、可行性研究集中在如下四個最為敏感的方面: 1.經(jīng)濟可行性 這個系統(tǒng)的經(jīng)濟效益能超過它的開發(fā)成本嗎? 2.技術(shù)可行性 使用現(xiàn)有的技術(shù)能實現(xiàn)這個系統(tǒng)嗎?分析技術(shù)冒險的各種因素,例如有關(guān)的技術(shù)是否已進步到足以支持該系統(tǒng)?能否有勝任開發(fā)該系統(tǒng)的熟
2、練技術(shù)人員?為開發(fā)項目的所有硬、軟件資源是否能按期得到?可行性研究 3.操作可行性 系統(tǒng)的操作方式在這個用戶組織內(nèi)行得通嗎?4.法律可行性 確定由于開發(fā)軟件項目是否會侵犯他人、集體或國家的利益,是否會違反國家的法律,并由此承擔法律責任??尚行匝芯?三、可行性研究需要的時間長短取決于工程的規(guī)模。 一般說來,可行性研究的成本只是工程總成本的510??尚行匝芯?四、可行性研究的步驟1、 確定系統(tǒng)規(guī)模和目標 分析員訪問關(guān)鍵人員,仔細閱讀和分析有關(guān)的材料,以便改正含糊或不正確的敘述,清晰的描述對目標系統(tǒng)的一切限制和約束可行性研究 2、 研究目前正在使用的系統(tǒng)1) 新系統(tǒng)必須解決舊系統(tǒng)中存在的問題2) 運
3、行使用舊系統(tǒng)所需要的費用是一個重要經(jīng)濟指標, 如果新系統(tǒng)不能增加收入或減少使用費用,那么從經(jīng)濟角度看新系統(tǒng)就不如舊系統(tǒng)。3) 注意了解并記錄現(xiàn)有系統(tǒng)和其它系統(tǒng)之間接口情 況,這是設(shè)計新系統(tǒng)時的重要約束條件。4) 常見的錯誤做法是花費過多時間去分析現(xiàn)有的系統(tǒng)??尚行匝芯?3. 導(dǎo)出新系統(tǒng)的高層邏輯模型 優(yōu)秀的設(shè)計過程通??偸菑默F(xiàn)有的物理系統(tǒng)出發(fā),導(dǎo)出現(xiàn)有系統(tǒng)的邏輯模型(數(shù)據(jù)流圖),在參考現(xiàn)有系統(tǒng)的邏輯模型,設(shè)想目標系統(tǒng)的邏輯模型,最后根據(jù)目標系統(tǒng)的邏輯模型建造新的物理系統(tǒng)??尚行匝芯?抽象實現(xiàn)改進老系統(tǒng)模型新模型新系統(tǒng) 4.重新定義問題 新系統(tǒng)的邏輯模型實質(zhì)上表達了分析員對新系統(tǒng)必須做什么的看法
4、,用戶是否也有同樣的看法呢?分析員應(yīng)該和用戶一起再次復(fù)查問題定義、工程規(guī)模和目標。 可行性研究的前四個步驟實質(zhì)上構(gòu)成一個循環(huán),分析員定義問題,分析這個問題,導(dǎo)出一個試探性的解,在此基礎(chǔ)上再次定義問題,再一次分析這個問題,修改這個解,繼續(xù)這個循環(huán)過程,直到提出的邏輯模型完全符合系統(tǒng)目標??尚行匝芯?5、導(dǎo)出和評價供選的解法 導(dǎo)出供選擇的解法的最簡單的途徑,是從技術(shù)角度出發(fā)考慮解決問題的不同方案。 依次從技術(shù)可行性、操作可行性、經(jīng)濟可 行性三個方面考慮??尚行匝芯?進度表經(jīng)濟上合算技術(shù)上可行操作上可行技術(shù)上不可行用戶不可能操作不合算 6、推薦一個方案并說明理由7、推薦行動方針 任務(wù)分解,確定負責人
5、 大致進度規(guī)劃 財務(wù)預(yù)算 風險分析及對策8、書寫文檔提交審查 請用戶和使用部門的負責人仔細審查??尚行匝芯?軟件計劃以可行性研究報告為基礎(chǔ),由軟件人員和用戶共同確立軟件的功能和限制,提出軟件計劃任務(wù)書。 一個典型的軟件計劃計劃書的內(nèi)容應(yīng)該包括如下四個方面:1、軟件范圍 軟件計劃的第一個任務(wù)是確定軟件需求描述,主要包括功能、性能、可靠性和接口等問題。2、環(huán)境資源 包括軟件、硬件和人力資源,每種資源均從資源的描述,對資源需求的日程表時間以及對資源應(yīng)用的持續(xù)時間三個方面來說明。制定軟件計劃 3、進度安排 計劃者要協(xié)調(diào)可用資源與項目的工作量,考慮各項任務(wù)之間的互相依賴,而在可能時間時就并行地安排工作,
6、預(yù)見潛在的問題或瓶子口,并提供意外事故處理等。進度安排的主要內(nèi)容 進度安排的主要工作是制定軟件進度表,以明確開發(fā)各階段的任務(wù)和時間安排情況。軟件進度表的內(nèi)容包括:軟件的任務(wù)劃分情況; 各任務(wù)的起始時間和結(jié)束時間;各任務(wù)的工作量和所需的人數(shù); 各任務(wù)之間的銜接關(guān)系;各任務(wù)所需的資源情況; 各任務(wù)完成后所應(yīng)提交的文檔;對各任務(wù)的審查和審查記錄等。 制定軟件計劃 軟件進度計劃的編制方法甘特圖法 甘特圖(Gantt Chart)又稱線條圖,是一種對各項活動進行計劃調(diào)度與控制的圖表,它具有簡單、醒目和便于編制等特點。一般甘特圖的橫方向表示時間,縱方向列出工作。 甘特圖的描述符號和示例。特點:能夠動態(tài)反映
7、軟件項目開發(fā)進展的情況。 難以反映多個任務(wù)之間存在的復(fù)雜的邏輯關(guān)系。制定軟件計劃 網(wǎng)絡(luò)計劃法 網(wǎng)絡(luò)計劃法是用網(wǎng)狀圖表安排與控制各項活動的方法,可通過對網(wǎng)狀圖的分析,方便地確定完成整個工程至少需要多少時間,以及哪些子工程是影響工程進度的關(guān)鍵。一般適應(yīng)于工作步驟密切相關(guān)、錯綜復(fù)雜的工程項目的計劃管理。 網(wǎng)絡(luò)計劃法的描述符號和示例示。4、軟件成本制定軟件計劃 人月神話(Frederick P.Brooks Jr)n缺乏合理的時間進度是造成項目滯后的最主要原因,它比其他所有因素的總和影響還大。n良好的烹飪需要時間,某些任務(wù)無法在不損害結(jié)果的情況下加快速度。n由于編程人員通過純粹的思維活動來開發(fā),我們期
8、待在實現(xiàn)過程中不會碰到困難。但是,我們的構(gòu)思本身是有缺陷的,因此總會有bug。弗雷德里克布魯克斯 人月神話n用人月作為衡量一項工作的規(guī)模是危險和帶有欺騙性的神話,因為它暗示人員數(shù)量和時間是可以相互替換的。n Brooks法則:向進度落后的項目增加人手,只會使進度更加落后。n向軟件項目中增派人手從三個方面增加了項目必要的總體工作量:任務(wù)重新分配本身和所造成的工作中斷;培訓(xùn)新人員;額外的相互溝通。 n關(guān)于進度安排,我的經(jīng)驗是1/3計劃、1/6編碼、1/4構(gòu)件測試以及1/4系統(tǒng)測試。 參考書目1、軟件工程導(dǎo)論 張海藩 清華出版社2、 軟件工程導(dǎo)論學習輔導(dǎo)張海藩 清華出版社2、軟件工程 徐仁佐 華中科技出版社3、軟件工程原理、方法與應(yīng)用 史濟民等 高等教育出版社4、軟件工程方法與實踐李芷 科學出版社5、人月神話 Frederick P.Brooks Jr. 清華出版社