版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
軟件工程2第10章面向?qū)ο蠓治?024/5/16分析:提取系統(tǒng)需求理解表達(dá):軟件需求規(guī)格說(shuō)明 對(duì)象模型、動(dòng)態(tài)模型、功能模型驗(yàn)證3第10章面向?qū)ο蠓治?024/5/16面向?qū)ο蠓治?OOA)識(shí)別出問(wèn)題域內(nèi)的對(duì)象分析它們相互間的關(guān)系最終建立起問(wèn)題域的簡(jiǎn)潔、精確、可理解的正確模型。在用面向?qū)ο笥^點(diǎn)建立起的三種模型中,對(duì)象模型是最基本、最重要、最核心的。42024/5/1610.1面向?qū)ο蠓治龅幕具^(guò)程10.2需求陳述10.3建立對(duì)象模型10.4建立動(dòng)態(tài)模型10.5建立功能模型10.6定義服務(wù)10.7小結(jié)第10章面向?qū)ο蠓治?10.1.1概述2024/5/1610.1面向?qū)ο蠓治龅幕具^(guò)程610.1.2三個(gè)子模型與五個(gè)層次對(duì)象模型(靜態(tài)結(jié)構(gòu))動(dòng)態(tài)模型(交互次序)功能模型(數(shù)據(jù)變換)圖10.1復(fù)雜問(wèn)題的對(duì)象模型的5個(gè)層次2024/5/1610.1面向?qū)ο蠓治龅幕具^(guò)程710.1分析過(guò)程2024/5/16面向?qū)ο蠓治龃篌w上按照下列順序進(jìn)行: 尋找類與對(duì)象
識(shí)別結(jié)構(gòu)
識(shí)別主題
定義屬性
建立動(dòng)態(tài)模型
建立功能模型
定義服務(wù)分析不可能嚴(yán)格地按照預(yù)定順序進(jìn)行,大型、復(fù)雜系統(tǒng)的模型需要反復(fù)構(gòu)造多遍才能建成。通常,從子集逐漸擴(kuò)充,直到完全、充分理解整個(gè)問(wèn)題。810.1分析過(guò)程2024/5/16分析也不是一個(gè)機(jī)械的過(guò)程。大多數(shù)需求陳述都缺乏必要的信息,所缺少的信息主要從用戶和領(lǐng)域?qū)<夷抢铽@取,同時(shí)也需要從分析員對(duì)問(wèn)題域的背景知識(shí)中提取。在分析過(guò)程中,系統(tǒng)分析員必須與領(lǐng)域?qū)<壹坝脩舴磸?fù)交流,以便澄清二義性,改正錯(cuò)誤的概念,補(bǔ)足缺少的信息。910.2.1書寫要點(diǎn)內(nèi)容:?jiǎn)栴}范圍,功能需求,性能需求,應(yīng)用環(huán)境及假設(shè)條件等。闡明“做什么”而不是“怎樣做”描述用戶的需求而不是提出解決問(wèn)題的方法。指出哪些是系統(tǒng)必要的性質(zhì),哪些是任選的性質(zhì)。2024/5/1610.2需求陳述1010.2.1書寫要點(diǎn)避免對(duì)設(shè)計(jì)策略施加過(guò)多的約束,也不要描述系統(tǒng)的內(nèi)部結(jié)構(gòu),因?yàn)檫@樣做將限制實(shí)現(xiàn)的靈活性。對(duì)系統(tǒng)性能及系統(tǒng)與外界環(huán)境交互協(xié)議的描述,是合適的需求。此外,對(duì)采用的軟件工程標(biāo)準(zhǔn)、模塊構(gòu)造準(zhǔn)則、將來(lái)可能做的擴(kuò)充以及可維護(hù)性要求等方面的描述,也都是適當(dāng)?shù)男枨蟆?024/5/1610.2需求陳述11圖10.2ATM系統(tǒng)2024/5/1610.2需求陳述10.2.2例子1210.2需求陳述總行擁有多臺(tái)ATM,分別設(shè)在全市各主要街道上分行負(fù)責(zé)提供分行計(jì)算機(jī)和柜員終端。柜員終端設(shè)在分行營(yíng)業(yè)廳及分行下屬的各個(gè)儲(chǔ)蓄所內(nèi)該系統(tǒng)的軟件開發(fā)成本由各個(gè)分行分?jǐn)?024/5/16自動(dòng)取款機(jī)系統(tǒng):自動(dòng)取款機(jī)中央計(jì)算機(jī)分行計(jì)算機(jī)柜員終端網(wǎng)絡(luò)系統(tǒng)1310.2需求陳述一個(gè)儲(chǔ)戶可能擁有多個(gè)賬戶。柜員負(fù)責(zé)把事務(wù)輸進(jìn)柜員終端,接收儲(chǔ)戶交來(lái)的現(xiàn)金或支票,或付給儲(chǔ)戶現(xiàn)金。柜員終端與相應(yīng)的分行計(jì)算機(jī)通信分行計(jì)算機(jī)具體處理針對(duì)某個(gè)賬戶的事務(wù)并且維護(hù)賬戶。2024/5/16柜員使用柜員終端處理儲(chǔ)戶提交的儲(chǔ)蓄事務(wù)用現(xiàn)金或支票存款開新賬戶從自己的賬戶中取款1410.2需求陳述將來(lái)可能還要求使用ATM辦理轉(zhuǎn)賬、存款等事務(wù)。2024/5/16儲(chǔ)戶可以申請(qǐng)現(xiàn)金兌換卡使用現(xiàn)金兌換卡可以通過(guò)ATM訪問(wèn)自己的賬戶目前功能:提取現(xiàn)金查詢信息1510.2需求陳述一張卡可以訪問(wèn)儲(chǔ)戶的若干個(gè)賬戶,但是不一定能訪問(wèn)這個(gè)儲(chǔ)戶的全部賬戶。每張現(xiàn)金兌換卡僅屬于一個(gè)儲(chǔ)戶所有同一張卡可能有多個(gè)副本必須考慮同時(shí)在若干臺(tái)ATM上使用同樣的現(xiàn)金兌換卡的可能性。也就是說(shuō),系統(tǒng)應(yīng)該能夠處理并發(fā)的訪問(wèn)。2024/5/16現(xiàn)金兌換卡:磁卡有分行代碼和卡號(hào)。分行代碼唯一標(biāo)識(shí)總行下屬的一個(gè)分行卡號(hào)確定了這張卡可以訪問(wèn)哪些賬戶1610.2需求陳述中央計(jì)算機(jī)確定這次事務(wù)與分行的對(duì)應(yīng)關(guān)系,并且委托相應(yīng)的分行計(jì)算機(jī)驗(yàn)證用戶密碼。如果用戶輸入的密碼是正確的,ATM就要求用戶選擇事務(wù)類型。當(dāng)用戶選擇取款時(shí),ATM請(qǐng)求用戶輸入取款額。最后,ATM從現(xiàn)金出口吐出現(xiàn)金,并且打印出賬單交給用戶。2024/5/16使用ATM過(guò)程:插卡ATM要求用戶輸入密碼ATM將信息傳給中央計(jì)算機(jī)請(qǐng)求中央計(jì)算機(jī)核對(duì)這些信息并處理事務(wù)。1710.3.1確定類與對(duì)象類與對(duì)象是在問(wèn)題域中客觀存在的,系統(tǒng)分析員的主要任務(wù),就是通過(guò)分析找出這些類與對(duì)象。首先,找出所有候選的類與對(duì)象;然后,從候選的類與對(duì)象中篩選掉不正確的或不必要的。2024/5/1610.3建立對(duì)象模型18找出候選的類與對(duì)象對(duì)象是對(duì)問(wèn)題域中有意義的事物的抽象可感知的物理實(shí)體人或組織的角色應(yīng)該記憶的事件兩個(gè)或多個(gè)對(duì)象的相互作用需要說(shuō)明的概念2024/5/1610.3建立對(duì)象模型19找出候選的類與對(duì)象另一種更簡(jiǎn)單的分析方法,是所謂的非正式分析。以用自然語(yǔ)言書寫的需求陳述為依據(jù)把陳述中的名詞作為類與對(duì)象的候選者用形容詞作為確定屬性的線索把動(dòng)詞作為服務(wù)(操作)的候選者。2024/5/1610.3建立對(duì)象模型2010.3建立對(duì)象模型2024/5/16銀行、自動(dòng)取款機(jī)(ATM)、系統(tǒng)、中央計(jì)算機(jī)、分行計(jì)算機(jī)、柜員終端、網(wǎng)絡(luò)、總行、分行、軟件、成本、市、街道、營(yíng)業(yè)廳、儲(chǔ)蓄所、柜員、儲(chǔ)戶、現(xiàn)金、支票、賬戶、事務(wù)、現(xiàn)金兌換卡、余額、磁卡、分行代碼、卡號(hào)、用戶、副本、信息、密碼、類型、取款額、賬單、訪問(wèn)。提取問(wèn)題域中隱含的類。“通信鏈路”和“事務(wù)日志”。2110.3建立對(duì)象模型2024/5/16篩選出正確的類與對(duì)象篩選時(shí)主要依據(jù)下列標(biāo)準(zhǔn),刪除不正確或不必要的類。冗余:儲(chǔ)戶與用戶,現(xiàn)金兌換卡與磁卡及副本無(wú)關(guān):成本、街道、市、營(yíng)業(yè)廳籠統(tǒng):要么無(wú)需記憶,要么需要更明確。銀行、信息。屬性:現(xiàn)金、支票、取款額、余額操作:既可以作為名詞,又可以作為動(dòng)詞的詞實(shí)現(xiàn):事務(wù)日志、通信鏈路2210.3建立對(duì)象模型2024/5/16剩下的類:ATM、中央計(jì)算機(jī)、分行計(jì)算機(jī)、柜員終端、總行、分行、柜員、儲(chǔ)戶、賬戶、事務(wù)和現(xiàn)金兌換卡。2310.3建立對(duì)象模型2024/5/1610.3.2確定關(guān)聯(lián)關(guān)聯(lián):兩個(gè)或多個(gè)對(duì)象之間相互依賴、相互作用的關(guān)系。分析確定關(guān)聯(lián),能促使分析員考慮問(wèn)題域的邊緣情況,有助于發(fā)現(xiàn)那些尚未被發(fā)現(xiàn)的類。在分析確定關(guān)聯(lián)的過(guò)程中,不必花過(guò)多的精力去區(qū)分關(guān)聯(lián)和聚集。事實(shí)上,聚集不過(guò)是一種特殊的關(guān)聯(lián),是關(guān)聯(lián)的一個(gè)特例。2410.3建立對(duì)象模型2024/5/16初步確定關(guān)聯(lián)大多數(shù)關(guān)聯(lián)可以通過(guò)直接提取需求陳述中的動(dòng)詞詞組而得出。通過(guò)分析需求陳述,還能發(fā)現(xiàn)一些在陳述中隱含的關(guān)聯(lián)。最后,分析員還應(yīng)該與用戶及領(lǐng)域?qū)<矣懻搯?wèn)題域?qū)嶓w間的相互依賴、相互作用關(guān)系,根據(jù)領(lǐng)域知識(shí)再進(jìn)一步補(bǔ)充一些關(guān)聯(lián)。
25(1)直接提取動(dòng)詞短語(yǔ)得出的關(guān)聯(lián)ATM、中央計(jì)算機(jī)、分行計(jì)算機(jī)及柜員終端組成網(wǎng)絡(luò)??傂袚碛卸嗯_(tái)ATMATM設(shè)在主要街道上分行提供分行計(jì)算機(jī)和柜員終端柜員終端設(shè)在分行營(yíng)業(yè)廳及儲(chǔ)蓄所內(nèi)分行分?jǐn)傑浖_發(fā)成本儲(chǔ)戶擁有賬戶分行計(jì)算機(jī)處理針對(duì)賬戶的事務(wù)分行計(jì)算機(jī)維護(hù)賬戶柜員終端與分行計(jì)算機(jī)通信2024/5/1610.3建立對(duì)象模型26柜員輸入針對(duì)賬戶的事務(wù)ATM與中央計(jì)算機(jī)交換關(guān)于事務(wù)的信息中央計(jì)算機(jī)確定事務(wù)與分行的對(duì)應(yīng)關(guān)系A(chǔ)TM讀現(xiàn)金兌換卡ATM與用戶交互ATM吐出現(xiàn)金ATM打印賬單系統(tǒng)處理并發(fā)的訪問(wèn)2024/5/1610.3建立對(duì)象模型27(2)需求陳述中隱含的關(guān)聯(lián)總行由各個(gè)分行組成分行保管賬戶總行擁有中央計(jì)算機(jī)系統(tǒng)維護(hù)事務(wù)日志系統(tǒng)提供必要的安全性儲(chǔ)戶擁有現(xiàn)金兌換卡(3)根據(jù)問(wèn)題域知識(shí)得出的關(guān)聯(lián)現(xiàn)金兌換卡訪問(wèn)賬戶分行雇用柜員2024/5/1610.3建立對(duì)象模型2810.3建立對(duì)象模型2024/5/16篩選進(jìn)一步篩選,以去掉不正確的或不必要的關(guān)聯(lián)。已刪去的類之間的關(guān)聯(lián)與問(wèn)題無(wú)關(guān)的或應(yīng)在實(shí)現(xiàn)階段考慮的關(guān)聯(lián)瞬時(shí)事件:關(guān)聯(lián)應(yīng)該描述問(wèn)題域的靜態(tài)結(jié)構(gòu)三元關(guān)聯(lián)派生關(guān)聯(lián):可以用其他關(guān)聯(lián)定義的冗余關(guān)聯(lián)2910.3建立對(duì)象模型2024/5/16進(jìn)一步完善應(yīng)該進(jìn)一步完善經(jīng)篩選后余下的關(guān)聯(lián),通常從下述幾個(gè)方面進(jìn)行改進(jìn)。正名分解:分解類與對(duì)象,以適應(yīng)不同的關(guān)聯(lián)補(bǔ)充:遺漏關(guān)聯(lián)的補(bǔ)充標(biāo)明重?cái)?shù)30圖10.3ATM系統(tǒng)原始對(duì)象圖2024/5/163110.3建立對(duì)象模型2024/5/1610.3.3劃分主題在開發(fā)大型系統(tǒng)時(shí),需要?jiǎng)澐种黝}先識(shí)別類與對(duì)象和關(guān)聯(lián),然后劃分主題。ATM系統(tǒng):總行、分行、ATM三個(gè)主題。32把ATM系統(tǒng)劃分成三個(gè)主題2024/5/163310.3建立對(duì)象模型2024/5/1610.3.4確定屬性
確定屬性的過(guò)程包括分析和選擇兩個(gè)步驟。分析名詞詞組屬性的確定既與問(wèn)題域有關(guān),也和目標(biāo)系統(tǒng)的任務(wù)有關(guān)。應(yīng)該僅考慮與具體應(yīng)用直接相關(guān)的屬性,不要考慮那些超出所要解決的問(wèn)題范圍的屬性。在分析過(guò)程中應(yīng)該首先找出最重要的屬性,以后再逐漸把其余屬性增添進(jìn)去。在分析階段不要考慮那些純粹用于實(shí)現(xiàn)的屬性。3410.3建立對(duì)象模型2024/5/16選擇認(rèn)真考察經(jīng)初步分析而確定下來(lái)的那些屬性,從中刪掉不正確的或不必要的屬性。通常有以下幾種常見情況。誤把對(duì)象當(dāng)作屬性:具有自身性質(zhì)的實(shí)體應(yīng)該作為對(duì)象把關(guān)聯(lián)類的屬性誤作為一般對(duì)象的屬性把限定誤當(dāng)成屬性誤把內(nèi)部狀態(tài)當(dāng)成了屬性過(guò)于細(xì)化存在不一致的屬性:某些屬性與其他屬性毫不相干,應(yīng)該考慮重新分解類35圖10.4ATM對(duì)象模型中的屬性2024/5/163610.3建立對(duì)象模型2024/5/1610.3.5識(shí)別繼承關(guān)系繼承:知識(shí)抽取的過(guò)程確定了類中應(yīng)該定義的屬性之后,就可以利用繼承機(jī)制共享公共性質(zhì),并對(duì)系統(tǒng)中眾多的類加以組織。建立繼承(即歸納)關(guān)系兩種方式:自底向上:抽象出現(xiàn)有類的共同性質(zhì)泛化出父類,這個(gè)過(guò)程實(shí)質(zhì)上模擬了人類歸納思維過(guò)程。自頂向下:把現(xiàn)有類細(xì)化成更具體的子類,這模擬了人類的演繹思維過(guò)程。37圖10.5帶有繼承關(guān)系的ATM對(duì)象模型2024/5/163810.3建立對(duì)象模型2024/5/1610.3.6反復(fù)修改僅僅經(jīng)過(guò)一次建模過(guò)程很難得到完全正確的對(duì)象模型。事實(shí)上,軟件開發(fā)過(guò)程就是一個(gè)多次反復(fù)修改、逐步完善的過(guò)程。在建模的任何一個(gè)步驟中,如果發(fā)現(xiàn)了模型的缺陷,都必須返回到前期階段進(jìn)行修改。由于面向?qū)ο蟮母拍詈头?hào)在整個(gè)開發(fā)過(guò)程中都是一致的,因此遠(yuǎn)比使用結(jié)構(gòu)化分析和設(shè)計(jì)技術(shù)更容易實(shí)現(xiàn)反復(fù)修改及逐步完善的過(guò)程。39圖10.6修改后的ATM對(duì)象模型2024/5/1640在交互式系統(tǒng)中,動(dòng)態(tài)模型很重要。建立動(dòng)態(tài)模型的第一步,是編寫典型交互行為的腳本。雖然腳本中不可能包括每個(gè)偶然事件,但至少必須保證不遺漏常見的交互行為。接下來(lái)從腳本中提取出事件,確定觸發(fā)每個(gè)事件的動(dòng)作對(duì)象以及接受事件的目標(biāo)對(duì)象。第三步,排列事件發(fā)生的次序,確定每個(gè)對(duì)象可能有的狀態(tài)及狀態(tài)間的轉(zhuǎn)換關(guān)系,并用狀態(tài)圖描繪它們。最后,比較各個(gè)對(duì)象的狀態(tài)圖,檢查它們之間的一致性,確保事件之間的匹配。2024/5/1610.4建立動(dòng)態(tài)模型4110.4.1編寫腳本腳本:系統(tǒng)在某一執(zhí)行期間內(nèi)出現(xiàn)的一系列事件。描述用戶與系統(tǒng)之間一個(gè)或多個(gè)典型的交互過(guò)程。編寫腳本的過(guò)程,實(shí)際上是分析用戶對(duì)系統(tǒng)交互行為的要求的過(guò)程。編寫腳本時(shí),首先編寫正常情況的腳本;然后考慮特殊情況;最后考慮出錯(cuò)情況。2024/5/1610.4建立動(dòng)態(tài)模型422024/5/1610.4建立動(dòng)態(tài)模型432024/5/1610.4建立動(dòng)態(tài)模型442024/5/1610.4.2設(shè)想用戶界面動(dòng)態(tài)模型著重表示應(yīng)用系統(tǒng)的控制邏輯分析階段也不能忽略用戶界面描述界面的信息交換方式確保能夠完成全部必要的信息交換10.4建立動(dòng)態(tài)模型4510.4建立動(dòng)態(tài)模型2024/5/1610.4.3畫事件跟蹤圖自然語(yǔ)言書寫的腳本往往存在二義性。通常在畫狀態(tài)圖之前先畫出事件跟蹤圖。為此首先需要進(jìn)一步明確事件及事件與對(duì)象的關(guān)系。
4610.4建立動(dòng)態(tài)模型2024/5/16確定事件
仔細(xì)分析每個(gè)腳本,以便從中提取出所有外部事件。事件包括系統(tǒng)與用戶(或外部設(shè)備)交互的所有信號(hào)、輸入、輸出、中斷和動(dòng)作等。從腳本中容易找出正常事件不要遺漏了異常事件和出錯(cuò)條件。傳遞信息的對(duì)象的動(dòng)作也是事件。應(yīng)該區(qū)分出每類事件的發(fā)送對(duì)象和接受對(duì)象。47ATM系統(tǒng)正常情況腳本的事件跟蹤圖畫出事件跟蹤圖
清晰的表示事件序列以及事件與對(duì)象的關(guān)系2024/5/1648畫出事件跟蹤圖
ATM系統(tǒng)異常情況的腳本2024/5/164910.4建立動(dòng)態(tài)模型2024/5/1610.4.4畫狀態(tài)圖把這些事件作為狀態(tài)圖中的有向邊(即箭頭線),邊上標(biāo)以事件名。兩個(gè)事件之間的間隔就是一個(gè)狀態(tài)。一般說(shuō)來(lái),如果同一個(gè)對(duì)象對(duì)相同事件的響應(yīng)不同,則這個(gè)對(duì)象處在不同狀態(tài)。應(yīng)該盡量給每個(gè)狀態(tài)取個(gè)有意義的名字。通常,從事件跟蹤圖中當(dāng)前考慮的豎線射出的箭頭線,是這條豎線代表的對(duì)象達(dá)到某個(gè)狀態(tài)時(shí)所做的行為(往往是引起另一類對(duì)象狀態(tài)轉(zhuǎn)換的事件)。5010.4建立動(dòng)態(tài)模型2024/5/16根據(jù)一張事件跟蹤圖畫出狀態(tài)圖之后,再把其他腳本的事件跟蹤圖合并到已畫出的狀態(tài)圖中。為此需在事件跟蹤圖中找出以前考慮過(guò)的腳本的分支點(diǎn)(例如“驗(yàn)證賬戶”就是一個(gè)分支點(diǎn),因?yàn)轵?yàn)證的結(jié)果可能是“賬戶有效”,也可能是“無(wú)效賬戶”),然后把其他腳本中的事件序列并入已有的狀態(tài)圖中,作為一條可選的路徑。考慮完正常事件之后再考慮邊界情況和特殊情況,其中包括在不適當(dāng)時(shí)候發(fā)生的事件(例如,系統(tǒng)正在處理某個(gè)事務(wù)時(shí),用戶要求取消該事務(wù))。51圖10.9ATM類的狀態(tài)圖2024/5/1652圖10.10總行類的狀態(tài)圖2024/5/1653圖10.11分行類的狀態(tài)圖2024/5/165410.4建立動(dòng)態(tài)模型2024/5/1610.4.5審查動(dòng)態(tài)模型各個(gè)類的狀態(tài)圖通過(guò)共享事件合并,構(gòu)成了系統(tǒng)的動(dòng)態(tài)模型。檢查系統(tǒng)的完整性和一致性。重點(diǎn)審查沒有前驅(qū)或者沒有后繼的狀態(tài)。552024/5/1610.5建立功能模型56功能模型由一組數(shù)據(jù)流圖組成。表明了系統(tǒng)中數(shù)據(jù)之間的依賴關(guān)系以及有關(guān)的數(shù)據(jù)處理功能10.5.1畫出基本系統(tǒng)模型圖2024/5/1610.5建立功能模型5710.5建立功能模型2024/5/1610.5.2畫出功能級(jí)數(shù)據(jù)流圖把基本系統(tǒng)模型中單一的處理框分解成若干個(gè)處理框,以描述系統(tǒng)加工、變換數(shù)據(jù)的基本功能,就得到功能級(jí)數(shù)據(jù)流圖。10.5.3描述處理框功能把數(shù)據(jù)流圖分解細(xì)化到一定程度之后,就應(yīng)該描述圖中各個(gè)處理框的功能。應(yīng)該注意的是,要著重描述每個(gè)處理框所代表的功能,而不是實(shí)現(xiàn)功能的具體算法。描述既可以是說(shuō)明性的,也可以是過(guò)程性的。58圖10.13ATM系統(tǒng)的功能級(jí)數(shù)據(jù)流圖2024/5/16592024/5/1610.5建立功能模型60建立了動(dòng)態(tài)模型和功能模型之后,才能最終確定類中服務(wù)。在確定類中服務(wù)時(shí),既要考慮該類實(shí)體的常規(guī)行為,又要考慮在本系統(tǒng)中特殊需要的服務(wù)。1常規(guī)行為定義了讀、寫該類每個(gè)屬性的操作。2從事件導(dǎo)出的操作狀態(tài)圖中發(fā)往對(duì)象的事件也就是該對(duì)象接收到的消息,因此該對(duì)象必須有由消息選擇符指定的操作,這個(gè)操作修改對(duì)象狀態(tài)(即屬性值)并啟動(dòng)相應(yīng)的服務(wù)。所啟動(dòng)的這些服務(wù),通常就是接受事件的對(duì)象在相應(yīng)狀態(tài)的行為。
2024/5/1610.6定義服務(wù)6110.6定義服務(wù)2024/5/163與數(shù)據(jù)流圖中處理框?qū)?yīng)的操作數(shù)據(jù)流圖中的每個(gè)處理框都與一個(gè)對(duì)象(也可能是若干個(gè)對(duì)象)上的操作相對(duì)應(yīng)。應(yīng)該仔細(xì)對(duì)照狀態(tài)圖和數(shù)據(jù)流圖,以便更正確地確定對(duì)象應(yīng)該提供的服務(wù)。4利用繼承減少冗余操作應(yīng)該盡量利用繼承機(jī)制以減少所需定義的服務(wù)數(shù)目。只要不違背領(lǐng)域知識(shí)和常識(shí),就盡量抽取出相似類的公共屬性和操作,以建立這些類的新父類,并在類等級(jí)的不同層次中正確地定義各個(gè)服務(wù)。621、需求陳述在一幢有m層樓的大廈中需要一套控制n部電梯的產(chǎn)品,要求這n部電梯根據(jù)下列約束條件在樓層間移動(dòng)。C1:每部電梯有m個(gè)按鈕,每個(gè)按鈕代表一個(gè)樓層。當(dāng)按下一個(gè)按鈕時(shí)該按鈕指示燈亮,同時(shí)電梯駛向相應(yīng)的樓層,當(dāng)?shù)竭_(dá)由按鈕指定樓層時(shí)指示燈熄滅。C2:除了大廈的最底層和最高層之外,每層樓都有兩個(gè)按鈕分別指示電梯上行和下行。當(dāng)這兩個(gè)按鈕之一被按下時(shí)相應(yīng)的指示燈亮,當(dāng)電梯到達(dá)此樓層時(shí)燈熄滅,電梯向要求的方向移動(dòng)。C3:當(dāng)電梯無(wú)升降動(dòng)作時(shí),關(guān)門并停在當(dāng)前樓層。2024/5/16面向?qū)ο蠓治鰧?shí)例632、建立對(duì)象模型(1)精確地定義問(wèn)題 在一個(gè)m層樓的大廈里,用每層樓的按鈕和電梯內(nèi)的按鈕來(lái)控制n部電梯的移動(dòng)。(2)提出非形式化策略 在一幢有m層樓的大廈里,用電梯內(nèi)的和每個(gè)樓層的按鈕控制n部電梯的運(yùn)動(dòng)。當(dāng)按下電梯按鈕以請(qǐng)求在某一指定樓層停下時(shí),按鈕指示燈亮;當(dāng)請(qǐng)求獲得滿足時(shí),指示燈熄滅。當(dāng)電梯無(wú)升降操作時(shí),關(guān)門并停在當(dāng)前樓層。2024/5/16面向?qū)ο蠓治鰧?shí)例64(3)把策略形式化類的候選:按鈕、電梯、樓層、運(yùn)動(dòng)、大廈、指示燈、請(qǐng)求和門。篩選:樓層和大廈處于問(wèn)題邊界之外運(yùn)動(dòng)、請(qǐng)求作為電梯的操作門作為電梯的屬性指示燈作為按鈕的屬性結(jié)果:電梯和按鈕20
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 種子科技在農(nóng)業(yè)生產(chǎn)中的創(chuàng)新
- 保險(xiǎn)行業(yè)采購(gòu)工作經(jīng)驗(yàn)分享
- 2024年度高端大米品牌推廣與銷售代理合同3篇
- 2024年校園食堂信息化建設(shè)及承包經(jīng)營(yíng)服務(wù)合同3篇
- 煤礦課程設(shè)計(jì)是什么
- 施工工人安全協(xié)議書
- 汽車租賃企業(yè)合作協(xié)議
- 山西大學(xué)附中屆高三月月考語(yǔ)文試題
- 2024年再婚后離婚協(xié)議中離婚訴訟費(fèi)用承擔(dān)范本3篇
- 忘做核酸檢測(cè)檢討書范文(9篇)
- DB45T 2760-2023 電子政務(wù)外網(wǎng)網(wǎng)絡(luò)技術(shù)規(guī)范
- 2025版中考物理復(fù)習(xí)課件 09 專題五 類型3 電學(xué)綜合應(yīng)用題(不含效率)(10年6考)
- 2024年度承包合同:石灰石生產(chǎn)線承包2篇
- 2024年度社區(qū)養(yǎng)老社會(huì)工作服務(wù)項(xiàng)目協(xié)議書3篇
- 蜜雪冰城合作加盟合同
- 青海省西寧市2021-2022學(xué)年八年級(jí)上學(xué)期期末歷史試題(解析版)
- 2024統(tǒng)編版七年級(jí)上冊(cè)語(yǔ)文期末復(fù)習(xí):名著閱讀 練習(xí)題匯編(含答案解析)
- 2024年物業(yè)管理員(中級(jí))職業(yè)鑒定考試題庫(kù)(含答案)
- 統(tǒng)編版(2024版)七年級(jí)上冊(cè)歷史:期末復(fù)習(xí)課件
- 國(guó)開(陜西)2024年《中國(guó)制造之高端裝備》形考作業(yè)1-4答案
- 工會(huì)新聞寫作培訓(xùn)課題
評(píng)論
0/150
提交評(píng)論