




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、2022/8/3 牛牛文庫文檔分享1第6章 類的詳細設(shè)計詳細設(shè)計是以概要設(shè)計說明書作為基礎(chǔ),完成各模塊的算法設(shè)計、用戶界面設(shè)計以及數(shù)據(jù)結(jié)構(gòu)設(shè)計的細化等。對于開發(fā)者來說詳細設(shè)計的主要工作就是在每個類的方法中補充對應(yīng)的業(yè)務(wù)實現(xiàn)。類中方法的設(shè)計,使用狀態(tài)圖對類的行為,使用OCL對類的實現(xiàn)細節(jié)進行準確定義。詳細設(shè)計的主要活動為每個模塊進行詳細的算法設(shè)計。用某種圖形、表格、語言等工具將每個模塊處理過程的詳細算法描述出來。為模塊內(nèi)的數(shù)據(jù)結(jié)構(gòu)進行設(shè)計。對于需求分析、概要設(shè)計確定的概念性的數(shù)據(jù)類型進行確切的定義。為數(shù)據(jù)結(jié)構(gòu)進行物理設(shè)計,即確定數(shù)據(jù)庫的物理結(jié)構(gòu)。物理結(jié)構(gòu)主要指數(shù)據(jù)庫的存儲記錄格式、存儲記錄安排和
2、存儲方法,這些都依賴于具體所使用的數(shù)據(jù)庫系統(tǒng)。2022/8/3 牛牛文庫文檔分享2詳細設(shè)計的主要活動其他設(shè)計:根據(jù)軟件系統(tǒng)的類型,還可能要進行以下設(shè)計:輸入/輸出格式設(shè)計;人機對話設(shè)計;對于一個實時系統(tǒng),用戶與計算機頻繁對話,因此要進行對話方式、內(nèi)容、格式的具體設(shè)計等。編寫詳細設(shè)計說明書。評審。對處理過程的算法和數(shù)據(jù)庫的物理結(jié)構(gòu)等進行評審。2022/8/3 牛牛文庫文檔分享3類方法的詳細設(shè)計結(jié)構(gòu)化的程序如果程序的代碼塊僅僅通過順序、選擇和循環(huán)三種控制結(jié)構(gòu)進行連接,并且每個代碼塊只有一個入口和一個出口,則稱這個程序是結(jié)構(gòu)化的。2022/8/3 牛牛文庫文檔分享4非結(jié)構(gòu)化程序設(shè)計目的是簡化設(shè)計過程
3、,僅使用有限的可預(yù)測的操作即可完成相應(yīng)的算法流程圖形設(shè)計工具程序流程圖(flowchart)簡單、直觀、易于學(xué)習(xí)2022/8/3 牛牛文庫文檔分享5應(yīng)盡量保持結(jié)構(gòu)化的特點,限制控制流的隨意跳轉(zhuǎn)適當使用goto、break、continue等語句圖形設(shè)計工具盒圖(NS)一種符合結(jié)構(gòu)化程序設(shè)計原則的圖形描述工具不允許隨意跳轉(zhuǎn)通過組合嵌套方式構(gòu)成更大的“盒子”復(fù)雜邏輯繪制繁瑣2022/8/3 牛牛文庫文檔分享6圖形設(shè)計工具問題分析圖(PAD)使用二維樹形結(jié)構(gòu)的圖來表示程序的控制流,繪制方便結(jié)構(gòu)清晰,翻譯到代碼較為容易2022/8/3 牛牛文庫文檔分享7表格工具判定表是一種進行詳細設(shè)計的表格工具,又稱
4、為決策表。判定表適用于描述判斷條件較多,各條件又相互組合、有多種決策方案的情況。判定表有著準確而又簡潔的描述方式,能夠?qū)?fù)雜的條件組合與對應(yīng)的執(zhí)行動作相對應(yīng)。例如:某工廠機器維修的方式:對功率大于50馬力的機器或已運行10年以上的機器,應(yīng)送到專業(yè)的維修公司處理;否則如果功率小于20馬力,并且有維修記錄,則在車間維修;否則送到本廠的維修中心維修。2022/8/3 牛牛文庫文檔分享8判定表示例規(guī)則#123456789101112機器功率wAAAABBBBCCCC運行時長10年?YYNNYYNNYYNN有維修記錄YNNYYNNYYNNY送外維修本廠維修本車間維修2022/8/3 牛牛文庫文檔分享9判
5、定表構(gòu)成判定表有4個部分構(gòu)成,分別是條件列表、條件組合、動作列表及動作入口;每個條件對應(yīng)一個變量、關(guān)系或者預(yù)測,如上例中的機器功率、運行時長、維修記錄;條件組合是各種條件可能取值的所有組合,如果每個條件有真假兩種取值,則n個條件的取值組合數(shù)量為2n個;動作指要執(zhí)行的過程或操作列表,如上例中的送外修或者送本廠維修中心;動作入口指某個條件組合下與動作的對應(yīng),與條件組合一起構(gòu)成了判定表的一列,也叫做規(guī)則。2022/8/3 牛牛文庫文檔分享10判定表化簡2022/8/3 牛牛文庫文檔分享11規(guī)則#12345機器功率wABCB運行時長= 0以上方法會使類圖不夠簡潔,而且復(fù)雜業(yè)務(wù)規(guī)則也不能清晰描述,因此引
6、入了OCL。這里引入一個新的類圖作為例子:2022/8/3 牛牛文庫文檔分享302022/8/3 牛牛文庫文檔分享31關(guān)聯(lián)類,只與其對應(yīng)的一個學(xué)生對象和一個課程對象具有聯(lián)系。學(xué)號要求至少五位數(shù)字長,并且構(gòu)成學(xué)號的數(shù)字要大于或等于10000。若使用OCL進行描述:context Student inv regStudentId:self.stuId = 10000關(guān)鍵字context表明此段OCL的描述與哪些UML對象或類相關(guān)。關(guān)鍵字inv表示這是不變的(invariant),也就是說所有的Student對象都要遵守這個約束self關(guān)鍵字指的是對context對象的引用,正如在Java中的thi
7、s或C+中的*this的作用一樣。context s:Student inv:s.stuId = 100002022/8/3 牛牛文庫文檔分享32將OCL同樣以包的形式進行組織,便于使用和管理:package com:myCompany:mySWcontext Student inv:context Student inv:endpackage除了實例變量的約束外,OCL同樣可以對實例的方法進行,描述方法執(zhí)行的條件,如未休學(xué)的學(xué)生至少要選擇一門課程:context Student:selectedLectures(): Integerpre stustatus: self.freesemest
8、er = falsepost selectedLectures: result 02022/8/3 牛牛文庫文檔分享33當該生選擇了一門之前沒有學(xué)過的課程時,該生選課總數(shù)加一:context Student:registerLecture(v: Lecture)pre: notSelected(v)post: self.selectedLectures()pre = self.selectedLectures() 1pre表示引用的是方法執(zhí)行之前的狀態(tài)值。2022/8/3 牛牛文庫文檔分享34類型名取值示例相關(guān)方法Booleantrue, falseand, or, xor, not impl
9、ies, if then else endifInteger1, -2, 50, 464646*, +, -, /, abs()Real3.14, 42.42, -99.99*, +, -, /, floor()StringHello, Dalian, Concat(), size(), substring()某門課的授課教授在上課時是不能在國外的:context Lecture inv:self.status = Lecturestatus:runningimpliesnot f.inForeign關(guān)鍵字implies表示“if-then”的條件說明。對于一個結(jié)課的課程成績要求分數(shù)在1-5之
10、間,可以進行如下的描述:context Examination inv:self.selectedLecture.status = Lecturestatus:closed implies(self.note = 1.0 and self.note method(parameter)一個學(xué)生在一個學(xué)期內(nèi)最多可以選擇12門課程:context Student inv:Student.selectedLecture- select (s | s.status = Lecturestatus:running)- size() exists( p | p.note = 60 and p.selectedLecture.title=Theory)要求方法passedLectures()返回的所有課程必須是已經(jīng)修過的課程:context Student:passedLectures():Collectionpost: result = self.examination- select( p | p.note=60) - iterate(p:Examination; res: Collection = Collection |res-including(p.selectedLecture)2022/8/3 牛牛文庫文檔
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 論文課題申報書
- 音樂陶笛課題立項申報書
- 建黨精神課題申報書
- 古琴課題申報書
- 快樂讀書吧課題申報書
- 賣房貸款合同范本
- 咨詢費購銷合同范本
- 共享充電寶股合同范本
- 70歲以上用工合同范例
- 品牌童裝贈與合同范本
- CT設(shè)備維保服務(wù)售后服務(wù)方案
- 大班安全《尖利的東西會傷人》課件
- A320飛機空調(diào)系統(tǒng)非正常操作A要點分析
- 兒科課件:急性細菌性腦膜炎
- 我的家鄉(xiāng)湖北襄陽介紹
- 邏輯判斷課件
- 社會心理學(xué):社會心理學(xué)的研究方法完整版
- 預(yù)防住院患者跌倒墜床的防范措施及宣教
- 更年期綜合癥研究白皮書
- 基于PLC的小區(qū)排水控制系統(tǒng)設(shè)計畢業(yè)論文
- 社區(qū)矯正人員檢討書800字(5篇)
評論
0/150
提交評論