




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、大連理工大學(xué)軟件學(xué)院軟件工程2022-3-8整理課件2第第6章章 類的詳細(xì)設(shè)計(jì)類的詳細(xì)設(shè)計(jì) 詳細(xì)設(shè)計(jì)是以概要設(shè)計(jì)說明書作為基礎(chǔ),完成各詳細(xì)設(shè)計(jì)是以概要設(shè)計(jì)說明書作為基礎(chǔ),完成各模塊的算法設(shè)計(jì)、用戶界面設(shè)計(jì)以及數(shù)據(jù)結(jié)構(gòu)設(shè)模塊的算法設(shè)計(jì)、用戶界面設(shè)計(jì)以及數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)的細(xì)化等計(jì)的細(xì)化等。 對于開發(fā)者來說詳細(xì)設(shè)計(jì)的主要工作就是在每個(gè)對于開發(fā)者來說詳細(xì)設(shè)計(jì)的主要工作就是在每個(gè)類的方法中補(bǔ)充對應(yīng)的業(yè)務(wù)類的方法中補(bǔ)充對應(yīng)的業(yè)務(wù)實(shí)現(xiàn)。實(shí)現(xiàn)。 類中方法的類中方法的設(shè)計(jì)設(shè)計(jì),使用狀態(tài)圖對類使用狀態(tài)圖對類的的行為,使用行為,使用OCL對類的對類的實(shí)現(xiàn)細(xì)節(jié)進(jìn)行準(zhǔn)確實(shí)現(xiàn)細(xì)節(jié)進(jìn)行準(zhǔn)確定義。定義。詳細(xì)設(shè)計(jì)的主要活動(dòng)詳細(xì)設(shè)計(jì)
2、的主要活動(dòng) 為每個(gè)模塊進(jìn)行詳細(xì)的為每個(gè)模塊進(jìn)行詳細(xì)的算法設(shè)計(jì)算法設(shè)計(jì)。用某種圖形、。用某種圖形、表格、語言等工具將每個(gè)模塊處理過程的詳細(xì)算表格、語言等工具將每個(gè)模塊處理過程的詳細(xì)算法描述出來。法描述出來。 為模塊內(nèi)的為模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)進(jìn)行設(shè)計(jì)。對于需求分析、進(jìn)行設(shè)計(jì)。對于需求分析、概要設(shè)計(jì)確定的概念性的數(shù)據(jù)類型進(jìn)行確切的定概要設(shè)計(jì)確定的概念性的數(shù)據(jù)類型進(jìn)行確切的定義。義。 為數(shù)據(jù)結(jié)構(gòu)進(jìn)行物理設(shè)計(jì),即確定為數(shù)據(jù)結(jié)構(gòu)進(jìn)行物理設(shè)計(jì),即確定數(shù)據(jù)庫的物理數(shù)據(jù)庫的物理結(jié)構(gòu)結(jié)構(gòu)。物理結(jié)構(gòu)主要指數(shù)據(jù)庫的存儲(chǔ)記錄格式、。物理結(jié)構(gòu)主要指數(shù)據(jù)庫的存儲(chǔ)記錄格式、存儲(chǔ)記錄安排和存儲(chǔ)方法,這些都依賴于具體所存儲(chǔ)記
3、錄安排和存儲(chǔ)方法,這些都依賴于具體所使用的數(shù)據(jù)庫系統(tǒng)使用的數(shù)據(jù)庫系統(tǒng)。2022-3-8整理課件3詳細(xì)設(shè)計(jì)的主要活動(dòng)詳細(xì)設(shè)計(jì)的主要活動(dòng) 其他其他設(shè)計(jì)設(shè)計(jì):根據(jù)軟件系統(tǒng)的類型,還可能:根據(jù)軟件系統(tǒng)的類型,還可能要進(jìn)行以下設(shè)計(jì):輸入要進(jìn)行以下設(shè)計(jì):輸入/輸出格式設(shè)計(jì);人輸出格式設(shè)計(jì);人機(jī)對話設(shè)計(jì);對于一個(gè)實(shí)時(shí)系統(tǒng),用戶與機(jī)對話設(shè)計(jì);對于一個(gè)實(shí)時(shí)系統(tǒng),用戶與計(jì)算機(jī)頻繁對話,因此要進(jìn)行對話方式、計(jì)算機(jī)頻繁對話,因此要進(jìn)行對話方式、內(nèi)容、格式的具體設(shè)計(jì)等。內(nèi)容、格式的具體設(shè)計(jì)等。 編寫編寫詳細(xì)設(shè)計(jì)說明書詳細(xì)設(shè)計(jì)說明書。 評審評審。對處理過程的算法和數(shù)據(jù)庫的物理。對處理過程的算法和數(shù)據(jù)庫的物理結(jié)構(gòu)結(jié)構(gòu)等進(jìn)行
4、等進(jìn)行評審評審。2022-3-8整理課件4類方法的詳細(xì)設(shè)計(jì)類方法的詳細(xì)設(shè)計(jì) 結(jié)構(gòu)化的程序結(jié)構(gòu)化的程序如果程序如果程序的代碼的代碼塊僅僅通過順序塊僅僅通過順序、選擇和、選擇和循環(huán)三循環(huán)三種控制結(jié)構(gòu)進(jìn)行種控制結(jié)構(gòu)進(jìn)行連接,并且每個(gè)連接,并且每個(gè)代碼塊只有一個(gè)代碼塊只有一個(gè)入口和一個(gè)出口入口和一個(gè)出口,則稱這個(gè)程序,則稱這個(gè)程序是結(jié)構(gòu)化的是結(jié)構(gòu)化的。2022-3-8整理課件5非非結(jié)構(gòu)化程結(jié)構(gòu)化程序設(shè)計(jì)序設(shè)計(jì) 目的是簡化設(shè)計(jì)過程,僅使用有限的可預(yù)測的操作目的是簡化設(shè)計(jì)過程,僅使用有限的可預(yù)測的操作即可完成相應(yīng)的算法流程即可完成相應(yīng)的算法流程圖形設(shè)計(jì)工具圖形設(shè)計(jì)工具 程序流程圖程序流程圖(flowcha
5、rt) 簡單、直觀、易于簡單、直觀、易于學(xué)習(xí)學(xué)習(xí)2022-3-8整理課件6應(yīng)盡量保持結(jié)構(gòu)化的特點(diǎn),應(yīng)盡量保持結(jié)構(gòu)化的特點(diǎn),限制控制流的隨意跳限制控制流的隨意跳轉(zhuǎn)轉(zhuǎn)適當(dāng)使用適當(dāng)使用goto、break、continue等語句等語句圖形設(shè)計(jì)工具圖形設(shè)計(jì)工具 盒圖盒圖(NS) 一種符合結(jié)構(gòu)化一種符合結(jié)構(gòu)化程序設(shè)計(jì)原則的程序設(shè)計(jì)原則的圖形描述圖形描述工具工具 不不允許隨意跳轉(zhuǎn)允許隨意跳轉(zhuǎn) 通過組合嵌套方通過組合嵌套方式構(gòu)成更大的式構(gòu)成更大的“盒子盒子” 復(fù)雜邏輯繪制繁復(fù)雜邏輯繪制繁瑣瑣2022-3-8整理課件7圖形設(shè)計(jì)工具圖形設(shè)計(jì)工具 問題分析圖問題分析圖(PAD) 使用使用二維樹形二維樹形結(jié)構(gòu)的圖來
6、表結(jié)構(gòu)的圖來表示程序的控制示程序的控制流流,繪制方便,繪制方便 結(jié)構(gòu)清晰,翻結(jié)構(gòu)清晰,翻譯到代碼較為譯到代碼較為容易容易2022-3-8整理課件8表格工具表格工具 判定表判定表是一種進(jìn)行詳細(xì)設(shè)計(jì)的表格工具,又稱為是一種進(jìn)行詳細(xì)設(shè)計(jì)的表格工具,又稱為決策決策表。表。 判定表適用于描述判斷條件較多,各條件又相互組合判定表適用于描述判斷條件較多,各條件又相互組合、有多種決策方案的情況、有多種決策方案的情況。 判定表有著準(zhǔn)確而又簡潔的描述方式,能夠?qū)?fù)雜的判定表有著準(zhǔn)確而又簡潔的描述方式,能夠?qū)?fù)雜的條件組合與對應(yīng)的執(zhí)行動(dòng)作相對應(yīng)條件組合與對應(yīng)的執(zhí)行動(dòng)作相對應(yīng)。 例如:某工廠機(jī)器維修的方式:對功率大于
7、例如:某工廠機(jī)器維修的方式:對功率大于50馬力的馬力的機(jī)器或已運(yùn)行機(jī)器或已運(yùn)行10年以上的機(jī)器,應(yīng)送到專業(yè)的維修公年以上的機(jī)器,應(yīng)送到專業(yè)的維修公司處理;否則如果功率小于司處理;否則如果功率小于20馬力,并且有維修記錄馬力,并且有維修記錄,則在車間維修;否則送到本廠的維修中心維修。,則在車間維修;否則送到本廠的維修中心維修。2022-3-8整理課件9判定表示例判定表示例規(guī)則規(guī)則#12345678910 11 12機(jī)器功率機(jī)器功率wAAAABBBBCCCC運(yùn)行時(shí)長運(yùn)行時(shí)長10年?年? YYNNYYNNYYNN有維修記錄有維修記錄YNNYYNNYYNNY送外維修送外維修 本廠維修本廠維修 本車間維
8、修本車間維修2022-3-8整理課件10:50,:20,: 2050AwBwCw判定表構(gòu)成判定表構(gòu)成 判定表有判定表有4個(gè)部分構(gòu)成,分別是個(gè)部分構(gòu)成,分別是條件列表、條件組合條件列表、條件組合、動(dòng)作列表及動(dòng)作、動(dòng)作列表及動(dòng)作入口入口; 每個(gè)每個(gè)條件對應(yīng)一個(gè)變量、關(guān)系或者預(yù)測,如上例中的條件對應(yīng)一個(gè)變量、關(guān)系或者預(yù)測,如上例中的機(jī)器功率、運(yùn)行時(shí)長、維修記錄機(jī)器功率、運(yùn)行時(shí)長、維修記錄; 條件條件組合是各種條件可能取值的所有組合,如果每個(gè)組合是各種條件可能取值的所有組合,如果每個(gè)條件有真假兩種取值,則條件有真假兩種取值,則n個(gè)條件的取值組合數(shù)量為個(gè)條件的取值組合數(shù)量為2n個(gè);個(gè); 動(dòng)作動(dòng)作指要執(zhí)行
9、的過程或操作列表,如上例中的送外修指要執(zhí)行的過程或操作列表,如上例中的送外修或者送本廠維修中心或者送本廠維修中心; 動(dòng)作動(dòng)作入口指某個(gè)條件組合下與動(dòng)作的對應(yīng),與條件組入口指某個(gè)條件組合下與動(dòng)作的對應(yīng),與條件組合一起構(gòu)成了判定表的一列,也叫做規(guī)則。合一起構(gòu)成了判定表的一列,也叫做規(guī)則。2022-3-8整理課件11判定表化簡判定表化簡2022-3-8整理課件12規(guī)則規(guī)則#12345機(jī)器功率機(jī)器功率wABCB運(yùn)行時(shí)長運(yùn)行時(shí)長10年?年?NYNNN有維修記錄有維修記錄NY送外維修送外維修本廠維修本廠維修本車間維修本車間維修:50,:20,: 2050AwBwCw 使用使用“”來表來表示對此條件的不示對
10、此條件的不關(guān)心或關(guān)心或不適用不適用 任意兩個(gè)條件組任意兩個(gè)條件組合合之間不能之間不能有有交交集集判定樹判定樹 判定表判定表雖能表示雖能表示復(fù)雜的條件組合復(fù)雜的條件組合與與動(dòng)作動(dòng)作之間的對應(yīng)關(guān)系,但其含義卻之間的對應(yīng)關(guān)系,但其含義卻不是一目了然,理解它不是一目了然,理解它也要也要有一個(gè)有一個(gè)學(xué)習(xí)過程學(xué)習(xí)過程。 當(dāng)當(dāng)數(shù)據(jù)數(shù)據(jù)元素值元素值多于兩個(gè)時(shí)多于兩個(gè)時(shí)(如功率(如功率),判定表的簡潔程度也將下降),判定表的簡潔程度也將下降。2022-3-8整理課件13運(yùn)行時(shí)長(50W2020=w=0.5s左鍵按下選中對象soand time0.5s左鍵按下狀態(tài)圖應(yīng)用狀態(tài)圖應(yīng)用 點(diǎn)火器組件能夠點(diǎn)火器組件能夠發(fā)出
11、發(fā)出start和和end信號信號;自動(dòng)控制器能夠;自動(dòng)控制器能夠發(fā)發(fā)出出on和和off信號信號;離合器能夠;離合器能夠發(fā)出空轉(zhuǎn)或者負(fù)載的信號發(fā)出空轉(zhuǎn)或者負(fù)載的信號。 外部溫度通過傳感器連續(xù)測量,存于本地外部溫度通過傳感器連續(xù)測量,存于本地溫度變量中溫度變量中。 啟啟停控制器本身會(huì)產(chǎn)生信號??刂破鞅旧頃?huì)產(chǎn)生信號motor_on和和motor_off,并作,并作為動(dòng)作輸入給電機(jī)控制器。為動(dòng)作輸入給電機(jī)控制器。2022-3-8整理課件282022-3-8整理課件29待機(jī)節(jié)能運(yùn)轉(zhuǎn)自動(dòng)啟停行進(jìn)啟動(dòng)工作中靜止end/ motor_off負(fù)載/motor_on空轉(zhuǎn)3溫度= 0 以上方法會(huì)使類圖不夠簡潔,而且
12、復(fù)雜業(yè)務(wù)規(guī)則以上方法會(huì)使類圖不夠簡潔,而且復(fù)雜業(yè)務(wù)規(guī)則也不能清晰描述,因此引入了也不能清晰描述,因此引入了OCL。 這里引入一個(gè)新的類圖作為例子:這里引入一個(gè)新的類圖作為例子:2022-3-8整理課件312022-3-8整理課件32 正常 結(jié)課 取消課程狀態(tài)課程狀態(tài)-姓名 : String-學(xué)號 : int-專業(yè) : String-是否修學(xué)期 : boolean+課程注冊(v : 課程) : void+考核合格課程() : ArrayList+已選課程數(shù)() : int+是否已選(v : 課程) : boolean+是否理論課程已通過() : boolean學(xué)生學(xué)生-日期 : Date-分?jǐn)?shù)
13、: double學(xué)習(xí)情況學(xué)習(xí)情況-課程名 : String-狀態(tài) : 課程狀態(tài)課程課程-名字 : String-是否出國 : boolean教授教授1*-選課學(xué)生-所選課程3.*講授選課關(guān)聯(lián)類,只關(guān)聯(lián)類,只與其對與其對應(yīng)的一個(gè)學(xué)生對象應(yīng)的一個(gè)學(xué)生對象和一個(gè)課程對象具和一個(gè)課程對象具有聯(lián)系。有聯(lián)系。 學(xué)學(xué)號要求至少五位數(shù)字長,并且構(gòu)成學(xué)號的數(shù)字號要求至少五位數(shù)字長,并且構(gòu)成學(xué)號的數(shù)字要大于或等于要大于或等于10000。若使用。若使用OCL進(jìn)行進(jìn)行描述:描述:context Student inv regStudentId:self.stuId = 10000 關(guān)鍵字關(guān)鍵字context表明此段表
14、明此段OCL的描述與哪些的描述與哪些UML對對象或類相關(guān)象或類相關(guān)。 關(guān)鍵字關(guān)鍵字inv表示這是不變的(表示這是不變的(invariant),也就是),也就是說所有的說所有的Student對象都要遵守這個(gè)對象都要遵守這個(gè)約束約束 self關(guān)鍵字指關(guān)鍵字指的是對的是對context對象對象的引用,正如在的引用,正如在Java中的中的this或或C+中的中的*this的作用一樣的作用一樣。context s:Student inv:s.stuId = 100002022-3-8整理課件33 將將OCL同樣以包的形式進(jìn)行組織同樣以包的形式進(jìn)行組織,便于使用和管,便于使用和管理:理:package c
15、om:myCompany:mySWcontext Student inv:context Student inv:endpackage 除了實(shí)例變量的約束外,除了實(shí)例變量的約束外,OCL同樣可以對實(shí)例的同樣可以對實(shí)例的方法方法進(jìn)行,描述方法執(zhí)行的條件,如未休學(xué)的學(xué)進(jìn)行,描述方法執(zhí)行的條件,如未休學(xué)的學(xué)生至少要選擇一門課程:生至少要選擇一門課程:context Student:selectedLectures(): Integerpre stustatus: self.freesemester = falsepost selectedLectures: result 02022-3-8整理課件3
16、4 當(dāng)該生選擇了一門之前沒有學(xué)過的課程時(shí),該生當(dāng)該生選擇了一門之前沒有學(xué)過的課程時(shí),該生選課總數(shù)加選課總數(shù)加一:一:context Student:registerLecture(v: Lecture)pre: notSelected(v)post: self.selectedLectures()pre = self.selectedLectures() 1 pre表示引用的是方法執(zhí)行表示引用的是方法執(zhí)行之前的之前的狀態(tài)值。狀態(tài)值。2022-3-8整理課件35類型名類型名取值示例取值示例相關(guān)方法相關(guān)方法Booleantrue,falseand,or,xor,notimplies,ifthene
17、lseendifInteger1,-2,50,464646*,+,-,/,abs()Real3.14,42.42,-99.99 *,+,-,/,floor()StringHello,Dalian, Concat(),size(),substring() 某門課的授課教授在上課時(shí)是不能在國外某門課的授課教授在上課時(shí)是不能在國外的:的:context Lecture inv: = Lecturestatus:runningimpliesnot 關(guān)鍵字關(guān)鍵字implies表示表示“if-then”的條件的條件說明。說明。 對于一個(gè)結(jié)課的課程成績要求分?jǐn)?shù)在對于一個(gè)結(jié)課的課程成績要求分?jǐn)?shù)在1-5之間,可
18、之間,可以進(jìn)行如下的描述以進(jìn)行如下的描述:context Examination inv:self.selectedLecture.status = Lecturestatus:closed implies(self.note = 1.0 and self.note method(parameter) 一個(gè)學(xué)生一個(gè)學(xué)生在一在一個(gè)學(xué)期內(nèi)最多可以選擇個(gè)學(xué)期內(nèi)最多可以選擇12門門課程:課程:context Student inv:- select (s | s.status = Lecturestatus:running)- size() exists( p | p.note = 60 =Theory) 要求方法要求方法passedLectures()返回的所有課程必須是返回的所有課程必須是已經(jīng)修過的已經(jīng)修過的課程:課程:context Student:passedLectures():Collectionpost- select( p | p.note=60) - iterate(p:Examination; res: Collection =
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣告設(shè)計(jì)專業(yè)必修課程
- 巴楚縣2024年數(shù)學(xué)三上期末學(xué)業(yè)水平測試模擬試題含解析
- 首飾店面設(shè)計(jì)調(diào)研報(bào)告
- 面館設(shè)計(jì)方案
- 2025年工程項(xiàng)目管理新課程試題及答案
- 酒店婚宴服務(wù)預(yù)定及合同條款
- 物流與供應(yīng)鏈管理案例分析練習(xí)
- 工程項(xiàng)目風(fēng)險(xiǎn)管理案例試題與答案
- 食品加工企業(yè)生產(chǎn)管理手冊
- 水利水電工程資金管理試題及答案
- 《結(jié)直腸癌精準(zhǔn)治療策略與實(shí)踐課件》
- 水務(wù)公司筆試題目及答案
- 延安通和電業(yè)有限責(zé)任公司招聘真題2024
- 病媒生物防治試題及答案
- 正定古城介紹課件
- 超聲技術(shù)在麻醉監(jiān)測中的新興應(yīng)用-全面剖析
- 2024年陜西省城固縣事業(yè)單位公開招聘醫(yī)療衛(wèi)生崗筆試題帶答案
- 2025年公共文化服務(wù)管理考試試題及答案
- 2025江蘇無錫宜興市國資本投資控股集團(tuán)限公司招聘工作人員10人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 銀行市場營銷戰(zhàn)略試題及答案2025年總結(jié)
- 2023年度湖州市生態(tài)環(huán)境狀況公報(bào)
評論
0/150
提交評論