版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第一章1.1軟件工程(SE的定義、方向、作用:SE :在將有關(guān)軟件開發(fā)與應(yīng)用的概念科學(xué)體系化的基礎(chǔ)上,研究如何有計劃、有效率、經(jīng)濟(jì)的開發(fā)和利用能在就算機(jī)上正確運(yùn)行的軟件的理論和技術(shù)的工程方法學(xué),一些開發(fā)和維護(hù)軟件的方法、過程、原則。是一個系統(tǒng)工程,既有對技術(shù)問題的分析與綜合,也有對開發(fā)過程和參 與者的管理。SE的方向:面向?qū)ο竽J?,結(jié)構(gòu)化模式,基于過程的模式等SE的作用:付出較低的開發(fā)成本,達(dá)到要求的軟件功能,取得較好的軟件性能,開發(fā)的軟件 易于移植,需要較低的維護(hù)費(fèi)用,能按時完成開發(fā)工作,及時交付使用。1.2開發(fā)模式:軟件開發(fā)的全部過程,活動和任務(wù)的結(jié)構(gòu)框架,它能直觀的表達(dá)的表達(dá)軟件開 發(fā)全
2、過程,明確要完成的主要活動,任務(wù)和開發(fā)策略。込說明錯誤、故障和失效的含義及聯(lián)系(并舉例):錯誤:是在軟件生產(chǎn)過程中人為產(chǎn)生的錯誤(需求說明中的錯誤,代碼中的錯誤)故障:是在功能實現(xiàn)過程中產(chǎn)生的問題;是錯誤導(dǎo)致的結(jié)果,是在軟件中一個錯誤的表現(xiàn) (一個錯誤可能產(chǎn)生多個缺陷,靜態(tài)存在的)失效:是相對于系統(tǒng)指定行為的偏離,系統(tǒng)違背了它應(yīng)有的行為(動態(tài)存在的)聯(lián)系:當(dāng)一個開發(fā)者編寫程序時,會在代碼中出現(xiàn)錯誤。當(dāng)這個程序被編譯或集成到一個系 統(tǒng)中時,系統(tǒng)就存在故障。當(dāng)你運(yùn)行這個系統(tǒng)時,可能會導(dǎo)致失效,即人們產(chǎn)生錯誤,故障是 錯誤的結(jié)果(內(nèi)部觀角:從開發(fā)者的角度看待問題),當(dāng)故障執(zhí)行時出現(xiàn)失效(外部視角:從
3、 用戶角度看到的問題)。并不是所有的錯誤會導(dǎo)致故障,并非每個缺陷都對應(yīng)相應(yīng)的失敗。1.4 軟件質(zhì)量應(yīng)從哪幾個方面衡量,論述之:(1產(chǎn)品的質(zhì)量)(2過程的質(zhì)量)(3商業(yè)環(huán)境背景下的質(zhì)量)(1) 產(chǎn)品的質(zhì)量:用戶從失敗的數(shù)目和類型等外部特征進(jìn)行評價,如果軟件具有足夠的 功能 并且易于學(xué)習(xí)和使用,用戶就斷定軟件是高質(zhì)量的;開發(fā)者從 缺陷的數(shù)目和類型等內(nèi)部特征 來 作為產(chǎn)品質(zhì)量的依據(jù)。(2) 過程的質(zhì)量:有很多過程都會影響到最終的產(chǎn)品質(zhì)量,只要有活動出了差錯,產(chǎn)品的質(zhì) 量就會受到影響;開發(fā)和維護(hù)過程的質(zhì)量與產(chǎn)品的質(zhì)量是同等重要的。(3)商業(yè)環(huán)境背景下的軟件質(zhì)量:將技術(shù)價值和商業(yè)價值統(tǒng)一起來。1.5軟件
4、系統(tǒng)的系統(tǒng)組成(系統(tǒng)的要素有哪些):對象(實體) +活動+ 關(guān)系+ 系統(tǒng)邊界活動:活動是發(fā)生在系統(tǒng)中的某些事情,通常描述為由某個觸發(fā)器引發(fā)的事件,活動通過改 變屬性把一個事物變成另一個事物。對象:活動中涉及的元素稱為對象。關(guān)系:是指活動與對象之間的關(guān)系。系統(tǒng)邊界:即系統(tǒng)包含的功能與系統(tǒng)不包含的功能之間的界限。1.6現(xiàn)代軟件工程大致包含幾個階段及各個階段的文檔:(1)需求分析:主要包括問題定義、可行性分析、需求分析需求規(guī)格說明書(2)系統(tǒng)設(shè)計:主要包括用戶界面和軟件結(jié)構(gòu)圖(3)程序設(shè)計:包括模塊功能算法與數(shù)據(jù)描述(4)程序?qū)崿F(xiàn):主要包括編程的代碼和注釋(5)單元測試:模塊測試與性能測試(6)集成
5、測試:按照結(jié)構(gòu)圖進(jìn)行測試產(chǎn)生測試報告(7)系統(tǒng)測試:按 SRS對系統(tǒng)總體功能進(jìn)行測試(8)系統(tǒng)提交:交付產(chǎn)品(9)系統(tǒng)維修:修改軟件的過程,為滿足改錯或新需求1.7使現(xiàn)代軟件工程實踐發(fā)生變化的關(guān)鍵因素是什么?(1)商用產(chǎn)品投入市場時間的緊迫性(2)計算技術(shù)在經(jīng)濟(jì)中的轉(zhuǎn)變:更低的硬件成本,更高的開發(fā)、維護(hù)成本(3)功能強(qiáng)大的桌面計算的可用性(4)廣泛的局域網(wǎng)和廣域網(wǎng)(5)面向?qū)ο蠹夹g(shù)的采用及其有效性(6)使用窗口、圖標(biāo)、菜單和指示器的圖形用戶界面(7)軟件開發(fā)瀑布模型的不可預(yù)測性1.8什么是抽象?抽象是在某種概括層次上對問題的描述 ,使得我們能夠 集中于問題的關(guān)鍵方面 而不陷入細(xì)節(jié), 也就是對細(xì)
6、節(jié)的隱藏。1.9什么是重(復(fù))用?重(復(fù))用采用 以前開發(fā)的軟件系統(tǒng)中具有共性的部件,用到新的開發(fā)項目中去。(這里的重用不僅僅是代碼的重用。)1.10什么是軟件危機(jī)?它有哪些典型表現(xiàn)?為什么會出現(xiàn)軟件危機(jī)?軟件危機(jī):落后的軟件生產(chǎn)方式無法滿足迅速增長的計算機(jī)軟件需求,從而導(dǎo)致軟件開發(fā)與 維護(hù)過程中出現(xiàn)一系列嚴(yán)重問題的現(xiàn)象。典型表現(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)軟件成本在計算機(jī)系統(tǒng)總成本中所占的比例逐年上升。(7)軟件開發(fā)生產(chǎn)率
7、提高的速度,遠(yuǎn)跟不上計算機(jī)應(yīng)用迅速普及深入的趨勢出現(xiàn)的原因:一方面與軟件本身的特點(diǎn)有關(guān),另一方面也和軟件開發(fā)與維護(hù)的方法不正確有 關(guān)。(1)軟件缺乏“可見性”,管理和控制軟件開發(fā)過程相當(dāng)困難(2)軟件規(guī)模龐大,而且程序復(fù)雜性將隨著程序規(guī)模的增加而呈指數(shù)上升(3)開發(fā)時期引入錯誤,導(dǎo)致軟件維護(hù)通常意味著改正或修改原來的設(shè)計,客觀上使得軟件較難維護(hù)(4)軟件專業(yè)人員對軟件開發(fā)和維護(hù)中或多或少地采用了錯誤的方法和技術(shù)1.11開發(fā)隊伍的組成角色有哪些?需求分析人員、設(shè)計人員、程序員、測試人員、培訓(xùn)人員、維護(hù)人員、資料員、配置管理人員CMM是指"能力成熟度模型”,其英文全稱為 Capabili
8、ty Maturity Model for Software,英文縮寫為SW-CMM簡稱CMM它是對于軟件組織在定義、實施、度量、控制和改善其軟件過程 的實踐中各個發(fā)展階段的描述。CMM勺核心是把軟件開發(fā)視為一個過程。SRSSoftware Requireme nts Specificatio n),軟件需求說明書 的編制是為了使用戶和軟件開發(fā)者雙方對該軟件的初始規(guī)定有一個共同的理解,使之成為整個開發(fā)工作的基礎(chǔ)。包含硬件、功能、性能、輸入輸出、接口界面、警示信息、保密安全、數(shù)據(jù)與數(shù)據(jù)庫、文檔和法規(guī)的要求。第二章2.1什么叫過程(生命周期)?過程是一組有序的任務(wù),它涉及活動、約束和資源使用 的一
9、系列步驟,用于產(chǎn)生某種想要的 輸出。我們有時也把 涉及產(chǎn)品構(gòu)建的這種過程稱為生命周期 。因此,有時把軟件開發(fā)過程稱為 軟件生命周期。2.2什么是軟件過程,軟件過程的重要性是什么?軟件過程:將軟件開發(fā)中的一組有序的任務(wù)稱為軟件過程,它涉及活動、約束和資源使用的 一系列步驟,用于產(chǎn)生某種想要的輸出。重要性:(1 )它強(qiáng)制活動具有一致性和一定的結(jié)構(gòu),使程序的集合組合起來以產(chǎn)生滿足目標(biāo)和標(biāo)準(zhǔn)的產(chǎn)品,(2)過程結(jié)構(gòu)允許我們 分析、理解、控制和改進(jìn)組成過程的活動,并以此來指導(dǎo)我們的行動(3)它能使我們獲取經(jīng)驗并把它創(chuàng)收給他人。2.3什么是軟件生命周期模型?軟件生命周期模型,是從一個特定角度提出的對軟件過程
10、的簡化描述,是對軟件開發(fā)實際過程的抽象,它包括構(gòu)成軟件過程的各種活動、軟件工件以及參與角色等。2.4瀑布模型及其優(yōu)缺點(diǎn)瀑布模型:瀑布模型將開發(fā)階段描述為從一個開發(fā)階段瀑布般地轉(zhuǎn)換到另外一個階段,一個開發(fā)階段必須在另一個開發(fā)階段開始之前完成。瀑布模從一種非常高層的角度描述了開發(fā)過程 中進(jìn)行的活動,并且提出了要求開發(fā)人員經(jīng)過的時間序列。優(yōu)點(diǎn):(1)瀑布模型一直用來規(guī)范軟件開發(fā)活動,每一個過程活動都有與其相關(guān)聯(lián)的里程碑和可交付產(chǎn)品,以便于項目經(jīng)理能夠用模型判斷在某一時刻項目里最后完成還有多遠(yuǎn)。(2)它的簡單性使得開發(fā)人員很容易向不熟悉軟件開發(fā)用戶作出解釋。(3) 很多更復(fù)雜的模型實際上是在瀑布模型的
11、基礎(chǔ)上的潤色,如加入反饋循環(huán)以及額 外的活動。缺點(diǎn):(1)它并不能反映實際的代碼開發(fā)方式。除了一些理解非常充分的問題之外,實際上軟件是通過大量的迭代 進(jìn)行開發(fā)的。(2)它沒有揭示每一個活動如何把一種制品轉(zhuǎn)化為另外一種制品(3)沒有把軟件看做一個問題求解的過程,而是從制造業(yè)的角度來看待軟件開發(fā)的, 軟件開發(fā)應(yīng)該是一個創(chuàng)造的過程,而不是制造的過程。2.5什么是原型?原型是一個部分開發(fā)的產(chǎn)品,它使客戶和開發(fā)人員能夠?qū)τ媱濋_發(fā)的系統(tǒng)的相關(guān)方面進(jìn)行檢 查,以決定它對最終產(chǎn)品是否合適或恰當(dāng)。2.6V模型及其特點(diǎn)V模型是瀑布模型的變種,它說明測試活動是如何與分析和設(shè)計相聯(lián)系 的,編碼處于 V形符號的頂點(diǎn),分
12、析和設(shè)計在左邊,測試和維護(hù)在右邊。特點(diǎn):V模型使得隱藏在瀑布模型中的迭代和重做活動更加明確。瀑布模型關(guān)注的通常是文 檔和制品,而V模型關(guān)注的則是活動和正確性。2.7原型模型不僅僅是附屬于瀑布模型的,同時也是一種有效的過程模型的基礎(chǔ)。原型模型允許開發(fā)人員 快速構(gòu)造整個系統(tǒng)或系統(tǒng)的一部分以理解或澄清問題。依據(jù)原型化的目標(biāo),可以取消原型化需求、設(shè)計或系統(tǒng)中的一個或多個循環(huán),但是總體目標(biāo) 保持不變,即減少開發(fā)中的風(fēng)險和不確定性。2.8可轉(zhuǎn)換模型可轉(zhuǎn)換模型通過 去除某些主要開發(fā)步驟來設(shè)法減少出錯的機(jī)會。2.9階段化開發(fā)模型的含義、分類和特點(diǎn)(運(yùn)行系統(tǒng)和開發(fā)系統(tǒng)的概念)階段化開發(fā)模型的含義:系統(tǒng)被設(shè)計為一
13、部分一部分地交付,從而在系統(tǒng)其余部分正在開發(fā)的同時,用戶已經(jīng)獲得了一部分的功能。分類:(1)增量開發(fā):系統(tǒng)按照功能劃分為子系統(tǒng),定義發(fā)布時首先定義一個小的功能子系 統(tǒng),然后在每一個新的發(fā)布中增加新功能。(2)迭代開發(fā):一開始就提交一個完整的系統(tǒng),然后在每一個新的發(fā)布中改變每個子 系統(tǒng)的功能。特點(diǎn):(1)即使還缺少某些功能,但在早期的發(fā)布中就可以開始培訓(xùn)。(2)可以及早為那些以前從未提供的功能開拓市場。(3)當(dāng)運(yùn)行系統(tǒng)出現(xiàn)未預(yù)料到的問題時,經(jīng)常性的發(fā)布可以使開發(fā)人員能全面、快速 地修復(fù)這些問題(4)針對不同的發(fā)布版本,開發(fā)團(tuán)隊將重點(diǎn)放在不同的專業(yè)領(lǐng)域技術(shù)上。2.10螺旋模型的含義、目的、四個象限
14、的任務(wù)及四重迭代的含義含義:螺旋模型將瀑布模型和快速原型模型結(jié)合起來,強(qiáng)調(diào)了其他模型所忽視的風(fēng)險分析,特別適合于大型復(fù)雜的系統(tǒng)。目的:把開發(fā)活動和風(fēng)險管理結(jié)合起來,以將風(fēng)險減到最小并控制風(fēng)險。四個象限的任務(wù)依次是:評估可選方案及風(fēng)險;確定目標(biāo)、可選方案及約束;計劃;開發(fā)與測試四重迭代的含義:(1)操作概念 是第一次迭代的產(chǎn)品;(2)需求是第二次迭代的主要產(chǎn)品;(3)第三次迭代產(chǎn)中,系統(tǒng)開發(fā) 產(chǎn)生設(shè)計;(4)第四次迭代能夠進(jìn)行測試。(5)螺旋模型的 每一次迭代都根據(jù)需求和約束進(jìn)行風(fēng)險分析,以權(quán)衡不同的選擇,并且在確定某一特定選擇之 前,通過原型化驗證可行性或期望度。當(dāng)風(fēng)險確認(rèn)之后,項目經(jīng)理必須決
15、定如何消除或最小化 風(fēng)險。2.11敏捷方法的含義、特點(diǎn)和目標(biāo):含義:以人為核心、迭代、循序漸進(jìn)。在敏捷開發(fā)中,軟件項目的構(gòu)建被切分成多個子項目, 各個子項目的成果都經(jīng)過測試,具備集成和可運(yùn)行的特征。特點(diǎn):(1)規(guī)則游戲(2)小的發(fā)布(3)隱喻(4)簡單設(shè)計(5)首先編寫測試(6)重構(gòu)(7)對編程(8)集體所有權(quán)(9)持續(xù)集成(10)可以忍受的步伐(11)在現(xiàn)場的客戶(12) 代碼標(biāo)準(zhǔn)目標(biāo):通過盡可能早地、持續(xù)地交付有價值的軟件使客戶滿意。2.12在所有的軟件開發(fā)模型中,你認(rèn)為哪些過程給予你最大的靈活性以應(yīng)對需求的變更?階段開發(fā)模型和螺旋模型補(bǔ)充:統(tǒng)一過程(UP可以用三句話來表達(dá):它是用例驅(qū)動的
16、、以基本架構(gòu)為中心的、迭代式和增量性的軟件開發(fā)過程框架,它使用對象管理組織 (OMGQbject Management Group)的UML并與對象管理組織(OMG的軟件過程工程原模型(SPEM( Software Process EngineeringMeta-Model )軟件過程工程元模型)等相兼容。第三章3.1什么是項目進(jìn)度?項目進(jìn)度通過 列舉項目的各個階段, 把每個階段分解成離散的任務(wù)或活動,來描述特定項目的軟件開發(fā)周期。進(jìn)度還描繪這些活動之間的交互,并估算每項任務(wù)或活動將或花費(fèi)時間。3.2什么是活動?什么是里程碑?活動:活動是項目的一部分,它在一段時間內(nèi)發(fā)生。 里程碑:里程碑是活動
17、的完成 -某一特定時刻。3.3軟件人員應(yīng)該具備的能力是什么?(1)完成工作的能力(2)對工作的興趣(3)開發(fā)類似應(yīng)用的經(jīng)驗(4)使用類似工具或語 言的經(jīng)驗(5)使用類似開發(fā)環(huán)境的經(jīng)驗(6)使用類似技術(shù)的經(jīng)驗(7)培訓(xùn)(8)與其他人交 流的能力(9)與其他人共同承擔(dān)責(zé)任的能力(10)管理技能 3.4軟件項目組織的基本結(jié)構(gòu)Chief programmerAssistant chrcf programmer3.5專家估測法的大致含義:很多工作量估算方法依賴于專家的判斷。使用專家的知識和經(jīng)驗,對軟件項目的工作量進(jìn)行評估,預(yù)測的精確性基于估算者的能力、經(jīng)驗、客觀性和洞察力。是對構(gòu)建整個系統(tǒng)或其子系 統(tǒng)所
18、需的工作量做出經(jīng)驗性的猜測。主要有類推法,Delphi技術(shù),Wolwerton模型(該模型受變化和主觀性的影響,還受當(dāng)前數(shù) 據(jù)相關(guān)性的影響 )(x+4y+z)/6對個人估算的規(guī)范化 3.6算式估算法的大致含義:研究人員已經(jīng)創(chuàng)建出表示工作量和影響工作量的因素之間關(guān)系的模型。這些模型通常用方程 式描述,其中工作量是因變量,而其他因素是自變量。大部分模型認(rèn)為項目規(guī)模是方程式中影 響最大的因素,表示工作量的方程式是:E = (a + bSAc) m(X)其中S是系統(tǒng)規(guī)模的估算,而 a、b、和c是常量。X是從x1到xn的一個成本因素的向量,m是基于 :這些因素的一個調(diào)整因子。3.7試述COCOM模型的三
19、個階段基本工作原理或含義:在階段一,項目通常構(gòu)建原型以解決包含用戶界面、軟件和系統(tǒng)交互、性能和技術(shù)成熟性等方面在內(nèi)的高風(fēng)險問題。這時,人們對正在創(chuàng)建的最終產(chǎn)品可能的規(guī)模知之甚少,因此COCOMOn用應(yīng)用點(diǎn)來估算規(guī)模。在階段二,即早期設(shè)計階段,已經(jīng)決定將項目開發(fā)向前推進(jìn),但是設(shè)計人員必須研究幾種可 選的體系結(jié)構(gòu)和操作的概念。同樣,仍然沒有足夠的信息支持準(zhǔn)確的工作量和工期估算,但是 遠(yuǎn)比第一階段知道的信息要多。在階段二, COCOMO使用功能點(diǎn)對規(guī)模進(jìn)行測量。在階段三,即后體系結(jié)構(gòu)階段,開發(fā)已經(jīng)開始,而且已經(jīng)知道了更多的信息。在這個階段, 可以根據(jù)功能點(diǎn)或代碼行來進(jìn)行規(guī)模估算,而且可以較為輕松地估
20、算很多成本因素。3.8什么是風(fēng)險?風(fēng)險的特點(diǎn)是什么?有哪幾種降低風(fēng)險的策略?風(fēng)險:是一種具有負(fù)面后果的、人們不希望發(fā)生的事情。風(fēng)險的特點(diǎn)(區(qū)別風(fēng)險和其他項目事件):(1)與事件有關(guān)的損失:與風(fēng)險有關(guān)的損失稱為風(fēng)險影響(2)事件發(fā)生的可能性:對風(fēng)險進(jìn)行的測量稱為風(fēng)險概率(3)更夠改變結(jié)果的程度:能降低或消除風(fēng)險所采取的行動稱為風(fēng)險控制(4)風(fēng)險成本(風(fēng)險暴露) =風(fēng)險影響*風(fēng)險概率三種策略來降低風(fēng)險:(1)通過改變性能或功能需求,避免風(fēng)險(2) 通過把風(fēng)險分配到其他系統(tǒng)中,或者購買保險以便在風(fēng)險成為事實時彌補(bǔ)經(jīng)濟(jì)上的損 失,從而轉(zhuǎn)移風(fēng)險。(3)假設(shè)風(fēng)險會發(fā)生,接受并用項目資源控制風(fēng)險。3.9風(fēng)險
21、管理的幾個重要步驟:Risk Management ActivitiesRisk idenlficationRisk assessmeirt Risk analysis.Risk prioritization廠 Checklisr_ Decomposition_ Assumption analysis_ Decision driverafialysis.-System dynamics Performance models-Cost models-Network analvsisf-Decision analysis1- Quality risk factor analysisRisk man
22、agement-Risk reductionRisk control- management planning-Risk resolutioRisk exposureCompound risk reduction 一 Buying infoTmation -Rislc avoidance 一 Risk transfer Risk reduction liveragE -DeveloptnenT processRisk element planningRisk plan integrationRisk mitigationRisk monitoring and Rfeffisessmenr第四章
23、4.1需求的含義是什么?需求的目標(biāo)是什么?需求:是對期望行為的表達(dá)。需求處理的是對象或?qū)嶓w,它們可能處于的狀態(tài),以及用于改 變狀態(tài)或?qū)ο筇卣鞯墓δ?。需求的目?biāo):是理解客戶的問題和需要,需求集中于客戶和問題,而不是解決方案的實現(xiàn)。4.2 確定需求的過程(獲取需求的過程)是什么?(1)引發(fā)收集用戶需求(2)分析理解和建模期望的行為(3)規(guī)格說明文檔化要開發(fā)的軟件系統(tǒng)的行為(4)確認(rèn)檢查我們的規(guī)格說明是否與用戶需求匹配(5)軟件需求規(guī)格說明(SRS)圖:4.3舉例說明獲取需求時,若有沖突發(fā)生,如何考慮到優(yōu)先級的需求分類及相互關(guān)系?請求客戶對需求進(jìn)行優(yōu)先級劃分通常是有用的,這可以迫使客戶思考提議的服務(wù)
24、或特征中哪 些是最重要的。一種大致的優(yōu)先計劃分方案可能將需求分為3類:(1)絕對要滿足的需求(必須的)(2)非常值得要的但并非必須的需求(值得要的)(3)可要可不要的需求(可選的)舉例:信用卡記賬系統(tǒng)必須能夠列出最近的費(fèi)用,將他們加起來并要求在某個日期前支付, 這是必須的需求。但是,該記賬系統(tǒng)也可能按照購買類型區(qū)分費(fèi)用,以幫助消費(fèi)者理解購買的 模式,這是值得要的需求。最后,記賬系統(tǒng)可能要求用黑色來打印貸方賬目,用紅顏色打印借 方賬目,這用需求是有用的,但它是可選的需求。按照類型對需求進(jìn)行優(yōu)先級的分類,能夠幫助所有相關(guān)人員理解自己到底需要什么。當(dāng)軟件 開發(fā)項目受到時間或資源的限制時,如果系統(tǒng)的成
25、本太高或者開發(fā)的時間太長,就可以去掉可 選需求,并對值得要的需求進(jìn)行分析,考慮是去掉還是延期。還可解決與質(zhì)量需求之間的矛盾。4.4如何使需求變得可測試?(1)指定每個副詞和形容詞的定量描述,這樣限定詞的含義就清楚、明確了(2 )用特定實體的名稱替換代名詞(3)要確保在需求文檔的某個地方,正確地定義每個名詞。4.5需求文檔分為哪兩類?(1)需求定義:是客戶想要的每一件事情的完整列表(2)需求規(guī)格說明:將需求重新陳述為關(guān)于要構(gòu)建的系統(tǒng)將如何運(yùn)轉(zhuǎn)的規(guī)格說明4.6 什么是功能需求和非功能需求(質(zhì)量需求)功能需求:根據(jù)要求的活動來描述需求的行為。(功能需求定義問題解決方案空間的邊界) 非功能需求(質(zhì)量需
26、求):描述一些軟件解決方案必須擁有的質(zhì)量特征,如快速的響應(yīng)時間、 易使用性、高可靠性或低維護(hù)代價等4.7什么是設(shè)計約束和過程約束?設(shè)計約束:是已經(jīng)做出的設(shè)計決策或限制問題解決方案集的設(shè)計決策。過程約束:是對用于構(gòu)建系統(tǒng)的技術(shù)和資源的限制。4.8需求的特征:(1)正確性(2)一致性(3)無二義性(確定性)(4)完備性(5)可行性(6)相關(guān)性(7)可測試性(8)可跟蹤性4.9在原型化需求方面,什么是拋棄式原型,什么是進(jìn)化式原型?原型化需求的目的: A:有的需求難以用文字和符號說明,而原型化的過程可幫助我們找到“好的視覺和感覺” B:對非功能性需求,可以評價性能和效率拋棄式原型:僅用于了解問題、探索
27、可行性,并不打算用來作為將來實際提交系統(tǒng)的一部分,而是用完扔掉進(jìn)化式原型:用于了解問題,并作為將來準(zhǔn)備提交的系統(tǒng)的一部分 這兩種技術(shù)有時都稱為快速原型化,因為它們都是為了回答需求的問題而構(gòu)建軟件。第五章5.1什么是設(shè)計?設(shè)計是將問題轉(zhuǎn)換為解決方案的創(chuàng)造性過程。5.2什么是概念設(shè)計?什么是技術(shù)設(shè)計?概念設(shè)計:確切地告訴客戶系統(tǒng)要做什么技術(shù)設(shè)計:一旦客戶認(rèn)可概念設(shè)計,系統(tǒng)構(gòu)建人員就將概念設(shè)計轉(zhuǎn)換為更為詳細(xì)的文檔,即 技術(shù)設(shè)計,技術(shù)設(shè)計確切的告訴開發(fā)人員系統(tǒng)將如何運(yùn)轉(zhuǎn)。概念設(shè)計強(qiáng)調(diào)的是系統(tǒng)功能,而技術(shù)設(shè)計描述的是系統(tǒng)將要采取的方式。5.3三種設(shè)計層及其關(guān)系設(shè)計分三層:體系結(jié)構(gòu)、代碼設(shè)計和可執(zhí)行設(shè)計(
28、1)體系結(jié)構(gòu)將需求格式說明中確定的系統(tǒng)能力與實現(xiàn)這些能力的系統(tǒng)構(gòu)件關(guān)聯(lián)起來。(2)代碼設(shè)計包含算法和數(shù)據(jù)結(jié)構(gòu)(3)可執(zhí)行設(shè)計在比代碼設(shè)計的層次還要低的靜態(tài)層次處理代碼設(shè)計,討論內(nèi)存分配、數(shù)據(jù)格 式、位模式等關(guān)系:自頂向下設(shè)計有益的:首先設(shè)計體系結(jié)構(gòu),然后進(jìn)行代碼設(shè)計,最后是可執(zhí)行設(shè)計5.4什么是模塊化?什么是抽象?模塊化:在模塊化的設(shè)計中,構(gòu)件清晰地定義了輸入和輸出,設(shè)計目標(biāo)明確,功能獨(dú)立,可 以做獨(dú)立測試。抽象:對細(xì)節(jié)的隱藏稱為抽象, 是基于某種歸納水平的問題描述,是我們集中于問題的關(guān)系。5.5論述設(shè)計用戶界面應(yīng)考慮的問題(1)應(yīng)處理以下幾個關(guān)鍵要素:1. 隱喻:可識別和學(xué)習(xí)的基本術(shù)語,圖片
29、和概念2. 頭腦中的模型:數(shù)據(jù)、功能、任務(wù)和角色的構(gòu)成和表現(xiàn)3. 模型的導(dǎo)航?jīng)]規(guī)則:怎樣在數(shù)據(jù)、功能、活動和角色中轉(zhuǎn)移4. 外觀:系統(tǒng)向用戶傳輸信息的外觀特征5. 感覺:向用戶提供有吸引力的體驗的交互技術(shù)(2)文化問題:需要考慮使用系統(tǒng)的那些用戶的信仰、價值觀、道德規(guī)范、傳統(tǒng)、風(fēng)俗和傳說。兩種解決方法:1.排除特定的文化參考或偏見,讓界面變得盡可能“國際化”2.采用無偏見設(shè)計并使之時應(yīng)使用軟件的文化(3)用戶偏愛:可以為不同用戶涉及多個界面。5.6耦合的概念,如何分類?耦合:指構(gòu)件之間的相互依賴性,可分為(1)內(nèi)容耦合:一個構(gòu)件直接修改了另外一個構(gòu)件(當(dāng)一個構(gòu)件修改了另外一個構(gòu)件的內(nèi)部數(shù)據(jù)項時
30、,或一個構(gòu)件內(nèi)的分支轉(zhuǎn)移到另外一個構(gòu)件中的時候,就可能出現(xiàn)內(nèi)容耦合)(2)公共耦合:不同構(gòu)件訪問公共數(shù)據(jù)。例如,一個公共變量可以被不同的構(gòu)件修改(3) 控制耦合:某個構(gòu)件通過傳遞參數(shù)來控制另外一個構(gòu)件的活動,模塊間傳遞的是控制量。(4) 標(biāo)記耦合:用一個數(shù)據(jù)結(jié)構(gòu)來從一個構(gòu)件到另一個構(gòu)件傳送信息,而且傳遞的是該數(shù)據(jù) 結(jié)構(gòu)本身。(5)數(shù)據(jù)耦合:構(gòu)件間通過傳遞數(shù)據(jù)來完成信息的傳遞。5.7內(nèi)聚的概念,如何分類?內(nèi)聚:指構(gòu)件內(nèi)部的“粘合”程度,可分為:(1)巧合內(nèi)聚:構(gòu)件的各部分互不相關(guān)(2)邏輯內(nèi)聚:幾個邏輯相關(guān)的功能或數(shù)據(jù)元素放在同一個構(gòu)件中(3)時態(tài)內(nèi)聚:構(gòu)件順序執(zhí)行若干個功能,但是各功能只和涉及
31、的時間相關(guān)(4)過程內(nèi)聚:構(gòu)件中的功能組合在一起只是為了確保這個順序(5)通信內(nèi)聚:將某些功能關(guān)聯(lián)起來,因為它們是操作或生成同一個數(shù)據(jù)集的(6)順序內(nèi)聚:一個構(gòu)件的某部分的輸出正好是下一部分的輸入(7) 功能內(nèi)聚:每一個處理元素對于執(zhí)行單個功能來說都是必須的,并且在一個構(gòu)件內(nèi)包含了 所有必需的元素。5.8什么是被動故障檢測?什么是主動故障檢測?被動故障檢測:設(shè)計一個系統(tǒng),在執(zhí)行的過程中一直等到一個失效發(fā)生主動故障檢測:定期檢查故障的征兆,或設(shè)法預(yù)見何時發(fā)生故障。第六章6.1什么是面向?qū)ο??面向?qū)ο笫且环N軟件開發(fā)方法,它將問題和問題的解決方案組織為離散對象的集合,數(shù)據(jù)結(jié)構(gòu)和行為都包含在對象的表示
32、中。6.2面向?qū)ο笥惺裁刺卣???)標(biāo)識(2)抽象(3)分類(4) 封裝(5)繼承(6)多態(tài)(7)持久性6.300開發(fā)有何優(yōu)勢?(1)語言的一致性。我們可以用同樣的術(shù)語描述問題及其解決方案:類、對象、方法、屬性 和行為(2)過程的一致性。00的過程使用數(shù)據(jù)和行為的封裝形成的獨(dú)立的單元。它從需求到應(yīng)用 實現(xiàn)和測試用相同語義的概念來表示系統(tǒng)。6.400開發(fā)過程有幾個步驟?00需求,00設(shè)計,00編碼和測試第七章7.1為什么說編碼工作紛繁復(fù)雜甚至令人氣餒?(1)設(shè)計人員可能沒有處理平臺和編程環(huán)境的所有特性。易于用圖表描述的結(jié)構(gòu)和關(guān)系并不是總能夠直截了當(dāng)?shù)木帉懗纱a(2) 我們必須以這樣一種方式編寫代
33、碼:不僅要在再次使用代碼進(jìn)行測試的時候便于自己理 解,而且當(dāng)系統(tǒng)隨著時間演化時,也便于他人理解(3) 在創(chuàng)建易于復(fù)用的代碼的同時,還必須利用這些特征:設(shè)計的組織結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、編 程語言的概念。7.2 般性的編程原則應(yīng)該從哪些方面考慮?(1控制結(jié)構(gòu):當(dāng)設(shè)計轉(zhuǎn)變成代碼時,我們希望保留組件的控制結(jié)構(gòu),在隱含調(diào)用的面向?qū)?象設(shè)計中,控制是基于系統(tǒng)狀態(tài)和變量而變化的。(2) 算法:在編寫代碼時,程序設(shè)計通常會制定一類算法,用于編寫組件。(3) 數(shù)據(jù)結(jié)構(gòu):編寫程序時,應(yīng)該安排數(shù)據(jù)的格式并進(jìn)行存儲,這樣的數(shù)據(jù)管理和操作才能 簡明易懂。7.3論述編碼階段實現(xiàn)某種算法時說涉及的問題。(1) 編寫更快代碼的代價
34、。可能會是代碼更加復(fù)雜,從而要花費(fèi)更多的時間編寫代碼(2) 測試代碼的時間代價。代碼的復(fù)雜度要求有更多的測試用例或測試數(shù)據(jù)(3) 用戶理解代碼的時間代價。(4) 需要修改代碼時,修改代碼的時間代價。7.4在編程程序內(nèi)部文檔時,除了HCE外,還應(yīng)添加什么注釋信息?(1) 對程序正在做什么,為程序提供逐行的解釋。(2) 用注釋將代碼分解成標(biāo)識主要活動的段,接著每個活動還可以分解成更小的步驟。(3) 隨著時間進(jìn)行修改的記錄7.5什么是極限編程(XP)?極限編程是敏捷過程的一種具體形式,提供敏捷方法最一般原則的指導(dǎo)方針。XP的支持者強(qiáng)調(diào)敏捷方法的4個特性:交流、簡單性、勇氣以及反饋。交流是指客戶與開發(fā)
35、人員之間持續(xù)地交換看法;簡單性激勵開發(fā)人員選擇最簡單的設(shè)計或?qū)?現(xiàn)來處理客戶的需要;勇氣體現(xiàn)在今早地和經(jīng)常交付功能的承諾;在軟件開發(fā)過程中的各種活 動中,都包含反饋循環(huán)。例如,程序員一起工作,針對實現(xiàn)設(shè)計的最佳方式,相互提供反饋; 客戶和程序員一起工作時,以完成計劃的任務(wù)。7.6什么是結(jié)對編程?結(jié)對編程屬于主要的敏捷開發(fā)方法,開發(fā)方式是兩個程序員共同開發(fā)程序,且角色分工明確:一個負(fù)責(zé)編寫程序,另一個負(fù)責(zé)復(fù)審和測試,兩個人定期交換角色。第八章8.1產(chǎn)生時失效的原因有哪些?(1 )規(guī)格說明可能是錯誤的,或者遺漏了某個需求。(2 )對于指定的硬件和軟件,說明中可能包含不可能實現(xiàn)的需求(3) 系統(tǒng)設(shè)計
36、中可能包含故障(4) 程序設(shè)計中可能包含故障(5) 程序代碼可能是錯誤的8.2故障分類的理由:在編碼完程序構(gòu)件之后,我們通常對代碼進(jìn)行檢查,以找出故障并立刻去除它們。當(dāng)不存在 明顯的故障時,我們測試程序,通過創(chuàng)造一些條件,是代碼不能像計劃的那樣做出反應(yīng),看一 看能否發(fā)現(xiàn)更多的故障。因此,知道我們正在查找什么類型的故障是很重要的。8.3幾種主要的故障類型:(1)算法故障:由于處理步驟中的某些錯誤,使得對于給定的輸入,構(gòu)件的算法或邏輯沒有 產(chǎn)生適當(dāng)?shù)妮敵?。?)計算故障和精度故障:一個公式的實現(xiàn)是錯誤的,或者計算結(jié)果沒有達(dá)到要求的精度。(3)文檔故障:文檔與程序?qū)嶋H做的事情不一致。(4)壓力故障(過載故障):填充數(shù)據(jù)結(jié)構(gòu)時超過了它們規(guī)定的能力(5)能力故障(邊界故障):系統(tǒng)活動到達(dá)指定的極限時,系統(tǒng)性能會變得不可接受(6)計時故障(協(xié)調(diào)故障):在開發(fā)實時系統(tǒng)時,一個關(guān)鍵的考慮因素是幾個同時執(zhí)行的或 按仔細(xì)定義的順序執(zhí)行的進(jìn)程之間的協(xié)調(diào)問題,當(dāng)協(xié)調(diào)這些事件的代碼不適當(dāng)時,就會出現(xiàn)計 時故障。(7)吞吐量
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025下半年江蘇南京市浦口區(qū)衛(wèi)健委所屬部分事業(yè)單位招聘人員24人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年四川綿陽市屬事業(yè)單位招考和專業(yè)考高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年四川敘永縣融媒體中心招聘事業(yè)單位工作人員4人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025上海電力大學(xué)教務(wù)處崗位公開招聘2人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025上海滬劇藝術(shù)傳習(xí)所事業(yè)單位招聘15人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025上半年青海省事業(yè)單位聯(lián)考及高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025上半年湖南岳陽市華容縣事業(yè)單位招考(第三批)擬錄人員高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025上半年安徽省合肥市直事業(yè)單位招聘304人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025上半年四川省雅安市醫(yī)護(hù)類事業(yè)單位招聘155人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 鐵路旅游推廣合同
- 紅色頒獎典禮公司年會員工表彰大會模板
- 2022-2023學(xué)年福建省泉州市惠安縣三年級(上)期末數(shù)學(xué)試卷
- 統(tǒng)編版語文三年級上冊2024-2025學(xué)年第三單元測試題 (含答案)
- 2024甘肅省安全員C證考試題庫
- 2024-2025學(xué)年上學(xué)期廣州初中地理七年級期末模擬卷1
- 八年級地理期末模擬卷(考試版A4)【測試范圍:晉教版八上全冊】
- 統(tǒng)編版語文2024-2025學(xué)年六年級上冊語文期末專題訓(xùn)練:字音字形(有答案)
- 2024年文化娛樂產(chǎn)業(yè)投資合同3篇
- 機(jī)器人課件模板下載
- 《肺癌病人的護(hù)理》課件
- 臨時工人勞動合同范本(3篇)
評論
0/150
提交評論