




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、文檔供參考,可復(fù)制、編制,期待您的好評與關(guān)注! 軟件工程導(dǎo)論課后習(xí)題答案第一章 軟件工程概論1什么是軟件危機?軟件危機是指在計算機軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。這些問題表現(xiàn)在以下幾個方面:(1)用戶對開發(fā)出的軟件很難滿意。(2)軟件產(chǎn)品的質(zhì)量往往靠不住。(3)一般軟件很難維護(hù)。(4)軟件生產(chǎn)效率很低。(5)軟件開發(fā)成本越來越大。(6)軟件成本與開發(fā)進(jìn)度難以估計。(7)軟件技術(shù)的發(fā)展遠(yuǎn)遠(yuǎn)滿足不了計算機應(yīng)用的普及與深入的需要。2為什么會產(chǎn)生軟件危機?(1) 開發(fā)人員方面,對軟件產(chǎn)品缺乏正確認(rèn)識,沒有真正理解軟件產(chǎn)品是一個完整的配置組成。造成開發(fā)中制定計劃盲目、編程草率,不考慮維護(hù)工
2、作的必要性。 (2) 軟件本身方面,對于計算機系統(tǒng)來說,軟件是邏輯部件,軟件開發(fā)過程沒有統(tǒng)一的、公認(rèn)的方法論和規(guī)范指導(dǎo),造成軟件維護(hù)困難。(3) 尤其是隨著軟件規(guī)模越來越大,復(fù)雜程度越來越高,原有軟件開發(fā)方式效率不高、質(zhì)量不能保證、成本過高、研制周期不易估計、維護(hù)困難等一系列問題更為突出,技術(shù)的發(fā)展已經(jīng)遠(yuǎn)遠(yuǎn)不能適應(yīng)社會需求。+ 軟件工程方法學(xué)5什么是軟件生存周期?軟件生存周期是指從軟件定義、開發(fā)、使用、維護(hù)到淘汰的全過程。6軟件生存周期為什么劃分成階段? (1) 任何一個階段的具體任務(wù)不僅獨立,而且簡單,便于不同人員分工協(xié)作,從而降低整個軟件開發(fā)工作的困難程度。(2) 可以降低每個階段任務(wù)的復(fù)
3、雜程度,簡化不同階段的聯(lián)系,有利于工程的組織管理,也便于采用良好的技術(shù)方法。(3) 使軟件開發(fā)的全過程以一種有條不紊的方式進(jìn)行,保證軟件的質(zhì)量,特別是提高了軟件的可維護(hù)性。7應(yīng)該怎樣來劃分階段?(1)每一個階段的任務(wù)盡可能獨立;(2)同一階段內(nèi)的任務(wù)性質(zhì)盡可能相同;(3)每一個階段任務(wù)的開始和結(jié)束有嚴(yán)格的標(biāo)準(zhǔn)。8軟件開發(fā)模型有幾種?它們的開發(fā)方法有可特點?軟件開發(fā)模型有瀑布型、漸增型和變換型。瀑布型開發(fā)方法是按照軟件生存周期的劃分依次實施,每一個階段有明確規(guī)定的任務(wù)。它的特點:(1)各個階段的順序性和依賴性;(2)劃分邏輯設(shè)計與物理設(shè)計,盡可能推遲程序的物理實現(xiàn);(3)每個階段必須完成規(guī)定的文
4、檔,對其中問題通過復(fù)審及早發(fā)現(xiàn),及早解決。漸增型開發(fā)方法及特點:(1) 從部分需求出發(fā),先建立一個不完全的系統(tǒng),通過測試運行該系統(tǒng)取得經(jīng)驗和信息反饋,加深對軟件需求的理解,進(jìn)一步使系統(tǒng)擴充和完善。如此反復(fù),直至軟件人員和用戶對所設(shè)計完成的軟件系統(tǒng)滿意為止。(2) 在漸增型開發(fā)下的軟件是隨軟件開發(fā)的過程而逐漸形成的。(3) 漸增型開發(fā)方法適合于知識型軟件的開發(fā),設(shè)計系統(tǒng)時對用戶需求的認(rèn)識開始不是很清楚的,需要在開發(fā)過程中不斷認(rèn)識、不斷獲得新的知識去豐富和完善系統(tǒng)。多數(shù)研究性質(zhì)的試驗軟件,一般采用此方法。變換型開發(fā)方法及特點:(1)從軟件需求的形式化規(guī)格說明出發(fā),經(jīng)過一系列的程序變換,得到最終的程
5、序系統(tǒng)。(2)該方法必須有嚴(yán)格的數(shù)學(xué)理論和形式化技術(shù)的支持。9.什么是軟件工程?軟件工程是指導(dǎo)計算機軟件開發(fā)和維護(hù)的工程學(xué)科。(1) 它采用工程的概念、原理、技術(shù)和方法來開發(fā)和維護(hù)軟件;(2) 它將管理技術(shù)與當(dāng)前經(jīng)過時間考驗的而證明是正確的技術(shù)方法結(jié)合起來;(3) 它強調(diào)使用生存周期方法學(xué)和結(jié)構(gòu)分析和結(jié)構(gòu)技術(shù);(4) 經(jīng)過人們長期的努力和探索,圍繞著實現(xiàn)軟件優(yōu)質(zhì)高產(chǎn)這個目標(biāo),從技術(shù)到管理兩個方面做了大量的努力,逐漸形成了"軟件工程學(xué)"這一新的學(xué)科。10什么是軟件工程環(huán)境:方法與工具的結(jié)合,加上配套的軟、硬件支持稱為軟件工程環(huán)境。它能支持開發(fā)者按照軟件工程的方法,全面完成生存
6、周期中的各項任務(wù)。第二章可行性研究習(xí)題答案*老師重點:數(shù)據(jù)流圖數(shù)據(jù)字典成本估計(成本/效益分析下)*1. 問題定義的任務(wù)和主要工作?問題定義的任務(wù):將用戶提出的要求具體化、定量化;確定研制系統(tǒng)的范圍,明確研制的邊界。問題定義階段的工作:(1) 通過調(diào)查研究,了解系統(tǒng)需求;(2) 確定系統(tǒng)的功能需求、性能需求、可靠性需求、安全及保密性、資源、開發(fā)費用及開發(fā)進(jìn)度等的需求;(3) 問題定義階段的產(chǎn)品-系統(tǒng)目標(biāo)與范圍說明書。2.可行性研究目的?確定在問題定義中所提出的問題是否值得去解,在限制條件下,問題能否解決。3可行性研究的任務(wù)?(1) 進(jìn)一步分析和澄清問題的定義,在澄清問題的基礎(chǔ)上,導(dǎo)出系統(tǒng)的邏輯
7、模型;(2) 從系統(tǒng)邏輯模型中,選擇問題的若干種主要解法,研究每一種解法的可行性,為以后的行動提出建議;(3) 如果問題沒有可行的解,建議停止系統(tǒng)開發(fā);如果問題有可行的解,應(yīng)該推薦一個較好的解決方案,并為工程制定一個初步的計劃。4可行性研究包括哪幾方面的內(nèi)容?(1)技術(shù)可行性:現(xiàn)有技術(shù)能否實現(xiàn)本系統(tǒng),現(xiàn)有技術(shù)人員能否勝任,開發(fā)系統(tǒng)的資源能否滿足;(2)經(jīng)濟可行性:經(jīng)濟效益是否超出開發(fā)成本;(3)操作可行性:系統(tǒng)操作在用戶內(nèi)部行得通嗎?(4)法律可行性:新系統(tǒng)開發(fā)是否會侵犯他人、集體或國家利益,是否違反國家法律。5可行性研究的步驟?(1)復(fù)查系統(tǒng)的規(guī)模和目標(biāo);(2)研究目前正在使用的系統(tǒng),總結(jié)現(xiàn)
8、有系統(tǒng)的優(yōu)劣,提出新系統(tǒng)的雛形;(3)導(dǎo)出新系統(tǒng)的高層邏輯模型;(4)推薦建議方案; (5)推薦行動方針;(6)書寫計劃任務(wù)書(可行性報告); (7)提交審查。6. 可行性研究報告的主要內(nèi)容?可行性分析的結(jié)果是可行性研究報告,內(nèi)容包括:(1) 系統(tǒng)概述:說明開發(fā)的系統(tǒng)名稱,提出單位和開發(fā)單位。(2) 可行性研究的前提:系統(tǒng)目標(biāo);要求;約束和限制;可行性研究的基本準(zhǔn)則等。(3) 對現(xiàn)有系統(tǒng)的分析:處理流程,圖示說明現(xiàn)有系統(tǒng)的處理流程和數(shù)據(jù)流程;現(xiàn)有系統(tǒng)存在的問題。 (4) 系統(tǒng)需求:主要功能;主要性能及其要求;操作要求;信息要求;限制性要求。(5) 建議系統(tǒng):系統(tǒng)目標(biāo);處理流程;系統(tǒng)結(jié)構(gòu),功能,
9、性能;系統(tǒng)技術(shù)可行性;投資和效益分析;操作可行性;法律可行性。(6) 其它可選方案:與國內(nèi)外同類型方案的比較;提出一兩個可行性方案供論證和探討。(7) 制定下一階段的預(yù)算。(8) 結(jié)論性意見:由用戶方、設(shè)計方和投資方共同簽署意見。第三章需求分析習(xí)題答案*老師重點:實體-聯(lián)系圖狀態(tài)轉(zhuǎn)換圖其他圖形工具*1.需求分析的描述工具有哪些?有數(shù)據(jù)流圖、數(shù)據(jù)字典、判定表、判定樹、結(jié)構(gòu)化自然語言、層次方框圖、Warnier圖、IPO圖和需求描述語言等。2.需求分析的基本任務(wù)是什么?準(zhǔn)確定義未來系統(tǒng)的目標(biāo),確定為了滿足用戶的需要系統(tǒng)必須做什么。3.怎樣建立目標(biāo)系統(tǒng)的邏輯模型?要經(jīng)過哪些步驟?建立目標(biāo)系統(tǒng)的邏輯模
10、型的過程也就是數(shù)據(jù)流圖的分解過程。它的導(dǎo)出過程如圖: 4.什么是結(jié)構(gòu)化分析?它的結(jié)構(gòu)化體現(xiàn)在哪里?結(jié)構(gòu)化分析:使用數(shù)據(jù)流程圖、數(shù)據(jù)字典、結(jié)構(gòu)化英語、判定表和判定樹等工具,來建立一種新的、稱為結(jié)構(gòu)化說明書的目標(biāo)文檔-需求規(guī)格說明書。結(jié)構(gòu)化體現(xiàn)在將軟件系統(tǒng)抽象為一系列的邏輯加工單元,各單元之間以數(shù)據(jù)流發(fā)生關(guān)聯(lián)。5.軟件需求規(guī)格說明書由哪些部分組成?組成包括:(1) 引言:編寫目的、背景說明、術(shù)語定義及參考資料等。(2) 概述主要功能、約束條件或特殊需求。(3) 數(shù)據(jù)流圖與數(shù)據(jù)字典。(4) 用戶接口、硬件接口及軟件接口。(5) 性能需求、屬性等。(6) 其它需求,如數(shù)據(jù)庫、操作及故障處理等。6.為什
11、么數(shù)據(jù)流圖要分層?畫分層的DFD要遵循哪些原則?分層的目的:便于逐步細(xì)化、結(jié)構(gòu)清晰。畫分層的DFD要遵循哪些原則:(1)父圖與子圖之間數(shù)據(jù)要平衡。(2)分解的深度和層次達(dá)到使加工足夠簡單、易于理解的基本加工為止。(3)區(qū)分局部文件和局部外部項(局限于數(shù)據(jù)流中某一層或某幾層的文件和外部項)。(4)不要把控制流作為數(shù)據(jù)流。(5)忽略瑣碎的枝節(jié)。(6)每個數(shù)據(jù)流要有一個合適的名字,盡量使用現(xiàn)實系統(tǒng)中有具體意義的名字。7.系統(tǒng)流程圖與數(shù)據(jù)流程圖有什么區(qū)別?系統(tǒng)流程圖描述系統(tǒng)物理模型的工具,數(shù)據(jù)流程圖描述系統(tǒng)邏輯模型的工具。系統(tǒng)流程圖從系統(tǒng)功能的角度抽象的描述系統(tǒng)的各個部分及其相互之間信息流動的情況。數(shù)
12、據(jù)流程圖從數(shù)據(jù)傳送和加工的角度抽象的描述信息在系統(tǒng)中的流動和數(shù)據(jù)處理的工作狀況。8.數(shù)據(jù)字典包括哪些內(nèi)容?它的作用是什么?數(shù)據(jù)字典是描述數(shù)據(jù)流圖中數(shù)據(jù)的信息的集合。它對數(shù)據(jù)流圖上每一個成分:數(shù)據(jù)項、文件(數(shù)據(jù)結(jié)構(gòu))、數(shù)據(jù)流、數(shù)據(jù)存儲、加工和外部項等給以定義和說明;它主要由數(shù)據(jù)流描述、加工描述和文件描述三部分組成。對用戶來講,數(shù)據(jù)字典為他們提供了數(shù)據(jù)的明確定義;對系統(tǒng)分析員來講,數(shù)據(jù)字典幫助他們比較容易修改已建立的系統(tǒng)邏輯模型。9.描述加工邏輯的工具有哪些?有決策樹(又稱判定樹)、決策表(又稱判斷表)和結(jié)構(gòu)化語言等。10.某單位擬開發(fā)一個計算機房產(chǎn)管理系統(tǒng),要求系統(tǒng)具有分房、 調(diào)房、退房和查詢統(tǒng)
13、計等功能。房產(chǎn)科將用戶申請表輸入系統(tǒng) 后,系統(tǒng)首先檢查申請表的合法性,對不合法的申請表,系統(tǒng)拒絕接收;對合法的申請表根據(jù)類型分別進(jìn)行處理。 (1) 如果是分房申請,則根據(jù)申請者的情況(年齡、工齡、職稱、職務(wù)、家庭人口等)計算其分?jǐn)?shù),當(dāng)分?jǐn)?shù)高于閥值分?jǐn)?shù)時,按分?jǐn)?shù)高低將申請單插到分房隊列的適當(dāng)位置。在進(jìn)行分房時,從空房文件中讀出空房信息,如房號、面積、等級、單位面積房租等,把好房優(yōu)先分給排在分房隊列前面的符合該等級房條件的申請者;從空房文件中刪掉這個房號的信息,并從分房隊列中刪掉該申請單,再把此房號的信息和住戶信息一起寫到住房文件中,輸出住房分配單給住戶,同時計算房租,并將算出的房租寫到房租文件中
14、。 (2) 如果是退房申請,則從住房文件和房租文件中刪除有關(guān)信息,再把此房號的信息寫到空房文件中。(3) 如果是調(diào)房申請,則根據(jù)申請者的情況確定其住房等級,然后在空房文件中查找屬于該等級的空房,退掉原住房,再進(jìn)行與分房類似的處理。 (4) 住戶可以向系統(tǒng)查詢目前分房的閥值分?jǐn)?shù),居住某類房屋的條件,某房號的單位面積及房租等信息。房產(chǎn)科可以要求系統(tǒng)打印住房情況的統(tǒng)計表,或更改某類房屋的居住條件、單位面積和房租等。用數(shù)據(jù)流圖描繪該系統(tǒng)的功能需求;在數(shù)據(jù)字典中給出主要的數(shù)據(jù)流、文件和加工說明。 第四章 無重點! 第五章 習(xí)題參考答案*老師重點:面向數(shù)據(jù)流的設(shè)計方法*一.回答問題1.詳細(xì)設(shè)計的目的?為軟
15、件結(jié)構(gòu)圖(SC圖或HC圖)中的每一個模塊確定采用的算法和塊內(nèi)數(shù)據(jù)結(jié)構(gòu),用某種選定的表達(dá)工具給出清晰的描述.2.詳細(xì)設(shè)計的主要任務(wù)?編寫軟件的“詳細(xì)設(shè)計說明書”.軟件人員要完成的工作:(1) 為每一個模塊確定采用的算法, 選擇某種適當(dāng)?shù)墓ぞ弑磉_(dá)算法的過程,寫出模塊的詳細(xì)過程描述.(2) 確定每一模塊使用的數(shù)據(jù)結(jié)構(gòu).(3) 確定模塊結(jié)構(gòu)的細(xì)節(jié),包括對系統(tǒng)外部的接口和用戶界面,對系統(tǒng)內(nèi)部其它模塊的接口,以及關(guān)于模塊輸入數(shù)據(jù)、輸出數(shù)據(jù)及局部數(shù)據(jù)的全部細(xì)節(jié).(4) 為每一個模塊設(shè)計出一組測試用例,以便在編碼階段對模塊代碼(即程序)進(jìn)行預(yù)定的測試.3.結(jié)構(gòu)化程序設(shè)計的基本原則?在詳細(xì)設(shè)計中所有模塊都使用單
16、入口、單出口的順序、選擇、循環(huán)三種基本控制結(jié)構(gòu). 4.比較面向數(shù)據(jù)流和面向數(shù)據(jù)結(jié)構(gòu)兩類設(shè)計方法的異同?相同點:(1) 遵守結(jié)構(gòu)程序設(shè)計“由頂向下”逐步細(xì)化的原則,并以其為共同的基礎(chǔ);(2) 均服從“程序結(jié)構(gòu)必須適應(yīng)問題結(jié)構(gòu)”的基本原則,各自擁有從問題結(jié)構(gòu)(包括數(shù)據(jù)結(jié)構(gòu))導(dǎo)出程序結(jié)構(gòu)的一組映射規(guī)則。不同點:(1) 面向數(shù)據(jù)流的設(shè)計以數(shù)據(jù)流圖為基礎(chǔ),在分析階段用DFD表示軟件的邏輯模型,在設(shè)計階段按數(shù)據(jù)流類型,將數(shù)據(jù)流圖轉(zhuǎn)換為軟件結(jié)構(gòu)。面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計以數(shù)據(jù)結(jié)構(gòu)為基礎(chǔ),從問題的數(shù)據(jù)結(jié)構(gòu)出發(fā)導(dǎo)出它的程序結(jié)構(gòu)。(2) 面向數(shù)據(jù)流的設(shè)計的最終目標(biāo)是軟件的最終SC圖,面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計的最終目標(biāo)是程序的
17、過程性描述。5.比較Jackson方法和LCP方法的異同? Jackson與LCP設(shè)計方法都是以數(shù)據(jù)結(jié)構(gòu)為出發(fā)點,以程序的過程描述為最終目標(biāo),設(shè)計步驟基本相似。它們的主要差別是:(1)使用不同的表達(dá)工具,其中LCP方法中的表達(dá)工具Warnier圖 比Jackson設(shè)計方法中的表達(dá)工具Jackson圖有更大的通用性;(2)Jackson方法的步驟和指導(dǎo)原則有一定的靈活性,而LCP設(shè)計 方法則更加嚴(yán)密。6.詳細(xì)設(shè)計的描述工具應(yīng)具備什么功能?無論哪類描述工具不僅要具有描述設(shè)計過程,如控制流程、處理功能、數(shù)據(jù)組織及其它方面的細(xì)節(jié)的能力,而且在編碼階段能夠直接將它翻譯為用程序設(shè)計語言書寫的源程序。 二.
18、給出一組數(shù)從小到大的排序算法,分別用下列工具描述其詳細(xì)過程:(1)(1) 流程圖;(2)NS圖;(3)PAD圖;(4)PDL語言。 PDL語言略 三.根據(jù)后面給出“卡片的分類及統(tǒng)計”項目說明,完成下列工作: (1)用Jackson圖表示輸入與輸出數(shù)據(jù)結(jié)構(gòu),找出它們之間的對應(yīng)單元; (2)畫出用Jackson圖表示的程序結(jié)構(gòu); (3)列出程序所需用的操作,并加到上一步畫出的程序結(jié)構(gòu)圖上; (4)用Jackson偽代碼寫出程序的過程表示。 輸入卡片分析程序。一疊輸入卡片按內(nèi)容分為K1、K2、K3三類,卡片的排列規(guī)則是:以K1卡始,以K2卡終。起始卡之前屬前置部分,不含K1卡;起始卡與終了卡之間屬分
19、批部分,不含K2卡。如圖: 試用Jackson方法編一程序,要求依次完成下列分析工作: -統(tǒng)計起始卡前卡片的張數(shù),存入A; -打印起始卡的內(nèi)容; -統(tǒng)計起始卡后出現(xiàn)的K1卡和K3卡總批數(shù),存入B; -統(tǒng)計起始卡后出現(xiàn)的K1卡的張數(shù),存入C; -統(tǒng)計起始卡后出現(xiàn)的K3卡的批數(shù),存入D; -打印終了卡的內(nèi)容; -打印A、B、C、D四個統(tǒng)計值。 程序的過程表示及偽代碼略第六章 習(xí)題參考答案*老師重點:結(jié)構(gòu)程序的設(shè)計過程設(shè)計的工具面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法*1. 編碼的任務(wù)?使用選定的程序設(shè)計語言,把模塊的過程性描述翻譯為用語言書寫的源程序(源代碼)。 2. 對源程序基本要求?源程序要求:正確可靠、簡明清
20、晰、效率高。(1) 源程序的正確性是對程序質(zhì)量的最基本要求;(2) 源程序的簡明清晰,便于驗證源代碼和模塊規(guī)格說明的一致性,容易進(jìn)行測試和維護(hù);(3) 對于大多數(shù)模塊,編碼時應(yīng)該把簡明清晰放在第一位;(4) 除了編碼階段產(chǎn)生源代碼外,在測試階段也需要編寫一些測試程序,用于對軟件的測試。3. 程序設(shè)計語言的特點?(1) 名字說明:程序中使用對象的名字,能為編譯程序所檢查和識別;(2) 類型說明:定義對象的類型,確定該對象的使用方式;(3) 初始化:為變量提供適當(dāng)?shù)某跏贾祷蛴上到y(tǒng)給變量賦一特殊的表明未初始化的值;(4) 對象的局部性:程序中真正需要的那部分才能訪問的對象;(5) 程序模塊:控制程序
21、對象的名字;(6) 循環(huán)控制結(jié)構(gòu):如FOR語句、WHILE-DO語句、REPEAT-UNTIL語句等;(7) 分支控制結(jié)構(gòu):如IF語句、CASE語句等;(8) 異常處理:為程序運行過程中發(fā)生的錯誤和意外事件提供檢測和處理上的幫助;(9) 獨立編譯:能分別編譯各個程序單元。4. 選擇程序設(shè)計語言需要考慮的因素?(1) 選擇用戶熟悉、便于用戶維護(hù)的語言。(2) 選擇目標(biāo)系統(tǒng)的環(huán)境中可以提供的編譯程序所能選用的語言。(3) 選擇可以得到的軟件工具,能支持程序開發(fā)中可以利用的語言。(4) 根據(jù)工程規(guī)模的大小、目標(biāo)系統(tǒng)應(yīng)用范圍,如實時應(yīng)用選擇Ada語言或匯編語言,系統(tǒng)軟件開發(fā)選擇C語言或匯編語言,軟件開
22、發(fā)中若含有大量數(shù)據(jù)操作則選擇SQL、dBASE等數(shù)據(jù)庫語言等。(5) 選擇程序員熟悉的語言。(6) 選擇標(biāo)準(zhǔn)化程度高、程序可移植性好的語言。(7) 根據(jù)算法與計算的復(fù)雜性、數(shù)據(jù)結(jié)構(gòu)的復(fù)雜性選擇。如對于系統(tǒng)程序和結(jié)構(gòu)復(fù)雜的應(yīng)用程序,選擇支持?jǐn)?shù)組、記錄(或結(jié)構(gòu))與指針動態(tài)數(shù)據(jù)結(jié)構(gòu)的Pascal語言或C語言。(8) 根據(jù)實時要求系統(tǒng)需要的響應(yīng)速度和效率選擇相應(yīng)的語言。5. 編碼風(fēng)格的指導(dǎo)原則。(1) 源程序:包括適當(dāng)?shù)臉?biāo)識符、適當(dāng)?shù)淖⒔?、程序清單的合理布局與清晰;(2) 數(shù)據(jù)說明:數(shù)據(jù)結(jié)構(gòu)或數(shù)據(jù)類型的說明次序標(biāo)準(zhǔn)化;變量名稱盡量有意義;對復(fù)雜的數(shù)據(jù)結(jié)構(gòu)在注解中要說明在程序設(shè)計中實現(xiàn)這個數(shù)據(jù)結(jié)構(gòu)的方法
23、。(3) 語句的構(gòu)造簡單明了:不要為節(jié)省空間將多個語句寫在同一行;盡量避免復(fù)雜的條件及“非”條件的測試;避免大量使用循環(huán)嵌套和條件嵌套;括號的使用是為了使邏輯表達(dá)式和算術(shù)表達(dá)式的運算順序清晰直觀。(4) 效率:考慮程序運行的時間存儲器效率、輸入/輸出的效率;在處理程序正確性、清晰與效率之間的關(guān)系時先求程序正確后求快;先求清楚后求快;保持程序簡單以求快;書寫清楚,不為“效率”犧牲清晰。6. 第四代語言(4GL)應(yīng)具備哪些的特征?(1) 具有很強的數(shù)據(jù)管理能力,能對數(shù)據(jù)庫進(jìn)行有效的存取、查詢和其它有關(guān)操作;(2) 能提供一組高效的、非過程化的命令,組成語言的基本語句,編程時用戶只需用這些命令說明“
24、做什么”,不必描述實現(xiàn)的細(xì)節(jié);(3) 能滿足多功能、一體化的要求。為此,語言中除必須含有控制程序邏輯與實現(xiàn)數(shù)據(jù)庫操作的語句外,還應(yīng)包括生成與處理報表、表格、圖形,以及實現(xiàn)數(shù)據(jù)運算和分析統(tǒng)計功能的各種語句,共同構(gòu)成一個一體化的語言,以適應(yīng)多種應(yīng)用開發(fā)的需要。 第七章 習(xí)題參考答案*老師重點:軟件測試的目標(biāo)單元測試集成測試確認(rèn)測試*一.回答問題 1.軟件測試的基本任務(wù)?軟件測試是按照特定的規(guī)則,發(fā)現(xiàn)軟件錯誤的過程;好的測試方案是盡可能發(fā)現(xiàn)迄今尚未發(fā)現(xiàn)錯誤的測試;成功的測試方案是發(fā)現(xiàn)迄今尚未發(fā)現(xiàn)錯誤的測試; 2.測試與調(diào)試的主要區(qū)別?(1)(1) 測試從一個側(cè)面證明程序員的失?。徽{(diào)試證明程序員的正確
25、;(2)(2) 測試從已知條件開始,使用預(yù)先定義的程序,且有預(yù)知的結(jié)果,不可預(yù)見的僅是程序是否通過測試;調(diào)試從不可知內(nèi)部條件開始,除統(tǒng)計性調(diào)試外,結(jié)果是不可預(yù)見的;(3)(3) 測試有計劃并且要進(jìn)行測試設(shè)計;調(diào)試不受時間約束;(4)(4) 測試是發(fā)現(xiàn)錯誤、改正錯誤、重新測試的過程;調(diào)試是一個推理的過程;(5)(5) 測試執(zhí)行是有規(guī)程的;調(diào)試執(zhí)行要求程序員進(jìn)行必要的推理;(6)(6) 測試由獨立的測試組在不了解軟件設(shè)計的件下完成;調(diào)試由了解詳細(xì)設(shè)計的程序員完成;(7)(7) 大多數(shù)測試的執(zhí)行和設(shè)計可由工具支持;調(diào)試用的工具主要是調(diào)試器。 3.人工復(fù)審的方式和作用?人工復(fù)審的方式:代碼會審、走查和
26、排練和辦公桌檢查;人工復(fù)審的作用:檢查程序的靜態(tài)錯誤。 6.路徑測試技術(shù)中幾種主要覆蓋的含義?舉例說明?語句覆蓋:至少執(zhí)行程序中所有語句一次。 判定覆蓋:使被測程序中的每一個分支至少執(zhí)行一次。故也稱為分支覆蓋。條件覆蓋:執(zhí)行所有可能的穿過程序的控制路流程。條件組合測試:設(shè)計足夠的測試用例,使每個判定中的所有可能條件取值組合至少執(zhí)行一次。(例略) 7.等價分類法的測試技術(shù)采用的一般方法?舉例說明?(1)(1) 為每個等價類編號;(2)(2) 設(shè)計一個新的測試方案,以盡可能多的覆蓋尚未被覆蓋的有效等價類,重復(fù)這一步驟,直到所有有效等價類被覆蓋為止。(3)(3) 設(shè)計一個新的測試方案,使它覆蓋一個尚
27、未被覆蓋的無效等價類, 重復(fù)這一步驟,直到所有無效等價類被覆蓋為止。(例略) 8.軟件測試的一般步驟?單元測試、子系統(tǒng)測試、系統(tǒng)測試、驗收測試、平行測試。 9.比較集成試的兩種方式的優(yōu)劣?非漸增式測試方式:分別測試模塊,再把所有模塊按設(shè)計要求放在一起組成所要的程序。該方法編寫測試軟件工作量大,模塊間的接口錯誤發(fā)現(xiàn)得晚,錯誤定位較難診斷,總體測試有的錯誤容易漏掉,測試時間相對較少,可以并行測試所有模塊,能充分利用人力,加快工程進(jìn)度。漸增式測試方式:把下一個要測試的模塊,同已經(jīng)測試好的那些模塊結(jié)合起來進(jìn)行測試。該方法利用已測試過的模塊作測試軟件,開銷小,較早發(fā)現(xiàn)模塊間的接口錯誤,錯誤定位往往和最近
28、入的模塊相關(guān),對已測試好的模塊可在新加入模塊的條件下受到新的檢驗,測試更徹底,需要較多的測試時間,不能并行測試??偟膩碚f,漸增式測試方法比較好。 10.軟件測試的策略?(1)(1) 在任何情況下都應(yīng)使用邊界值分析的方法。(2)(2) 必要時用等價類劃分法補充測試方案。(3)(3) 必要時再用錯誤推測法補充測試方案。(4)(4) 對照程序邏輯,檢查已設(shè)計出的測試方案。(5)(5) 根據(jù)對程序可靠性的要求采用不同的邏輯覆蓋標(biāo)準(zhǔn),再補充一些測試方案。 第八章 軟件維護(hù)習(xí)題答案軟件維護(hù)的定義:第九章 軟件工程管理習(xí)題答案面向?qū)ο蟮母拍睿旱谑?軟件工程環(huán)境習(xí)題答案1.軟件工具是什么?按照軟件生存周期可
29、將其分為幾類?軟件工具是指為支持計算機軟件及其文檔的開發(fā)、維護(hù)、模擬、移植或管理而研制的程序系統(tǒng)。按照軟件生存周期可將其分為如下幾類: (1) 需求分析:如數(shù)據(jù)流圖繪制與分析工具、狀態(tài)轉(zhuǎn)換圖繪制與分析工具、面向?qū)ο蟮哪P秃头治龉ぞ?、快速原型?gòu)造工具、數(shù)據(jù)字典與數(shù)據(jù)庫工具等。(2) 軟件設(shè)計:如HIPO圖、PDL(程序設(shè)計語言)或PAD(問題分析圖)支持工具等。(3) 編碼:集成化的程序員工作平臺。如各種正文編輯器和常規(guī)的編譯程序、匯編程序、連結(jié)程序及符號調(diào)試器等。(4) 軟件測試:如靜態(tài)分析器、動態(tài)覆蓋率測試器、測試用例生成器、測試報告生成器及環(huán)境模擬器等。(5) 軟件維護(hù):如反匯編程序、反編
30、譯程序、程序結(jié)構(gòu)分析器、源程序格式化工具、文檔生成工具、源程序至PAD(問題分析圖)或流程圖的自動轉(zhuǎn)換工具等。2.評價軟件工具的原則?(1) 易用性:友好的用戶界面,用戶樂于使用;(2) 對開發(fā)方法的支持:能滿足預(yù)期的任務(wù)和功能需求,且能支持完成該任務(wù)所遵循的方法學(xué);(3) 穩(wěn)健性:具備自檢測機制,即使在故障情況下也不會導(dǎo)致嚴(yán)重后果;(4) 性能:能使資源得到充分有效的利用;(5) 工具結(jié)構(gòu)柔性:工具結(jié)構(gòu)是柔軟的、可修改的和可擴充的。3.什么是軟件開發(fā)環(huán)境?按技術(shù)發(fā)展方向分為哪幾類環(huán)境?將一組相關(guān)的軟件工具按照一定的軟件開發(fā)方法、軟件生產(chǎn)和維護(hù)模型有機的組合起來,為特定的領(lǐng)域所使用,以支持從需
31、求分析、設(shè)計、編碼、測試直到維護(hù)的整個軟件生命周期的計算機輔輔助開發(fā)程序系統(tǒng)稱為軟件開發(fā)環(huán)境。按技術(shù)發(fā)展方向軟件開發(fā)環(huán)境可分為以語言為中心的環(huán)境、面向結(jié)構(gòu)化的環(huán)境和工具箱環(huán)境。4.工具箱類軟件工具的基本特點?(1) 在某種OS基礎(chǔ)上通過一組小的實用工具構(gòu)成;(2) 雖然各工具之間相互獨立,但系統(tǒng)能提供統(tǒng)一的用戶命令界面及工具之間統(tǒng)一的數(shù)據(jù)交換方式;(3) 工具箱中各工具之間是相互獨立的,用戶可根據(jù)需要進(jìn)行靈活的增加和裁減;(4) 工具箱環(huán)境中一般除了包括支持編碼階段的工具(如編輯程序、編譯程序、匯編程序、連結(jié)程序調(diào)試程序等)外,還可包括支持大型軟件開發(fā)方面的工具;(5) 由于工具箱環(huán)境具有較強
32、的通用性和靈活性,因而目前商品化的算機系系統(tǒng)上配置的軟件環(huán)境大多屬于這一類。如:UNIX程序設(shè)計環(huán)境、及VAX/VNS SET、PCDE、APCE等程序設(shè)計環(huán)境。5.軟件開發(fā)環(huán)境的組成與各成分的作用?軟件開發(fā)環(huán)境的構(gòu)成:交互式人機界面、工具集及軟件環(huán)境數(shù)據(jù)庫。交互式人機界面:人機界面(也稱用戶界面或人機對話)是用戶與計算機系統(tǒng)之間相互交流的中間媒介。工具集:工具集中軟件工具是構(gòu)成軟件開發(fā)環(huán)境的基本成分。包含在軟件開發(fā)環(huán)境中的工具不是各自封閉和分離的,而是與某種軟件開發(fā)方法或某種軟件加工模型相適應(yīng),并以一種綜合的、一致的和整體連貫的形態(tài)來支持軟件開發(fā)的全過程。軟件環(huán)境數(shù)據(jù)庫:是各個軟件工具之間共
33、享數(shù)據(jù)及相互連結(jié)的統(tǒng)一媒介。6.軟件開發(fā)環(huán)境數(shù)據(jù)庫在軟件開發(fā)中的作用?軟件環(huán)境數(shù)據(jù)庫是用于支持軟件項目的大型數(shù)據(jù)庫;軟件環(huán)境數(shù)據(jù)庫中主要存儲軟件開發(fā)過程中產(chǎn)生的有關(guān)產(chǎn)品或半成品的數(shù)據(jù)及各種項目數(shù)據(jù),如源程序、測試數(shù)據(jù)和各種文檔等,它構(gòu)成軟件開發(fā)和維護(hù)過程中所有項目數(shù)據(jù)的集中化的存儲設(shè)施,是集成化軟件開發(fā)環(huán)境的核心組成部分,也是各個軟件工具之間共享數(shù)據(jù)及相互連結(jié)的統(tǒng)一媒介。7.集成化項目支持環(huán)境IPSE的主要特征是什么?(1) 集成化和相互兼容的工具集;(2) 支持項目的管理和控制;(3) 支持配置管理;(4) 支持多種語言的軟件開發(fā);(5) 支持硬件開發(fā);(6) 允許宿主機和目標(biāo)機使用分布式系
34、統(tǒng)。第十一章面向?qū)ο笤O(shè)計的準(zhǔn)則軟件的重用第十二章 無。第十三章工作量估算關(guān)鍵路徑復(fù)習(xí)綱要軟件工程概論1、軟件危機定義:軟件危機是指在計算機軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。2、軟件危機的兩個主要問題:如何開發(fā)軟件,以滿足對軟件日益增長的需求;如何維護(hù)數(shù)量不斷膨脹的已有軟件。3、軟件危機的典型表現(xiàn):(1) 對軟件開發(fā)成本和進(jìn)度的估計常常很不準(zhǔn)確。 (2) 用戶對“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生。 (3) 軟件產(chǎn)品的質(zhì)量往往靠不住。 (4) 軟件常常是不可維護(hù)的。 (5) 軟件通常沒有適當(dāng)?shù)奈臋n資料。 (6) 軟件成本在計算機系統(tǒng)總成本中所占的比例逐年上升。 (7) 軟件開發(fā)生
35、產(chǎn)率提高的速度,遠(yuǎn)遠(yuǎn)跟不上計算機應(yīng)用迅速普及深入的趨勢。 4、根據(jù)軟件危機的典型表現(xiàn),分析軟件危機案例: 傳統(tǒng)工業(yè)中知名的生產(chǎn)方式可算是“手工作坊式”生產(chǎn)方式。過去的一段時間里,甚至到現(xiàn)在,中國軟件業(yè)中還有一部分公司的開發(fā)方式與之類似。公正地說,以此方式還是成就了好多成功的應(yīng)用開發(fā)項目,甚至可以說此法支撐起了軟件開發(fā)的初期事業(yè)。但是,在我們的“作坊”里還有太多的項目失敗,例如開發(fā)周期的不可控制、項目結(jié)果為用戶所不認(rèn)可、項目最終的嚴(yán)重虧損,這種失敗的慘痛出乎我們的意料,以至于我們無所適從。再加上技術(shù)人員、資金嚴(yán)重匱乏的困擾,軟件開發(fā)管理舉步維艱。 你認(rèn)為“軟件就是程序”這一個觀點正確嗎?如果不正
36、確,請批駁之。 1. 請從以下幾個方面結(jié)合自己的經(jīng)驗實例加以論述。 軟件就是程序的觀點是不正確的,因為軟件等于程序加文檔加數(shù)據(jù)。 (1) 文檔是軟件的一個非常重要的組成部分,在軟件的開發(fā)過程中起著非常重要的作用。 (2) 在軟件開發(fā)的每一個階段都應(yīng)有相應(yīng)的文檔。它是開發(fā)人員與用戶以及開發(fā)人員與項目管理人員之間交流的媒介 (3) 文檔是軟件在不同階段的表現(xiàn)形式。 (4) 程序與文檔必須一致,文檔才有價值。 (5) 文檔質(zhì)量直接決定軟件質(zhì)量的高低。 (6) 文檔也是軟件測試和維護(hù)的依據(jù)。在沒有文檔或文檔不全的情況下對大型軟件進(jìn)行測試與維護(hù)是不可思議的事情。 (7) 文檔是軟件可重用的依據(jù)。 5、軟
37、件工程定義:軟件工程是指導(dǎo)計算機軟件開發(fā)和維護(hù)的一門工程學(xué)科。采用工程的概念、原理、技術(shù)和方法來開發(fā)與維護(hù)軟件,把經(jīng)過時間考驗而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來,以經(jīng)濟地、高效的開發(fā)出高質(zhì)量的軟件并有效地維護(hù)它,這就是軟件工程。 6、軟件工程的基本原理,案例分析(嚴(yán)格管理,階段評審、審查和brooks原則)某公司開發(fā)一個企業(yè)信息化項目,隨著項目的進(jìn)展,該項目經(jīng)理發(fā)現(xiàn)項目進(jìn)度沒有按照計劃在進(jìn)展,于是開始計劃招聘相關(guān)人員,但是由于特殊原因,沒有招到理想的人員,沒有辦法只能降低要求招聘,新員工到來后,項目經(jīng)理發(fā)現(xiàn)項目進(jìn)展反而更慢,該經(jīng)理百思不得其解。請用軟件工程基本原理分析問
38、題。 ? 軟件開發(fā)不同于傳統(tǒng)的機械制造,人多不見得力量大。如果給落后于計劃的項目增加新人,可能會更加延誤項目。因為新人會產(chǎn)生很多新的錯誤,使項目混亂,并且原有的開發(fā)人員向新人解釋工作和交流思想都要花費時間,使實際的開發(fā)時間更少,所以制定恰如其分的項目計劃是很重要的。 7、軟件工程方法學(xué),三要素:方法、工具和過程 8、軟件生命周期(概念、三時期,八階段) 軟件生命周期由軟件定義、軟件開發(fā)和運行維護(hù)(也稱為軟件維護(hù))3個時期組成。 軟件定義時期通常進(jìn)一步劃分成3個階段,即問題定義、可行性研究和需求分析。 1問題定義2可行性研究3需求分析4總體設(shè)計5詳細(xì)設(shè)計6編碼和單元測試7綜合測試8軟件維護(hù) 9、
39、有人說:軟件開發(fā)時,一個錯誤發(fā)現(xiàn)得越晚,為改正它所付出的代價就越大。對否?請解釋你的回答。 對, 10、軟件過程,案例分析:中華信息系統(tǒng)開發(fā)公司的軟件產(chǎn)品以開發(fā)實驗型的新軟件為主。用瀑布模型進(jìn)行軟件開發(fā)已經(jīng)有近十年了,并取得了一些成功。若你作為一名管理員剛加入該公司,你認(rèn)為快速原型法對公司的軟件開發(fā)更加優(yōu)越,請向公司副總裁寫一份報告闡明你的理由,切記:副總裁不喜歡報告長度超過300 字。 快速原型: 所謂快速原型是快速建立起來的可以在計算機上運行的程序,它所能完成的功能往往是最終產(chǎn)品能完成的功能的一個子集??焖僭湍P偷牡谝徊绞强焖俳⒁粋€能反映用戶主要需求的原型系統(tǒng),讓用戶在計算機上試用它,
40、通過實踐來了解目標(biāo)系統(tǒng)的概貌 瀑布模型 ? 特點 ? 階段的順序性和依賴性(規(guī)范化) ? 推遲實現(xiàn)的觀點(系統(tǒng)化) ? 質(zhì)量保證(階段評審) ? 存在問題 ? 不適合需求模糊的系統(tǒng)(需求的迷糊性和不確定性) 適用于操作系統(tǒng)、編譯系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)等系統(tǒng)軟件的開發(fā) 11、試論軟件工程化思想在軟件開發(fā)過程中的重要性。 論述要點:在軟件工程思想出現(xiàn)之前,人們通常把軟件等同于程序,認(rèn)為軟件開發(fā)就是程序設(shè)計。致使計算機軟件的開發(fā)和維護(hù)出現(xiàn)一系列的問題,軟件開發(fā)常常失敗,從而導(dǎo)致軟件危機的出現(xiàn)。例如:(1)對軟件開發(fā)成本和進(jìn)度的估計常常不準(zhǔn)確;(2)用戶對“已完成”的軟件常常不滿意;(3)軟件產(chǎn)品的質(zhì)量
41、往往靠不住;(4)軟件的可維護(hù)性也很差;(5)軟件通常沒有文檔資料;(6)軟件成本在計算機系統(tǒng)的總成本中的比例逐年上升。 解決軟件危機問題的過程中,便出現(xiàn)了軟件工程化思想,人們逐漸地把軟件工程化思想應(yīng)用于軟件開發(fā)過程中,使得軟件開發(fā)的成本相對下降,并能得到有效控制,軟件的開發(fā)進(jìn)度可以得到預(yù)測,所開發(fā)的軟件的質(zhì)量穩(wěn)步提高。人們逐步認(rèn)識到,軟件不僅僅是程序,而是程序、文檔和數(shù)據(jù)的一個集合體,文檔在軟件開發(fā)的過程中起著相當(dāng)重要的作用。 人們按照軟件工程化的思想把軟件開發(fā)分為不同的階段,每一個階段都完成確定的任務(wù),對每個階段所完成的工作都可以進(jìn)行評審,使得軟件開發(fā)的可管理性可大大增強,。 對任何一個產(chǎn)
42、品來說,質(zhì)量都是第一位的,軟件工程化思想的目的就是開發(fā)出高質(zhì)量的軟件系統(tǒng)。而事實證明,只有在軟件開發(fā)過程中運用軟件工程化思想才能開發(fā)出高質(zhì)量的軟件系統(tǒng);否則只能導(dǎo)致軟件開發(fā)的失敗。 可行性分析 1、可行性研究的目的:在明確了所要研究問題定義之后,分析員應(yīng)該在明確目標(biāo)系統(tǒng)所有限制和約束的前提下,去確定該問題是否值得去解決。 2、可行性研究實質(zhì): ? 技術(shù)可行性 ? 經(jīng)濟可行性 ? 社會可行性 4、如何做可行性研究(結(jié)合案例分析) 5、系統(tǒng)流程圖的定義和作用 可行性研究對現(xiàn)有系統(tǒng)做概括的物理模型描述,如用圖形工具表示則更加直觀簡潔。系統(tǒng)流程圖是描繪物理系統(tǒng)的傳統(tǒng)工具,它的基本思想是用圖形符號以黑盒
43、子形式描繪系統(tǒng)里面的每個部件(程序、文件、數(shù)據(jù)庫、表格、人工過程等)。系統(tǒng)流程圖表達(dá)的是部件的信息流程,而不是對信息進(jìn)行加工處理的控制過程。在可行性研究過程中,利用系統(tǒng)流程圖來描述所建議系統(tǒng)的物理模型。 6、數(shù)據(jù)流程圖的定義和作用:數(shù)據(jù)流程圖有兩個特征:抽象性和概括性。 ? 抽象性指的是數(shù)據(jù)流程圖把具體的組織機構(gòu)、工作場所、物質(zhì)流都去掉,只剩下信息和數(shù)據(jù)存儲、流動、使用以及加工情況。 ? 概括性則是指數(shù)據(jù)流程圖把系統(tǒng)對各種業(yè)務(wù)的處理過程聯(lián)系起來考慮,形成一個總體 7、數(shù)據(jù)流程圖的組成元素 數(shù)據(jù)流圖可以用來抽象地表示系統(tǒng)或軟件。它從信息傳遞和加工的角度,以圖形的方式刻畫數(shù)據(jù)流從輸入到輸出的移動變
44、換過程,同時可以按自頂向下、逐步分解的方法表示內(nèi)容不斷增加的數(shù)據(jù)流和功能細(xì)節(jié)。因此,數(shù)據(jù)流圖既提供了功能建模的機制,也提供了信息流建模的機制,從而可以建立起系統(tǒng)或軟件的功能模型。 8、數(shù)據(jù)流程圖的組成:外部實體(外部實體是指系統(tǒng)之外的人或單位,它們和本系統(tǒng)有信息傳遞關(guān)系)數(shù)據(jù)流,處理、數(shù)據(jù)存儲。 如何繪制數(shù)據(jù)流程圖 (1)識別系統(tǒng)的輸入和輸出,畫出頂層圖 (2)畫系統(tǒng)內(nèi)部的數(shù)據(jù)流、加工與文件,畫出一級細(xì)化圖 (3)加工的進(jìn)一步分解,畫出二級細(xì)化圖 (4)其它注意事項 8、數(shù)據(jù)流程圖的注意點 1、每個處理都必須有流入的數(shù)據(jù)流和流出的數(shù)據(jù)流,如果沒有,是錯誤的。(數(shù)據(jù)守恒) 2、每個數(shù)據(jù)存儲應(yīng)該有
45、流入的數(shù)據(jù)流和流出的數(shù)據(jù)流,如果缺了一種,是Warning的;缺兩種就錯了。 3、數(shù)據(jù)流只能在處理與處理、數(shù)據(jù)存儲或者外部實體之間流動。、數(shù)據(jù)存儲到數(shù)據(jù)存儲、外部實提到外部實體、外部實提到數(shù)據(jù)存儲之間的數(shù)據(jù)流都是錯誤的。 4、 一個處理可以細(xì)分成多個子處理,分成若干個層次(均勻分解) 5、良好命名 9、數(shù)據(jù)字典 1 數(shù)據(jù)字典是在數(shù)據(jù)流程圖的基礎(chǔ)上,對數(shù)據(jù)流程圖中的各個元素進(jìn)行詳細(xì)的定義與描述,起到對數(shù)據(jù)流程圖進(jìn)行補充說明的作用。 2 數(shù)據(jù)字典的內(nèi)容包括:數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存貯、處理邏輯和外部實體。 10、可行性分析的結(jié)果 需求分析1、為什么要做需求分析 可行性分析研究階段已經(jīng)粗略的
46、描述了用戶的需求,甚至還提出了一些可行的方案,但是,許多細(xì)節(jié)被忽略了,在最終目標(biāo)系統(tǒng)中是不能忽略、遺漏任何一個微小細(xì)節(jié)的,所以,可行性研究不能代替需求分析。 2、需求分析的任務(wù) 需求分析的主要任務(wù)不是確定系統(tǒng)如何完成它的具體工作,而是確定系統(tǒng)必須完成哪些工作,在用戶的參與下提出目標(biāo)系統(tǒng)的完整、準(zhǔn)確、清晰、具體的實際要求,軟件應(yīng)完成的具體功能和性能,確定軟件設(shè)計受到的限制及軟件同其它系統(tǒng)的接口細(xì)節(jié),描述軟件用到的數(shù)據(jù)形式,逐步細(xì)化到詳細(xì)定義,并為軟件驗收和質(zhì)量評價提供依據(jù) 3、如何做需求分析 (1)確定被開發(fā)系統(tǒng)的綜合要求:系統(tǒng)分析員與用戶共同討論,澄清模糊要求,刪除做不到的要求,改正錯誤的要求
47、,確定具體的功能要求和性能要求。如:精確度要求,運行要求,軟硬件限定條件要求,出錯率限定要求,文件使用權(quán)限要求與讀寫保護(hù)要求,資源使用要求,運行維護(hù)成本消耗要求等; (2)分析系統(tǒng)信息,抽象出系統(tǒng)的數(shù)據(jù)要求:通過系統(tǒng)的調(diào)查分析,由系統(tǒng)的信息流歸納、匯集,抽象出系統(tǒng)的數(shù)據(jù)模型(ER圖),包括數(shù)據(jù)的組成元素、數(shù)據(jù)間的邏輯關(guān)系、數(shù)據(jù)的輸入、輸出、存儲的形式及數(shù)據(jù)結(jié)構(gòu)關(guān)系等; (3)由描述的系統(tǒng)問題結(jié)構(gòu)導(dǎo)出系統(tǒng)的目標(biāo)邏輯模型:利用軟件需求工具和數(shù)據(jù)流分析方法導(dǎo)出系統(tǒng)的目標(biāo)邏輯模型(數(shù)據(jù)流程圖)。如:利用結(jié)構(gòu)化分析工具、數(shù)據(jù)流程圖進(jìn)行描述和表達(dá);功能模型和行為模型 (4)根據(jù)系統(tǒng)實際需求審定和修正軟件項
48、目的開發(fā)計劃:一般可由用戶、開發(fā)方、專家組成的小組對項目預(yù)算、開發(fā)成本估計、計劃安排、進(jìn)度安排、人員和資源安排進(jìn)行審定和修正,看其是否一致,是否符合軟件的實際認(rèn)定范圍,確定出切實可行的開發(fā)計劃; (5)審定系統(tǒng)需求分析的正確性:利用原型、需求分析驗證工具、或人工的方法進(jìn)行審定; (6)提交軟件需求規(guī)格說明書,作為系統(tǒng)的開發(fā)和驗收的依據(jù)。 4、需求分析的難點 (1)問題空間理解 (2)人與人之間的通信 (3)需求的不斷變化 5、ER圖:可以把實體-聯(lián)系圖簡稱為ER圖,相應(yīng)地可把用ER圖描繪的數(shù)據(jù)模型稱為ER模型。 ER圖中包含了實體(即數(shù)據(jù)對象)、關(guān)系和屬性等3種基本成分,通常用矩形框代表實體,
49、用連接相關(guān)實體的菱形框表示關(guān)系,用橢圓形或圓角矩形表示實體(或關(guān)系)的屬性,并用直線把實體(或關(guān)系)與其屬性連接起來。 6、狀態(tài)轉(zhuǎn)換圖:指明了作為外部事件結(jié)果的系統(tǒng)行為。為此,狀態(tài)轉(zhuǎn)換圖描繪了系統(tǒng)的各種行為模式(稱為“狀態(tài)”)和在不同狀態(tài)間轉(zhuǎn)換的方式。狀態(tài)轉(zhuǎn)換圖是行為建模的基礎(chǔ)。7、軟件需求的驗證: 需求分析階段的工作結(jié)果是開發(fā)軟件系統(tǒng)的重要基礎(chǔ),大量統(tǒng)計數(shù)字表明,軟件系統(tǒng)中15%的錯誤起源于錯誤的需求。為了提高軟件質(zhì)量,確保軟件開發(fā)成功,降低軟件開發(fā)成本,一旦對目標(biāo)系統(tǒng)提出一組要求之后,必須嚴(yán)格驗證這些需求的正確性。一般說來,應(yīng)該從下述4個方面進(jìn)行驗證: (1) 一致性所有需求必須是一致的,
50、任何一條需求不能和其他需求互相矛盾。 (2) 完整性需求必須是完整的,規(guī)格說明書應(yīng)該包括用戶需要的每一個功能或性能。 (3) 現(xiàn)實性指定的需求應(yīng)該是用現(xiàn)有的硬件技術(shù)和軟件技術(shù)基本上可以實現(xiàn)的。對硬件技術(shù)的進(jìn)步可以做些預(yù)測,對軟件技術(shù)的進(jìn)步則很難做出預(yù)測,只能從現(xiàn)有技術(shù)水平出發(fā)判斷需求的現(xiàn)實性。 (4) 有效性必須證明需求是正確有效的,確實能解決用戶面對的問題。 8、利用DFD圖進(jìn)行需求分析: 在結(jié)構(gòu)化分析方法中,用以表達(dá)系統(tǒng)內(nèi)數(shù)據(jù)的運動情況的工具有( A )。 供選擇的答案: A. 數(shù)據(jù)流圖 B. 數(shù)據(jù)詞典 C. 結(jié)構(gòu)化英語 D. 判定表與判定樹 在結(jié)構(gòu)化分析方法中用狀態(tài)遷移圖表達(dá)系統(tǒng)或?qū)ο蟮?/p>
51、行為。在狀態(tài)遷移圖中,由一個狀態(tài)和一個事件所決定的下一狀態(tài)可能會有( A )個。 供選擇的答案: A. 1 B. 2 C. 多個 D. 不確定 在結(jié)構(gòu)化分析方法中用實體關(guān)系圖表達(dá)系統(tǒng)中的對象及其關(guān)系。在實體關(guān)系圖中,表達(dá)對象的實例之間的關(guān)聯(lián)有三種類型:一對一聯(lián)系、( B )聯(lián)系、多對多聯(lián)系。 供選擇的答案: A. 多對一 B. 一對多 分析:使用實體關(guān)系圖,可以建立系統(tǒng)中各個數(shù)據(jù)對象及對象之間的關(guān)系。對象的實例間的關(guān)聯(lián)稱為“基數(shù)”,共有3種類型的基數(shù):一對一,一對多,多對多。它反映了現(xiàn)實世界中實體之間的聯(lián)系,多對一的情況可以歸入一對多的關(guān)聯(lián)中去。 在軟件需求分析時,首先建立當(dāng)前系統(tǒng)的物理模型,
52、再根據(jù)物理模型建立當(dāng)前系統(tǒng)的邏輯模型。試問:什么是當(dāng)前系統(tǒng)?當(dāng)前系統(tǒng)的物理模型與邏輯模型有什么差別? 所謂當(dāng)前系統(tǒng)可能是需要改進(jìn)的某個已在計算機上運行的數(shù)據(jù)處理系統(tǒng),也可能是一個人工的數(shù)據(jù)處理過程。 當(dāng)前系統(tǒng)的物理模型客觀地反映當(dāng)前系統(tǒng)實際的工作情況。但在物理模型中有許多物理的因素,隨著分析工作的深入,有些非本質(zhì)的物理因素就成為不必要的負(fù)擔(dān),因而需要對物理模型進(jìn)行分析,區(qū)分出本質(zhì)的和非本質(zhì)的因素,去掉那些非本質(zhì)的因素即可獲得反映系統(tǒng)本質(zhì)的邏輯模型。所以當(dāng)前系統(tǒng)的邏輯模型是從當(dāng)前系統(tǒng)的物理模型抽象出來的??傮w設(shè)計 1、總體設(shè)計的目的:總體設(shè)計的基本目的就是回答“概括地說,系統(tǒng)應(yīng)該如何實現(xiàn)?”這個
53、問題,因此,總體設(shè)計又稱為概要設(shè)計或初步設(shè)計。1、面向結(jié)構(gòu)設(shè)計(SD)2、面向?qū)ο笤O(shè)計(OOD) 2、總體設(shè)計的階段組成:兩個主要階段(1)系統(tǒng)設(shè)計階段,確定系統(tǒng)的具體實現(xiàn)方案;(2)結(jié)構(gòu)設(shè)計階段,確定軟件結(jié)構(gòu) 3、設(shè)計原理分析(模塊化,在模塊化程序設(shè)計中,按功能劃分模塊的原則是,模塊化和軟件成本關(guān)系) 模塊化:就是把程序劃分成獨立命名且可獨立訪問的模塊,每個模塊完成一個子功能,把這些模塊集成起來構(gòu)成一個整體,可以完成指定的功能滿足用戶的需求. 模塊化的根據(jù):把復(fù)雜的問題分解成許多容易解決的小問題,原來的問題也就容易解決了. 模塊化和軟件成本關(guān)系:根據(jù)總成本曲線,每個程序都相應(yīng)地有一個最適當(dāng)?shù)哪K數(shù)目M,使得系統(tǒng)的開發(fā)成本最小. 為什么使用模塊:復(fù)雜問題簡單化,降低成本 抽象的概念:抽出事務(wù)的本質(zhì)特性而暫時不考慮它們的細(xì)節(jié).衡量模塊獨立的兩個標(biāo)準(zhǔn)是什么?它們各表示什么含義? 衡量模塊的獨立性的標(biāo)準(zhǔn)是兩個定性的度量標(biāo)準(zhǔn):耦合性和內(nèi)聚性。 (1)耦合性。也稱塊間聯(lián)系。指軟件系統(tǒng)結(jié)構(gòu)中各模塊間相互聯(lián)系緊密程度的一種度量。模塊之間聯(lián)系越緊密,其耦合性就越強,模塊的獨立性則越差。模塊間耦合高低取
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 應(yīng)急救援勘察質(zhì)量評估及安全措施
- 家庭作業(yè)設(shè)計的小學(xué)英語教學(xué)計劃
- 職業(yè)培訓(xùn)中學(xué)困生的轉(zhuǎn)化策略
- 基于機器學(xué)習(xí)的移動支付用戶行為預(yù)測模型研究-洞察闡釋
- 農(nóng)業(yè)生產(chǎn)中污染問題的整改措施
- 數(shù)字化學(xué)習(xí)環(huán)境建設(shè)計劃
- 電池材料創(chuàng)新研究-第1篇-洞察闡釋
- 水產(chǎn)加工企業(yè)品牌建設(shè)-洞察闡釋
- 社會責(zé)任在生態(tài)補償機制中的應(yīng)用研究-洞察闡釋
- 職業(yè)培訓(xùn)班教育整頓心得體會
- 施工臨時圍擋施工方案及施工圍擋承包合同
- 醫(yī)院布草洗滌服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 寧陵牧原農(nóng)牧有限公司小張莊年存欄2萬頭母豬養(yǎng)殖項目環(huán)境影響報告
- 《大象的耳朵》評課稿
- 胰島素的種類及應(yīng)用(共26張PPT)
- 現(xiàn)場照相技術(shù)課件
- 抖音帶貨主播勞動合同范本
- 廣東省高等學(xué)?!扒О偈こ獭钡诹^續(xù)培養(yǎng)對象和第
- 人教版三年級數(shù)學(xué)上冊口算題卡
- 綠色施工與環(huán)境管理
- 小數(shù)乘整數(shù)的教學(xué)設(shè)計 小數(shù)乘整數(shù)教學(xué)設(shè)計一等獎(十四篇)
評論
0/150
提交評論