版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
軟件工程導(dǎo)論復(fù)習(xí)軟件工程導(dǎo)論復(fù)習(xí)1什么是軟件軟件的定義—軟件由三部分組成:程序:在運(yùn)行時(shí),能提供所希望的功能和性能的指令集數(shù)據(jù):使程序能夠正確運(yùn)行的數(shù)據(jù)文檔:描述程序研制過(guò)程、方法及使用的文檔軟件處理的是信息和邏輯軟件的開(kāi)發(fā),絕不僅僅是編寫(xiě)程序軟件圍繞著邏輯進(jìn)行軟件就是一個(gè)信息交換器產(chǎn)生、管理、獲取、修改、顯示或傳送信息軟件≠程序2022/12/122什么是軟件軟件的定義—軟件由三部分組成:軟件≠程序2022/什么是軟件危機(jī)軟件危機(jī)是指在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題。軟件工程(IEEE)1993年,提出軟件工程1)將系統(tǒng)化、規(guī)范化、可量化的工程原則和方法,應(yīng)用于軟件的開(kāi)發(fā)、運(yùn)行和維護(hù)。2)對(duì)1)中方法的理論研究。2022/12/123什么是軟件危機(jī)軟件工程(IEEE)2022/12/113軟件工程基本原理(開(kāi)發(fā)與維護(hù)的指導(dǎo))用分階段的生命周期計(jì)劃嚴(yán)格管理堅(jiān)持進(jìn)行階段評(píng)審實(shí)行嚴(yán)格的產(chǎn)品控制采用現(xiàn)代程序設(shè)計(jì)技術(shù)結(jié)果應(yīng)能清楚地審查開(kāi)發(fā)小組的人員應(yīng)該少而精承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性2022/12/124軟件工程基本原理(開(kāi)發(fā)與維護(hù)的指導(dǎo))2022/12/114軟件工程方法學(xué)把在軟件生命周期全過(guò)程中使用的一整套技術(shù)的集合稱(chēng)為方法學(xué)(methodology),也稱(chēng)范型(paradigm)。軟件工程方法學(xué)三個(gè)要素:方法、工具和過(guò)程。方法是完成軟件開(kāi)發(fā)各項(xiàng)任務(wù)的技術(shù),回答“如何做”;工具是為方法的運(yùn)用提供自動(dòng)或半自動(dòng)軟件支撐環(huán)境,回答“用什么做”;過(guò)程是為獲得高質(zhì)量的軟件要完成的一系列任務(wù)的框架,規(guī)定完成各項(xiàng)任務(wù)步驟,回答“如何控制、協(xié)調(diào)、保證質(zhì)量”。管理方法2022/12/125軟件工程方法學(xué)管理方法2022/12/115目前使用得最廣泛的軟件工程方法學(xué)。傳統(tǒng)方法學(xué)也稱(chēng)為生命周期方法學(xué)或結(jié)構(gòu)化范型。
當(dāng)軟件規(guī)模較大,或?qū)浖男枨笫悄:幕螂S時(shí)間變化的時(shí)候,使用結(jié)構(gòu)化范型開(kāi)發(fā)軟件往往不成功;此外,使用傳統(tǒng)方法學(xué)開(kāi)發(fā)出的軟件,維護(hù)起來(lái)通常都很困難。結(jié)構(gòu)化-靜態(tài)分析,面向?qū)ο螅瓌?dòng)態(tài)分析世界萬(wàn)物是變化的傳統(tǒng)方法學(xué)與面向?qū)ο蠓椒▽W(xué)2022/12/126目前使用得最廣泛的軟件工程方法學(xué)。世界萬(wàn)物是變化的傳統(tǒng)方法學(xué)傳統(tǒng)方法的特點(diǎn)生命周期模型軟件過(guò)程劃分為若干個(gè)階段每個(gè)階段有各自的任務(wù)階段之間有某種順序性2022/12/127傳統(tǒng)方法的特點(diǎn)生命周期模型2022/12/117把在軟件生命周期全過(guò)程中使用的一整套技術(shù)的集合稱(chēng)為方法學(xué)(methodology),也稱(chēng)范型(paradigm)。IPO圖是輸入、處理、輸出圖的簡(jiǎn)稱(chēng)10:IFtotal_valid>0類(lèi)圖顯示類(lèi)及類(lèi)之間的關(guān)系使用上述任何一種方法,都可以計(jì)算出流圖的環(huán)形復(fù)雜度為6。功能模型定義“做什么”value[k]<minimum,其中k<i一個(gè)子類(lèi)的實(shí)例是“kind-of”父類(lèi)對(duì)象是應(yīng)用中具有明顯邊界和含義的概念、抽象或事物提供分析設(shè)計(jì)過(guò)程中關(guān)于數(shù)據(jù)的描述。要求選取足夠多的測(cè)試數(shù)據(jù),使每個(gè)判定表達(dá)式中條件的各種可能組合都至少出現(xiàn)一次。描繪軟件結(jié)構(gòu)的圖形工具文檔:描述程序研制過(guò)程、方法及使用的文檔1:i=1;total_input=total_valid=0;sum=0;Multiplicity多重性EverythingisObject.可以由許多程序員分工編寫(xiě)不同的模塊TomMcCabe提出的一種白盒測(cè)試技術(shù)。Abstraction抽象面向?qū)ο蠓椒ǎ簩?duì)象作為融合數(shù)據(jù)及在數(shù)據(jù)之上的操作行為的統(tǒng)一的軟件構(gòu)件。把所有對(duì)象都劃分成類(lèi)(Class)。每個(gè)類(lèi)都定義了一組數(shù)據(jù)和一組操作。按照父類(lèi)(或稱(chēng)為基類(lèi))與子類(lèi)(或稱(chēng)為派生類(lèi))的關(guān)系,把若干個(gè)相關(guān)類(lèi)組成一個(gè)層次結(jié)構(gòu)的系統(tǒng)(也稱(chēng)為類(lèi)等級(jí))。在類(lèi)等級(jí)中,下層派生類(lèi)自動(dòng)擁有上層基類(lèi)中定義的數(shù)據(jù)和操作,稱(chēng)為繼承。對(duì)象彼此間僅能通過(guò)發(fā)送消息互相聯(lián)系-封裝性。數(shù)據(jù):靜態(tài)操作:動(dòng)態(tài)EverythingisObject.2022/12/128大連理工大軟件學(xué)院把在軟件生命周期全過(guò)程中使用的一整套技術(shù)的集合稱(chēng)為方法學(xué)(m81.3軟件生命周期
軟件生命周期由軟件定義、軟件開(kāi)發(fā)和運(yùn)行維護(hù)三個(gè)時(shí)期組成,每個(gè)時(shí)期又可進(jìn)一步劃分成若干個(gè)階段,每個(gè)階段有各自的任務(wù)。1軟件定義2軟件開(kāi)發(fā)3運(yùn)行維護(hù)2022/12/12911.3軟件生命周期軟件生命周期由軟件定義、軟件開(kāi)發(fā)和運(yùn)行9問(wèn)題定義可行性研究需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼和單元測(cè)試綜合測(cè)試軟件維護(hù)2022/12/12101問(wèn)題定義2022/12/1110110用判定樹(shù)表示計(jì)算行李費(fèi)的算法多重性能解決兩個(gè)問(wèn)題對(duì)象模型定義“對(duì)誰(shuí)做”。/*這個(gè)過(guò)程計(jì)算不超過(guò)100個(gè)在規(guī)定值域內(nèi)的有效數(shù)字的平均值;1:i=1;total_input=total_valid=0;sum=0;軟件重用能提高質(zhì)量,減少由于編制新的系統(tǒng)代碼而產(chǎn)生的成本路徑6:1-2-3-4-5-6-7-8-9-2-Math
Utilities多重性決定可以揭示建模過(guò)程中隱藏的問(wèn)題register()PROCEDUREaverage;軟件危機(jī)是指在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題。Acoursemayhave由為對(duì)象定義的一系列操作決定檢測(cè)軟件全部功能的代表性測(cè)試用例。噴泉模型是典型的面向?qū)ο笊芷谀P?。聚合是一種特殊的關(guān)聯(lián),體現(xiàn)整體和部分的關(guān)系多重性是指多個(gè)實(shí)例參與一個(gè)關(guān)聯(lián)模塊大小要適中,不過(guò)分細(xì)。supplier不需要了解client(s)PROCEDUREaverage;Abstraction抽象實(shí)際的瀑布模型軟件過(guò)程模型(生命周期模型)2022/12/12111用判定樹(shù)表示計(jì)算行李費(fèi)的算法實(shí)際的瀑布模型軟件過(guò)程模型(生命11快速原型模型2022/12/12121快速原型模型2022/12/1112112增量模型瀑布模型:力求一次性給用戶(hù)完整的系統(tǒng)。增量模型:逐步增加系統(tǒng)功能。需要開(kāi)放的架構(gòu)設(shè)計(jì)。2022/12/12131增量模型瀑布模型:力求一次性給用戶(hù)完整的系統(tǒng)。2022/1213完整的螺旋模型2022/12/12141完整的螺旋模型2022/12/1114114噴泉模型迭代是OO開(kāi)發(fā)過(guò)程的主要特性。噴泉模型是典型的面向?qū)ο笊芷谀P?。“噴泉”體現(xiàn)了面向?qū)ο筌浖_(kāi)發(fā)過(guò)程迭代和無(wú)縫的特性。為避免噴泉模型的過(guò)分無(wú)序,把一個(gè)線性過(guò)程作為總目標(biāo)。迭代
2022/12/12151噴泉模型迭代是OO開(kāi)發(fā)過(guò)程的主要特性。迭代2022/12/15噴泉模型迭代:逐步求精階段間沒(méi)有明顯的界限-面向?qū)ο蟮乃枷氡WC了各個(gè)階段開(kāi)發(fā)的一致性。迭代是OO開(kāi)發(fā)過(guò)程的主要特性。噴泉模型是典型的面向?qū)ο笊芷谀P汀!皣娙斌w現(xiàn)了面向?qū)ο筌浖_(kāi)發(fā)過(guò)程迭代和無(wú)縫的特性。2022/12/12161噴泉模型迭代:逐步求精迭代是OO開(kāi)發(fā)過(guò)程的主要特性。202216可行性與需求分析可行性與需求分析可行性研究不是解決問(wèn)題,而是確定問(wèn)題是否值得去解決較高層次的系統(tǒng)分析和設(shè)計(jì)過(guò)程需求分析發(fā)現(xiàn)、求精、建模、規(guī)格說(shuō)明和復(fù)審的過(guò)程反復(fù)求精多次細(xì)化,得出對(duì)目標(biāo)系統(tǒng)的完整、準(zhǔn)確和具體的要求。建立數(shù)據(jù)模型、功能模型和行為模型等三種模型。還要寫(xiě)出準(zhǔn)確的軟件需求規(guī)格說(shuō)明。。2022/12/12181可行性研究。2022/12/1118118系統(tǒng)流程圖系統(tǒng)流程圖概括描繪物理系統(tǒng)的傳統(tǒng)工具用圖形符號(hào),以黑盒子形式描述組成系統(tǒng)的每個(gè)部件程序、文檔、數(shù)據(jù)庫(kù)、人工過(guò)程2022/12/12191系統(tǒng)流程圖系統(tǒng)流程圖2022/12/1119119系統(tǒng)流程圖例子例子每個(gè)符號(hào)用黑盒子形式定義了組成系統(tǒng)的一個(gè)部件。沒(méi)有部件內(nèi)部的具體工作過(guò)程箭頭確定通過(guò)系統(tǒng)的邏輯路徑(信息流動(dòng)路徑)2022/12/12201系統(tǒng)流程圖例子例子每個(gè)符號(hào)用黑盒子形式定義了組成系統(tǒng)的一個(gè)部20
數(shù)據(jù)流圖數(shù)據(jù)流圖(DFD)描繪信息流和數(shù)據(jù)從輸入移動(dòng)到輸出的過(guò)程中所經(jīng)受的變換?;蚧蚧蚍?hào)含義數(shù)據(jù)的源點(diǎn)或終點(diǎn)數(shù)據(jù)流數(shù)據(jù)存儲(chǔ)加工(數(shù)據(jù)處理)2022/12/12211數(shù)據(jù)流圖數(shù)據(jù)流圖(DFD)描繪信息流和數(shù)據(jù)從輸入移動(dòng)到輸21傳統(tǒng)方法學(xué)也稱(chēng)為生命周期方法學(xué)或結(jié)構(gòu)化范型。1)將系統(tǒng)化、規(guī)范化、可量化的工程原則和方法,應(yīng)用于軟件的開(kāi)發(fā)、運(yùn)行和維護(hù)。這種操作能在每個(gè)實(shí)例中激活軟件的開(kāi)發(fā),絕不僅僅是編寫(xiě)程序簡(jiǎn)單地說(shuō),理想內(nèi)聚的模塊只做一件事情。白盒測(cè)試在測(cè)試過(guò)程的早期階段進(jìn)行,而黑盒測(cè)試主要用于測(cè)試過(guò)程的后期。簡(jiǎn)單地說(shuō),理想內(nèi)聚的模塊只做一件事情。預(yù)期結(jié)果:基于k的正確平均值和總數(shù)可以嚴(yán)格定義各個(gè)組件之間的交互較高層次的系統(tǒng)分析和設(shè)計(jì)過(guò)程活動(dòng)圖描述為滿(mǎn)足用例要求而進(jìn)行的動(dòng)作以及動(dòng)作間的關(guān)系。③數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部數(shù)據(jù)庫(kù)訪問(wèn)錯(cuò)誤;黑盒測(cè)試著重測(cè)試軟件的功能需求,讓軟件工程師設(shè)計(jì)出能充分檢查程序所有功能需求的輸入條件集。calculateTax繼承表示一個(gè)類(lèi)從其它類(lèi)中獲得結(jié)構(gòu)和行為(子類(lèi)/父類(lèi))在一個(gè)工資系統(tǒng)中有下面兩個(gè)類(lèi):PROCEDUREaverage;功能模型定義“做什么”設(shè)計(jì)單入口單出口的模塊類(lèi)的定義中包含有產(chǎn)生和刪除對(duì)象的操作屬性顯示在操作上方,操作的名字后跟有()公司能不能沒(méi)有職員?使用上述任何一種方法,都可以計(jì)算出流圖的環(huán)形復(fù)雜度為6。加工中常見(jiàn)關(guān)系的符號(hào)表示符號(hào)含義由數(shù)據(jù)A和B共同變換為數(shù)據(jù)C由數(shù)據(jù)A變換為數(shù)據(jù)B和數(shù)據(jù)C由數(shù)據(jù)A或B,或者數(shù)據(jù)A和B共同變換為數(shù)據(jù)C由數(shù)據(jù)A變換為數(shù)據(jù)B或C,或者同時(shí)變換為數(shù)據(jù)B和C由數(shù)據(jù)A或B其中之一變換為數(shù)據(jù)C由數(shù)據(jù)A變換為數(shù)據(jù)B或C其中之一T*T*T+T+TT2022/12/12221傳統(tǒng)方法學(xué)也稱(chēng)為生命周期方法學(xué)或結(jié)構(gòu)化范型。加工中常見(jiàn)關(guān)系的222022/12/122312022/12/1123123把處理事務(wù)的功能進(jìn)一步分解后的數(shù)據(jù)流圖2022/12/12241把處理事務(wù)的功能進(jìn)一步分解后的數(shù)據(jù)流圖2022/12/11224數(shù)據(jù)字典數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,即對(duì)DFD圖中包含的元素的定義的集合。數(shù)據(jù)字典的用途是供人查閱不了解的條目的解釋。提供分析設(shè)計(jì)過(guò)程中關(guān)于數(shù)據(jù)的描述。數(shù)據(jù)字典與DFD相輔相成。只有DFD和對(duì)應(yīng)的元素的精確定義放在一起,才能構(gòu)成系統(tǒng)的規(guī)格說(shuō)明。2022/12/12251數(shù)據(jù)字典數(shù)據(jù)字典是關(guān)于數(shù)據(jù)的信息的集合,即對(duì)DFD圖中包含25定義數(shù)據(jù)的方法=意思是等價(jià)于(或定義為);+意思是和(即,連接兩個(gè)分量);[]意思是或(即,從方括弧內(nèi)列出的若干個(gè)分量中選擇一個(gè)),用“|”號(hào)分開(kāi)供選擇的分量;{}意思是重復(fù)(即,重復(fù)花括弧內(nèi)的分量);()意思是可選(即,圓括弧里的分量可有可無(wú))。使用上限和下限進(jìn)一步注釋表示重復(fù)的花括弧。左邊用上角標(biāo)和下角標(biāo)分別表明重復(fù)的上限和下限;左側(cè)標(biāo)明重復(fù)的下限,在閉括弧的右側(cè)標(biāo)明上限。例如:{A}和1{A}5含義相同。152022/12/12261定義數(shù)據(jù)的方法=意思是等價(jià)于(或定義為);152022/26數(shù)據(jù)字典的實(shí)現(xiàn)CASE工具人工卡片2022/12/12271數(shù)據(jù)字典的實(shí)現(xiàn)CASE工具2022/12/1127127
實(shí)體—關(guān)系圖數(shù)據(jù)模型包含三種相互關(guān)聯(lián)的信息:數(shù)據(jù)對(duì)象、描述數(shù)據(jù)對(duì)象屬性及數(shù)據(jù)對(duì)象彼此間相互連接的關(guān)系。2022/12/12281實(shí)體—關(guān)系圖數(shù)據(jù)模型包含三種相互關(guān)聯(lián)的信息:數(shù)據(jù)對(duì)象、描述28某校教學(xué)管理ER圖2022/12/12291某校教學(xué)管理ER圖2022/12/1129129學(xué)生和課程之間的E-R模型學(xué)生和課程之間的多對(duì)多聯(lián)系E-R模型;(b)將多對(duì)多聯(lián)系轉(zhuǎn)換為一對(duì)多聯(lián)系E-R模型選課mn學(xué)號(hào)專(zhuān)業(yè)年級(jí)課名課號(hào)學(xué)時(shí)1n學(xué)號(hào)專(zhuān)業(yè)課名課號(hào)學(xué)時(shí)學(xué)號(hào)課號(hào)n1姓名課程學(xué)生姓名課程學(xué)分學(xué)生年級(jí)選課學(xué)分(a)(b)2022/12/12301學(xué)生和課程之間的E-R模型選課mn學(xué)號(hào)專(zhuān)業(yè)年級(jí)課30
其他圖形工具Warnier圖2022/12/12311其他圖形工具Warnier圖2022/12/1131131其他圖形工具(3)IPO圖2022/12/12321其他圖形工具(3)IPO圖2022/12/1132132其他圖形工具(2)IPO圖IPO圖是輸入、處理、輸出圖的簡(jiǎn)稱(chēng)左邊框中列出有關(guān)的輸入中間框中列出主要的處理右邊框中列出產(chǎn)生的輸出處理的順序暗示了執(zhí)行的順序箭頭指出數(shù)據(jù)通信的情況2022/12/12331其他圖形工具(2)IPO圖2022/12/1133133什么是類(lèi)(Class)Reusable-ComponentRepository這類(lèi)圖提供關(guān)于系統(tǒng)實(shí)現(xiàn)方面的信息,構(gòu)件圖(componentdiagram)和配置圖(deploymentdiagram)屬于這類(lèi)圖。中間框中列出主要的處理client使用supplier提供的服務(wù)IncreaseSalary軟件過(guò)程劃分為若干個(gè)階段PROCEDUREaverage;ExternalDriveMath
Utilities例如,在公司和職員的關(guān)聯(lián)中多重性決定可以揭示建模過(guò)程中隱藏的問(wèn)題通常,狀態(tài)圖是對(duì)類(lèi)圖的補(bǔ)充。迭代是OO開(kāi)發(fā)過(guò)程的主要特性。公司能不能沒(méi)有職員?黑盒測(cè)試著重測(cè)試軟件的功能需求,讓軟件工程師設(shè)計(jì)出能充分檢查程序所有功能需求的輸入條件集?!皣娙斌w現(xiàn)了面向?qū)ο筌浖_(kāi)發(fā)過(guò)程迭代和無(wú)縫的特性。這類(lèi)圖描述系統(tǒng)的動(dòng)態(tài)行為和組成系統(tǒng)的對(duì)象間的交互關(guān)系,包括狀態(tài)圖(statediagram)和活動(dòng)圖(activitydiagram)兩種圖形。對(duì)象是應(yīng)用中具有明顯邊界和含義的概念、抽象或事物檢測(cè)軟件全部功能的代表性測(cè)試用例。Acoursemaybeapre-requisite在分析、設(shè)計(jì)和實(shí)現(xiàn)的整個(gè)過(guò)程中只使用一個(gè)概念對(duì)象的開(kāi)發(fā)方法總體設(shè)計(jì)什么是類(lèi)(Class)總體設(shè)計(jì)總體設(shè)計(jì)概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。概要設(shè)計(jì)主要任務(wù)是通過(guò)仔細(xì)分析軟件規(guī)格說(shuō)明,適當(dāng)?shù)貙?duì)軟件進(jìn)行功能分解,從而把軟件劃分為模塊,并且設(shè)計(jì)出完成預(yù)定功能的模塊結(jié)構(gòu)。詳細(xì)設(shè)計(jì)階段詳細(xì)地設(shè)計(jì)每個(gè)模塊,確定完成每個(gè)模塊功能所需要的算法和數(shù)據(jù)結(jié)構(gòu)。2022/12/12351總體設(shè)計(jì)概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。2022/12/1135135模塊化:就是把程序劃分成獨(dú)立命名且可獨(dú)立訪問(wèn)的模塊,每個(gè)模塊完成一個(gè)子功能,把這些模塊集成起來(lái)構(gòu)成一個(gè)整體,可以完成指定的功能滿(mǎn)足用戶(hù)的需求。可以由許多程序員分工編寫(xiě)不同的模塊可以使軟件結(jié)構(gòu)清晰,便于擴(kuò)展使軟件容易測(cè)試和調(diào)試,因而有助于提高軟件的可靠性。模塊大小要適中,不過(guò)分細(xì)。2022/12/12361模塊化:就是把程序劃分成獨(dú)立命名且可獨(dú)立訪問(wèn)的模塊,每個(gè)模塊36模塊獨(dú)立模塊的獨(dú)立程度可以由兩個(gè)定性標(biāo)準(zhǔn)來(lái)度量,分別稱(chēng)為內(nèi)聚和耦合。耦合:衡量不同模塊彼此間互相依賴(lài)(連接)緊密程度;內(nèi)聚:衡量一個(gè)模塊內(nèi)部各個(gè)元素彼此結(jié)合的緊密程度。2022/12/12371模塊獨(dú)立模塊的獨(dú)立程度可以由兩個(gè)定性標(biāo)準(zhǔn)來(lái)度量,分別稱(chēng)為內(nèi)聚37耦合是對(duì)一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量。盡可能松散耦合2022/12/12381耦合是對(duì)一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量。202238數(shù)據(jù)耦合:特征耦合:控制耦合:外部耦合:公共耦合:內(nèi)容耦合:弱強(qiáng)盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共環(huán)境耦合的范圍,完全不用內(nèi)容耦合。2022/12/12391數(shù)據(jù)耦合:弱盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共環(huán)境耦合39內(nèi)聚:標(biāo)志一個(gè)模塊內(nèi)各個(gè)元素彼此結(jié)合的緊密程度,它是信息隱蔽和局部化概念的自然擴(kuò)展。簡(jiǎn)單地說(shuō),理想內(nèi)聚的模塊只做一件事情。2022/12/12401內(nèi)聚:標(biāo)志一個(gè)模塊內(nèi)各個(gè)元素彼此結(jié)合的緊密程度,它是信息隱蔽40右邊框中列出產(chǎn)生的輸出軟件過(guò)程劃分為若干個(gè)階段GroundVehicle預(yù)期結(jié)果:average=-999,其他都保持初始值7: THENincrementtotal_validby1;EquipmentandCustomerspecificCode每個(gè)符號(hào)用黑盒子形式定義了組成系統(tǒng)的一個(gè)部件。判定覆蓋不一定包含條件覆蓋,條件覆蓋也不一定包含判定覆蓋,判定/條件覆蓋能同時(shí)滿(mǎn)足這兩種覆蓋標(biāo)準(zhǔn)。對(duì)象包含有數(shù)據(jù)及處理數(shù)據(jù)的功能函數(shù)對(duì)象=數(shù)據(jù)+功能為避免噴泉模型的過(guò)分無(wú)序,把一個(gè)線性過(guò)程作為總目標(biāo)。發(fā)現(xiàn)、求精、建模、規(guī)格說(shuō)明和復(fù)審的過(guò)程每個(gè)子類(lèi)都可以分享繼承的關(guān)系學(xué)生和課程之間的E-R模型基于對(duì)象概念的軟件開(kāi)發(fā)方法“噴泉”體現(xiàn)了面向?qū)ο筌浖_(kāi)發(fā)過(guò)程迭代和無(wú)縫的特性。Abstraction抽象如果需要強(qiáng)調(diào)上下文相關(guān),最好選擇協(xié)作圖。預(yù)期結(jié)果:其于k的正確平均值和總數(shù)黑盒測(cè)試故意不考慮程序的控制結(jié)構(gòu),而把注意力集中于信息域。12:ELSEaverage=-999;實(shí)際使用時(shí),并不需要為每個(gè)類(lèi)都畫(huà)狀態(tài)圖,僅需要為那些有多個(gè)狀態(tài),且其行為在不同狀態(tài)有所不同的類(lèi)畫(huà)狀態(tài)圖。功能內(nèi)聚:信息內(nèi)聚:通信內(nèi)聚:過(guò)程內(nèi)聚:時(shí)間內(nèi)聚:邏輯內(nèi)聚:巧合內(nèi)聚:強(qiáng)弱設(shè)計(jì)時(shí)應(yīng)該力求做到高內(nèi)聚。2022/12/12411右邊框中列出產(chǎn)生的輸出功能內(nèi)聚:強(qiáng)設(shè)計(jì)時(shí)應(yīng)該力求做到高內(nèi)聚。41改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性模塊規(guī)模應(yīng)該適中深度、寬度、扇出和扇入都應(yīng)適當(dāng)模塊的作用域應(yīng)該在控制域之內(nèi)力爭(zhēng)降低模塊接口的復(fù)雜程度設(shè)計(jì)單入口單出口的模塊模塊功能應(yīng)該可以預(yù)測(cè)2022/12/12421改進(jìn)軟件結(jié)構(gòu)提高模塊獨(dú)立性2022/12/1142142描繪軟件結(jié)構(gòu)的圖形工具層次圖和HIPO圖結(jié)構(gòu)圖2022/12/12431描繪軟件結(jié)構(gòu)的圖形工具層次圖和HIPO圖2022/12/1143正文加工系統(tǒng)的層次圖2022/12/12441正文加工系統(tǒng)的層次圖2022/12/1144144正文加工系統(tǒng)的H圖2022/12/12451正文加工系統(tǒng)的H圖2022/12/1145145結(jié)構(gòu)圖的例子—產(chǎn)生最佳解的一般結(jié)構(gòu)2022/12/12461結(jié)構(gòu)圖的例子—產(chǎn)生最佳解的一般結(jié)構(gòu)2022/12/1146146軟件結(jié)構(gòu)設(shè)計(jì)方法面向數(shù)據(jù)流的設(shè)計(jì)方法的目標(biāo)是給出設(shè)計(jì)軟件結(jié)構(gòu)的一個(gè)系統(tǒng)化的途徑。利用數(shù)據(jù)流圖中的“映射“,把數(shù)據(jù)流圖變換成軟件結(jié)構(gòu)。2022/12/12471軟件結(jié)構(gòu)設(shè)計(jì)方法面向數(shù)據(jù)流的設(shè)計(jì)方法的目標(biāo)是給出設(shè)計(jì)軟件結(jié)構(gòu)47變換流和事務(wù)流2022/12/12481變換流和事務(wù)流2022/12/1148148設(shè)計(jì)步驟復(fù)查基本系統(tǒng)模型。復(fù)查并精化數(shù)據(jù)流圖。確定數(shù)據(jù)流圖具有變換特性還是事務(wù)特性。確定輸入流和輸出流的邊界,從而孤立出變換中心。完成“第一級(jí)分解”。完成“第二級(jí)分解”。使用設(shè)計(jì)度量和啟發(fā)規(guī)則對(duì)第一次分割得到的軟件結(jié)構(gòu)進(jìn)一步精化。2022/12/12491設(shè)計(jì)步驟2022/12/1149149數(shù)字儀表板系統(tǒng)的數(shù)據(jù)流圖精化數(shù)據(jù)流圖數(shù)據(jù)流圖具有變換特性還是事務(wù)特性2022/12/12501數(shù)字儀表板系統(tǒng)的數(shù)據(jù)流圖精化數(shù)據(jù)流圖2022/12/115050具有邊界的數(shù)據(jù)流圖確定輸入流和輸出流的邊界,從而孤立出變換中心2022/12/12511具有邊界的數(shù)據(jù)流圖確定輸入流和輸出流的邊界,從而孤立出變換中51第一級(jí)分解的方法2022/12/12521第一級(jí)分解的方法2022/12/1152152屬性顯示在操作上方,操作的名字后跟有()中間框中列出主要的處理用例是對(duì)系統(tǒng)提供的功能(即系統(tǒng)的具體用法)的描述。類(lèi)圖不僅定義系統(tǒng)中的類(lèi),表示類(lèi)與類(lèi)之間的關(guān)系(例如,關(guān)聯(lián)、依賴(lài)、泛化和細(xì)化等關(guān)系),也表示類(lèi)的內(nèi)部結(jié)構(gòu)(類(lèi)的屬性和操作)。程序:在運(yùn)行時(shí),能提供所希望的功能和性能的指令集使用上述任何一種方法,都可以計(jì)算出流圖的環(huán)形復(fù)雜度為6。對(duì)于所描述的求平均值過(guò)程來(lái)說(shuō),由于環(huán)形復(fù)雜度為6,因此共有6條獨(dú)立路徑。數(shù)據(jù)字典與DFD相輔相成。還要寫(xiě)出準(zhǔn)確的軟件需求規(guī)格說(shuō)明。Application聚合是一種特殊的關(guān)聯(lián),體現(xiàn)整體和部分的關(guān)系單繼承:子類(lèi)只從一個(gè)父類(lèi)繼承數(shù)據(jù)流圖(DFD)描繪信息流和數(shù)據(jù)從輸入移動(dòng)到輸出的過(guò)程中所經(jīng)受的變換。傳統(tǒng)方法學(xué)也稱(chēng)為生命周期方法學(xué)或結(jié)構(gòu)化范型。一個(gè)對(duì)象的狀態(tài)是它反映于現(xiàn)實(shí)世界的一系列屬性:Multiplicity多重性所有的系統(tǒng)都包含了大量的類(lèi)和對(duì)象formanyothercourses屬性在繼承結(jié)構(gòu)的最高一層定義根據(jù)過(guò)程設(shè)計(jì)結(jié)果畫(huà)出相應(yīng)的流圖共同的行為通過(guò)操作表現(xiàn)出來(lái)(i.檢測(cè)軟件全部功能的代表性測(cè)試用例。數(shù)字儀表板系統(tǒng)的第一級(jí)分解完成“第一級(jí)分解”2022/12/12531屬性顯示在操作上方,操作的名字后跟有()數(shù)字儀表板系統(tǒng)的第一53第二級(jí)分解的方法2022/12/12541第二級(jí)分解的方法2022/12/1154154未經(jīng)精化的輸入結(jié)構(gòu)完成“第二級(jí)分解”2022/12/12551未經(jīng)精化的輸入結(jié)構(gòu)完成“第二級(jí)分解”2022/12/115555精化后的數(shù)字儀表板系統(tǒng)的軟件結(jié)構(gòu)軟件結(jié)構(gòu)進(jìn)一步精化2022/12/12561精化后的數(shù)字儀表板系統(tǒng)的軟件結(jié)構(gòu)軟件結(jié)構(gòu)進(jìn)一步精化2022/56事務(wù)分析的映射方法2022/12/12571事務(wù)分析的映射方法2022/12/1157157詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)階段主要完成界面和程序過(guò)程設(shè)計(jì).過(guò)程設(shè)計(jì)應(yīng)該在數(shù)據(jù)設(shè)計(jì)、體系結(jié)構(gòu)設(shè)計(jì)和接口設(shè)計(jì)完成之后進(jìn)行.程序員將根據(jù)過(guò)程設(shè)計(jì)寫(xiě)出實(shí)際的程序代碼。2022/12/12591詳細(xì)設(shè)計(jì)階段主要完成界面和程序過(guò)程設(shè)計(jì).2022/12/1159結(jié)構(gòu)程序設(shè)計(jì)的經(jīng)典定義如下所述:如果一個(gè)程序的代碼塊僅僅通過(guò)順序、選擇和循環(huán)這三種控制結(jié)構(gòu)進(jìn)行連接,并且每個(gè)代碼塊只有一個(gè)入口和一個(gè)出口,則稱(chēng)這個(gè)程序是結(jié)構(gòu)化的。2022/12/12601結(jié)構(gòu)程序設(shè)計(jì)的經(jīng)典定義如下所述:2022/12/1160160過(guò)程設(shè)計(jì)的工具程序流程圖2022/12/12611過(guò)程設(shè)計(jì)的工具程序流程圖2022/12/1161161“噴泉”體現(xiàn)了面向?qū)ο筌浖_(kāi)發(fā)過(guò)程迭代和無(wú)縫的特性。單繼承:子類(lèi)只從一個(gè)父類(lèi)繼承類(lèi)圖不僅定義系統(tǒng)中的類(lèi),表示類(lèi)與類(lèi)之間的關(guān)系(例如,關(guān)聯(lián)、依賴(lài)、泛化和細(xì)化等關(guān)系),也表示類(lèi)的內(nèi)部結(jié)構(gòu)(類(lèi)的屬性和操作)。ExternalDrive軟件的定義—軟件由三部分組成:噴泉模型是典型的面向?qū)ο笊芷谀P?。Generalization普遍化多重性決定可以揭示建模過(guò)程中隱藏的問(wèn)題每個(gè)職員只有一個(gè)從屬公司類(lèi)圖顯示類(lèi)及類(lèi)之間的關(guān)系在類(lèi)的圖標(biāo)中描述屬性和操作耦合是對(duì)一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間互連程度的度量。對(duì)于所描述的求平均值過(guò)程來(lái)說(shuō),由于環(huán)形復(fù)雜度為6,因此共有6條獨(dú)立路徑。EverythingisObject.穩(wěn)定:數(shù)據(jù)和功能都打包在一起,從而改善軟件的再重用性incrementiby1;簡(jiǎn)單地說(shuō),理想內(nèi)聚的模塊只做一件事情。andacarhasanowner預(yù)期結(jié)果:其于k的正確平均值和總數(shù)10:IFtotal_valid>0由為對(duì)象定義的一系列操作決定行為圖(behaviordiagram)盒圖(N-S圖)2022/12/12621“噴泉”體現(xiàn)了面向?qū)ο筌浖_(kāi)發(fā)過(guò)程迭代和無(wú)縫的特性。盒圖(62PAD圖2022/12/12631PAD圖2022/12/1163163判定表2022/12/12641判定表2022/12/1164164用判定樹(shù)表示計(jì)算行李費(fèi)的算法判定樹(shù)2022/12/12651用判定樹(shù)表示計(jì)算行李費(fèi)的算法判定樹(shù)2022/12/1165165偽碼2022/12/12661偽碼2022/12/1166166測(cè)試測(cè)試2022/12/126812022/12/1168168回歸測(cè)試(已執(zhí)行過(guò)的測(cè)試用例的子集)包括下述三種不同的測(cè)試用例。檢測(cè)軟件全部功能的代表性測(cè)試用例。專(zhuān)門(mén)針對(duì)可能受修改影響的軟件功能的附加測(cè)試。針對(duì)被修改過(guò)的軟件成分的測(cè)試。2022/12/12691回歸測(cè)試(已執(zhí)行過(guò)的測(cè)試用例的子集)包括下述三種不同的測(cè)試69白盒測(cè)試技術(shù)邏輯覆蓋是設(shè)計(jì)白盒測(cè)試方案的技術(shù)。設(shè)計(jì)測(cè)試方案是測(cè)試階段的關(guān)鍵技術(shù)問(wèn)題。2022/12/12701白盒測(cè)試技術(shù)邏輯覆蓋是設(shè)計(jì)白盒測(cè)試方案的技術(shù)。設(shè)計(jì)測(cè)試方案是70語(yǔ)句覆蓋為暴露程序的錯(cuò)誤,至少每個(gè)語(yǔ)句應(yīng)該執(zhí)行一次。含義是,選擇足夠多的測(cè)試數(shù)據(jù),使被測(cè)程序中每個(gè)語(yǔ)句至少執(zhí)行一次。2022/12/12711語(yǔ)句覆蓋2022/12/1171171路徑2:1-2-10-12-13VehicleandAirVehicleareInheritance繼承Abstraction抽象在類(lèi)的圖標(biāo)中描述屬性和操作一個(gè)類(lèi)通過(guò)一系列操作來(lái)定義行為GroundVehicle檢測(cè)軟件全部功能的代表性測(cè)試用例。盡量使用數(shù)據(jù)耦合,少用控制耦合,限制公共環(huán)境耦合的范圍,完全不用內(nèi)容耦合。⑤初始化和終止錯(cuò)誤?!皣娙斌w現(xiàn)了面向?qū)ο筌浖_(kāi)發(fā)過(guò)程迭代和無(wú)縫的特性。value[k]<minimum,其中k<iAssociation關(guān)聯(lián)H/Wspecificcode,O/Sspecificcodegeneral-purposecode這類(lèi)圖描述系統(tǒng)的靜態(tài)結(jié)構(gòu),屬于這類(lèi)圖的有類(lèi)圖(classdiagram)和對(duì)象圖(objectdiagram)。Attribute屬性例如,在公司和職員的關(guān)聯(lián)中Text
Editor不僅每個(gè)語(yǔ)句必須至少執(zhí)行一次,軟件的定義—軟件由三部分組成:PROCEDUREaverage;所有的系統(tǒng)都包含了大量的類(lèi)和對(duì)象判定覆蓋又叫分支覆蓋不僅每個(gè)語(yǔ)句必須至少執(zhí)行一次,而且每個(gè)判定的每種可能的結(jié)果都應(yīng)該至少執(zhí)行一次,也就是每個(gè)判定的每個(gè)分支都至少執(zhí)行一次。條件覆蓋不僅每個(gè)語(yǔ)句至少執(zhí)行一次,而且判定表達(dá)式中每個(gè)條件都取到各種可能的結(jié)果。2022/12/12721路徑2:1-2-10-12-13判定覆蓋2022/12/72判定/條件覆蓋判定覆蓋不一定包含條件覆蓋,條件覆蓋也不一定包含判定覆蓋,判定/條件覆蓋能同時(shí)滿(mǎn)足這兩種覆蓋標(biāo)準(zhǔn)。選取足夠多的測(cè)試數(shù)據(jù),使得判定表達(dá)式中的每個(gè)條件都取到各種可能的值,而且每個(gè)判定表達(dá)式也都取到各種可能的結(jié)果。條件組合覆蓋要求選取足夠多的測(cè)試數(shù)據(jù),使每個(gè)判定表達(dá)式中條件的各種可能組合都至少出現(xiàn)一次。2022/12/12731判定/條件覆蓋2022/12/1173173路徑測(cè)試TomMcCabe提出的一種白盒測(cè)試技術(shù)。首先計(jì)算過(guò)程設(shè)計(jì)結(jié)果的邏輯復(fù)雜度,并以該復(fù)雜度為指南定義執(zhí)行路徑的基本集合,從該基本集合導(dǎo)出的測(cè)試用例可以保證程序中每條語(yǔ)句至少執(zhí)行一次,而且每個(gè)條件在執(zhí)行時(shí)都將分別取true(真)和false(假)值。2022/12/12741路徑測(cè)試2022/12/1174174求平均值過(guò)程的流圖使用基本路徑測(cè)試技術(shù)設(shè)計(jì)測(cè)試用例步驟如下。根據(jù)過(guò)程設(shè)計(jì)結(jié)果畫(huà)出相應(yīng)的流圖2022/12/12751求平均值過(guò)程的流圖使用基本路徑測(cè)試技術(shù)設(shè)計(jì)測(cè)試用例步驟如下。75PROCEDUREaverage;/*這個(gè)過(guò)程計(jì)算不超過(guò)100個(gè)在規(guī)定值域內(nèi)的有效數(shù)字的平均值;同時(shí)計(jì)算有效數(shù)字的總和及個(gè)數(shù)。*/INTERFACERETURNSaverage,total_input,total_valid;INTERFACEACCEPTSvalue,minimum,maximum;TYPEvalue[1...100]ISSCALARARRAY;TYPEaverage,total_input,total_valid,minimum,maximum,sumISSCALAR;2022/12/12761PROCEDUREaverage;2022/12/11776TYPEiISINTEGER;1:i=1;total_input=total_valid=0;sum=0;2:DOWHILEvalue[i]<>-9993: ANDtotal_input<1004: incrementtotal_inputby1;5: IFvalue[i]>=minimum6: ANDvalue[i]<=maximum7: THENincrementtotal_validby1; sum=sum+value[i];8: ENDIF incrementiby1;9:ENDDO2022/12/12771TYPEiISINTEGER;2022/12/117710:IFtotal_valid>011:THENaverage=sum/total_valid;12:ELSEaverage=-999;13:ENDIFENDaverage2022/12/127812022/12/1178178計(jì)算流圖的環(huán)形復(fù)雜度環(huán)形復(fù)雜度定量度量程序的邏輯復(fù)雜性。三種方法來(lái)計(jì)算環(huán)形復(fù)雜度。流圖中的區(qū)域數(shù)等于環(huán)形復(fù)雜度。流圖G的環(huán)形復(fù)雜度V(G)=E-N+2,其中E是流圖中邊的條數(shù),N是流圖中節(jié)點(diǎn)數(shù)。流圖G的環(huán)形復(fù)雜度V(G)=P+1,其中P是流圖中判定節(jié)點(diǎn)的數(shù)目。使用上述任何一種方法,都可以計(jì)算出流圖的環(huán)形復(fù)雜度為6。2022/12/12791計(jì)算流圖的環(huán)形復(fù)雜度2022/12/1179179確定線性獨(dú)立路徑的基本集合對(duì)于所描述的求平均值過(guò)程來(lái)說(shuō),由于環(huán)形復(fù)雜度為6,因此共有6條獨(dú)立路徑。例如,下面列出了6條獨(dú)立路徑:路徑1:1-2-10-11-13路徑2:1-2-10-12-13路徑3:1-2-3-10-11-13路徑4:1-2-3-4-5-8-9-2-路徑5:1-2-3-4-5-6-8-9-2-路徑6:1-2-3-4-5-6-7-8-9-2-2022/12/12801確定線性獨(dú)立路徑的基本集合2022/12/1180180設(shè)計(jì)可強(qiáng)制執(zhí)行基本集合中每條路徑測(cè)試用例選取數(shù)據(jù)使得在測(cè)試每條路徑時(shí)都適當(dāng)設(shè)置好了各個(gè)判定節(jié)點(diǎn)的條件。路徑1的測(cè)試用例:
value[k]=有效輸入值,其中k<i(i的定義在下) value[i]=-999,其中2≤i≤100
預(yù)期結(jié)果:基于k的正確平均值和總數(shù) 注意,路徑1無(wú)法獨(dú)立測(cè)試,必須作為路徑4、5和6的一部分來(lái)測(cè)試。路徑2的測(cè)試用例:
value[1]=-999
預(yù)期結(jié)果:average=-999,其他都保持初始值2022/12/12811設(shè)計(jì)可強(qiáng)制執(zhí)行基本集合中每條路徑測(cè)試用例2022/12/1181路徑4的測(cè)試用例:
value[i]=有效輸入值,其中i<100 value[k]<minimum,其中k<i
預(yù)期結(jié)果:其于k的正確平均值和總數(shù)路徑5的測(cè)試用例:
value[i]=有效輸入值,其中i<100 value[k]>maximum,其中k<i
預(yù)期結(jié)果:其于k的正確平均值和總數(shù)路徑6的測(cè)試用例:
value[i]=有效輸入值,其中i<100
預(yù)期結(jié)果:正確的平均值和總數(shù)2022/12/12821路徑4的測(cè)試用例:2022/12/1182182黑盒測(cè)試技術(shù)黑盒測(cè)試著重測(cè)試軟件的功能需求,讓軟件工程師設(shè)計(jì)出能充分檢查程序所有功能需求的輸入條件集。黑盒測(cè)試并不能取代白盒測(cè)試技術(shù),它是與白盒測(cè)試互補(bǔ)的方法,它很可能發(fā)現(xiàn)白盒測(cè)試不易發(fā)現(xiàn)的其他不同類(lèi)型的錯(cuò)誤。2022/12/12831黑盒測(cè)試技術(shù)黑盒測(cè)試著重測(cè)試軟件的功能需求,讓軟件工程師設(shè)計(jì)83計(jì)算流圖的環(huán)形復(fù)雜度關(guān)聯(lián)是強(qiáng)制的(不包含零個(gè))或隨意的(包含零個(gè))?流圖中的區(qū)域數(shù)等于環(huán)形復(fù)雜度。用判定樹(shù)表示計(jì)算行李費(fèi)的算法所有子類(lèi)的實(shí)例能夠繼承這些操作而且每個(gè)判定的每種可能的結(jié)果都應(yīng)該至少執(zhí)行一次,也就是每個(gè)判定的每個(gè)分支都至少執(zhí)行一次。給出一個(gè)Person的實(shí)例,我們能夠知道他屬于哪家公司GroundVehiclecalculateTax()程序:在運(yùn)行時(shí),能提供所希望的功能和性能的指令集構(gòu)件圖描述代碼構(gòu)件的物理結(jié)構(gòu)及各個(gè)構(gòu)件之間的依賴(lài)關(guān)系。班機(jī)747on11/11多重性決定可以揭示建模過(guò)程中隱藏的問(wèn)題更加準(zhǔn)確地描述公共數(shù)據(jù)和過(guò)程Association關(guān)聯(lián)一個(gè)實(shí)例可以連接的其它實(shí)例的最大數(shù)目?幾種重要的關(guān)系類(lèi)型:中間框中列出主要的處理發(fā)現(xiàn)、求精、建模、規(guī)格說(shuō)明和復(fù)審的過(guò)程例如:{A}和1{A}5含義相同。每個(gè)符號(hào)用黑盒子形式定義了組成系統(tǒng)的一個(gè)部件。要求選取足夠多的測(cè)試數(shù)據(jù),使每個(gè)判定表達(dá)式中條件的各種可能組合都至少出現(xiàn)一次。黑盒測(cè)試力圖發(fā)現(xiàn)下述類(lèi)型的錯(cuò)誤:①功能不正確或遺漏了功能;②界面錯(cuò)誤;③數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部數(shù)據(jù)庫(kù)訪問(wèn)錯(cuò)誤;④性能錯(cuò)誤;⑤初始化和終止錯(cuò)誤。白盒測(cè)試在測(cè)試過(guò)程的早期階段進(jìn)行,而黑盒測(cè)試主要用于測(cè)試過(guò)程的后期。黑盒測(cè)試故意不考慮程序的控制結(jié)構(gòu),而把注意力集中于信息域。2022/12/12841計(jì)算流圖的環(huán)形復(fù)雜度黑盒測(cè)試力圖發(fā)現(xiàn)下述類(lèi)型的錯(cuò)誤:①功84等價(jià)劃分:確定輸入數(shù)據(jù)的有效等價(jià)類(lèi)和無(wú)效等價(jià)類(lèi)。邊界值分析錯(cuò)誤推測(cè)2022/12/12851等價(jià)劃分:確定輸入數(shù)據(jù)的有效等價(jià)類(lèi)和無(wú)效等價(jià)類(lèi)。2022/85面向?qū)ο蠡A(chǔ)面向?qū)ο蠡A(chǔ)什么是對(duì)象技術(shù)
基于對(duì)象概念的軟件開(kāi)發(fā)方法對(duì)象包含有數(shù)據(jù)及處理數(shù)據(jù)的功能函數(shù)在分析、設(shè)計(jì)和實(shí)現(xiàn)的整個(gè)過(guò)程中只使用一個(gè)概念對(duì)象的開(kāi)發(fā)方法能夠解決軟件危機(jī)中大多數(shù)問(wèn)題的方法對(duì)象=數(shù)據(jù)+功能2022/12/12871什么是對(duì)象技術(shù)基于對(duì)象概念的軟件開(kāi)發(fā)方法2022/12/187對(duì)象技術(shù)的優(yōu)勢(shì)穩(wěn)定:較小的需求變化不會(huì)導(dǎo)致系統(tǒng)結(jié)構(gòu)大的改變舉例:某公司的銷(xiāo)售處理系統(tǒng)定單合同出費(fèi)2022/12/12881對(duì)象技術(shù)的優(yōu)勢(shì)穩(wěn)定:較小的需求變化不會(huì)導(dǎo)致系統(tǒng)結(jié)構(gòu)大的改88對(duì)象技術(shù)的優(yōu)勢(shì)
穩(wěn)定:數(shù)據(jù)和功能都打包在一起,從而改善軟件的再重用性軟件重用能提高質(zhì)量,減少由于編制新的系統(tǒng)代碼而產(chǎn)生的成本File
MgrMacro
EditorMath
UtilitiesText
EditorPrint
UtilitiesFormat
EditorMenusString
UtilitiesSpreadsheetWordProcessorReusable-ComponentRepository2022/12/12891對(duì)象技術(shù)的優(yōu)勢(shì)穩(wěn)定:數(shù)據(jù)和功能都打包在一起,從而改善軟件的89對(duì)象技術(shù)的優(yōu)勢(shì)面向?qū)ο蟮哪P透淤N切地反映了現(xiàn)實(shí)世界更加準(zhǔn)確地描述公共數(shù)據(jù)和過(guò)程易于理解,尤其對(duì)于使用者現(xiàn)實(shí)世界LaserPrinterExternalDriveComputer對(duì)象圖2022/12/12901對(duì)象技術(shù)的優(yōu)勢(shì)面向?qū)ο蟮哪P透淤N切地反映了現(xiàn)實(shí)世界現(xiàn)實(shí)世界90對(duì)象技術(shù)的優(yōu)勢(shì)面向?qū)ο蟮姆椒ㄖС执笠?guī)模開(kāi)發(fā)可以嚴(yán)格定義各個(gè)組件之間的交互減少內(nèi)部的依賴(lài)關(guān)系減少集成的問(wèn)題支持并行開(kāi)發(fā)2022/12/12911對(duì)象技術(shù)的優(yōu)勢(shì)面向?qū)ο蟮姆椒ㄖС执笠?guī)模開(kāi)發(fā)2022/12/91對(duì)象技術(shù)的優(yōu)勢(shì)幫助開(kāi)發(fā)多層結(jié)構(gòu)
EquipmentandCustomerspecificCodeProcessesandotherapplicationcodeMajorabstractions,classes,etc.MechanismsH/Wspecificcode,O/Sspecificcodegeneral-purposecode12345ApplicationSpecificApplicationIndependentLessReuseMoreReuse2022/12/12921對(duì)象技術(shù)的優(yōu)勢(shì)幫助開(kāi)發(fā)多層結(jié)構(gòu)Equipmentand92面向?qū)ο蟾拍頞bject對(duì)象Class類(lèi)Instance實(shí)例State狀態(tài)Behavior行為Attribute屬性O(shè)peration操作(Method方法)Inheritance繼承Subclasses子類(lèi)Superclasses父類(lèi)Generalization普遍化Polymorphism多態(tài)2022/12/12931面向?qū)ο蟾拍頞bject對(duì)象2022/12/1193193面向?qū)ο蟾拍預(yù)bstraction抽象Encapsulation封裝Association關(guān)聯(lián)Role角色Multiplicity多重性Aggregation聚合Dependencyassociation依賴(lài)Package包UseCase用例Scenario腳本Actor2022/12/12941面向?qū)ο蟾拍預(yù)bstraction抽象2022/12/194什么是對(duì)象一個(gè)對(duì)象代表了一個(gè)現(xiàn)實(shí)的或虛構(gòu)的實(shí)體自然實(shí)體概念實(shí)體軟件實(shí)體化學(xué)過(guò)程連接顯示2022/12/12951什么是對(duì)象一個(gè)對(duì)象代表了一個(gè)現(xiàn)實(shí)的或虛構(gòu)的實(shí)體化學(xué)過(guò)程連接顯95對(duì)象的屬性對(duì)象是應(yīng)用中具有明顯邊界和含義的概念、抽象或事物一個(gè)對(duì)象有三個(gè)重要屬性:狀態(tài)行為標(biāo)識(shí)術(shù)語(yǔ)“實(shí)例”是“對(duì)象”的同義詞2022/12/12961對(duì)象的屬性對(duì)象是應(yīng)用中具有明顯邊界和含義的概念、抽象或事物96對(duì)象的狀態(tài)一個(gè)對(duì)象的狀態(tài)是它反映于現(xiàn)實(shí)世界的一系列屬性:參數(shù)的數(shù)值(也就是,與對(duì)象有關(guān)系的數(shù)據(jù))它與其它對(duì)象的關(guān)系任一時(shí)刻的歷史狀態(tài)可能的狀態(tài): 停泊運(yùn)營(yíng) 著陸終止班機(jī)7472022/12/12971對(duì)象的狀態(tài)一個(gè)對(duì)象的狀態(tài)是它反映于現(xiàn)實(shí)世界的一系列屬性:可97對(duì)象的行為定義當(dāng)其它對(duì)象發(fā)出請(qǐng)求時(shí),該對(duì)象如何反應(yīng)由為對(duì)象定義的一系列操作決定班機(jī)747核對(duì)出發(fā)時(shí)間(返回9:27)機(jī)票代理2022/12/12981對(duì)象的行為定義當(dāng)其它對(duì)象發(fā)出請(qǐng)求時(shí),該對(duì)象如何反應(yīng)班機(jī)7498對(duì)象的標(biāo)識(shí)
每一個(gè)對(duì)象都有一個(gè)唯一的標(biāo)識(shí),即使其狀態(tài)有可能與其它對(duì)象一樣班機(jī)747on11/10班機(jī)747on11/11班機(jī)747on11/122022/12/12991對(duì)象的標(biāo)識(shí)每一個(gè)對(duì)象都有一個(gè)唯一的標(biāo)識(shí),即使其狀態(tài)有可能99什么是類(lèi)(Class)
類(lèi)是一組具有相同結(jié)構(gòu)和行為的對(duì)象的集合共同的結(jié)構(gòu)通過(guò)屬性表現(xiàn)出來(lái)(i.e.數(shù)據(jù))共同的行為通過(guò)操作表現(xiàn)出來(lái)(i.e.功能)班機(jī)747結(jié)構(gòu)班機(jī)號(hào)日期分配的班機(jī)起點(diǎn)終點(diǎn)狀態(tài)行為裝載設(shè)備起飛延遲取消終止2022/12/121001什么是類(lèi)(Class)類(lèi)是一組具有相同結(jié)構(gòu)和行為的對(duì)象的集100類(lèi)的示例ClassEmployeeStructureNameAddressPositionSalaryStartDateEndDateBehaviorHireFirePromoteIncreaseSalaryRetire2022/12/121011類(lèi)的示例ClassStructureBehavior2022101類(lèi)圖:用來(lái)表達(dá)類(lèi)類(lèi)圖是一種主要的圖形化對(duì)象表示法類(lèi)圖顯示類(lèi)及類(lèi)之間的關(guān)系一個(gè)類(lèi)通過(guò)在類(lèi)圖標(biāo)中的類(lèi)名(唯一的)來(lái)代表班機(jī)2022/12/121021類(lèi)圖:用來(lái)表達(dá)類(lèi)類(lèi)圖是一種主要的圖形化對(duì)象表示法班機(jī)202102屬性
屬性是類(lèi)的特征或特性屬性的值是某一特定對(duì)象的屬性值在類(lèi)中屬性名必須是唯一的每一個(gè)類(lèi)的實(shí)例都有為這個(gè)類(lèi)定義的所有屬性的值例如:銀行帳戶(hù)類(lèi)屬性帳號(hào)銀行名稱(chēng)擁有者金額Mary的銀行帳戶(hù)屬性值12345678FirstNationalBankMarySmith$1024.482022/12/121031屬性屬性是類(lèi)的特征或特性銀行帳戶(hù)類(lèi)屬性Mary的銀行帳戶(hù)屬103操作對(duì)象的行為是由為此對(duì)象定義的一系列操作決定的操作訪問(wèn)或修改對(duì)象的屬性值一個(gè)類(lèi)可能同時(shí)存在多個(gè)實(shí)例,也可能在某一時(shí)刻沒(méi)有實(shí)例一個(gè)類(lèi)的所有實(shí)例都可以使用在這個(gè)類(lèi)中定義的操作2022/12/121041操作對(duì)象的行為是由為此對(duì)象定義的一系列操作決定的2022/104屬性和操作的標(biāo)記法
在類(lèi)的圖標(biāo)中描述屬性和操作通常只顯示最重要的屬性和操作,避免圖形混亂屬性顯示在操作上方,操作的名字后跟有()班機(jī)flightNumberdatedeparturetimestatusrelease()takeOff()屬性操作2022/12/121051屬性和操作的標(biāo)記法在類(lèi)的圖標(biāo)中描述屬性和操作班機(jī)fligh105類(lèi)是生成對(duì)象的模板類(lèi)是生成對(duì)象的模板類(lèi)的定義中包含有產(chǎn)生和刪除對(duì)象的操作屬性顯示在操作上方,操作的名字后跟有()一個(gè)類(lèi)定義了使用哪種數(shù)據(jù)表示法來(lái)描述屬性每一個(gè)實(shí)例都采用有屬性值的數(shù)據(jù)表示法一個(gè)類(lèi)通過(guò)一系列操作來(lái)定義行為這種操作能在每個(gè)實(shí)例中激活班機(jī)Flight187Flight121Flight7472022/12/121061類(lèi)是生成對(duì)象的模板類(lèi)是生成對(duì)象的模板班機(jī)Flight187106類(lèi)和對(duì)象的關(guān)系
每一個(gè)對(duì)象都是某一個(gè)類(lèi)的實(shí)例每一個(gè)類(lèi)在某一時(shí)刻都有零個(gè)或更多的實(shí)類(lèi)是靜態(tài)的;它們的存在、語(yǔ)義和關(guān)系在序執(zhí)行前就已經(jīng)定義好了對(duì)象是動(dòng)態(tài)的;它們?cè)诔绦驁?zhí)行時(shí)可以被建和刪除2022/12/121071類(lèi)和對(duì)象的關(guān)系每一個(gè)對(duì)象都是某一個(gè)類(lèi)的實(shí)例2022/12/107關(guān)系所有的系統(tǒng)都包含了大量的類(lèi)和對(duì)象對(duì)象通過(guò)與其它對(duì)象的協(xié)作完成系統(tǒng)的功能行為.協(xié)作通過(guò)關(guān)系來(lái)實(shí)現(xiàn)幾種重要的關(guān)系類(lèi)型:關(guān)聯(lián)聚合依賴(lài)?yán)^承2022/12/121081關(guān)系所有的系統(tǒng)都包含了大量的類(lèi)和對(duì)象2022/12/111108示例:關(guān)聯(lián)在一個(gè)工資系統(tǒng)中有下面兩個(gè)類(lèi):關(guān)聯(lián)表示了雙向的關(guān)系,例如:給出一個(gè)Person的實(shí)例,我們能夠知道他屬于哪家公司給出一個(gè)Company的實(shí)例,我們能夠知道在其中工作的所有人PersonCompany2022/12/121091示例:關(guān)聯(lián)在一個(gè)工資系統(tǒng)中有下面兩個(gè)類(lèi):PersonCo109關(guān)聯(lián)的多重性多重性是指多個(gè)實(shí)例參與一個(gè)關(guān)聯(lián)多重性通過(guò)位于關(guān)聯(lián)線某一端的一個(gè)表達(dá)式或符號(hào)來(lái)表示對(duì)于每個(gè)關(guān)聯(lián)關(guān)系,需要做出兩個(gè)多重性的決定例如,在公司和職員的關(guān)聯(lián)中每個(gè)公司可以雇用多個(gè)職員每個(gè)職員只有一個(gè)從屬公司2022/12/121101關(guān)聯(lián)的多重性多重性是指多個(gè)實(shí)例參與一個(gè)關(guān)聯(lián)2022/12/110示例:關(guān)聯(lián)的多重性多重性決定可以揭示建模過(guò)程中隱藏的問(wèn)題職員會(huì)不會(huì)失業(yè)?公司能不能沒(méi)有職員?一個(gè)職員能不能有兩份工作?職員職員雇主公司1..*12022/12/121111示例:關(guān)聯(lián)的多重性多重性決定可以揭示建模過(guò)程中隱藏的問(wèn)題職111常用的多重性表示法多重性能解決兩個(gè)問(wèn)題關(guān)聯(lián)是強(qiáng)制的(不包含零個(gè))或隨意的(包含零個(gè))?一個(gè)實(shí)例可以連接的其它實(shí)例的最大數(shù)目?常用的多重性表示法:1 只有一個(gè)0..* 零或更多1..* 一個(gè)或更多0..1 零或一個(gè)* 零或更多3..7 指定的范圍(3or4or5or6or7)1..3,7 結(jié)合使用(1or2or3or7)2022/12/121121常用的多重性表示法多重性能解決兩個(gè)問(wèn)題2022/12/11112自反關(guān)聯(lián)自反關(guān)聯(lián)指同一個(gè)類(lèi)中的對(duì)象的關(guān)系表示同一個(gè)類(lèi)中多個(gè)對(duì)象的協(xié)作Acoursemayhave manypre-requisitesAcoursemaybeapre-requisite formanyothercoursesPre-requisiteCourse0..*0..*2022/12/121131自反關(guān)聯(lián)自反關(guān)聯(lián)指同一個(gè)類(lèi)中的對(duì)象的關(guān)系A(chǔ)coursem113聚合(包含)聚合是一種特殊的關(guān)聯(lián),體現(xiàn)整體和部分的關(guān)系聚合是一種“has-a”或包含的關(guān)系同樣可以使用多重性CompanyDepartment1..*12022/12/121141聚合(包含)聚合是一種特殊的關(guān)聯(lián),體現(xiàn)整體和部分的關(guān)系Co114依賴(lài)依賴(lài)表示一個(gè)對(duì)象需要其它對(duì)象為其提供服務(wù)又可稱(chēng)為client-supplier關(guān)系
client使用supplier提供的服務(wù)
supplier不需要了解client(s)
單向關(guān)系ControllerDisplayItemcontrols2022/12/121151依賴(lài)依賴(lài)表示一個(gè)對(duì)象需要其它對(duì)象為其提供服務(wù)Contro115繼承繼承表示一個(gè)類(lèi)從其它類(lèi)中獲得結(jié)構(gòu)和行為(子類(lèi)/父類(lèi))又名普遍化交通工具是一個(gè)父類(lèi)地面交通工具和空中交通工具是子類(lèi)VehicleGroundVehicleAirVehicleThearrowpointstowardthesuperclass2022/12/121161繼承繼承表示一個(gè)類(lèi)從其它類(lèi)中獲得結(jié)構(gòu)和行為(子類(lèi)/父類(lèi))V116繼承繼承表示子類(lèi)從父類(lèi)繼承時(shí)抽象的層次單繼承:子類(lèi)只從一個(gè)父類(lèi)繼承多繼承:子類(lèi)從多于一個(gè)的父類(lèi)繼承繼承通常被稱(chēng)為“is-a”或“kind-of”
一個(gè)子類(lèi)的實(shí)例也“isa”父類(lèi)的實(shí)例一個(gè)子類(lèi)的實(shí)例是“kind-of”父類(lèi)2022/12/121171繼承繼承表示子類(lèi)從父類(lèi)繼承時(shí)抽象的層次2022/12/11117多層次ACarisakindofGroundVehiclewhichisakindofVehicleVehicleandAirVehicleareancestorsofAirplaneAirVehicleandAirplanearedescendantsofVehicleVehicleGroundVehicleAirVehicleCarTruckAirplaneHelicopter2022/12/121181多層次ACarisakindofGroundVe118繼承的內(nèi)容屬性操作關(guān)系約束繼承平衡類(lèi)之間的共同之處2022/12/121191繼承的內(nèi)容屬性2022/12/111191119繼承屬性屬性在繼承結(jié)構(gòu)的最高一層定義所有子類(lèi)的實(shí)例能夠繼承這些屬性每個(gè)子類(lèi)可以增加或重新定義繼承的屬性;但在修改是要加倍注意GroundVehiclelicenseNumberweightCarTrucktonnageAtruckhasthreeattributes:licenseNumberweighttonnage2022/12/121201繼承屬性屬性在繼承結(jié)構(gòu)的最高一層定義GroundVehicl120繼承操作屬性在繼承結(jié)構(gòu)的最高一層定義所有子類(lèi)的實(shí)例能夠繼承這些操作每個(gè)子類(lèi)可以增加或重新定義繼承的屬性GroundVehiclelicenseNumberweightregister()CarTrucktonnagecalculateTax()Atruckhasthreeattributes:licenseNumberweighttonnageandtwooperations:registercalculateTax2022/12/121211繼承操作屬性在繼承結(jié)構(gòu)的最高一層定義GroundVehicl121繼承關(guān)系關(guān)系也可以繼承每個(gè)子類(lèi)都可以分享繼承的關(guān)系GroundVehiclelicenseNumberweightregister()AtruckhasanownerCarTrucktonnagecalculateTax()OwnerPerson1..*andacarhasanowner12022/12/121221繼承關(guān)系關(guān)系也可以繼承GroundVehiclelicen122對(duì)象模型化技術(shù)OMT對(duì)象模型化技術(shù)把分析時(shí)收集的信息構(gòu)造在三類(lèi)模型中,即對(duì)象模型、功能模型和動(dòng)態(tài)模型。這個(gè)模型化的過(guò)程是一個(gè)迭代過(guò)程。2022/12/121231對(duì)象模型化技術(shù)OMT對(duì)象模型化技術(shù)把分析時(shí)收集的信息構(gòu)造在三123基于三個(gè)模型的分析過(guò)程功能模型著重于系統(tǒng)內(nèi)部數(shù)據(jù)的傳送和處理。功能模型定義“做什么”動(dòng)態(tài)模型定義“何時(shí)做”對(duì)象模型定義“對(duì)誰(shuí)做”。2022/12/121241基于三個(gè)模型的分析過(guò)程功能模型著重于系統(tǒng)內(nèi)部數(shù)據(jù)的傳送和處理124UML的圖用例圖(use-casediagram)用例是對(duì)系統(tǒng)提供的功能(即系統(tǒng)的具體用法)的描述。用例圖從用戶(hù)的角度描述系統(tǒng)功能,并指出各個(gè)功能的操作者。用例圖定義了系統(tǒng)的功能需求。2022/12/121251UML的圖2022/12/111251125靜態(tài)圖(staticdiagram)這類(lèi)圖描述系統(tǒng)的靜態(tài)結(jié)構(gòu),屬于這類(lèi)圖的有類(lèi)圖(classdiagram)和對(duì)象圖(objectdiagram)。類(lèi)圖不僅定義系統(tǒng)中的類(lèi),表示類(lèi)與類(lèi)之間的關(guān)系(例如,關(guān)聯(lián)、依賴(lài)、泛化和細(xì)化等關(guān)系),也表示類(lèi)的內(nèi)部結(jié)構(gòu)(類(lèi)的屬性和操作)。類(lèi)圖描述的是一種靜態(tài)關(guān)系,在系統(tǒng)的整個(gè)生命期內(nèi)都是有效的。2022/12/121261靜態(tài)圖(staticdiagram)2022/12/11126對(duì)象圖是類(lèi)圖的實(shí)例,它使用幾乎與類(lèi)圖完全相同的圖示符號(hào)。兩者之間的差別在于,對(duì)象圖表示的是類(lèi)的多個(gè)對(duì)象實(shí)例,而不是實(shí)際的類(lèi)。由于對(duì)象有生命周期,因此對(duì)象圖只能在系統(tǒng)的某個(gè)時(shí)間段內(nèi)存在。一般說(shuō)來(lái),對(duì)象圖沒(méi)有類(lèi)圖重要,它主要用來(lái)幫助對(duì)類(lèi)圖的理解,也可用在協(xié)作圖中,表示一組對(duì)象之間的動(dòng)態(tài)協(xié)作關(guān)系。2022/12/121271對(duì)象圖是類(lèi)圖的實(shí)例,它使用幾乎與類(lèi)圖完全相同的圖示符號(hào)。兩者127行為圖(behaviordiagram)這類(lèi)圖描述系統(tǒng)的動(dòng)態(tài)行為和組成系統(tǒng)的對(duì)象間的交互關(guān)系,包括狀態(tài)圖(statediagram)和活動(dòng)圖(activitydiagram)兩種圖形。狀態(tài)圖描述類(lèi)的對(duì)象可能具有的所有狀態(tài),以及引起狀態(tài)變化的事件,狀態(tài)變化稱(chēng)作狀態(tài)轉(zhuǎn)換。通常,狀態(tài)圖是對(duì)類(lèi)圖的補(bǔ)充。2022/12/121281行為圖(behaviordiagram)2022/12/128實(shí)際使用時(shí),并不需要為每個(gè)類(lèi)都畫(huà)狀態(tài)圖,僅需要為那些有多個(gè)狀態(tài),且其行為在不同狀態(tài)有所不同的類(lèi)畫(huà)狀態(tài)圖?;顒?dòng)圖描述為滿(mǎn)足用例要求而進(jìn)行的動(dòng)作以及動(dòng)作間的關(guān)系。活動(dòng)圖是狀態(tài)圖的一個(gè)變種,它是另一種描述交互的方法。2022/12/121291實(shí)際使用時(shí),并不需要為每個(gè)類(lèi)都畫(huà)狀態(tài)圖,僅需要為那些有多個(gè)狀129交互圖(interactivediagram)這類(lèi)圖描述對(duì)象間的交互關(guān)系,包括順序圖(sequencediagram)和協(xié)作圖(collaborationdiagram)兩種圖形。順序圖顯示若干個(gè)對(duì)象間的動(dòng)態(tài)協(xié)作關(guān)系,它強(qiáng)調(diào)對(duì)象之間發(fā)送消息的先后次序,描述對(duì)象之間的交互過(guò)程。協(xié)作圖與順序圖類(lèi)似,也描述對(duì)象間的動(dòng)態(tài)協(xié)作關(guān)系。除了顯示對(duì)象間發(fā)送的消息之外,協(xié)作圖還顯示對(duì)象及它們之間的關(guān)系(稱(chēng)為上下文相關(guān))。2022/12/121301交互圖(interactivediagram)2022/1130由于順序圖和協(xié)作圖都描述對(duì)象間的交互關(guān)系,所以建模者可以選擇其中一種表示對(duì)象間的協(xié)作關(guān)系:如果需要強(qiáng)調(diào)時(shí)間和順序,最好選用順序圖;如果需要強(qiáng)調(diào)上下文相關(guān),最好選擇協(xié)作圖。2022/12/121311由于順序圖和協(xié)作圖都描述對(duì)象間的交互關(guān)系,所以建模者可以選擇131實(shí)現(xiàn)圖(implementationdiagram)這類(lèi)圖提供關(guān)于系統(tǒng)實(shí)現(xiàn)方面的信息,構(gòu)件圖(componentdiagram)和配置圖(deploymentdiagram)屬于這類(lèi)圖。構(gòu)件圖描述代碼構(gòu)件的物理結(jié)構(gòu)及各個(gè)構(gòu)件之間的依賴(lài)關(guān)系。構(gòu)件可能是源代碼、二進(jìn)制文件或可執(zhí)行文件。使用構(gòu)件圖有助于分析和理解構(gòu)件之間的相互影響。2022/12/121321實(shí)現(xiàn)圖(implementationdiagram)20132配置圖定義系統(tǒng)中軟件和硬件的物理體系結(jié)構(gòu)。通常,配置圖中顯示實(shí)際的計(jì)算機(jī)和設(shè)備(用節(jié)點(diǎn)表示),以及各個(gè)節(jié)點(diǎn)之間的連接關(guān)系,也可以顯示連接的類(lèi)型及構(gòu)件之間的依賴(lài)關(guān)系。在節(jié)點(diǎn)內(nèi)部顯示可執(zhí)行的構(gòu)件和對(duì)象,以清晰地表示出哪個(gè)軟件單元運(yùn)行在哪個(gè)節(jié)點(diǎn)上。2022/12/121331配置圖定義系統(tǒng)中軟件和硬件的物理體系結(jié)構(gòu)。通常,配置圖中顯示133含擴(kuò)展和使用關(guān)系的用例圖2022/12/121341含擴(kuò)展和使用關(guān)系的用例圖2022/12/111341134謝謝觀看!謝謝觀看!135軟件工程導(dǎo)論復(fù)習(xí)軟件工程導(dǎo)論復(fù)習(xí)136什么是軟件軟件的定義—軟件由三部分組成:程序:在運(yùn)行時(shí),能提供所希望的功能和性能的指令集數(shù)據(jù):使程序能夠正確運(yùn)行的數(shù)據(jù)文檔:描述程序研制過(guò)程、方法及使用的文檔軟件處理的是信息和邏輯軟件的開(kāi)發(fā),絕不僅僅是編寫(xiě)程序軟件圍繞著邏輯進(jìn)行軟件就是一個(gè)信息交換器產(chǎn)生、管理、獲取、修改、顯示或傳送信息軟件≠程序2022/12/12137什么是軟件軟件的定義—軟件由三部分組成:軟件≠程序2022/什么是軟件危機(jī)軟件危機(jī)是指在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題。軟件工程(IEEE)1993年,提出軟件工程1)將系統(tǒng)化、規(guī)范化、可量化的工程原則和方法,應(yīng)用于軟件的開(kāi)發(fā)、運(yùn)行和維護(hù)。2)對(duì)1)中方法的理論研究。2022/12/12138什么是軟件危機(jī)軟件工程(IEEE)2022/12/113軟件工程基本原理(開(kāi)發(fā)與維護(hù)的指導(dǎo))用分階段的生命周期計(jì)劃嚴(yán)格管理堅(jiān)持進(jìn)行階段評(píng)審實(shí)行嚴(yán)格的產(chǎn)品控制采用現(xiàn)代程序設(shè)計(jì)技術(shù)結(jié)果應(yīng)能清楚地審查開(kāi)發(fā)小組的人員應(yīng)該少而精承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性2022/12/12139軟件工程基本原理(開(kāi)發(fā)與維護(hù)的指導(dǎo))2022/12/114軟件工程方法學(xué)把在軟件生命周期全過(guò)程中使用的一整套技術(shù)的集合稱(chēng)為方法學(xué)(methodology),也稱(chēng)范型(paradigm)。軟件工程方法學(xué)三個(gè)要素:方法、工具和過(guò)程。方法是完成軟件開(kāi)發(fā)各項(xiàng)任務(wù)的技術(shù),回答“如何做”;工具是為方法的運(yùn)用提供自動(dòng)或半自動(dòng)軟件支撐環(huán)境,回答“用什么做”;過(guò)程是為獲得高質(zhì)量的軟件要完成的一系列任務(wù)的框架,規(guī)定完成各項(xiàng)任務(wù)步驟,回答“如何控制、協(xié)調(diào)、保證質(zhì)量”。管理方法2022/12/12140軟件工程方法學(xué)管理方法2022/12/115目前使用得最廣泛的軟件工程方法學(xué)。傳統(tǒng)方法學(xué)也稱(chēng)為生命周期方法學(xué)或結(jié)構(gòu)化范型。
當(dāng)軟件規(guī)模較大,或?qū)浖男枨笫悄:幕螂S時(shí)間變化的時(shí)候,使用結(jié)構(gòu)化范型開(kāi)發(fā)軟件往往不成功;此外,使用傳統(tǒng)方法學(xué)開(kāi)發(fā)出的軟件,維護(hù)起來(lái)通常都很困難。結(jié)構(gòu)化-靜態(tài)分析,面向?qū)ο螅瓌?dòng)態(tài)分析世界萬(wàn)物是變化的傳統(tǒng)方法學(xué)與面向?qū)ο蠓椒▽W(xué)2022/12/12141目前使用得最廣泛的軟件工程方法學(xué)。世界萬(wàn)物是變化的傳統(tǒng)方法學(xué)傳統(tǒng)方法的特點(diǎn)生命周期模型軟件過(guò)程劃分為若干個(gè)階段每個(gè)階段有各自的任務(wù)階段之間有某種順序性2022/12/12142傳統(tǒng)方法的特點(diǎn)生命周期模型2022/12/117把在軟件生命周期全過(guò)程中使用的一整套技術(shù)的集合稱(chēng)為方法學(xué)(methodology),也稱(chēng)范型(paradigm)。IPO圖是輸入、處理、輸出圖的簡(jiǎn)稱(chēng)10:IFtotal_valid>0類(lèi)圖顯示類(lèi)及類(lèi)之間的關(guān)系使用上述任何一種方法,都可以計(jì)算出流圖的環(huán)形復(fù)雜度為6。功能模型定義“做什么”value[k]<minimum,其中k<i一個(gè)子類(lèi)的實(shí)例是“kind-of”父類(lèi)對(duì)象是應(yīng)用中具有明顯邊界和含義的概念、抽象或事物提供分析設(shè)計(jì)過(guò)程中關(guān)于數(shù)據(jù)的描述。要求選取足夠多的測(cè)試數(shù)據(jù),使每個(gè)判定表達(dá)式中條件的各種可能組合都至少出現(xiàn)一次。描繪軟件結(jié)構(gòu)的圖形工具文檔:描述程序研制過(guò)程、方法及使用的文檔1:i=1;total_input=total_valid=0;sum=0;Multiplicity多重性EverythingisObject.可以由許多程序員分工編寫(xiě)不同的模塊TomMcCabe提出的一種白盒測(cè)試技術(shù)。Abstraction抽象面向?qū)ο蠓椒ǎ簩?duì)象作為融合數(shù)據(jù)及在數(shù)據(jù)之上的操作行為的統(tǒng)一的軟件構(gòu)件。把所有對(duì)象都劃分成類(lèi)(Class)。每個(gè)類(lèi)都定義了一組數(shù)據(jù)和一組操作。按照父類(lèi)(或稱(chēng)為基類(lèi))與子類(lèi)(或稱(chēng)為派生類(lèi))的關(guān)系,把若干個(gè)相關(guān)類(lèi)組成一個(gè)層次結(jié)構(gòu)的系統(tǒng)(也稱(chēng)為類(lèi)等級(jí))。在類(lèi)等級(jí)中,下層派生類(lèi)自動(dòng)擁有上層基類(lèi)中定義的數(shù)據(jù)和操作,稱(chēng)為繼承。對(duì)象彼此間僅能通過(guò)發(fā)送消息互相聯(lián)系-封裝性。數(shù)據(jù):靜態(tài)操作:動(dòng)態(tài)EverythingisObject.2022/12/12143大連理工大軟件學(xué)院把在軟件生命周期全過(guò)程中使用的一整套技術(shù)的集合稱(chēng)為方法學(xué)(m1431.3軟件生命周期
軟件生命周期由軟件定義、軟件開(kāi)發(fā)和運(yùn)行維護(hù)三個(gè)時(shí)期組成,每個(gè)時(shí)期又可進(jìn)一步劃分成若干個(gè)階段,每個(gè)階段有各自的任務(wù)。1軟件定義2軟件開(kāi)發(fā)3運(yùn)行維護(hù)2022/12/1214411.3軟件生命周期軟件生命周期由軟件定義、軟件開(kāi)發(fā)和運(yùn)行144問(wèn)題定義可行性研究需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼和單元測(cè)試綜合測(cè)試軟件維護(hù)2022/12/121451問(wèn)題定義2022/12/11101145用判定樹(shù)表示計(jì)算行李費(fèi)的算法多重性能解決兩個(gè)問(wèn)題對(duì)象模型定義“對(duì)誰(shuí)做”。/*這個(gè)過(guò)程計(jì)算不超過(guò)100個(gè)在規(guī)定值域內(nèi)的有效數(shù)字的平均值;1:i=1;total_input=total_valid=0;sum=0;軟件重用能提高質(zhì)量,減少由于編制新的系統(tǒng)代碼而產(chǎn)生的成本路徑6:1-2-3-4-5-6-7-8-9-2-Math
Utilities多重性決定可以揭示建模過(guò)程中隱藏的問(wèn)題register()PROCEDUREaverage;軟件危機(jī)是指在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中所遇到的一系列嚴(yán)重問(wèn)題。Acoursemayhave由為對(duì)象定義的一系列操作決定檢測(cè)軟件全部功能的代表性測(cè)試用例。噴泉模型是典型的面向?qū)ο笊芷谀P?。聚合是一種特殊的關(guān)聯(lián),體現(xiàn)整體和部分的關(guān)系多重性是指多個(gè)實(shí)例參與一個(gè)關(guān)聯(lián)模塊大小要適中,不過(guò)分細(xì)。supplier不需要了解client(s)PROCEDUREaverage;Abstraction抽象實(shí)際的瀑布模型軟件過(guò)程模型(生命周期模型)2022/12/121461用判定樹(shù)表示計(jì)算行李費(fèi)的算法實(shí)際的瀑布模型軟件過(guò)程模型(生命146快速原型模型2022/12/121471快速原型模型2022/12/11121147增量模型瀑布模型:力求一次性給用戶(hù)完整的系統(tǒng)。增量模型:逐步增加系統(tǒng)功能。需要開(kāi)放的架構(gòu)設(shè)計(jì)。2022/12/121481增量模型瀑布模型:力求一次性給用戶(hù)完整的系統(tǒng)。2022/12148完整的螺旋模型2022/12/121491完整的螺旋模型2022/12/11141149噴泉模型迭代是OO開(kāi)發(fā)過(guò)程的主要特性。噴泉模型是典型的面向?qū)ο笊芷谀P??!皣娙斌w現(xiàn)了面向?qū)ο筌浖_(kāi)發(fā)過(guò)程迭代和無(wú)縫的特性。為避免噴泉模型的過(guò)分無(wú)序,把一個(gè)線性過(guò)程作為總目標(biāo)。迭代
2022/12/121501噴泉模型迭代是OO開(kāi)發(fā)過(guò)程的主要特性。迭代2022/12/150噴泉模型迭代:逐步求精階段間沒(méi)有明顯的界限-面向?qū)ο蟮乃枷氡WC了各個(gè)階段開(kāi)發(fā)的一致性。迭代是OO開(kāi)發(fā)過(guò)程的主要特性。噴泉模型是典型的面向?qū)ο笊芷谀P??!皣娙斌w現(xiàn)了面向?qū)ο筌浖_(kāi)發(fā)過(guò)程迭代和無(wú)縫的特性。2022/12/121511噴泉模型迭代:逐步求精迭代是OO開(kāi)發(fā)過(guò)程的主要特性。2022151可行性與需求分析可行性與需求分析可行性研究不是解決問(wèn)題,而是確定問(wèn)題是否值得去解決較高層次的系統(tǒng)分析和設(shè)計(jì)過(guò)程需求分析發(fā)現(xiàn)、求精、建模、規(guī)格說(shuō)明和復(fù)審的過(guò)程反復(fù)求精多次細(xì)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 托運(yùn)物品活動(dòng)策劃方案(3篇)
- 燒烤氣氛活動(dòng)策劃方案(3篇)
- 監(jiān)獄戒毒場(chǎng)所后勤管理制度(3篇)
- 針灸推拿科管理制度目錄(3篇)
- 《GA 2114-2023警用服飾 禮服女皮鞋》專(zhuān)題研究報(bào)告
- 獸藥GMP培訓(xùn)課件
- 《GA 425.9-2003指紋自動(dòng)識(shí)別系統(tǒng)基礎(chǔ)技術(shù)規(guī)范 第9部分:指紋圖像數(shù)據(jù)轉(zhuǎn)換的技術(shù)條件》專(zhuān)題研究報(bào)告
- 2026河北石家莊城市更新集團(tuán)有限公司勞務(wù)派遣制人員招聘6人參考題庫(kù)附答案
- 交通警察執(zhí)法規(guī)范制度
- 2026湖北省定向鄭州大學(xué)選調(diào)生招錄備考題庫(kù)附答案
- 流程與TOC改善案例
- 【當(dāng)代中國(guó)婚禮空間設(shè)計(jì)研究4200字(論文)】
- GB/T 20322-2023石油及天然氣工業(yè)往復(fù)壓縮機(jī)
- 提撈采油安全操作規(guī)程
- DB3211-T 1048-2022 嬰幼兒日間照料托育機(jī)構(gòu)服務(wù)規(guī)范
- YY/T 1846-2022內(nèi)窺鏡手術(shù)器械重復(fù)性使用腹部沖吸器
- GB/T 5237.3-2017鋁合金建筑型材第3部分:電泳涂漆型材
- GB/T 3625-2007換熱器及冷凝器用鈦及鈦合金管
- GB/T 15390-2005工程用焊接結(jié)構(gòu)彎板鏈、附件和鏈輪
- 學(xué)生傷害事故處理辦法及案例分析
- 安全管理人員紅頭任命文件
評(píng)論
0/150
提交評(píng)論