版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
軟件工程第一章作業(yè)1.1什么是計(jì)算機(jī)軟件?軟件的特點(diǎn)是什么?答:計(jì)算機(jī)軟件指計(jì)算機(jī)系統(tǒng)中的程序及其文檔。軟件的特點(diǎn)是:A軟件是一種邏輯實(shí)體,而不是有形的系統(tǒng)元件,其開發(fā)成本和進(jìn)度難以準(zhǔn)確得估算;B軟件是被開發(fā)的或被設(shè)計(jì)的,沒有明顯的制造過程,一旦開發(fā)成功,只需復(fù)制即可,但其維護(hù)的工作量大;C軟件的使用沒有硬件那樣的機(jī)械磨損和老化問題。1.2簡述軟件的分類,并舉例說明。答:在《計(jì)算機(jī)科學(xué)技術(shù)百科全書》中,將軟件分為系統(tǒng)軟件、支撐軟件和應(yīng)用軟件3類。A系統(tǒng)軟件:系統(tǒng)軟件居于計(jì)算機(jī)系統(tǒng)中最靠近硬件的一層,其他軟件一般都通過系統(tǒng)軟件發(fā)揮作用。系統(tǒng)軟件與具體的應(yīng)用領(lǐng)域無關(guān)。例如:編譯程序、操作系統(tǒng)等。B支撐軟件:支撐軟件是支撐軟件的開發(fā)和維護(hù)的軟件。例如:數(shù)據(jù)庫管理系統(tǒng)、網(wǎng)絡(luò)軟件、軟件工具、軟件開發(fā)環(huán)境等。C應(yīng)用軟件:應(yīng)用軟件是特定應(yīng)用領(lǐng)域?qū)S玫能浖?。例如:工?科學(xué)計(jì)算軟件、嵌入式軟件、產(chǎn)品線軟件、Web應(yīng)用軟件、人工智能軟件。1.4什么是軟件工程?答:在《計(jì)算機(jī)科學(xué)技術(shù)百科全書》中軟件工程是應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,開發(fā)軟件的工程。1.5簡述軟件工程的基本原則。答:軟件工程原則包括圍繞工程設(shè)計(jì)、工程支持和工程管理提出的以下4條基本原則:第一條:圍繞適宜的開發(fā)模型;第二條:采用合適的設(shè)計(jì)方法;第三條:提供高質(zhì)量的工程支撐;第四條:重視軟件工程的管理。1.6軟件生存周期分哪幾個(gè)階段?分別簡述各個(gè)階段的任務(wù)。答:軟件生存周期有計(jì)算機(jī)系統(tǒng)工程、需求分析、設(shè)計(jì)、編碼、測試、運(yùn)行和維護(hù)6個(gè)階段。A計(jì)算機(jī)系統(tǒng)工程的任務(wù)是確定待開發(fā)軟件的總體要求和范圍,以及該軟件與其他計(jì)算機(jī)系統(tǒng)元素之間的關(guān)系,進(jìn)行成本估算,做出進(jìn)度安排,并進(jìn)行可行性分析,即從經(jīng)濟(jì)、技術(shù)、法律等方面分析待開發(fā)的軟件是否有可行的解決方案,并在若干個(gè)可行的解決方案中做出選擇。B需求分析主要解決待開發(fā)軟件要“做什么”的問題,確定軟件的功能、性能、數(shù)據(jù)、界面等要求,生成軟件需求規(guī)約。C軟件設(shè)計(jì)只要解決待開發(fā)軟件“怎么做”的問題。軟件設(shè)計(jì)通??煞譃橄到y(tǒng)設(shè)計(jì)和詳細(xì)設(shè)計(jì)。系統(tǒng)設(shè)計(jì)的任務(wù)是設(shè)計(jì)軟件系統(tǒng)的體系結(jié)構(gòu),包括軟件系統(tǒng)的組成成分、各成分的功能和接口、成分間的連接和通信,同時(shí)設(shè)計(jì)全局?jǐn)?shù)據(jù)結(jié)構(gòu)。詳細(xì)設(shè)計(jì)的任務(wù)是設(shè)計(jì)各個(gè)組成成分的實(shí)現(xiàn)細(xì)節(jié),包括局部數(shù)據(jù)結(jié)構(gòu)和算法等。D編碼階段的任務(wù)是用某種程序設(shè)計(jì)語言,將設(shè)計(jì)的結(jié)果轉(zhuǎn)換為可執(zhí)行的程序代碼。E測試階段的任務(wù)是發(fā)現(xiàn)并糾正軟件中的錯(cuò)誤和缺陷。測試主要包括單元測試、集成測試、確認(rèn)測試和系統(tǒng)測試。F軟件完成各種測試后就可交付使用,在軟件運(yùn)行期間,需對(duì)投入運(yùn)行的軟件進(jìn)行維護(hù),即可發(fā)現(xiàn)了軟件中潛藏的錯(cuò)誤或需要增加新的功能或使軟件適應(yīng)外界環(huán)境的變化等情況出現(xiàn)時(shí),對(duì)軟件進(jìn)行修改。1.9簡述各類軟件過程模型的特點(diǎn)。答:典型的軟件過程模型有:瀑布模型、演化模型(增量模型、原型模型、螺旋模型)、噴泉模型、基于構(gòu)件的開發(fā)模型和形式方法模型等。A瀑布模型中,上一階段的活動(dòng)完成并經(jīng)過評(píng)審后才能開始下一階段的活動(dòng),其特征是:接受上一階段活動(dòng)的結(jié)果作為本階段活動(dòng)的輸入;依據(jù)上一階段活動(dòng)的結(jié)果實(shí)施本階段應(yīng)完成的活動(dòng);對(duì)本階段的活動(dòng)進(jìn)行評(píng)審;將本階段活動(dòng)的結(jié)果作為輸出。B增量模型將軟件的開發(fā)過程分成若干個(gè)日程時(shí)間交錯(cuò)的線性序列,每個(gè)線性序列產(chǎn)生軟件的一個(gè)可發(fā)布的增量版本,后一個(gè)版本是對(duì)前一個(gè)版本的修改和補(bǔ)充,重復(fù)增量發(fā)布的過程,直至產(chǎn)生最終的完善產(chǎn)品。C原型方法從軟件工程師與客戶的交流開始,其目的是定義軟件的總體目標(biāo),標(biāo)識(shí)需求。然后快速制定原型開發(fā)的計(jì)劃,確定原型的目標(biāo)和范圍,采用快速設(shè)計(jì)的方式對(duì)其建模,并構(gòu)建模型。被開發(fā)的原型應(yīng)交付給客戶使用,并收集客戶的反饋意見,這些反饋意見可在下一輪迭代中對(duì)原型進(jìn)行改進(jìn)。在前一個(gè)原型需要改進(jìn),或者需要擴(kuò)展其范圍的時(shí)候,進(jìn)入下一輪原型的迭代開發(fā)。D螺旋模型將原型模型實(shí)現(xiàn)的迭代特征與瀑布模型中控制的和系統(tǒng)化的方面結(jié)合起來,不僅體現(xiàn)了這兩種模型的優(yōu)點(diǎn)而且還增加了風(fēng)險(xiǎn)分析。E噴泉模型是一種支持面向?qū)ο箝_發(fā)的過程模型。類及對(duì)象是面向?qū)ο蠓椒ㄖ械幕境煞?。在分析階段,標(biāo)識(shí)類及對(duì)象,定義類之間的關(guān)系,建立對(duì)象-關(guān)系模型和對(duì)象-行為模型。在設(shè)計(jì)階段,從實(shí)現(xiàn)的角度對(duì)分析模型進(jìn)行調(diào)整和擴(kuò)充。在編碼階段,用面向?qū)ο笳Z言實(shí)現(xiàn)類及對(duì)象,通過消息機(jī)制實(shí)現(xiàn)對(duì)象之間的通信,完成軟件的功能。在面向?qū)ο蠓椒ㄖ校治瞿P秃驮O(shè)計(jì)模型采用相同的符號(hào)表示體系,開發(fā)的各個(gè)活動(dòng)沒有明顯的邊界,各個(gè)活動(dòng)經(jīng)常重復(fù),迭代地交替進(jìn)行。F基于構(gòu)件的開發(fā)模型,基于構(gòu)件的開發(fā)是指利用預(yù)先包裝的構(gòu)建來構(gòu)造應(yīng)用系統(tǒng)。構(gòu)件可以是組織內(nèi)部開發(fā)的構(gòu)建,也可以是商業(yè)化的、現(xiàn)存的軟件構(gòu)件。G形式化方法是建立在嚴(yán)格數(shù)學(xué)基礎(chǔ)上的一種軟件開發(fā)方法。軟件開發(fā)的全過程中,從需求分析、規(guī)約、設(shè)計(jì)、編程、系統(tǒng)集成、測試、文檔生成,直至維護(hù)等各個(gè)階段,凡是采用嚴(yán)格的數(shù)學(xué)語言,具有精確的數(shù)學(xué)語義的方法,都稱為形式化方法。形式化方法用嚴(yán)格的數(shù)學(xué)語言和語義描述功能和設(shè)計(jì)規(guī)約,通過數(shù)學(xué)的分析和推導(dǎo),易于發(fā)現(xiàn)需求的歧義性、不完整性和不一致性,易于對(duì)分析模型、設(shè)計(jì)模型和程序進(jìn)行驗(yàn)證。通過數(shù)學(xué)的演算,使得從形式化功能規(guī)約到形式化設(shè)計(jì)規(guī)約,以及從形式化設(shè)計(jì)規(guī)約到程序代碼轉(zhuǎn)換成為可能。1.10敏捷軟件開發(fā)的特點(diǎn)是什么?答:敏捷軟件開發(fā)的特點(diǎn)有4個(gè):A個(gè)人和交互高于過程和工具;B可運(yùn)行軟件高于詳盡的文檔;C與客戶協(xié)作高于合同談判;D對(duì)變更及時(shí)做出反應(yīng)高于遵循計(jì)劃。1.12簡述敏捷軟件開發(fā)的原則。答:敏捷軟件開發(fā)必須遵循的12條原則如下;A最優(yōu)先的是通過盡早地和不斷地提交有價(jià)值的軟件來使客戶滿意;B歡迎變化的需求,即使該變化出現(xiàn)在開發(fā)的后期,為了提升對(duì)客戶的競爭優(yōu)勢,Agile過程利用變化作為動(dòng)力;C以幾周到幾個(gè)月為周期,盡快、不斷地發(fā)布可運(yùn)行軟件;D在整個(gè)項(xiàng)目過程中,業(yè)務(wù)人員和開發(fā)人員必須天天一起工作;E以積極向上的員工為中心建立項(xiàng)目組,給予他們所需要的環(huán)境和支持,對(duì)他們的工作予以充分的信任;F項(xiàng)目組內(nèi)效率最高、最有效的信息傳遞方式是面對(duì)面的交流;G測量項(xiàng)目進(jìn)展的首要依據(jù)是可運(yùn)行的軟件;H敏捷過程提倡可持續(xù)的開發(fā),項(xiàng)目發(fā)起者、開發(fā)者和用戶應(yīng)能長期保持恒定的速度;I應(yīng)該時(shí)刻關(guān)注技術(shù)上的精益求精和好的設(shè)計(jì),以增強(qiáng)敏捷性;J簡單化是必不可少的,這是盡可能減少不必要工作的藝術(shù);K最好的構(gòu)架、需求和設(shè)計(jì)出自于自我組織的團(tuán)隊(duì);L團(tuán)隊(duì)要定期反思怎樣才能更加有效,并據(jù)此調(diào)整自己的行為。第2、3章2.1簡述系統(tǒng)工程的任務(wù)。答:系統(tǒng)工程是一個(gè)問題求解的活動(dòng),其目的是分析基于計(jì)算機(jī)的系統(tǒng)的功能、性能等要求,并把它們分配到基于計(jì)算機(jī)系統(tǒng)的各個(gè)系統(tǒng)元素中,確定它們的約束條件和接口。主要任務(wù)包括:(1)識(shí)別用戶要求;(2)系統(tǒng)建模與模擬;(3)成本估算及進(jìn)度安排;(4)可行性分析;(5)生成系統(tǒng)規(guī)格說明。2.2基于計(jì)算機(jī)的系統(tǒng)由哪些元素組成?答:組成基于計(jì)算機(jī)系統(tǒng)的元素主要有:軟件、硬件、人員、數(shù)據(jù)庫、文檔和規(guī)程。2.3簡述可行性分析的任務(wù)。答:可行性分析主要從經(jīng)濟(jì)、技術(shù)、法律等方面分析所給出的解決方案是否可行,能否在規(guī)定的資源和時(shí)間的約束下完成。(1)經(jīng)濟(jì)可行性主要進(jìn)行成本效益分析,從經(jīng)濟(jì)角度,確定系統(tǒng)是否值得開發(fā)。包括成本、效益、貨幣的時(shí)間價(jià)值、投資回收期和純收入。(2)技術(shù)可行性主要根據(jù)系統(tǒng)的功能、性能、約束條件等,分析在現(xiàn)有資源和技術(shù)條件下系統(tǒng)能否實(shí)現(xiàn)。技術(shù)可行性分析通常包括風(fēng)險(xiǎn)分析、資源分析和技術(shù)分析。(3)法律可行性主要研究系統(tǒng)開發(fā)過程中可能涉及到的合同、侵權(quán)、責(zé)任以及各種與法律相抵觸的問題。3.1需求工程的重要性是什么?舉出身邊由于需求分析失敗而造成整個(gè)項(xiàng)目失敗的例子。答:重要性是應(yīng)用已證實(shí)有效的技術(shù)、方法進(jìn)行需求分析,確定客戶需求、幫助分析人員理解問題,評(píng)估可行性,協(xié)商合理的解決方案,無歧視地規(guī)約方案,確認(rèn)規(guī)約以及將規(guī)約轉(zhuǎn)換到可行性的系統(tǒng)時(shí)的管理要求,通過合理的工具和符號(hào)系統(tǒng)地描述待開發(fā)系統(tǒng)以及其行為特征和相關(guān)約束,形成需求文檔,并對(duì)用戶不斷變化的需求演進(jìn)給予支持。因需求分析失敗而造成項(xiàng)目失敗例子如下:項(xiàng)目名稱:郵政資信管理系統(tǒng)項(xiàng)目功能:管理郵政方面業(yè)務(wù)的監(jiān)督和管理,提高郵政的服務(wù)效率。失敗原因:需求分析不足,需求內(nèi)容不明確,把握不充分。3.2需求工程具體包括哪些步驟?每個(gè)步驟的具體任務(wù)是什么?答:需求工程具體步驟包括:需求獲取、需求分析與協(xié)商、系統(tǒng)建模、需求規(guī)約、需求驗(yàn)證以及需求管理六個(gè)步驟。(1)需求獲取在需求獲取階段系統(tǒng)分析人員通過與用戶的交流、對(duì)現(xiàn)有系統(tǒng)的觀察以及對(duì)任務(wù)進(jìn)行分析,確定系統(tǒng)或產(chǎn)品范圍的限制性描述、與系統(tǒng)或產(chǎn)品有關(guān)的人員及特征列表、系統(tǒng)的技術(shù)環(huán)境的描述、系統(tǒng)功能的列表以及應(yīng)用于每個(gè)需求的領(lǐng)域限制、一組描述不同運(yùn)行條件下系統(tǒng)或產(chǎn)品使用狀況的應(yīng)用場景以及為更好地定義需求而開發(fā)的原型。需求獲取的工作產(chǎn)品為進(jìn)行需求分析提供了基礎(chǔ)。(2)需求分析與協(xié)商此階段的任務(wù)是對(duì)需求進(jìn)行分類組織,分析每個(gè)需求與其他需求的關(guān)系以檢查需求的一致性、重疊和遺漏的情況,并根據(jù)用戶的需要對(duì)需求進(jìn)行排序。(3)系統(tǒng)建模系統(tǒng)建模是為了在用戶和系統(tǒng)分析人員之間建立統(tǒng)一的語言和理解的橋梁,系統(tǒng)分析人員借助建模技術(shù)對(duì)獲取的需求信息進(jìn)行分析,排除錯(cuò)誤和彌補(bǔ)不足,確保需求分析文檔正確反映用戶的真實(shí)意圖。(4)需求規(guī)約軟件需求規(guī)約是分析任務(wù)的最終產(chǎn)物,通過建立完整的信息描述、詳細(xì)的功能和行為描述、性能和設(shè)計(jì)約束的說明、合適的驗(yàn)收標(biāo)準(zhǔn),給出對(duì)目標(biāo)軟件的各種需求。需求規(guī)約作為用戶和開發(fā)者之間的一個(gè)協(xié)議,在之后的軟件工程各個(gè)階段發(fā)揮重要作用。(5)需求驗(yàn)證此階段的任務(wù)是對(duì)功能的正確性、完整性和清晰性,以及其他需求給予評(píng)價(jià),保證軟件需求定義的質(zhì)量。(6)需求管理軟件需求管理是對(duì)需求工程所有相關(guān)活動(dòng)的規(guī)劃和控制。換句話說,需求管理就是:一種獲取、組織并記錄系統(tǒng)需求的系統(tǒng)化方案,以及一個(gè)使用戶與項(xiàng)目團(tuán)隊(duì)對(duì)不斷變更的系統(tǒng)需求達(dá)成并保持一致的過程。3.3一個(gè)系統(tǒng)分析員應(yīng)該具備哪些思想素質(zhì)和基礎(chǔ)知識(shí)?請(qǐng)說明理由。答:(1)強(qiáng)烈的責(zé)任心和事業(yè)心系統(tǒng)分析師由于必須保證分析的準(zhǔn)確性,尤其是需求,所以責(zé)任更為重大。一般來說,不應(yīng)以用戶表述不明確,無法得到需求,或者用戶需求變化太多太快作為借口,更不能因?yàn)橄旅娴难邪l(fā)技術(shù)人員技術(shù)水平不如自己而責(zé)備研發(fā)技術(shù)人員,同時(shí)也需要能夠?yàn)楸WC企業(yè)利益而說服公司領(lǐng)導(dǎo)做出正確的決策;(2)鉆研精神IT行業(yè)不同于其他行業(yè),新理念新技術(shù)新方法層出不窮,系統(tǒng)分析師需要能夠適時(shí)適當(dāng)?shù)匾M(jìn)新理念新技術(shù)新方法,為企業(yè)提高生產(chǎn)效率,為員工降低勞動(dòng)強(qiáng)度,為客戶提供更具競爭力和更加實(shí)用的產(chǎn)品和服務(wù);(3)優(yōu)秀的協(xié)商談判能力復(fù)雜的系統(tǒng)有許多項(xiàng)目相關(guān)的人員,他們之間的需求必定會(huì)出現(xiàn)沖突,協(xié)商的過程就是討論需求,找出每個(gè)人都滿意的折衷方案。分析人員是參與這之中的重要一份子,需要協(xié)調(diào)這之中的各方利益,這就要求分析員必須要有優(yōu)秀的協(xié)商談判能力。(4)廣泛的知識(shí)面:除了具備基本的IT技能、知識(shí)外,需要廣泛涉獵其他行業(yè)其他學(xué)科的知識(shí)方法,以系統(tǒng)工程的理念,借鑒和利用其他行業(yè)的為IT行業(yè)所用,也可以把IT行業(yè)的理念應(yīng)用到其他行業(yè);(5)精湛的技術(shù)能力:系統(tǒng)分析員往往需要分析可行性和解決研發(fā)人員的技術(shù)問題,因此必須具備廣泛的技術(shù)涉獵面和較強(qiáng)的技術(shù)能力;(6)財(cái)務(wù)能力:系統(tǒng)分析員往往需要參與項(xiàng)目的招投標(biāo)分析,為了保證企業(yè)的利潤和客戶的利益,必須進(jìn)行財(cái)務(wù)核算,需要具備會(huì)計(jì)、財(cái)務(wù),成本計(jì)算等方面的能力;(7)司法能力:與其他大部分行業(yè)一樣,IT行業(yè)也受到法律的約束,任何活動(dòng)必須合情合理合法,任何違背法律的項(xiàng)目最終都會(huì)失敗,違背倫理道德的事和人最終都將失去人心。(8)超強(qiáng)超快的學(xué)習(xí)能力:IT行業(yè)新技術(shù)層出不窮,同時(shí)其他相關(guān)必備知識(shí)、業(yè)務(wù)知識(shí)也是瞬息萬變,系統(tǒng)分析師要能夠快速學(xué)習(xí)并快速掌握和靈活應(yīng)用;(9)敏銳的觀察力:由于IT行業(yè)項(xiàng)目的特殊性,項(xiàng)目復(fù)雜多變,系統(tǒng)分析師要能夠先于其他人員發(fā)現(xiàn)問題、發(fā)現(xiàn)隱患,并提前做出規(guī)避風(fēng)險(xiǎn)的策略。3.4列出在制定需求獲取策略時(shí)的3種主要考慮因素。答:(1)能否建立起順暢的通訊途徑;(2)是否能夠獲取用戶對(duì)系統(tǒng)的功能需求和非功能需求;(3)是否利于在可運(yùn)行系統(tǒng)時(shí)的管理要求。3.6舉例說明一個(gè)系統(tǒng)的3個(gè)不同類型的非功能需求答:非功能性需求是指軟件產(chǎn)品為滿足用戶業(yè)務(wù)需求而必須具有且除功能需求以外的特性。軟件產(chǎn)品的非功能性需求包括系統(tǒng)的性能、可靠性、可維護(hù)性、可擴(kuò)充性和對(duì)技術(shù)和對(duì)業(yè)務(wù)的適應(yīng)性等。例如在銀行管理系統(tǒng)中,由于銀行數(shù)據(jù)量的龐大以及對(duì)銀行賬戶的管理需求,用戶對(duì)系統(tǒng)的性能、可靠性、可維護(hù)性要求很高。安全性是對(duì)銀行用戶個(gè)人信息保密的基本要求;在使用系統(tǒng)時(shí),由于用戶龐大,要求能快速安全的執(zhí)行要求,這就對(duì)系統(tǒng)的性能有高需求;銀行的用戶的變動(dòng)比較大,需求高要求的系統(tǒng)維護(hù)。3.8軟件需求分析的操作性原則和需求工程的指導(dǎo)性原則是什么?答:(1)必須能夠表示和理解問題的信息域;(2)必須能夠定義軟件將完成的功能;(3)必須劃分描述數(shù)據(jù)、功能和行為的模型,從而可以分層次地揭示細(xì)節(jié);(4)分析過程應(yīng)該從要素信息移向細(xì)節(jié)信息3.9軟件需求規(guī)約主要包括哪些內(nèi)容?自己尋找一個(gè)實(shí)例,親自寫一個(gè)需求規(guī)約。答:軟件需求規(guī)約包括:引言、信息描述、功能描述、行為描述、檢驗(yàn)標(biāo)準(zhǔn)、參考書目、附錄。3.10需求驗(yàn)證應(yīng)該有哪些人參加?畫出一個(gè)過程模型,說明需求評(píng)審應(yīng)該如何組織。答:參與人員:分析人員,用戶,開發(fā)部門的管理者,軟件設(shè)計(jì)、實(shí)現(xiàn)、測試的人員。需求分析分析人員用戶用戶要求獲取系統(tǒng)系統(tǒng)信息需求折衷方案系統(tǒng)信息開發(fā)部門管理者軟件設(shè)計(jì)、實(shí)現(xiàn)、測試人員系統(tǒng)需求第4章4.1簡述軟件設(shè)計(jì)階段的基本任務(wù)軟件設(shè)計(jì)的輸入是軟件分析模型。使用一種設(shè)計(jì)方法,軟件分析模型中通過數(shù)據(jù)、功能和行為模型所展示的軟件需求的信息被傳送給設(shè)計(jì)階段,產(chǎn)生數(shù)據(jù)/類設(shè)計(jì)、體系結(jié)構(gòu)設(shè)計(jì)、接口設(shè)計(jì)、部件及設(shè)計(jì)。數(shù)據(jù)/類設(shè)計(jì)將分析類模型變換成類的實(shí)現(xiàn)和軟件實(shí)現(xiàn)所需要的數(shù)據(jù)結(jié)構(gòu)。體系結(jié)構(gòu)設(shè)計(jì)定義了軟件的整體結(jié)構(gòu),由軟件部件、外部可見的屬性和他們之間的關(guān)系組成。接口設(shè)計(jì)描述了軟件內(nèi)部、軟件和協(xié)作系統(tǒng)之間以及軟件同人之間的通信方式。部件級(jí)設(shè)計(jì)將軟件體系結(jié)構(gòu)的結(jié)構(gòu)性元素變換為對(duì)軟件部件的過程性描述。4.2軟件設(shè)計(jì)與質(zhì)量的關(guān)系是怎么樣的?設(shè)計(jì)是在軟件開發(fā)中形成質(zhì)量的階段,設(shè)計(jì)提供了可以用于質(zhì)量評(píng)估的軟件表示,是將用戶需求準(zhǔn)確的轉(zhuǎn)化為完整的軟件產(chǎn)品或系統(tǒng)的主要途徑。4.4簡述模塊、模塊化及模塊化設(shè)計(jì)的概念。在軟件工程中模塊是數(shù)據(jù)說明、可執(zhí)行語句等程序?qū)ο蟮募希哂忻?、參?shù)、功能等外部特征以及完成模塊功能的程序代碼和模塊內(nèi)部數(shù)據(jù)等內(nèi)部特征。模塊化,即把軟件按照規(guī)定原則,劃分為一個(gè)個(gè)較小的,相互獨(dú)立的但又相互關(guān)聯(lián)的部件,實(shí)際上是系統(tǒng)分解和抽象的過程。模塊化設(shè)計(jì),簡單地說就是程序的編寫不是開始就逐條錄入計(jì)算機(jī)語句和指令,而是首先用主程序、子程序、子過程等框架把軟件的主要結(jié)構(gòu)和流程描述出來,并定義和調(diào)試好各個(gè)框架之間的輸入、輸出鏈接關(guān)系。逐步求精的結(jié)果是得到一系列以功能塊為單位的算法描述。以功能塊為單位進(jìn)行程序設(shè)計(jì),實(shí)現(xiàn)其求解算法的方法稱為模塊化。模塊化的目的是為了降低程序復(fù)雜度,使程序設(shè)計(jì)、調(diào)試和維護(hù)等操作簡單化。4.6
耦合和軟件可移植性的概念有何關(guān)系?舉例說明自己的結(jié)論。所謂“耦合性”是指模塊之間聯(lián)系的緊密程度的一種度量,而軟件的“可移植性”是指將一個(gè)軟件系統(tǒng)從一個(gè)計(jì)算機(jī)系統(tǒng)或環(huán)境移植到另一個(gè)計(jì)算機(jī)系統(tǒng)或環(huán)境中運(yùn)行時(shí)所需工作量的大小??梢浦残允怯靡唤M子特性,包括簡明性、模塊獨(dú)立性、通用性、可擴(kuò)充性、硬件獨(dú)立性和軟件系統(tǒng)獨(dú)立性等,來衡量的。如果一個(gè)軟件具有可移植性,它必然耦合性低,這樣模塊獨(dú)立性要強(qiáng)。例如,有一個(gè)圖形處理軟件,它應(yīng)具有二維幾何圖形處理、三維幾何圖形處理、圖形顯示、外設(shè)控制、數(shù)據(jù)庫管理、用戶界面控制、設(shè)計(jì)分析等模塊。如果這些模塊之間都是通過參數(shù)表來傳遞信息,那么它們之間的的耦合就是數(shù)據(jù)耦合或標(biāo)記耦合等,都是低耦合。將來如果想要把它們移植到另一個(gè)外部環(huán)境中,這些模塊容易修改(功能內(nèi)聚),且接口清晰,修改可局部化。反言之,如果這些模塊都是功能內(nèi)聚或信息內(nèi)聚的模塊,模塊之間的耦合都是低耦合,也對(duì)可移植性有促進(jìn)。但不能講具有低耦合性模塊結(jié)構(gòu)的軟件一定具有可移植性,因?yàn)槭欠窬哂锌梢浦残赃€有其它因素的影響。4.7用自己的話描述信息隱蔽概念,并討論信息隱藏與模塊獨(dú)立兩概念之間的關(guān)系。信息隱藏指在設(shè)計(jì)和確定模塊時(shí),使得一個(gè)模塊內(nèi)包含的特定信息(過程或數(shù)據(jù)),對(duì)于不需要這些信息的其他模塊來說,是透明的?!半[藏”的意思是,有效的模塊化通過定義一組相互獨(dú)立的模塊來實(shí)現(xiàn),這些獨(dú)立的模塊彼此之間僅僅交換那些為了完成系統(tǒng)功能所必需的信息,而將那些自身的實(shí)現(xiàn)細(xì)節(jié)與數(shù)據(jù)“隱藏”起來。信息隱蔽為軟件系統(tǒng)的修改、測試及以后的維護(hù)都帶來好處。
通過抽象,可以確定組成軟件的過程實(shí)體。通過信息隱藏,可以定義和實(shí)施對(duì)模塊的過程細(xì)節(jié)和局部數(shù)據(jù)結(jié)構(gòu)的存取限制。模塊獨(dú)立的概念是模塊化、抽象、信息隱藏和局部化概念的直接結(jié)果。開發(fā)具有獨(dú)立功能而且和其他模塊之間沒有過多的相互作用的模塊,就可以做到模塊獨(dú)立。4.8什么是模塊獨(dú)立性?設(shè)計(jì)中為什么模塊要獨(dú)立?如何度量獨(dú)立性?模塊功能獨(dú)立有何優(yōu)點(diǎn)?模塊的獨(dú)立性是模塊化、信息隱藏和局部化等概念的直接結(jié)果。模塊的獨(dú)立性是很重要的:第一,功能被劃分,并且接口被簡化,所以具有有效模塊化的軟件易于開發(fā)。第二,由于因設(shè)計(jì)和編碼修改引起的副作用受到局限,錯(cuò)誤傳播被減小,并且模塊復(fù)用成為可能,所以獨(dú)立的模塊更易于維護(hù)和測試??偟膩碚f,模塊獨(dú)立是良好設(shè)計(jì)的關(guān)鍵,從而又是保證軟件質(zhì)量的關(guān)鍵。用內(nèi)聚度與耦合度來度量獨(dú)立性。內(nèi)聚度度量同一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度,耦合度度量不同模塊彼此間相互以來的緊密程度。模塊功能獨(dú)立的優(yōu)點(diǎn):系統(tǒng)容易開發(fā),系統(tǒng)可靠性高,系統(tǒng)易于維護(hù),軟件結(jié)構(gòu)清晰。4.9軟件設(shè)計(jì)規(guī)約主要包括哪些內(nèi)容?1.工作范圍2.體系結(jié)構(gòu)設(shè)計(jì)3.數(shù)據(jù)設(shè)計(jì)4.接口設(shè)計(jì)5.各部件的過程設(shè)計(jì)6.運(yùn)行設(shè)計(jì)7.出錯(cuò)處理設(shè)計(jì)8.安全保密設(shè)計(jì)9.需求/設(shè)計(jì)交叉索引10.測試部分11.特殊注解12.附錄第5章結(jié)構(gòu)化分析與設(shè)計(jì)5.1簡述數(shù)據(jù)流圖的主要思想,概述使用數(shù)據(jù)流圖進(jìn)行需求分析的過程。數(shù)據(jù)流圖(DFD)描述輸入數(shù)據(jù)流到輸出數(shù)據(jù)流的變換(即加工),用于對(duì)系統(tǒng)的功能建模。數(shù)據(jù)流圖可以用來抽象地表示系統(tǒng)或軟件。它從信息傳遞和加工的角度,以圖形的方式刻畫數(shù)據(jù)流從輸入到輸出的移動(dòng)變換過程,同時(shí)可以按自頂向下、逐步分解的方法表示內(nèi)容不斷增加的數(shù)據(jù)流和功能細(xì)節(jié)。因此,數(shù)據(jù)流圖既提供了功能建模的機(jī)制,也提供了信息流建模的機(jī)制,從而可以建立起系統(tǒng)或軟件的功能模型。數(shù)據(jù)流圖進(jìn)行需求分析的過程:畫出系統(tǒng)的輸入和輸出畫出系統(tǒng)內(nèi)部畫出加工內(nèi)部4)重復(fù)第三步,直至每個(gè)尚未分解的加工都足夠簡單(即不必再分解)5.2分別采用數(shù)據(jù)流方法中得哪些技術(shù)來完成用戶需求的精確化、一致化和完全化的任務(wù)。1)父圖和子圖平衡2)數(shù)據(jù)守恒3)局部文件4)一個(gè)加工的輸入數(shù)據(jù)流不能與該加工的輸入數(shù)據(jù)流同名5)每個(gè)加工至少有一個(gè)輸入數(shù)據(jù)流和一個(gè)輸出數(shù)據(jù)流。6)在整套分層數(shù)據(jù)流中,每個(gè)文件應(yīng)至少有一個(gè)加工讀該文件,有另一個(gè)加工寫該文件。7)分層數(shù)據(jù)流圖中得每個(gè)數(shù)據(jù)流和文件都必須命名(除了流入或流出文件的數(shù)據(jù)流),并且與數(shù)據(jù)字典一致。8)分層DFD中的每個(gè)基本加工(即不再分解子圖的加工)都應(yīng)有一個(gè)加工規(guī)約。5.4在數(shù)據(jù)流圖中,可否將兩個(gè)加工用一個(gè)數(shù)據(jù)流相連?可否將兩個(gè)源用一個(gè)數(shù)據(jù)流相連?為什么?兩個(gè)加工可以直接用數(shù)據(jù)流相連,兩個(gè)源不能直接用數(shù)據(jù)流相連。因?yàn)閿?shù)據(jù)流由一組固定成分的數(shù)據(jù)組成。在DFD中,數(shù)據(jù)流的流向可以有以下幾種:從一個(gè)加工流向另一個(gè)加工,從加工流向文件(寫文件),從文件流向加工(讀文件),從源流向加工,從加工流向宿。5.7采用結(jié)構(gòu)化分析方法寫出書店管理系統(tǒng)的需求文檔,包括數(shù)據(jù)流圖及數(shù)據(jù)字典??吹竭@個(gè)題目,我想起了以前自己也在手機(jī)端Android平臺(tái)寫了一個(gè)書店的管理系統(tǒng),不過那個(gè)時(shí)候根本沒有什么需求分析,只是自己一廂情愿的模擬了一個(gè)簡單的流程。也沒有采用什么結(jié)構(gòu)化分析方法,就僅僅描述了幾個(gè)對(duì)象及其功能。所以我覺得可以對(duì)照著新學(xué)的軟件工程的知識(shí)運(yùn)用到自己的實(shí)際項(xiàng)目中去,同時(shí)也可以完成這道相識(shí)的題目。下圖就是以前的功能結(jié)構(gòu)圖:會(huì)員管理子系統(tǒng)會(huì)員管理子系統(tǒng)用戶登錄子系統(tǒng)超級(jí)管理員倉庫管理員銷售管理員供應(yīng)商信息管理子系統(tǒng)倉庫管理子系統(tǒng)進(jìn)貨出貨銷售管理子系統(tǒng)零售批發(fā)退貨書店銷售管理系統(tǒng)還有一些程序運(yùn)行的界面:利用結(jié)構(gòu)化方法分析:數(shù)據(jù)流程圖存書分?jǐn)?shù)據(jù)流圖:書店管理員書店管理員存書情況查詢存書情況查詢是否為新書是否為新書 否進(jìn)貨分?jǐn)?shù)據(jù)流圖:登記進(jìn)貨信息 進(jìn)貨信息登記進(jìn)貨登記表進(jìn)貨登記表查詢查詢存書存書 進(jìn)貨信息 進(jìn)貨信息 登記銷售已售信息登記銷售已售信息圖書銷售登記表銷售分?jǐn)?shù)據(jù)流圖:圖書銷售登記表登記銷售管理員查詢銷售 銷售信息登記銷售管理員查詢銷售存書 銷售信息存書會(huì)員分?jǐn)?shù)據(jù)流圖:查詢會(huì)員信息登記表管理員 會(huì)員信息查詢會(huì)員信息登記表管理員 會(huì)員信息 會(huì)員信息登記登記登記銷售總數(shù)據(jù)流圖: 已售信息登記銷售圖書銷售登記表圖書銷售登記表登記 進(jìn)貨信息 進(jìn)貨信息 銷售登記進(jìn)貨登記表 信息進(jìn)貨登記表登記銷售登記銷售查詢銷售存書 進(jìn)貨信息 銷售 查詢銷售存書查詢 信息 信息查詢 進(jìn)貨信息 進(jìn)貨會(huì)員信息登記表查詢登記 信息會(huì)員信息登記表查詢登記書書店管理員 會(huì)員信息 會(huì)員信息 會(huì)員 信息 存書 會(huì)員信息 進(jìn) 會(huì)員信息 貨查詢 查詢間查詢 查詢存書情況 進(jìn)貨信息存書情況新書列新書列是否為新書是 否2、數(shù)據(jù)字典存書數(shù)據(jù)字典:屬性名類型長度備注書號(hào)char10書的編號(hào)書名char30書的名稱作者char20書的寫作者類型char20書的類型簡述char150書的簡單介紹單價(jià)smallmoney4書的價(jià)格現(xiàn)存數(shù)量int4店內(nèi)的現(xiàn)有存書數(shù)量店內(nèi)位置char20書在店內(nèi)的具體位置出版社號(hào)char10出版社的編號(hào)特價(jià)書char2是否為特價(jià)書(缺省值是“否”)出版社數(shù)據(jù)字典:屬性名類型長度備注出版社號(hào)char10出版社的編號(hào)出版社名稱char20出版社的名稱所在城市char10出版社所在的城市電話char15出版社的聯(lián)系電話進(jìn)貨數(shù)據(jù)字典:屬性名類型長度備注書號(hào)char10書的編號(hào)進(jìn)價(jià)smallmoney4書的進(jìn)價(jià)進(jìn)貨數(shù)量int4每本書的進(jìn)貨數(shù)量日期datetime8進(jìn)貨的日期銷售數(shù)據(jù)字典:屬性名類型長度備注日期datetime8售貨的日期書號(hào)char10書的編號(hào)銷售量int4售出的書本數(shù)量銷售金額money8銷售金額=(單價(jià)*銷售量)會(huì)員信息數(shù)據(jù)字典:屬性名類型長度備注客服號(hào)char8會(huì)員卡的卡號(hào)姓名char20會(huì)員的姓名地址char50會(huì)員的家庭住址電話char15會(huì)員的電話號(hào)碼購買書號(hào)char10書的編號(hào)店內(nèi)收出數(shù)據(jù)字典:屬性名長度備注月份6水電支出4水電費(fèi)用員工支出4員工的工資其他支出4其他費(fèi)用支出結(jié)算8每月的總結(jié)算數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)名組成存書信息書號(hào),書名,作者,簡介,單價(jià),店內(nèi)位置,類型,現(xiàn)存數(shù)量,出版社號(hào),特價(jià)書出版社號(hào)出版社號(hào),出版社名稱,電話,所在城市進(jìn)貨信息書號(hào),進(jìn)貨數(shù)量,進(jìn)價(jià),進(jìn)貨日期銷售信息銷售日期,書號(hào),銷售量,銷售金額會(huì)員信息購買書號(hào),客服號(hào),會(huì)員姓名,地址,電話書店支出信息月份,水電支出,員工支出,其他支出,結(jié)算數(shù)據(jù)流數(shù)據(jù)流名數(shù)據(jù)流來源數(shù)據(jù)流去向組成登記新書信息進(jìn)貨信息存書信息新書信息查詢新書信息新書登記信息管理員新書信息登記打折書信息存書信息銷售信息存書信息查詢打折書信息打折書登記信息管理員存書信息.登記會(huì)員信息會(huì)員信息存書信息會(huì)員信息查詢會(huì)員信息會(huì)員登記信息管理員會(huì)員信息數(shù)據(jù)存儲(chǔ)數(shù)據(jù)存儲(chǔ)名輸入的數(shù)據(jù)流輸出的數(shù)據(jù)流組成新書登記表進(jìn)貨信息,是否為新書存書信息進(jìn)貨信息,存書信息打折書登記表存書信息,是否為打折書銷售信息存書信息,銷售信息會(huì)員登記表會(huì)員信息,銷售信息會(huì)員信息會(huì)員信息,銷售信息第6\8章6.1簡述面向數(shù)據(jù)結(jié)構(gòu)方法的特點(diǎn)答:特點(diǎn)如下:1以信息對(duì)象及其操作作為核心進(jìn)行需求分析;2認(rèn)為復(fù)合信息對(duì)象具有層次結(jié)構(gòu),并且可按順序,選擇,重復(fù)3種結(jié)構(gòu)分解為成員對(duì)象信息;3提供由層次信息結(jié)構(gòu)映射為程序結(jié)構(gòu)的機(jī)制,從而為軟件設(shè)計(jì)奠定良好的基礎(chǔ)。6.2采用Jackson圖表示下面的文件結(jié)構(gòu):文件文件人員記錄人員記錄*工作工號(hào)地址姓名工作工號(hào)地址姓名工廠。辦公室。管理員。工廠。辦公室。管理員。8.1什么是構(gòu)件?答:根據(jù)pressman書中的定義構(gòu)件是某系統(tǒng)中有價(jià)值的、幾乎獨(dú)立的并可替換的一個(gè)部分,它在良好定義的體系結(jié)構(gòu)語境內(nèi)滿足某種清晰的功能。根據(jù)brown的定義構(gòu)件是一個(gè)獨(dú)立發(fā)布的功能部分,可以通過其接口訪問它的服務(wù)。根據(jù)《計(jì)算機(jī)科學(xué)技術(shù)百科全書(第二版)》中的定義軟件構(gòu)件是軟件系統(tǒng)中具有相對(duì)獨(dú)立功能,可以明確標(biāo)識(shí),接口由規(guī)約指定,與語境有明顯依賴關(guān)系,可獨(dú)立部署,且多由第三方提供的可組裝軟件實(shí)體。軟件構(gòu)件須承載有用的功能,并遵循某種構(gòu)件模型??蓮?fù)用構(gòu)件是指具有可復(fù)用價(jià)值的構(gòu)件。在基于構(gòu)件的軟件開發(fā)中經(jīng)常會(huì)使用到的商用成品構(gòu)件,是指由第三方開發(fā)的滿足一定構(gòu)件標(biāo)準(zhǔn)并且可組裝的軟件構(gòu)件。8.2簡述基于構(gòu)件的軟件開發(fā)過程?;跇?gòu)件的軟件開發(fā)過程:領(lǐng)域工程的步驟:1領(lǐng)域分析2建立領(lǐng)域特定的基準(zhǔn)體系結(jié)構(gòu)模型3標(biāo)識(shí)候選構(gòu)件4泛化和可變性分析5構(gòu)件重構(gòu)6構(gòu)件的測試7構(gòu)件的包裝8構(gòu)件入庫應(yīng)用系統(tǒng)工程的步驟:1建立應(yīng)用系統(tǒng)的體系結(jié)構(gòu)模型;2尋找候選構(gòu)件;3評(píng)價(jià)和選擇合適的構(gòu)件;4構(gòu)件的修改和特化;5開發(fā)未被復(fù)用的不分;6構(gòu)件的組裝;7集成測試;8評(píng)價(jià)被復(fù)用的構(gòu)件,并推薦可能的新構(gòu)件。第11、13章11.1答:軟件測試的目的是發(fā)現(xiàn)軟件中的錯(cuò)誤和缺陷,并加以糾正。11.2答:白盒測試又稱結(jié)構(gòu)測試,這種方法把測試對(duì)象看作一個(gè)透明的盒子,測試人員根據(jù)程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息設(shè)計(jì)測試用例,檢查程序中所有邏輯路徑是否都按預(yù)定的要求正確地工作。白盒測試主要用于對(duì)程序模塊的測試。包括:程序模塊中的所有獨(dú)立路徑至少執(zhí)行一次。對(duì)所有邏輯判定的取值(“真”與“假”)都至少測試一次。在上下邊界及可操作范圍內(nèi)運(yùn)行所有循環(huán)。測試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性等。黑盒測試又稱行為測試,這種方法把測試對(duì)象看作一個(gè)黑盒子,測試人員完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程序的需求規(guī)格說明書,檢查程序的功能是否符號(hào)它的功能需求。黑盒測試可用于各種測試,它試圖發(fā)現(xiàn)以下類型的錯(cuò)誤:不正確或遺漏的功能接口錯(cuò)誤,如輸入輸出參數(shù)的個(gè)數(shù)、類型等。數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部信息(如外部數(shù)據(jù)庫)訪問錯(cuò)誤。性能錯(cuò)誤。初始化和終止錯(cuò)誤。11.3解:判定覆蓋:(1)X=85,Y=85(2)X=70,Y=95(3)X=30,Y=95條件覆蓋:(1)X=85,X=85(2)X=70,Y=75(3)X=95,Y=50(4)X=50,Y=95(5)X=40,Y=40判定條件覆蓋:(1)X=85,X=85(2)X=70,Y=75(3)X=95,Y=50(4)X=50,Y=95(5)X=40,Y=40(6)X=20,Y=95(7)X=95,Y=20條件組合覆蓋:(1)X=85,X=85(2)X=65,Y=85(3)X=85,Y=65(4)X=70,Y=75(5)X=95,Y=50(6)X=50,Y=95(7)X=40,Y=40路徑覆蓋:(1)X=85,Y=85(2)X=70,Y=95(3)X=30,Y=7011.5分別簡述單元測試、集成測試、確認(rèn)測試和系統(tǒng)測試的任務(wù)。單元測試:又稱模塊測試,著重對(duì)軟件設(shè)計(jì)的最小單元——軟件構(gòu)件或模塊進(jìn)行驗(yàn)證。單元測試根據(jù)設(shè)計(jì)描述,對(duì)重要的控制路徑進(jìn)行測試,已發(fā)現(xiàn)構(gòu)建或模塊內(nèi)部的錯(cuò)誤,通常采用白盒測試,并且多個(gè)構(gòu)件或模塊可以并行測試。單元測試的主要內(nèi)容:接口、局部數(shù)據(jù)結(jié)構(gòu)、邊界條件、獨(dú)立路徑和錯(cuò)誤處理路徑。集成測試:集成測試,也叫組裝測試或聯(lián)合測試。在單元測試的基礎(chǔ)上,將所有模塊按照設(shè)計(jì)要求(如根據(jù)結(jié)構(gòu)圖)組裝成為子系統(tǒng)或系統(tǒng),進(jìn)行集成測試。實(shí)踐表明,一些模塊雖然能夠單獨(dú)地工作,但并不能保證連接起來也能正常的工作。程序在某些局部反映不出來的問題,在全局上很可能暴露出來,影響功能的實(shí)現(xiàn)。目的:是確保各單元組合在一起后能夠按既定意圖協(xié)作運(yùn)行,并確保增量的行為正確。它所測試的內(nèi)容包括單元間的接口以及集成后的功能。使用黑盒測試方法測試集成的功能。并且對(duì)以前的集成進(jìn)行回歸測試。確認(rèn)測試:確認(rèn)測試的目的是向未來的用戶表明系統(tǒng)能夠像預(yù)定要求那樣工作。經(jīng)集成測試后,已經(jīng)按照設(shè)計(jì)把所有的模塊組裝成一個(gè)完整的軟件系統(tǒng),接口錯(cuò)誤也已經(jīng)基本排除了,接著就應(yīng)該進(jìn)一步驗(yàn)證軟件的有效性,這就是確認(rèn)測試的任務(wù),即軟件的功能和性能如同用戶所合理期待的那樣。系統(tǒng)測試:將已經(jīng)確認(rèn)的軟件、計(jì)算機(jī)硬件、外設(shè)、網(wǎng)絡(luò)等其他元素結(jié)合在一起,進(jìn)行信息系統(tǒng)的各種組裝測試和確認(rèn)測試,系統(tǒng)測試是針對(duì)整個(gè)產(chǎn)品系統(tǒng)進(jìn)行的測試,目的是驗(yàn)證系統(tǒng)是否滿足了需求規(guī)格的定義,找出與需求規(guī)格不符或與之矛盾的地方,從而提出更加完善的方案。系統(tǒng)測試發(fā)現(xiàn)問題之后要經(jīng)過調(diào)試找出錯(cuò)誤原因和位置,然后進(jìn)行改正。是基于系統(tǒng)整體需求說明書的黑盒類測試,應(yīng)覆蓋系統(tǒng)所有聯(lián)合的部件。對(duì)象不僅僅包括需測試的軟件,還要包含軟件所依賴的硬件、外設(shè)甚至包括某些數(shù)據(jù)、某些支持軟件及其接口等。11.6什么是α測試?什么是β測試?α測試:α測試是由一個(gè)用戶在開發(fā)者的場所進(jìn)行的測試,軟件在開發(fā)者對(duì)用戶的“指導(dǎo)下”進(jìn)行測試。經(jīng)過α測試后的軟件稱為β測試。β測試:β測試是指軟件開發(fā)公司組織各方面的典型用戶在日常工作中實(shí)際使用β版本,并要求用戶報(bào)告異常情況、提出批評(píng)意見,然后軟件開發(fā)公司再對(duì)β版本進(jìn)行改錯(cuò)和完善。β測試也是黑盒測試。黑盒測試也稱功能測試,它是通過測試來檢測每個(gè)功能是否都能正常使用。11.7什么是回歸測試?回歸測試是指修改了舊代碼后,重新進(jìn)行測試以確認(rèn)修改沒有引入新的錯(cuò)誤或?qū)е缕渌a產(chǎn)生錯(cuò)誤。自動(dòng)回歸測試將大幅降低系統(tǒng)測試、維護(hù)升級(jí)等階段的成本?;貧w測試作為軟件生命周期的一個(gè)組成部分,在整個(gè)軟件測試過程中占有很大的工作量比重,軟件開發(fā)的各個(gè)階段都會(huì)進(jìn)行多次回歸測試。在漸進(jìn)和快速迭代開發(fā)中,新版本的連續(xù)發(fā)布使回歸測試進(jìn)行的更加頻繁,而在極端編程方法中,更是要求每天都進(jìn)行若干次回歸測試。因此,通過選擇正確的回歸測試策略來改進(jìn)回歸測試的效率和有效性是非常有意義的。觀念:1.回歸測試是指重復(fù)以前的全部或部分的相同測試。2.新加入測試的模組,可能對(duì)其他模組產(chǎn)生副作用,故須進(jìn)行某些程度的回歸測試。3.回歸測試的重心,以關(guān)鍵性模組為核心。測試策略:對(duì)于一個(gè)軟件開發(fā)項(xiàng)目來說,項(xiàng)目的測試組在實(shí)施測試的過程中會(huì)將所開發(fā)的測試用例保存到“測試用例庫”中,并對(duì)其進(jìn)行維護(hù)和管理。當(dāng)?shù)玫揭粋€(gè)軟件的基線版本時(shí),用于基線版本測試的所有測試用例就形成了基線測試用例庫。在需要進(jìn)行回歸測試的時(shí)候,就可以根據(jù)所選擇的回歸測試策略,從基線測試用例庫中提取合適的測試用例組成回歸測試包,通過運(yùn)行回歸測試包來實(shí)現(xiàn)回歸測試。保存在基線測試用例庫中的測試用例可能是自動(dòng)測試腳本,也有可能是測試用例的手工實(shí)現(xiàn)過程?;貧w測試需要時(shí)間、經(jīng)費(fèi)和人力來計(jì)劃、實(shí)施和管理。為了在給定的預(yù)算和進(jìn)度下,盡可能有效率和有效力地進(jìn)行回歸測試,需要對(duì)測試用例庫進(jìn)行維護(hù)并依據(jù)一定的策略選擇相應(yīng)的回歸測試包。測試過程有了測試用例庫的維護(hù)方法和回歸測試包的選擇策略,回歸測試可遵循下述基本過程進(jìn)行:(1).識(shí)別出軟件中被修改的部分;(2).從原基線測試用例庫T中,排除所有不再適用的測試用例,確定那些對(duì)新的軟件版本依然有效的測試用例,其結(jié)果是建立一個(gè)新的基線測試用例庫T0。(3).依據(jù)一定的策略從T0中選擇測試用例測試被修改的軟件。(4).如果必要,生成新的測試用例集T1,用于測試T0無法充分測試的軟件部分。(5).用T1執(zhí)行修改后的軟件。第(2)和第(3)步測試驗(yàn)證修改是否破壞了現(xiàn)有的功能,第(4)和第(5)步測試驗(yàn)證修改工作本身。11.8簡述邊界值分析方法的作用長期的測試工作經(jīng)驗(yàn)告訴我們,大量的錯(cuò)誤是發(fā)生在輸入或輸出范圍的邊界上,而不是發(fā)生在輸入輸出范圍的內(nèi)部。因此針對(duì)各種邊界情況設(shè)計(jì)測試用例,可以查出更多的錯(cuò)誤。使用邊界值分析方法設(shè)計(jì)測試用例,首先應(yīng)確定邊界情況。通常輸入和輸出等價(jià)類的邊界,就是應(yīng)著重測試的邊界情況。應(yīng)當(dāng)選取正好等于,剛剛大于或剛剛小于邊界的值作為測試數(shù)據(jù),而不是選取等價(jià)類中的典型值或任意值作為測試數(shù)據(jù)。邊界分析是指對(duì)輸入或輸出的邊界值進(jìn)行測試的一種測試方法。所說的邊界值是指輸入等價(jià)類和輸出等價(jià)類的邊界值。經(jīng)驗(yàn)證明大量的程序錯(cuò)誤是發(fā)生在輸入或輸出范圍的邊界上,而不是發(fā)生在輸入輸出范圍的內(nèi)部。因此針對(duì)各種邊界情況設(shè)計(jì)測試用例,可以查出更多的錯(cuò)誤。使用邊界值分析方法設(shè)計(jì)測試用例,首先應(yīng)確定邊界情況。通常輸入和輸出等價(jià)類的邊界,就是應(yīng)著重測試的邊界情況。應(yīng)當(dāng)選取正好等于,剛剛大于或剛剛小于邊界的值作為測試數(shù)據(jù),而不是選取等價(jià)類中的典型值或任意值作為測試數(shù)據(jù)。13.1請(qǐng)討論使軟件維護(hù)成本居高不下的因素。如何盡可能降低這些因素的影響?軟件維護(hù)的代價(jià)是生產(chǎn)率驚人下降。維護(hù)費(fèi)用只不過是軟件
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 孕期春夢的健康宣教
- 《設(shè)尋租理論王》課件
- 社會(huì)媒體營銷的總結(jié)與展望計(jì)劃
- 線上藝術(shù)教學(xué)的創(chuàng)新嘗試計(jì)劃
- 科學(xué)管理班級(jí)時(shí)間的有效方式計(jì)劃
- 如何實(shí)現(xiàn)部門間的年度協(xié)同目標(biāo)計(jì)劃
- 森林防火安全培訓(xùn)
- 制定財(cái)務(wù)風(fēng)險(xiǎn)控制的措施計(jì)劃
- 如何分析企業(yè)財(cái)務(wù)數(shù)據(jù)計(jì)劃
- 頭孢類抗菌藥物相關(guān)行業(yè)投資規(guī)劃報(bào)告
- 室內(nèi)裝飾工程施工方案
- 城管執(zhí)法程序培訓(xùn)課件
- 醫(yī)護(hù)人文素養(yǎng)培訓(xùn)
- 2024 年廣西公需科目一帶-路全題庫參考答案
- 2024年人教版八年級(jí)英語上冊(cè)期末考試卷(附答案)
- 代理記賬業(yè)務(wù)內(nèi)部規(guī)范(三篇)
- 投訴應(yīng)急預(yù)案
- 掌骨骨折護(hù)理
- 工程監(jiān)理招聘面試題及回答建議(某大型集團(tuán)公司)2024年
- 腰椎間盤突出癥課件(共100張課件)
- 中層管理干部團(tuán)隊(duì)-執(zhí)行力與領(lǐng)導(dǎo)力提升培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論