軟件工程課堂筆記.精簡版.教學(xué)提綱_第1頁
軟件工程課堂筆記.精簡版.教學(xué)提綱_第2頁
軟件工程課堂筆記.精簡版.教學(xué)提綱_第3頁
軟件工程課堂筆記.精簡版.教學(xué)提綱_第4頁
軟件工程課堂筆記.精簡版.教學(xué)提綱_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、軟件工程課堂筆記.精簡版.第一個(gè)增量模型往往是核心部分的產(chǎn)品,它實(shí)現(xiàn)了軟件的基本需求,但很多已經(jīng)明晰或者尚不明晰的補(bǔ)充特性還沒有發(fā)布。每個(gè)增量的開發(fā)可用瀑布或快速原型模型。和原型模型不一樣的是,增量模型雖然也具有“迭代”特征,但是每一個(gè)增量都發(fā)布一個(gè)可操作的產(chǎn)品,不妨稱之為“產(chǎn)品擴(kuò)充迭代”。它的早期產(chǎn)品是最終產(chǎn)品的可拆卸版本,每一個(gè)版本都能夠提供給用戶實(shí)際使用。優(yōu)缺點(diǎn)優(yōu)缺點(diǎn): 優(yōu)點(diǎn):能在較短時(shí)間內(nèi)向用戶提交可完成部分工作的產(chǎn)品。用戶有較充裕的時(shí)間學(xué)習(xí)和適應(yīng)新產(chǎn)品。易于保證核心功能正確。可以基于早期版本來獲取需求。項(xiàng)目完全失敗的風(fēng)險(xiǎn)小??梢詾槟切﹦?chuàng)新的功能開拓市場。規(guī)避了資源缺乏的風(fēng)險(xiǎn)。 缺點(diǎn):

2、把用戶需求轉(zhuǎn)化為功能遞增的不同版本可能比較難。以確定所有版本共需的公用模塊。存在問題: 如果你的客戶要求你在一個(gè)不可能完成的時(shí)間提交產(chǎn)品,向他建議只提交一個(gè)或幾個(gè)增量,此后再提交軟件的其他增量。 增量和原型的比較: 任何增量的處理流程均可結(jié)合原型實(shí)現(xiàn);增量模型與原型相同,本質(zhì)上都是迭代的;增量模型強(qiáng)調(diào)每個(gè)增量都 是可操作的;早期的增量是整體的一部分,而原型最終要被拋棄。4. 原型開發(fā):原型開發(fā):經(jīng)過的活動(dòng): 溝通快速策劃建??焖僭O(shè)計(jì)構(gòu)建原型部署交付及反饋(組成一個(gè)圓圈)優(yōu)缺點(diǎn)優(yōu)缺點(diǎn):優(yōu)點(diǎn):用戶能夠感受到實(shí)際系統(tǒng);開發(fā)者能很快建造出一些東西。存在問題:開發(fā)者沒有考慮整體軟件質(zhì)量和長期的可維護(hù)性;

3、開發(fā)者往往在實(shí)現(xiàn)過程中采用折中的手段??蛻籼岢隽艘恍┗竟δ?,但未詳細(xì)定義輸入、處理和輸出需求;開發(fā)人員可能對(duì)開發(fā)運(yùn)行環(huán)境、算法效率、 操作系統(tǒng)的兼容性和人機(jī)交互等情況不確定。這些情況下,采用原型開發(fā)。對(duì)于要求把一個(gè)粗糙的原型系統(tǒng)變?yōu)楣ぷ鳟a(chǎn)品的壓力,建議盡量抵制。這樣做的結(jié)果往往是產(chǎn)品質(zhì)量受到損害。5. 螺旋模型螺旋模型經(jīng)過的活動(dòng): (五個(gè)關(guān)鍵詞形成一個(gè)螺旋)溝通。策劃:項(xiàng)目估算、制定進(jìn)度計(jì)劃、風(fēng)險(xiǎn)分析; 建模:分析、設(shè)計(jì)。構(gòu)建:編碼、測(cè)試。部署:交付、反饋。 優(yōu)缺點(diǎn)優(yōu)缺點(diǎn):隨著過程進(jìn)展演化,開發(fā)者和客戶能夠更好地理解和對(duì)待每個(gè)演化級(jí)別上的風(fēng)險(xiǎn),適合于大型系統(tǒng)及 軟件的開發(fā)。使用原型實(shí)現(xiàn)作為降

4、低風(fēng)險(xiǎn)的機(jī)制,并在開發(fā)的任意階段均可使用原型實(shí)現(xiàn)。更真實(shí)的反映了現(xiàn)實(shí)世界。如應(yīng)用得當(dāng),能在風(fēng)險(xiǎn)變成問題之前降低它。模型的成功依賴于風(fēng)險(xiǎn)評(píng)估的專門技術(shù)。是一個(gè)較新的模型,功效的確定尚需若干年時(shí)間。存在問題:很難說服客戶演進(jìn)的方法是可控的。依賴大量的風(fēng)險(xiǎn)評(píng)估專家保證成功,如果風(fēng)險(xiǎn)沒被發(fā)現(xiàn),會(huì)發(fā)生問題。6.協(xié)同開發(fā)模型協(xié)同開發(fā)模型:定義一系列事件,觸發(fā)軟件工作活動(dòng)、動(dòng)作或者任務(wù)的狀態(tài)轉(zhuǎn)換。更適合于client/server 應(yīng)用。定義一個(gè)過程網(wǎng)絡(luò)活動(dòng)代替一個(gè)事件的序列。7. 各種模型的比較各種模型的比較:8.統(tǒng)一過程統(tǒng)一過程(UPUnified Process):宗旨:用例驅(qū)動(dòng),以架構(gòu)為核心,迭代并

5、且增量。統(tǒng)一過程的階段:起始階段包括客戶溝通和策劃活動(dòng)。細(xì)化階段包括溝通和通用過程模型的建?;顒?dòng)。構(gòu)建階段與通用軟件過程中的構(gòu)建活動(dòng)相同。轉(zhuǎn)換階段包括通用構(gòu)建活動(dòng)的后期階段以及通用部署(交付和反饋)活動(dòng)的第一部分。生產(chǎn)階段與通用過程的部署活動(dòng)一致。5個(gè)過程并非順序進(jìn)行,而是階段性并發(fā)進(jìn)行。例題:以下情況下應(yīng)該采用什么過程模型?例題:以下情況下應(yīng)該采用什么過程模型?(1)客戶不太清楚待開發(fā)的系統(tǒng)需要提供什么服務(wù)。答:原型(2)開發(fā)團(tuán)隊(duì)了解待開發(fā)軟件的相關(guān)領(lǐng)域知識(shí),盡管此系統(tǒng)龐大,但其較已經(jīng)開發(fā)的系統(tǒng)差異并不大。答:瀑布(3)軟件的功能是把讀入的浮點(diǎn)數(shù)開平方,所得到的結(jié)果應(yīng)該精確到小數(shù)點(diǎn)后 4 位

6、。答:瀑布(4)開發(fā)一個(gè)已發(fā)布軟件的新版本,公司規(guī)定了嚴(yán)格的完成期限,并對(duì)外公布。答:增量(5)汽車防鎖死剎車控制系統(tǒng)。答:螺旋(6)大學(xué)記賬系統(tǒng),準(zhǔn)備替換一個(gè)已存在的系統(tǒng)。答:瀑布(7)一個(gè)位于火車站的交互式火車車次查詢系統(tǒng)。答: 原型CH03 敏捷開發(fā)敏捷開發(fā)1. 敏捷的概念敏捷的概念:它是一種軟件開發(fā)方法論,可以應(yīng)對(duì)客戶快速變更的需求。它強(qiáng)調(diào)以人為核心,采用迭代的方式, 循序漸進(jìn)的開發(fā)軟件。特別適用于 web 應(yīng)用開發(fā)。2. 敏捷原則敏捷原則:通過盡早、持續(xù)交付有價(jià)值的軟件來使客戶滿意。即使在開發(fā)后期,也歡迎需求變更。經(jīng)常交付可工作軟件。業(yè)務(wù)人員和開發(fā)人員必須在一起。圍繞受激勵(lì)的個(gè)人構(gòu)建

7、項(xiàng)目。最有效的信息傳遞方法是面對(duì)面交談。3. 敏捷的特點(diǎn)敏捷的特點(diǎn):工作軟件是進(jìn)度的首要度量標(biāo)準(zhǔn)。提倡可持續(xù)的開發(fā)速度。不斷關(guān)注優(yōu)秀的技能和設(shè)計(jì)。簡單是必要的。好的架構(gòu)、需求和設(shè)計(jì)出于自組織團(tuán)隊(duì)。定期反省,并相應(yīng)調(diào)整自己的行為。允許項(xiàng)目團(tuán)隊(duì)調(diào)整并合理安排任務(wù);理解敏捷開發(fā)方法的易變性并制定計(jì)劃;精簡并維持最基本的工作產(chǎn)品; 強(qiáng)調(diào)增量交付策略;快速向用戶提供適應(yīng)產(chǎn)品和運(yùn)行環(huán)境的可運(yùn)行軟件。4.極限編程極限編程 XP(eXtreme Programming)為實(shí)施XP的全部工作定義了五個(gè)有重要意義的要素:溝通、簡明、反饋、鼓勵(lì)和尊重。策劃:建立一系列描述待開發(fā)軟件必要特征與功能的“故事”評(píng)估每一個(gè)

8、故事(即優(yōu)先級(jí)),并給出以開發(fā)周數(shù)為度量單位的成本客戶和 XP 團(tuán)隊(duì)共同決定如何把故事分組并置于將要開發(fā)的下一個(gè)發(fā)行版本中(下一個(gè)軟件增量)形成關(guān)于一個(gè)發(fā)布版本的基本承諾在第一個(gè)版本發(fā)布之后,XP 團(tuán)隊(duì)計(jì)算項(xiàng)目的速度。對(duì)待開發(fā)的故事排序方法:所有選定故事在幾周內(nèi)盡快實(shí)現(xiàn);具有最高權(quán)值的故事移到進(jìn)度表前 面先實(shí)現(xiàn);高風(fēng)險(xiǎn)故事將首先實(shí)現(xiàn)。項(xiàng)目速度:第一個(gè)發(fā)行版本中實(shí)現(xiàn)的客戶故事個(gè)數(shù)。用于后續(xù)發(fā)行版本的發(fā)布日期和進(jìn)度安排,調(diào)整軟件發(fā)型內(nèi)容和最終交付日期。設(shè)計(jì)嚴(yán)格遵循 KIS(Keep it simple)原則鼓勵(lì)使用 CRC 卡,CRC(類-責(zé)任-協(xié)作者)卡確定和組織與當(dāng)前軟件增量相關(guān)的面向?qū)ο蟮念?/p>

9、。在某個(gè)故事設(shè)計(jì)中遇到困難時(shí),立即建立這部分設(shè)計(jì)的可執(zhí)行原型,實(shí)現(xiàn)并評(píng)估設(shè)計(jì)原型(被稱為 Spike解決方案)鼓勵(lì)“重構(gòu)”,重構(gòu)是以不改變代碼外部行為(如函數(shù)的輸入輸出)而改進(jìn)內(nèi)部結(jié)構(gòu)(如函數(shù)實(shí)現(xiàn)方法) 的方式來修改軟件系統(tǒng)的過程。重構(gòu)實(shí)質(zhì)就是在編碼完成之后改進(jìn)代碼設(shè)計(jì)。編碼在編碼之前,確定檢測(cè)本次發(fā)布的所有故事的單元測(cè)試鼓勵(lì)結(jié)對(duì)編程,這提供了實(shí)時(shí)解決問題和實(shí)時(shí)保證質(zhì)量的機(jī)制。連續(xù)集成策略,有助于避免兼容性和接口問題。測(cè)試每天進(jìn)行測(cè)試“驗(yàn)收測(cè)試” 由客戶確定,根據(jù)本次軟件發(fā)布中所實(shí)現(xiàn)的用戶故事而確定。5.工業(yè)極限編程工業(yè)極限編程 IXP是XP的一種有機(jī)進(jìn)化。更大的包容性、擴(kuò)大用戶角色、升級(jí)技術(shù)

10、實(shí)踐。6.其他敏捷過程模型其他敏捷過程模型:自適應(yīng)軟件開發(fā)(ASD)。Scrum。精益開發(fā)(Lean Development)。動(dòng)態(tài)系統(tǒng)開發(fā)方法(DSDM)。特征驅(qū)動(dòng)開發(fā)FDD。水晶開發(fā)(Cristal Clear)。CH04/05/06 需求工程需求工程1. 需求工程過程需求工程過程(RERequirement Engineering)通過執(zhí)行7個(gè)活動(dòng)來實(shí)現(xiàn):起始、導(dǎo)出、精化、協(xié)商、規(guī)格說明、確認(rèn)、管理。起始階段的工作:確認(rèn)共同利益者(直接或間接地從正在開發(fā)的系統(tǒng)中獲益的人)、識(shí)別多種觀點(diǎn)、協(xié)同合作、Q&A 會(huì)議 P68.2.CRC(類(類-責(zé)任責(zé)任-協(xié)作者)協(xié)作者)建模建模,提供了

11、一個(gè)簡單方法,用于識(shí)別和組織與系統(tǒng)或產(chǎn)品需求相關(guān)的類。CRC 模型實(shí)際上是表示類的標(biāo)準(zhǔn)索引卡片的集合。3.創(chuàng)建分析模型時(shí)應(yīng)該遵循的經(jīng)驗(yàn)原則創(chuàng)建分析模型時(shí)應(yīng)該遵循的經(jīng)驗(yàn)原則:模型應(yīng)關(guān)注在問題域或業(yè)務(wù)域內(nèi)可見的需求,抽象的級(jí)別應(yīng)該相對(duì)高一些。需求模型的每個(gè)元素都應(yīng)能增加對(duì)軟件需求的整體理解,并提供對(duì)信息域、功能和系統(tǒng)行為的深入理解。關(guān)于基礎(chǔ)結(jié)構(gòu)和其他非功能的模型應(yīng)推延到設(shè)計(jì)階段再考慮。最小化整個(gè)系統(tǒng)內(nèi)的聯(lián)系。確認(rèn)需求模型為所有利益相關(guān)者都帶來價(jià)值。盡可能保持模型簡潔。4.給類分配職責(zé)時(shí)建議一下給類分配職責(zé)時(shí)建議一下5個(gè)指導(dǎo)原則:個(gè)指導(dǎo)原則:只能系統(tǒng)應(yīng)分布在所有類中以求最佳地滿足問題的需求。每個(gè)職責(zé)

12、的說明應(yīng)盡可能具有普遍性。信息和與之相關(guān)的行為應(yīng)放在同一類中。某個(gè)事物的信息應(yīng)局限于一個(gè)雷中而不要分布在多個(gè)類中。適合時(shí),職責(zé)應(yīng)由相關(guān)類共享。5.數(shù)據(jù)流圖DFGData Flow DiagramCH07 設(shè)計(jì)概念設(shè)計(jì)概念0.抽象:抽象:過程抽象是指具有明確和有限功能的指令序列;數(shù)據(jù)抽象是描述數(shù)據(jù)對(duì)象的冠名數(shù)據(jù)集合。部署級(jí)設(shè)計(jì)元素指明軟件功能和子系統(tǒng)將如何在支持軟件的物理計(jì)算環(huán)境內(nèi)分布。1.模塊化模塊化:將系統(tǒng)劃分為相對(duì)獨(dú)立但又有所關(guān)聯(lián)的多個(gè)部分。按照設(shè)計(jì)原則將系統(tǒng)劃分為若干個(gè)較小的模塊:相互獨(dú)立但又相互關(guān)聯(lián)。實(shí)際上是系統(tǒng)分解和抽象的過程。模塊是相對(duì)獨(dú)立的程序體是數(shù)據(jù)說明、可執(zhí)行語句等程序?qū)ο蟮?/p>

13、集合。單獨(dú)命名的,并且可以通過名字來訪問例如:類、過程、函數(shù)、子程序、宏等。模塊化就是把程序劃分成獨(dú)立命名且可直接訪問的模塊,各個(gè)模塊完成一個(gè)子功能,這些模塊集成起來構(gòu)成一個(gè)整體,完成指定功能。對(duì)于一個(gè)給定的系統(tǒng),合適的模塊數(shù)量是多少?結(jié)論:適度的模塊化模塊數(shù)增加時(shí),模塊間的關(guān)系也隨之增加,接口和集成的工作量也隨之增加。結(jié)論:尋找最佳模塊化程度平衡點(diǎn)。模塊化設(shè)計(jì)的好處:模塊化設(shè)計(jì)(以及由其產(chǎn)生的程序)使開發(fā)工作更易于規(guī)劃;可以定義和交付軟件增 量;更容易實(shí)施變更;能夠有效的開展測(cè)試和調(diào)試;可以進(jìn)行長期維護(hù)而沒有嚴(yán)重的副作用。2.信息隱蔽信息隱蔽每個(gè)模塊都盡量對(duì)其他模塊隱藏自己的內(nèi)部實(shí)現(xiàn)細(xì)節(jié):模

14、塊內(nèi)部的數(shù)據(jù)和過程不允許其它不需要這些信息的模塊使用。定義和實(shí)施對(duì)模塊的過程細(xì)節(jié)和局部數(shù)據(jù)結(jié)構(gòu)的存取限制。典型的信息隱藏:面向?qū)ο蟮脑L問控制符。信息隱藏是實(shí)現(xiàn)抽象/模塊化機(jī)制的基本支撐。信息隱蔽的目的:將數(shù)據(jù)結(jié)構(gòu)和處理過程的細(xì)節(jié)隱蔽在模塊接口之后。用戶不需要了解模塊內(nèi)部的具體細(xì) 節(jié)。3.功能獨(dú)立功能獨(dú)立:功能獨(dú)立是模塊化、抽象概念和信息隱藏的直接結(jié)果。功能獨(dú)立的表現(xiàn):內(nèi)聚度與耦合度 內(nèi)聚(cohesion):一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度盡量高耦合(coupling):模塊之間相互關(guān)聯(lián)的程度盡量低功能獨(dú)立的好處: 易開發(fā),易維護(hù)和測(cè)試,減少錯(cuò)誤擴(kuò)散,易復(fù)用。4. 重構(gòu)重構(gòu):為簡化設(shè)計(jì)而

15、進(jìn)行的重組。使用這樣一種方式改變軟件系統(tǒng)的過程:不改變代碼設(shè)計(jì)的外部行為 而是改變其內(nèi)部結(jié)構(gòu)。5. 接口設(shè)計(jì)的接口設(shè)計(jì)的 3 個(gè)重要元素個(gè)重要元素:用戶界面 (UI)。和其他系統(tǒng)、設(shè)備、網(wǎng)絡(luò)或其他的信息生產(chǎn)者或使用者的外部接口。各種設(shè)計(jì)構(gòu)件之間的內(nèi)部接口.。接口定義:是類、構(gòu)件或其他分類的外部可見的(公共的)操作說明,而沒有內(nèi)部結(jié)構(gòu)的規(guī)格說明。包括: 一組描述類的部分行為的操作和提供操作的訪問方法。6.組織良好的設(shè)計(jì)類的四個(gè)特征:完整性與充分性、原始性、高內(nèi)聚性、低耦合性。CH08 體系結(jié)構(gòu)設(shè)計(jì)體系結(jié)構(gòu)設(shè)計(jì)1.體系結(jié)構(gòu)概念體系結(jié)構(gòu)概念:系統(tǒng)的一個(gè)或多個(gè)結(jié)構(gòu),它包括軟件構(gòu)件、這些構(gòu)件對(duì)外可見的屬

16、性以及它們之間的相互關(guān)系。2.體系結(jié)構(gòu)風(fēng)格體系結(jié)構(gòu)風(fēng)格:1)以數(shù)據(jù)為中心的體系結(jié)構(gòu) 適用于可重用構(gòu)件庫、大型數(shù)據(jù)庫、搜索引擎等。2)數(shù)據(jù)流體系結(jié)構(gòu)3)調(diào)用和返回體系結(jié)構(gòu) 適用于分組交換網(wǎng)絡(luò)中或給予活動(dòng)者的系統(tǒng)中。4) 面向?qū)ο篌w系結(jié)構(gòu)5)層次體系結(jié)構(gòu) 3.使用數(shù)據(jù)流進(jìn)行體系結(jié)構(gòu)映射使用數(shù)據(jù)流進(jìn)行體系結(jié)構(gòu)映射:1)變換型數(shù)據(jù)處理。2)事務(wù)型數(shù)據(jù)處理。3)混合型數(shù)據(jù)處理。4.變換映射變換映射是一組設(shè)計(jì)步驟,可以將具有變換流特征的DFD映射為某個(gè)特定的體系結(jié)構(gòu)風(fēng)格。CH09 構(gòu)件級(jí)設(shè)計(jì)構(gòu)件級(jí)設(shè)計(jì)1.構(gòu)件的概念構(gòu)件的概念:OMG 統(tǒng)一建模語言規(guī)范的定義:系統(tǒng)中模塊化的、可部署的和可替換的部件,該部件封

17、裝了實(shí) 現(xiàn)并暴露一組接口。構(gòu)件包括一組協(xié)作的類,也可以包含一個(gè)單獨(dú)的類。設(shè)計(jì)構(gòu)件的細(xì)構(gòu)件的細(xì)化:不斷補(bǔ)充類的全部屬性和操作。2.設(shè)計(jì)基于類的構(gòu)件1)基本設(shè)計(jì)原則基本設(shè)計(jì)原則(基于類):開閉原則開閉原則OCP:模塊應(yīng)該對(duì)外延具有開放性,對(duì)修改具有封閉性,即不應(yīng)把變更寫入代碼,從而不必進(jìn)入代碼內(nèi)部修改。Liskov 替換原則替換原則ISP:子類可以替換它們的基類。用在有繼承時(shí)判斷有無濫用繼承。依賴倒置原則依賴倒置原則DIP:依賴于抽象,而非具體實(shí)現(xiàn)接口分離原則接口分離原則ISP:多個(gè)用戶專用接口比一個(gè)通用接口要好。降低接口間的耦合度。2)內(nèi)聚性內(nèi)聚性:一個(gè)模塊(構(gòu)件)內(nèi)部各成分之間相互關(guān)聯(lián)程度的度

18、量。 級(jí)別排序:功能內(nèi)聚功能內(nèi)聚:一個(gè)模塊內(nèi)各功能部分都使用了相同的輸入數(shù)據(jù),或產(chǎn)生了相同的輸出數(shù)據(jù)。分層內(nèi)聚分層內(nèi)聚:高層能訪問低層的服務(wù),但低層不能訪問高層的服務(wù)。通信內(nèi)聚通信內(nèi)聚:訪問相同數(shù)據(jù)的所有操作被定義在一個(gè)類中。3)耦合性耦合性:構(gòu)件之間聯(lián)系的緊密程度,面向?qū)ο螅侯愰g聯(lián)系的緊密程度。級(jí)別排序: 內(nèi)容耦合內(nèi)容耦合:包括(1)一個(gè)模塊直接訪問另一個(gè)模塊的內(nèi)部數(shù)據(jù),如 GOTO 跳轉(zhuǎn);(2)一個(gè)模塊不通過正常入口轉(zhuǎn)到另一模塊內(nèi)部;(3)兩個(gè)模塊有一部分程序代碼重迭(只可能出現(xiàn)在匯編語言程序中); (4)一個(gè)模塊有多個(gè)入口。共用耦合共用耦合(公共耦合):大量構(gòu)件都要使用同一個(gè)全局變量???/p>

19、制耦合控制耦合:一個(gè)模塊通過傳送開關(guān)、標(biāo)志、名字等控制信息,控制選擇另一模塊的功能。標(biāo)記耦合標(biāo)記耦合:類 B 被聲明為類 A 某一操作中的一個(gè)參數(shù)類型。數(shù)據(jù)耦合數(shù)據(jù)耦合:操作需要傳遞長串的數(shù)據(jù)參數(shù)。例程調(diào)用耦合例程調(diào)用耦合:一個(gè)操作調(diào)用另一個(gè)操作。類型使用耦合類型使用耦合:構(gòu)件 A 中使用了在構(gòu)件 B 中定義的一個(gè)數(shù)據(jù)類型。包含或者導(dǎo)入耦合包含或者導(dǎo)入耦合:構(gòu)件 A 引入或者包含一個(gè)構(gòu)件 B 的包(java)或者內(nèi)容(C 語言)時(shí)。外部耦合外部耦合:兩個(gè)構(gòu)件共享數(shù)據(jù)格式,通信協(xié)議或設(shè)備接口。程序設(shè)計(jì)語言(程序設(shè)計(jì)語言(PDL)也成為結(jié)構(gòu)化語言或偽代碼?;镜腜DL語法應(yīng)該包括多種構(gòu)造:構(gòu)建定義

20、、接口描述、數(shù)據(jù)聲明、塊結(jié)構(gòu)、條件結(jié)構(gòu)、重復(fù)結(jié)構(gòu)和I/O結(jié)構(gòu)。CH14 軟件測(cè)試策略軟件測(cè)試策略1.測(cè)試策略測(cè)試策略(4 個(gè)階段與開發(fā)階段的對(duì)應(yīng)關(guān)系,圍成一個(gè)螺旋)(單元測(cè)試-編碼)-(集成測(cè)試-設(shè)計(jì))-(確認(rèn)測(cè)試-需求)-(系統(tǒng)測(cè)試-系統(tǒng)工程)2.什么時(shí)候完成測(cè)試完成測(cè)試:1)永遠(yuǎn)不能完成,測(cè)試的工作只會(huì)從軟件工程師身上轉(zhuǎn)移到最終用戶身上。用戶每次運(yùn)行程序時(shí),程序就在 經(jīng)受測(cè)試。2)當(dāng)時(shí)間或資金不夠時(shí),測(cè)試就結(jié)束了。3)利用統(tǒng)計(jì)建模和軟件可靠性理論,建立以執(zhí)行時(shí)間為函數(shù)的軟件故障模型。3.集成測(cè)試集成測(cè)試 1)一次性組裝測(cè)試2)深度組裝測(cè)試/增值組裝測(cè)試:自頂向下&自底向上3)混合增

21、值組裝測(cè)試4) 回歸測(cè)試回歸測(cè)試:重新執(zhí)行已進(jìn)行測(cè)試的某個(gè)子集,以確保變更沒有傳播不期望的副作用。只針對(duì)關(guān)鍵模塊。 關(guān)鍵模塊的特征:涉及幾個(gè)軟件需求;在程序的模塊結(jié)構(gòu)中位于較高層次;較復(fù)雜、較易發(fā)生錯(cuò)誤;有明 確定義的性能要求。5) 冒煙測(cè)試冒煙測(cè)試的好處:降低集成風(fēng)險(xiǎn);提高最終產(chǎn)品的質(zhì)量;簡化錯(cuò)誤的診斷和修正;易于評(píng)估進(jìn)展?fàn)顩r。4.測(cè)試和測(cè)試和測(cè)試測(cè)試(會(huì)區(qū)分) 測(cè)試是由一個(gè)用戶在開發(fā)環(huán)境下進(jìn)行的測(cè)試,也可以是公司內(nèi)部用戶在模擬實(shí)際操作環(huán)境下進(jìn)行的測(cè)試。 測(cè)試在受控環(huán)境下進(jìn)行。 測(cè)試是由軟件的多個(gè)用戶在實(shí)際使用環(huán)境下進(jìn)行的測(cè)試。測(cè)試在一個(gè)或多個(gè)最終用戶場所進(jìn)行,與測(cè)試不同,開發(fā)者通常不在場。

22、5.系統(tǒng)測(cè)試系統(tǒng)測(cè)試的概念:將通過確認(rèn)測(cè)試的軟件,作為整個(gè)基于計(jì)算機(jī)系統(tǒng)的一個(gè)元素,與計(jì)算機(jī)硬件、外設(shè)、某些 支持軟件、數(shù)據(jù)和人員等其他系統(tǒng)元素結(jié)合在一起,在實(shí)際運(yùn)行環(huán)境下,對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行一系列的組裝測(cè)試和確認(rèn)測(cè)試。6.獨(dú)立測(cè)試組(ITG)的作用是為了避免開發(fā)人員進(jìn)行測(cè)試所引發(fā)的固有問題。獨(dú)立測(cè)試可以消除利益沖突。CH15/16 測(cè)試傳統(tǒng)的測(cè)試傳統(tǒng)的/面向?qū)ο蟮膽?yīng)用系統(tǒng)面向?qū)ο蟮膽?yīng)用系統(tǒng)1.白盒測(cè)試白盒測(cè)試:把測(cè)試對(duì)象看做一個(gè)透明盒子,測(cè)試人員了解程序的內(nèi)部結(jié)構(gòu)。2.基本路徑測(cè)試基本路徑測(cè)試:程序環(huán)路復(fù)雜性:環(huán)路復(fù)雜度=最少獨(dú)立路徑數(shù)=域的數(shù)量。環(huán)復(fù)雜性 V(G)=P+1,其中 P 為包含在

23、流圖 G 中的簡單判定結(jié)點(diǎn)數(shù)。3.黑盒測(cè)試黑盒測(cè)試:把測(cè)試對(duì)象看做一個(gè)黑盒子,測(cè)試人員不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程序的需求規(guī)格說明書,檢查程序的功能是否符合它的功能說明。主要發(fā)現(xiàn)以下錯(cuò)誤:不正確或遺漏的功能;接口錯(cuò)誤;數(shù)據(jù)結(jié)構(gòu)或外部數(shù)據(jù)庫訪問錯(cuò)誤;行為或性能錯(cuò)誤;初始化和終止錯(cuò)誤。1)等價(jià)類劃分等價(jià)類劃分:把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分成若干部分,然后從每個(gè)部分中選取少數(shù)有代 表性的數(shù)據(jù)作為測(cè)試用例。2)等價(jià)類劃分有等價(jià)類劃分有2種情況種情況:有效等價(jià)類:對(duì)程序的規(guī)格說明來說是合理的,有意義的輸入數(shù)據(jù)構(gòu)成的集合。無效等價(jià)類:對(duì)程序的規(guī)格說明來說是不合理的,無意義的輸入

24、數(shù)據(jù)構(gòu)成的集合。3)邊界值分析邊界值分析:一種黑盒測(cè)試方法,對(duì)等價(jià)類劃分的補(bǔ)充。大量的錯(cuò)誤是發(fā)生在輸入或輸出范圍的邊界上,所以采取邊界值分析。4.類級(jí)的劃分測(cè)試類級(jí)的劃分測(cè)試基于狀態(tài)劃分就是根據(jù)它們改變類狀態(tài)的能力對(duì)類操作進(jìn)行分類;基于屬性劃分就是根據(jù)它們所使用的屬性對(duì)類操作進(jìn)行分類。CH18/19 項(xiàng)目管理項(xiàng)目管理1.管理涉及范圍管理涉及范圍:4P:人員,產(chǎn)品,過程,項(xiàng)目。利益相關(guān)者利益相關(guān)者:高級(jí)管理者,項(xiàng)目技術(shù)管理者,開發(fā)人員,客戶,最終用戶。軟件團(tuán)隊(duì)類型軟件團(tuán)隊(duì)類型:封閉封閉范型范型(難以創(chuàng)新)、隨機(jī)隨機(jī)范型范型(松散)、開放開放范型范型(適合復(fù)雜問題)、同步式同步式范范型型(組員各自

25、解決問題的一部分)。2.W5HH原則原則: WHY、WHAT、 WHE、WHO、WHERE、 HOW 、HOWMUCH。3.了解 LOC(面向規(guī)模的度量)、FP(面向功能的度量)及其LOC&FP相互調(diào)和相互調(diào)和。4.測(cè)量質(zhì)量測(cè)量質(zhì)量:軟件質(zhì)量的事后度量,包括正確性、可維護(hù)性、完整性、可使用性正確性、可維護(hù)性、完整性、可使用性。1)正確性的度量是 KLOC 的差錯(cuò)數(shù);2)可維護(hù)性的度量必須采取間接度量,通過平均變更等待時(shí)間 MTTC 來度量;3)完整性度量一個(gè)系統(tǒng)抗拒對(duì)它的安全性攻擊的能力,完整性=1-危險(xiǎn)性*(1-安全性),其中危險(xiǎn)性是特定類型的攻擊將在一給定時(shí)間內(nèi)發(fā)生的概率,安全性是

26、排除特定類型攻擊的概率;4)可使用性依據(jù) 4 個(gè)特征進(jìn)行度量:為學(xué)習(xí)系統(tǒng)所需要的體力上和智力上的技能;為達(dá)到適度有效使用系統(tǒng)所需要的時(shí)間;當(dāng)軟件被某些人適度有效使用時(shí)所度量的在生產(chǎn)率方面的凈增值;用戶角度對(duì)系統(tǒng)的主觀評(píng)價(jià)。5.缺陷排除效率:缺陷排除效率:DRE=E/(E+D),其中 E 是軟件交付給最終用戶前發(fā)現(xiàn)的錯(cuò)誤數(shù);D 是交付后發(fā)現(xiàn)的錯(cuò)誤數(shù)。CH20 軟件項(xiàng)目估算軟件項(xiàng)目估算軟件規(guī)模估算:軟件規(guī)模估算:如果采用直接的方法,規(guī)??梢杂么a行(LOC)來測(cè)量;如果采用間接的方法,規(guī)??梢杂霉δ茳c(diǎn)(FP)來表示。不同估算之間差別大的原因不同估算之間差別大的原因:(1)計(jì)劃人員沒有充分理解或是誤

27、解了項(xiàng)目范圍。(2)在基于問題的估算技術(shù)中所使用的生產(chǎn)率數(shù)據(jù)不適合本應(yīng)用系統(tǒng),過時(shí)了,或者是誤用了。COCOMOII 模型模型構(gòu)造性成本模型構(gòu)造性成本模型CH21 項(xiàng)目進(jìn)度安排項(xiàng)目進(jìn)度安排1.軟件項(xiàng)目進(jìn)度安排的基本指導(dǎo)原則:指導(dǎo)原則:劃分;相互依賴性;時(shí)間分配;工作量確認(rèn);確定責(zé)任;明確輸出結(jié)果;確定里程碑。2.人員與工作量之間的關(guān)系人員與工作量之間的關(guān)系:通過在略微延長的時(shí)間內(nèi)使用較少的人員,可以實(shí)現(xiàn)同樣的目標(biāo)。3.進(jìn)度計(jì)劃評(píng)估及評(píng)審技術(shù)(PERT)和關(guān)鍵路徑方法(關(guān)鍵路徑方法(CPM)就是兩種可以用于軟件開發(fā)的項(xiàng)目進(jìn)度安排方法。4.項(xiàng)目跟蹤項(xiàng)目跟蹤可以通過以下方法實(shí)現(xiàn):定期舉行項(xiàng)目狀態(tài)會(huì)議;評(píng)估在軟件工程過程中所進(jìn)行的所有評(píng)審的結(jié)果;判斷正式的項(xiàng)目里程碑是否在預(yù)定日期內(nèi)完成;比較項(xiàng)目表中列出的各項(xiàng)任務(wù)的實(shí)際開始日期與計(jì)劃日期;與開發(fā)人員進(jìn)行非正式會(huì)談,獲取他們對(duì)項(xiàng)目進(jìn)展及可能出現(xiàn)的問題的客觀評(píng)估;通過掙值分析來定量的評(píng)估項(xiàng)目進(jìn)展。5.掙值、獲得值分析掙值、獲得值分析EVA

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論