




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、軟件工程導(dǎo)論課后習(xí)題答案第一章 軟件工程概論1什么是軟件危機(jī)? 軟件危機(jī)是指在計(jì)算機(jī)軟件的開發(fā)和維護(hù)過程中所遇到的一系列嚴(yán)重問題。這 些問題表現(xiàn)在以下幾個(gè)方面:(1) 用戶對開發(fā)出的軟件很難滿意。(2) 軟件產(chǎn)品的質(zhì)量往往靠不住。(3) 一般軟件很難維護(hù)。(4) 軟件生產(chǎn)效率很低。(5) 軟件開發(fā)成本越來越大。(6) 軟件成本與開發(fā)進(jìn)度難以估計(jì)。(7) 軟件技術(shù)的發(fā)展遠(yuǎn)遠(yuǎn)滿足不了計(jì)算機(jī)應(yīng)用的普及與深入的需要。2為什么會產(chǎn)生軟件危機(jī)?(1) 開發(fā)人員方面,對軟件產(chǎn)品缺乏正確認(rèn)識,沒有真正理解軟件產(chǎn)品是一個(gè)完整的配 置組成。造成開發(fā)中制定計(jì)劃盲目、編程草率,不考慮維護(hù)工作的必要性。(2) 軟件本身
2、方面, 對于計(jì)算機(jī)系統(tǒng)來說, 軟件是邏輯部件, 軟件開發(fā)過程沒有統(tǒng)一的、 公認(rèn)的方法論和規(guī)范指導(dǎo),造成軟件維護(hù)困難。(3) 尤其是隨著軟件規(guī)模越來越大 ,復(fù)雜程度越來越高 ,原有軟件開發(fā)方式效率不高、質(zhì) 量不能保證、成本過高、 研制周期不易估計(jì)、 維護(hù)困難等一系列問題更為突出,技術(shù)的發(fā)展 已經(jīng)遠(yuǎn)遠(yuǎn)不能適應(yīng)社會需求。3怎樣克服軟件危機(jī)?(1) 充分吸收和借鑒人類長期以來從事各種工程項(xiàng)目中積累的行之有效的有效原理、 概 念、技術(shù)與方法, 特別是吸取幾十年來人類從事計(jì)算機(jī)硬件研究和開發(fā)的經(jīng)驗(yàn)教訓(xùn)。 在開發(fā) 軟件的過程中努力作到良好的組織,嚴(yán)格的管理,相互友好的協(xié)作。(2) 推廣在實(shí)踐中總結(jié)出來的開發(fā)
3、軟件的成功的技術(shù)和方法,并研究更好、更有效的技 術(shù)和方法,盡快克服在計(jì)算機(jī)系統(tǒng)早期發(fā)展階段形成的一些錯(cuò)誤概念和作法。(3) 根據(jù)不同的應(yīng)用領(lǐng)域,開發(fā)更好的軟件工具并使用這些工具。將軟件開發(fā)各個(gè)階段 使用的軟件工具集合成一個(gè)整體,形成一個(gè)很好的軟件開發(fā)支環(huán)環(huán)境。 總之為了解決軟件危機(jī),既要有技術(shù)措施(方法和工具 ),又要有必要的組織管理措施。4. 構(gòu)成軟件項(xiàng)目的最終產(chǎn)品:應(yīng)用程序、系統(tǒng)程序、面向用戶的文檔資料和面向開發(fā)者的文檔資料。5什么是軟件生存周期?軟件生存周期是指從軟件定義、開發(fā)、使用、維護(hù)到淘汰的全過程。6軟件生存周期為什么劃分成階段?(1) 任何一個(gè)階段的具體任務(wù)不僅獨(dú)立,而且簡單,便
4、于不同人員分工協(xié)作,從而降低 整個(gè)軟件開發(fā)工作的困難程度。(2) 可以降低每個(gè)階段任務(wù)的復(fù)雜程度, 簡化不同階段的聯(lián)系, 有利于工程的組織管理, 也便于采用良好的技術(shù)方法。(3) 使軟件開發(fā)的全過程以一種有條不紊的方式進(jìn)行,保證軟件的質(zhì)量,特別是提高了 軟件的可維護(hù)性。7應(yīng)該怎樣來劃分階段?(1) 每一個(gè)階段的任務(wù)盡可能獨(dú)立;(2) 同一階段內(nèi)的任務(wù)性質(zhì)盡可能相同;(3) 每一個(gè)階段任務(wù)的開始和結(jié)束有嚴(yán)格的標(biāo)準(zhǔn)。8軟件開發(fā)模型有幾種?它們的開發(fā)方法有可特點(diǎn)? 軟件開發(fā)模型有瀑布型、漸增型和變換型。 瀑布型開發(fā)方法是按照軟件生存周期的劃分依次實(shí)施,每一個(gè)階段有明確規(guī)定的任務(wù)。它的特點(diǎn):(1) 各
5、個(gè)階段的順序性和依賴性;(2) 劃分邏輯設(shè)計(jì)與物理設(shè)計(jì),盡可能推遲程序的物理實(shí)現(xiàn);(3) 每個(gè)階段必須完成規(guī)定的文檔,對其中問題通過復(fù)審及早發(fā)現(xiàn),及早解決。漸增型開發(fā)方法及特點(diǎn) :(1) 從部分需求出發(fā),先建立一個(gè)不完全的系統(tǒng),通過測試運(yùn)行該系統(tǒng)取得經(jīng)驗(yàn)和信 息反饋,加深對軟件需求的理解,進(jìn)一步使系統(tǒng)擴(kuò)充和完善。 如此反復(fù),直至軟件人員和用 戶對所設(shè)計(jì)完成的軟件系統(tǒng)滿意為止。(2) 在漸增型開發(fā)下的軟件是隨軟件開發(fā)的過程而逐漸形成的。(3) 漸增型開發(fā)方法適合于知識型軟件的開發(fā),設(shè)計(jì)系統(tǒng)時(shí)對用戶需求的認(rèn)識開始不 是很清楚的, 需要在開發(fā)過程中不斷認(rèn)識、 不斷獲得新的知識去豐富和完善系統(tǒng)。 多數(shù)
6、研究 性質(zhì)的試驗(yàn)軟件,一般采用此方法。變換型開發(fā)方法及特點(diǎn) :(1) 從軟件需求的形式化說明出發(fā),經(jīng)過一系列的程序變換,得到最終的程序系統(tǒng)。(2) 該方法必須有嚴(yán)格的數(shù)學(xué)理論和形式化技術(shù)的支持。9.什么是軟件工程 ?軟件工程是指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科。(1) 它采用工程的概念、原理、技術(shù)和方法來開發(fā)和維護(hù)軟件;(2) 它將管理技術(shù)與當(dāng)前經(jīng)過時(shí)間考驗(yàn)的而證明是正確的技術(shù)方法結(jié)合起來;(3) 它強(qiáng)調(diào)使用生存周期方法學(xué)和結(jié)構(gòu)分析和結(jié)構(gòu)技術(shù);(4) 經(jīng)過人們長期的努力和探索, 圍繞著實(shí)現(xiàn)軟件優(yōu)質(zhì)高產(chǎn)這個(gè)目標(biāo) ,從技術(shù)到管理兩 個(gè)方面做了大量的努力 ,逐漸形成了 "軟件工程學(xué) &qu
7、ot;這一新的學(xué)科。10什么是軟件工程環(huán)境 :方法與工具的結(jié)合, 加上配套的軟、 硬件支持稱為軟件工程環(huán)境。 它能支持開發(fā)者按照軟件 工程的方法 ,全面完成生存周期中的各項(xiàng)任務(wù)。第二章 可行性研究1. 問題定義的任務(wù)和主要工作 ? 問題定義的任務(wù):將用戶提出的要求具體化、 定量化;確定研制系統(tǒng)的范圍, 明確研制 的邊界。問題定義階段的工作:(1) 通過調(diào)查研究,了解系統(tǒng)需求;(2) 確定系統(tǒng)的功能需求、性能需求、可靠性需求、安全及保密性、資源、開發(fā)費(fèi)用及 開發(fā)進(jìn)度等的需求;(3) 問題定義階段的產(chǎn)品 -系統(tǒng)目標(biāo)與范圍說明書。2. 可行性研究目的 ?確定在問題定義中所提出的問題是否值得去解,在限
8、制條件下,問題能否解決。3可行性研究的任務(wù)?(1) 進(jìn)一步分析和澄清問題的定義,在澄清問題的基礎(chǔ)上,導(dǎo)出系統(tǒng)的邏輯模型;(2) 從系統(tǒng)邏輯模型中,選擇問題的若干種主要解法,研究每一種解法的可行性,為以 后的行動提出建議;(3) 如果問題沒有可行的解,建議停止系統(tǒng)開發(fā);如果問題有可行的解,應(yīng)該推薦一個(gè) 較好的解決方案,并為工程制定一個(gè)初步的計(jì)劃。4可行性研究包括哪幾方面的內(nèi)容?(1) 技術(shù)可行性:現(xiàn)有技術(shù)能否實(shí)現(xiàn)本系統(tǒng),現(xiàn)有技術(shù)人員能否勝任,開發(fā)系統(tǒng)的資源能否滿足;(2) 經(jīng)濟(jì)可行性:經(jīng)濟(jì)效益是否超出開發(fā)成本;(3) 操作可行性:系統(tǒng)操作在用戶內(nèi)部行得通嗎?(4) 法律可行性:新系統(tǒng)開發(fā)是否會侵
9、犯他人、集體或國家利益,是否違反國家法律。5可行性研究的步驟 ?(1) 復(fù)查系統(tǒng)的規(guī)模和目標(biāo);(2) 研究目前正在使用的系統(tǒng),總結(jié)現(xiàn)有系統(tǒng)的優(yōu)劣,提出新系統(tǒng)的雛形;(3) 導(dǎo)出新系統(tǒng)的高層邏輯模型;(4) 推薦建議方案;(5) 推薦行動方針;(6) 書寫計(jì)劃任務(wù)書 (可行性報(bào)告 );(7) 提交審查。6. 可行性研究報(bào)告的主要內(nèi)容?可行性分析的結(jié)果是可行性研究報(bào)告 ,內(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)
10、有系統(tǒng)存在的問題。(4) 系統(tǒng)需求 :主要功能;主要性能及其要求;操作要求;信息要求;限制性要求。(5) 建議系統(tǒng) :系統(tǒng)目標(biāo);處理流程;系統(tǒng)結(jié)構(gòu) ,功能 ,性能;系統(tǒng)技術(shù)可行性;投資和效益分析;操作可行性;法律可行性。(6) 其它可選方案 :與國內(nèi)外同類型方案的比較;提出一兩個(gè)可行性方案供論證和探討。(7) 制定下一階段的預(yù)算。(8) 結(jié)論性意見:由用戶方、設(shè)計(jì)方和投資方共同簽署意見。第三章 需求分析1. 需求分析的描述工具有哪些 ?Warnier 圖、有數(shù)據(jù)流圖、數(shù)據(jù)字典、判定表、判定樹、結(jié)構(gòu)化自然語言、層次方框圖、IPO 圖和需求描述語言等。2. 需求分析的基本任務(wù)是什么 ?準(zhǔn)確定義未來
11、系統(tǒng)的目標(biāo),確定為了滿足用戶的需要系統(tǒng)必須做什么。3. 怎樣建立目標(biāo)系統(tǒng)的邏輯模型 ?要經(jīng)過哪些步驟 ?建立目標(biāo)系統(tǒng)的邏輯模型的過程也就是數(shù)據(jù)流圖的分解過程。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ù)字典。
12、(4) 用戶接口、硬件接口及軟件接口。(5) 性能需求、屬性等。(6) 其它需求,如數(shù)據(jù)庫、操作及故障處理等。6. 為什么數(shù)據(jù)流圖要分層 ?畫分層的 DFD 要遵循哪些原則 ?分層的目的:便于逐步細(xì)化、結(jié)構(gòu)清晰。畫分層的 DFD 要遵循哪些原則:(1) 父圖與子圖之間數(shù)據(jù)要平衡。(2) 分解的深度和層次達(dá)到使加工足夠簡單、易于理解的基本加工為止。(3) 區(qū)分局部文件和局部外部項(xiàng) (局限于數(shù)據(jù)流中某一層或某幾層的文件和外部項(xiàng))。(4) 不要把控制流作為數(shù)據(jù)流。(5) 忽略瑣碎的枝節(jié)。(6) 每個(gè)數(shù)據(jù)流要有一個(gè)合適的名字,盡量使用現(xiàn)實(shí)系統(tǒng)中有具體意義的名字。7. 系統(tǒng)流程圖與數(shù)據(jù)流程圖有什么區(qū)別
13、?系統(tǒng)流程圖描述系統(tǒng)物理模型的工具,數(shù)據(jù)流程圖描述系統(tǒng)邏輯模型的工具。 系統(tǒng)流程圖從系統(tǒng)功能的角度抽象的描述系統(tǒng)的各個(gè)部分及其相互之間信息流動的情 況。數(shù)據(jù)流程圖從數(shù)據(jù)傳送和加工的角度抽象的描述信息在系統(tǒng)中的流動和數(shù)據(jù)處理的工 作狀況。8. 數(shù)據(jù)字典包括哪些內(nèi)容 ?它的作用是什么? 數(shù)據(jù)字典是描述數(shù)據(jù)流圖中數(shù)據(jù)的信息的集合。它對數(shù)據(jù)流圖上每一個(gè)成分:數(shù)據(jù)項(xiàng)、 文件 (數(shù)據(jù)結(jié)構(gòu) )、數(shù)據(jù)流、數(shù)據(jù)存儲、加工和外部項(xiàng)等給以定義和說明;它主要由數(shù)據(jù)流描 述、加工描述和文件描述三部分組成。對用戶來講,數(shù)據(jù)字典為他們提供了數(shù)據(jù)的明確定義;對系統(tǒng)分析員來講 ,數(shù)據(jù)字典幫助他們比較容易修改已建立的系統(tǒng)邏輯模型
14、。9. 描述加工邏輯的工具有哪些 ?判定樹、判斷表和結(jié)構(gòu)化語言等。第四章 總體設(shè)計(jì)1. 系統(tǒng)設(shè)計(jì)包括哪兩個(gè)階段 ?系統(tǒng)設(shè)計(jì)包括總體設(shè)計(jì)與詳細(xì)設(shè)計(jì)兩個(gè)階段。2. 總體設(shè)計(jì)的主要任務(wù)是什么?總體設(shè)計(jì)的主要任務(wù)是完成軟件結(jié)構(gòu)的設(shè)計(jì),確定系統(tǒng)的模塊及其模塊之間的關(guān)系。3. 什么是模塊?模塊具有哪幾個(gè)特征?總體設(shè)計(jì)主要考慮什么特征? 模塊是數(shù)據(jù)說明、可執(zhí)行語句等程序?qū)ο蟮募?,可以單?dú)命名且可通過名字來訪問。 模塊具有輸入和輸出 (參數(shù)傳遞 )、功能、內(nèi)部數(shù)據(jù)結(jié)構(gòu) (局部變量 )和程序代碼四個(gè)特性。 概要設(shè)計(jì)主要考慮輸入、輸出 (參數(shù)傳遞 ) 和功能兩個(gè)特性。4. 什么是模塊化?模塊設(shè)計(jì)的準(zhǔn)則?模塊化是
15、按規(guī)定的原則將一個(gè)大型軟件劃分為一個(gè)個(gè)較小的、相對獨(dú)立但又相關(guān)的模塊。模塊設(shè)計(jì)的準(zhǔn)則:(1) 改進(jìn)軟件結(jié)構(gòu) , 提高模塊獨(dú)立性 :在對初步模塊進(jìn)行合并、分解和移動的分析、精化 過程中力求提高模塊的內(nèi)聚,降低藕合。(2) 模塊大小要適中 :大約 50 行語句的代碼,過大的模塊應(yīng)分解以提高理解性和可維護(hù)性; 過小的模塊 ,合并到上級模塊中。(3) 軟件結(jié)構(gòu)圖的深度、 寬度、 扇入和扇出要適當(dāng)。 一般模塊的調(diào)用個(gè)數(shù)不要超過 5 個(gè)。(4) 盡量降低模塊接口的復(fù)雜程度;(5) 設(shè)計(jì)單入口、單出口的模塊。(6) 模塊的作用域應(yīng)在控制域之內(nèi)。5. 變換型數(shù)據(jù)流由哪幾部分組成?變換型結(jié)構(gòu)由三部分組成 :傳入
16、路徑、變換 (加工 )中心和傳出路徑。6. 變換分析設(shè)計(jì)的步驟?(1) 區(qū)分傳入、傳出和變換中心三部分,劃分 DFD 圖的分界線;(2) 完成第一級分解 :建立初始 SC 圖的框架;(3) 完成第二級分解 :分解 SC 圖的各個(gè)分支;(4) 對初始結(jié)構(gòu)圖按照設(shè)計(jì)準(zhǔn)則進(jìn)行精化與改進(jìn)。7. 事務(wù)型數(shù)據(jù)流由哪幾部分組成?事務(wù)型結(jié)構(gòu)由至少一條接受路徑、一個(gè)事務(wù)中心與若干條動作路徑組成。8. 事務(wù)分析設(shè)計(jì)的步驟?(1) 在 DFD 圖中確定事務(wù)中心、接收部分 (包含全部接收路徑 )和發(fā)送部分 (包含全部動 作路徑 );(2) 畫出SC圖框架,把DFD圖的三部分分?quot;映射"為事務(wù)控制模塊
17、,接收模塊和動作發(fā)送模塊 .一般得到 SC 圖的頂層和第一層 (如果第一層簡單可以并入頂層);(3) 分解和細(xì)化接收分支和動作分支 ,完成初始的 SC 圖;(4) 對初始結(jié)構(gòu)圖按照設(shè)計(jì)準(zhǔn)則進(jìn)行精化與改進(jìn)。9. 比較層次方框圖與結(jié)構(gòu)圖是的異同?(1) 層次方框圖描繪數(shù)據(jù)的層次結(jié)構(gòu) , 結(jié)構(gòu)圖描繪的是軟件結(jié)構(gòu)。(2) 二者都采用多層次矩形框樹形結(jié)構(gòu)。 層次方框圖的頂層矩形框代表完整的數(shù)據(jù)結(jié)構(gòu) 下面各層矩形框依次代表上個(gè)框數(shù)據(jù)的子集; 結(jié)構(gòu)圖 是在層次圖的每一個(gè)方框內(nèi)注明模 塊的名字或主要功能, 方框之間的直線表示模塊的調(diào)用關(guān)系, 用帶注解的箭頭表示模塊調(diào)用 過程中傳遞的信息。第五章 詳細(xì)設(shè)計(jì)1.
18、詳細(xì)設(shè)計(jì)的目的 ?為軟件結(jié)構(gòu)圖 (SC 圖或 HC 圖)中的每一個(gè)模塊確定采用的算法和塊內(nèi)數(shù)據(jù)結(jié)構(gòu),用某種選定的表達(dá)工具給出清晰的描述 .2. 詳細(xì)設(shè)計(jì)的主要任務(wù) ?編寫軟件的 “詳細(xì)設(shè)計(jì)說明書 ”軟.件人員要完成的工作:(1) 為每一個(gè)模塊確定采用的算法 , 選擇某種適當(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) 為每一個(gè)模塊設(shè)計(jì)出一組測試用例 ,以便在編碼階段對模塊代碼 (即程序 )進(jìn)行預(yù)定 的
19、測試 .3. 結(jié)構(gòu)化程序設(shè)計(jì)的基本原則 ?在詳細(xì)設(shè)計(jì)中所有模塊都使用單入口、單出口的順序、選擇、循環(huán)三種基本控制結(jié)構(gòu)4. 比較面向數(shù)據(jù)流和面向數(shù)據(jù)結(jié)構(gòu)兩類設(shè)計(jì)方法的異同 ?相同點(diǎn):(1) 遵守結(jié)構(gòu)程序設(shè)計(jì) “由頂向下 ”逐步細(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ī)則。不同點(diǎn):(1) 面向數(shù)據(jù)流的設(shè)計(jì)以數(shù)據(jù)流圖為基礎(chǔ),在分析階段用 DFD 表示軟件的邏輯模型, 在設(shè)計(jì)階段按數(shù)據(jù)流類型, 將數(shù)據(jù)流圖轉(zhuǎn)換為軟件結(jié)構(gòu)。 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)以數(shù)據(jù)結(jié)構(gòu)為 基礎(chǔ),從問題的數(shù)據(jù)結(jié)構(gòu)出發(fā)導(dǎo)出它的
20、程序結(jié)構(gòu)。(2) 面向數(shù)據(jù)流的設(shè)計(jì)的最終目標(biāo)是軟件的最終SC 圖,面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)的最終目標(biāo)是程序的過程性描述。5. 比較 Jackson 方法和 LCP 方法的異同 ?Jackson與LCP設(shè)計(jì)方法都是以數(shù)據(jù)結(jié)構(gòu)為出發(fā)點(diǎn),以程序的過程描述為最終目標(biāo),設(shè) 計(jì)步驟基本相似。它們的主要差別是:(1) 使用不同的表達(dá)工具,其中 LCP 方法中的表達(dá)工具 Warnier 圖比Jackson設(shè)計(jì)方法中的表達(dá)工具 Jackson圖有更大的通用性;(2) Jackson 方法的步驟和指導(dǎo)原則有一定的靈活性,而LCP 設(shè)計(jì)方法則更加嚴(yán)密。6. 詳細(xì)設(shè)計(jì)的描述工具應(yīng)具備什么功能?無論哪類描述工具不僅要具有描述
21、設(shè)計(jì)過程, 如控制流程、 處理功能、 數(shù)據(jù)組織及其它 方面的細(xì)節(jié)的能力 ,而且在編碼階段能夠直接將它翻譯為用程序設(shè)計(jì)語言書寫的源程序。第六章 編碼1. 編碼的任務(wù)?使用選定的程序設(shè)計(jì)語言,把模塊的過程性描述翻譯為用語言書寫的源程序(源代碼 )。2. 對源程序基本要求?源程序要求:正確可靠、簡明清晰、效率高。(1) 源程序的正確性是對程序質(zhì)量的最基本要求;(2) 源程序的簡明清晰,便于驗(yàn)證源代碼和模塊規(guī)格說明的一致性,容易進(jìn)行測試和維 護(hù);(3) 對于大多數(shù)模塊,編碼時(shí)應(yīng)該把簡明清晰放在第一位;(4) 除了編碼階段產(chǎn)生源代碼外,在測試階段也需要編寫一些測試程序,用于對軟件的 測試。3. 程序設(shè)計(jì)
22、語言的特點(diǎn) ?(1) 名字說明:程序中使用對象的名字,能為編譯程序所檢查和識別;(2) 類型說明:定義對象的類型,確定該對象的使用方式;(3) 初始化: 為變量提供適當(dāng)?shù)某跏贾祷蛴上到y(tǒng)給變量賦一特殊的表明未初始化的值;(4) 對象的局部性:程序中真正需要的那部分才能訪問的對象;(5) 程序模塊:控制程序?qū)ο蟮拿郑?6) 循環(huán)控制結(jié)構(gòu):如 FOR 語句、 WHILE-DO 語句、 REPEAT-UNTIL 語句等;(7) 分支控制結(jié)構(gòu):如 IF 語句、 CASE 語句等;(8) 異常處理:為程序運(yùn)行過程中發(fā)生的錯(cuò)誤和意外事件提供檢測和處理上的幫助;(9) 獨(dú)立編譯:能分別編譯各個(gè)程序單元。4.
23、 選擇程序設(shè)計(jì)語言需要考慮的因素?(1) 選擇用戶熟悉、便于用戶維護(hù)的語言。(2) 選擇目標(biāo)系統(tǒng)的環(huán)境中可以提供的編譯程序所能選用的語言。(3) 選擇可以得到的軟件工具 ,能支持程序開發(fā)中可以利用的語言。(4) 根據(jù)工程規(guī)模的大小、目標(biāo)系統(tǒng)應(yīng)用范圍,如實(shí)時(shí)應(yīng)用選擇 Ada 語言或匯編語言, 系統(tǒng)軟件開發(fā)選擇 C 語言或匯編語言, 軟件開發(fā)中若含有大量數(shù)據(jù)操作則選擇SQL 、dBASE等數(shù)據(jù)庫語言等。(5) 選擇程序員熟悉的語言。(6) 選擇標(biāo)準(zhǔn)化程度高、程序可移植性好的語言。(7) 根據(jù)算法與計(jì)算的復(fù)雜性、數(shù)據(jù)結(jié)構(gòu)的復(fù)雜性選擇。如對于系統(tǒng)程序和結(jié)構(gòu)復(fù)雜的 應(yīng)用程序,選擇支持?jǐn)?shù)組、記錄 ( 或結(jié)
24、構(gòu) ) 與指針動態(tài)數(shù)據(jù)結(jié)構(gòu)的 Pascal 語言或 C 語言。(8) 根據(jù)實(shí)時(shí)要求系統(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è)計(jì)中實(shí)現(xiàn)這個(gè)數(shù)據(jù)結(jié)構(gòu)的方法。(3) 語句的構(gòu)造簡單明了:不要為節(jié)省空間將多個(gè)語句寫在同一行;盡量避免復(fù)雜的條 件及 “非”條件的測試; 避免大量使用循環(huán)嵌套和條件嵌套; 括號的使用是為了使邏輯表達(dá)式 和算術(shù)表達(dá)式的運(yùn)算順序清晰直觀。(4) 效率:考慮程序運(yùn)行的時(shí)間存
25、儲器效率、輸入/輸出的效率;在處理程序正確性、清晰與效率之間的關(guān)系時(shí)先求程序正確后求快; 先求清楚后求快; 保持程序簡單以求快; 書寫 清楚 ,不為 “效率”犧牲清晰。6. 第四代語言 (4GL) 應(yīng)具備哪些的特征?(1) 具有很強(qiáng)的數(shù)據(jù)管理能力,能對數(shù)據(jù)庫進(jìn)行有效的存取、查詢和其它有關(guān)操作;(2) 能提供一組高效的、非過程化的命令,組成語言的基本語句,編程時(shí)用戶只需用這 些命令說明 “做什么 ”,不必描述實(shí)現(xiàn)的細(xì)節(jié);(3) 能滿足多功能、一體化的要求。為此,語言中除必須含有控制程序邏輯與實(shí)現(xiàn)數(shù)據(jù) 庫操作的語句外,還應(yīng)包括生成與處理報(bào)表、 表格、圖形,以及實(shí)現(xiàn)數(shù)據(jù)運(yùn)算和分析統(tǒng)計(jì)功 能的各種語句
26、,共同構(gòu)成一個(gè)一體化的語言,以適應(yīng)多種應(yīng)用開發(fā)的需要。第七章 軟件測試1. 軟件測試的基本任務(wù)?軟件測試是按照特定的規(guī)則, 發(fā)現(xiàn)軟件錯(cuò)誤的過程; 好的測試方案是盡可能發(fā)現(xiàn)迄今尚未發(fā)現(xiàn)錯(cuò)誤的測試;成功的測試方案是發(fā)現(xiàn)迄今尚未發(fā)現(xiàn)錯(cuò)誤的測試;2. 測試與調(diào)試的主要區(qū)別?(1) 測試從一個(gè)側(cè)面證明程序員的失??;調(diào)試證明程序員的正確;(2) 測試從已知條件開始,使用預(yù)先定義的程序,且有預(yù)知的結(jié)果,不可預(yù)見的僅是 程序是否通過測試;調(diào)試從不可知內(nèi)部條件開始,除統(tǒng)計(jì)性調(diào)試外,結(jié)果是不可預(yù)見的;(3) 測試有計(jì)劃并且要進(jìn)行測試設(shè)計(jì);調(diào)試不受時(shí)間約束;(4) 測試是發(fā)現(xiàn)錯(cuò)誤、改正錯(cuò)誤、重新測試的過程;調(diào)試是一
27、個(gè)推理的過程;(5) 測試執(zhí)行是有規(guī)程的;調(diào)試執(zhí)行要求程序員進(jìn)行必要的推理;(6) 測試由獨(dú)立的測試組在不了解軟件設(shè)計(jì)的件下完成;調(diào)試由了解詳細(xì)設(shè)計(jì)的程序 員完成;(7) 大多數(shù)測試的執(zhí)行和設(shè)計(jì)可由工具支持;調(diào)試用的工具主要是調(diào)試器。3. 人工復(fù)審的方式和作用 ? 人工復(fù)審的方式:代碼會審、走查和排練和辦公桌檢查; 人工復(fù)審的作用:檢查程序的靜態(tài)錯(cuò)誤。4. 什么是黑盒測試 ?黑盒測試主要采用的技術(shù)有哪些 ?黑盒測試:也稱為功能測試 ,它著眼于程序的外部特征 ,而不考慮程序的內(nèi)部邏輯結(jié)構(gòu)。測試者把被測程序看成一個(gè)黑盒 ,不用關(guān)心程序的內(nèi)部結(jié)構(gòu)。黑盒測試是在程序接口處進(jìn)行 測試,它只檢查程序功能是
28、否能按照規(guī)格說明書的規(guī)定正常使用, 程序是否能適當(dāng)?shù)亟邮蛰?入數(shù)據(jù)產(chǎn)生正確的輸出信息,并且保持外部信息(如數(shù)據(jù)庫或文件 )的完整性。黑盒測試主要采用的技術(shù)有 : 等價(jià)分類法、邊沿值分析法、 錯(cuò)誤推測法和因果圖等技術(shù)。5. 什么是白盒測試 ?白盒測試主要采用的技術(shù)有哪些 ?測試者了解被測程序的內(nèi)部結(jié)構(gòu)和處理過程,對程序的所有邏輯路徑進(jìn)行測試 ,在不同點(diǎn)檢查程序狀態(tài) ,確定實(shí)際狀態(tài)與預(yù)期狀態(tài)是否一致。白盒測試主要采用的技術(shù)有: 路徑測試技術(shù)和事務(wù)處理流程技術(shù), 對包含有大量邏輯判 斷或條件組合的程序采用基于邏輯的測試技術(shù)。6. 路徑測試技術(shù)中幾種主要覆蓋的含義 ?舉例說明 ?語句覆蓋 : 至少執(zhí)行
29、程序中所有語句一次。判定覆蓋 : 使被測程序中的每一個(gè)分支至少執(zhí)行一次。故也稱為分支覆蓋。條件覆蓋 : 執(zhí)行所有可能的穿過程序的控制路流程。條件組合測試 :設(shè)計(jì)足夠的測試用例,使每個(gè)判定中的所有可能條件取值組合至少執(zhí)行 一次。7. 等價(jià)分類法的測試技術(shù)采用的一般方法 ?舉例說明 ?(1) 為每個(gè)等價(jià)類編號;(2) 設(shè)計(jì)一個(gè)新的測試方案 ,以盡可能多的覆蓋尚未被覆蓋的有效等價(jià)類, 重復(fù)這一步驟,直到所有有效等價(jià)類被覆蓋為止。(3) 設(shè)計(jì)一個(gè)新的測試方案 ,使它覆蓋一個(gè)尚未被覆蓋的無效等價(jià)類 , 重復(fù)這一步驟 ,直 到所有無效等價(jià)類被覆蓋為止。8. 軟件測試的一般步驟 ?單元測試、子系統(tǒng)測試、系統(tǒng)
30、測試、驗(yàn)收測試、平行測試。9. 比較集成試的兩種方式的優(yōu)劣 ?非漸增式測試方式: 分別測試模塊 ,再把所有模塊按設(shè)計(jì)要求放在一起組成所要的程序。 該方法編寫測試軟件工作量大, 模塊間的接口錯(cuò)誤發(fā)現(xiàn)得晚, 錯(cuò)誤定位較難診斷, 總體測試 有的錯(cuò)誤容易漏掉, 測試時(shí)間相對較少, 可以并行測試所有模塊, 能充分利用人力,加快工 程進(jìn)度。漸增式測試方式: 把下一個(gè)要測試的模塊 ,同已經(jīng)測試好的那些模塊結(jié)合起來進(jìn)行測試。 該方法利用已測試過的模塊作測試軟件,開銷小,較早發(fā)現(xiàn)模塊間的接口錯(cuò)誤,錯(cuò)誤定位往往和最近入的模塊相關(guān), 對已測試好的模塊可在新加入模塊的條件下受到新的檢驗(yàn), 測試更 徹底,需要較多的測試
31、時(shí)間,不能并行測試。總的來說,漸增式測試方法比較好。10. 軟件測試的策略 ?(1) 在任何情況下都應(yīng)使用邊界值分析的方法。(2) 必要時(shí)用等價(jià)類劃分法補(bǔ)充測試方案。(3) 必要時(shí)再用錯(cuò)誤推測法補(bǔ)充測試方案。(4) 對照程序邏輯,檢查已設(shè)計(jì)出的測試方案。(5) 根據(jù)對程序可靠性的要求采用不同的邏輯覆蓋標(biāo)準(zhǔn),再補(bǔ)充一些測試方案。第八章 軟件維護(hù)1. 為什么說軟件的維護(hù)是不可避免的? 因?yàn)檐浖拈_發(fā)過程中, 一般很難檢測到所有的錯(cuò)誤, 其次軟件在應(yīng)用過程中需要隨用 戶新的要求或運(yùn)行環(huán)境的變化而進(jìn)行軟件的修改或完成功能的增刪等, 為了提高軟件的應(yīng)用 水平和使用壽命,軟件的維護(hù)是不可避免的。2. 軟件
32、的維護(hù)一般分為哪幾類?改正性維護(hù): 滿足用戶對已開發(fā)產(chǎn)品的性能與運(yùn)行環(huán)境不斷提高的要求, 進(jìn)而達(dá)到延長 軟件壽命的目的。適應(yīng)性維護(hù): 對程序使用期間發(fā)現(xiàn)的程序錯(cuò)誤進(jìn)行診斷和改正的過程, 配合變化了的環(huán) 境進(jìn)行修改軟件的活動;完善性維護(hù): 滿足用戶在使用過程中提出增加新的功能或修改已有功能的建議而進(jìn)行的 工作;預(yù)防性維護(hù):為了改善未來的可維護(hù)性或可靠性而修改軟件的工作。3. 影響軟件維護(hù)的因素有哪些?開發(fā)方法: 采用模塊化詳細(xì)設(shè)計(jì)文檔有助于理解軟件的結(jié)構(gòu)、 界面功能和內(nèi)部流程; 開 發(fā)過程中嚴(yán)格而科學(xué)的管理規(guī)劃及清晰可靠的文檔資料對發(fā)生錯(cuò)誤后的理解與糾錯(cuò)是至關(guān) 重要的; 開發(fā)過程中模塊的獨(dú)立程度
33、越高, 對軟件修改越容易, 對軟件的改進(jìn)和移植越方便。開發(fā)條件: 軟件開發(fā)及維護(hù)人員的水平?jīng)Q定了軟件開發(fā)的質(zhì)量和維護(hù)的效率; 開發(fā)過程 中使用標(biāo)準(zhǔn)的程序設(shè)計(jì)語言和標(biāo)準(zhǔn)的操作系統(tǒng)接口, 可以大大提高軟件的可維護(hù)性; 在測試 過程中用例的有效性, 可極大地減少軟件存在的錯(cuò)誤; 其次使用規(guī)范化的文檔資料可為維護(hù) 提供更好的依據(jù)。4. 軟件維護(hù)困難主要表現(xiàn)在什么方面?(1) 一般來講,維護(hù)人員對開發(fā)人員寫的程序及文檔,理解都比較困難,對維護(hù)工作不 會喜歡;(2) 維護(hù)持續(xù)時(shí)間都很長,在開發(fā)人員不在現(xiàn)場的輕快下,維護(hù)軟件通常是很困難的;(3) 絕大多數(shù)軟件在設(shè)計(jì)時(shí)對將來的軟件修改都沒有考慮或考慮不多,尤其未能在設(shè)計(jì) 中強(qiáng)調(diào)并認(rèn)真解決好模塊的獨(dú)立性,使軟件的修改既困難又易發(fā)生差錯(cuò)。5. 決定軟件可維護(hù)性的因素?(1) 軟件的可理解性、可測試性、可修改性;(2) 文檔描述符合要求、用戶文檔簡潔明確、系統(tǒng)文檔完整并且標(biāo)準(zhǔn)。6. 軟件價(jià)格應(yīng)該計(jì)入維護(hù)成本嗎?為什么?在軟件的生命周期中, 軟件維護(hù)的工作量非常大,
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 真實(shí)案例問題導(dǎo)學(xué)在生物教學(xué)中的成功應(yīng)用
- 2025年嘉興南湖學(xué)院單招職業(yè)適應(yīng)性測試題庫含答案
- 現(xiàn)代企業(yè)供應(yīng)鏈管理的新方向區(qū)塊鏈與智能供應(yīng)
- 酒吧租房合同范本
- 2025-2030年中國焦化煤氣項(xiàng)目可行性研究報(bào)告
- 2025-2030年中國煙草精油行業(yè)競爭格局及投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國渦輪增壓器市場競爭格局與發(fā)展策略分析報(bào)告
- 2025-2030年中國注塑桶行業(yè)需求狀況及發(fā)展趨勢分析報(bào)告
- 2025-2030年中國泡花堿行業(yè)營運(yùn)現(xiàn)狀與發(fā)展前景分析報(bào)告
- 2025-2030年中國汽車涂料行業(yè)運(yùn)行趨勢及發(fā)展前景分析報(bào)告
- 10我們所了解的環(huán)境污染 (教學(xué)設(shè)計(jì))2023-2024學(xué)年統(tǒng)編版道德與法治四年級上冊
- 天津2025年天津中德應(yīng)用技術(shù)大學(xué)輔導(dǎo)員崗位招聘7人筆試歷年參考題庫附帶答案詳解
- 2025年湘西民族職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2025年海南職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點(diǎn)含答案解析
- 北京市西城區(qū)2024-2025學(xué)年高三上學(xué)期期末考試語文試題(解析版)
- 2025年春新人教版數(shù)學(xué)一年級下冊課件 第六單元 數(shù)量間的加減關(guān)系 第2課時(shí) 求比1個(gè)數(shù)多(少)幾的數(shù)
- 語文課堂中的多媒體教學(xué)方法研究
- 民用無人機(jī)操控員執(zhí)照(CAAC)考試復(fù)習(xí)重點(diǎn)題庫500題(含答案)
- 北京市朝陽區(qū)2025下半年事業(yè)單位招聘149人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 肩袖損傷課件
- DB3207-T 1047-2023 羊肚菌-豆丹綜合種養(yǎng)技術(shù)規(guī)程
評論
0/150
提交評論