版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上第六章 問(wèn)題域部分的設(shè)計(jì)1、 什么是面向?qū)ο笤O(shè)計(jì)1、 OOA與OOD的關(guān)系: 1 )面向?qū)ο蟮脑O(shè)計(jì)就是在OOA的基礎(chǔ)上運(yùn)用面向?qū)ο蠓椒?,主要解決與現(xiàn)實(shí)有滾得問(wèn)題,目標(biāo)是產(chǎn)生一個(gè)符合現(xiàn)實(shí)條件的OOD模型。與現(xiàn)實(shí)條件有關(guān)的因素有:圖形用戶(hù)系統(tǒng)、硬件、操作系統(tǒng)、網(wǎng)絡(luò)、數(shù)據(jù)管理系統(tǒng)和編輯語(yǔ)言等。 2 )由于OOD以O(shè)OA模型為基礎(chǔ)且OOA與OOD采用一致的表示方法,這使得從OOA到OOD不存在轉(zhuǎn)換,只需做必要的修改和調(diào)整,或補(bǔ)充某些細(xì)節(jié),并增加幾個(gè)與現(xiàn)實(shí)關(guān)聯(lián)的相獨(dú)立部分即可。因此OOA與OOD之間不存在分析與設(shè)計(jì)的鴻溝,二者能緊密銜接,大大降低了從OOA與OOD的難度、工作量
2、和出錯(cuò)頻率。 3 )OOA主要針對(duì)問(wèn)題域,識(shí)別有關(guān)的對(duì)象以及它們之間的關(guān)系,產(chǎn)生一個(gè)映射問(wèn)題域,滿(mǎn)足用戶(hù)需求,獨(dú)立于實(shí)現(xiàn)的OOA模型。OOD主要解決與實(shí)現(xiàn)有關(guān)的問(wèn)題,基于OOA模型,針對(duì)具體的軟、硬件條件(如機(jī)器、網(wǎng)絡(luò)、OS、GUI、DBMS等)產(chǎn)生一個(gè)可實(shí)現(xiàn)的OOD模型。2、OOD模型和過(guò)程 在OOA階段只考慮問(wèn)題域和系統(tǒng)操作責(zé)任,在OOD階段要考慮與具體實(shí)現(xiàn)的問(wèn)題。圖6-1 OOD模型從一個(gè)側(cè)面觀察 OOD模型包括五個(gè)主要部分一個(gè)核心部分加四個(gè)外圍部分 問(wèn)題域部分、人機(jī)交換部分、控制驅(qū)動(dòng)部分、數(shù)據(jù)管理部分、構(gòu)建及部署部分從另一側(cè)面觀察 OOD模型每個(gè)部分仍采用OOA的概念和表示方法,只是在
3、輔助模型中要增加分別于描述構(gòu)件模型和部署的構(gòu)件圖和部署圖。OOD過(guò)程: 設(shè)計(jì)OOD模型的五個(gè)部分 問(wèn)題域部分的設(shè)計(jì)、人機(jī)交互部分的設(shè)計(jì)、控制流管理部分的設(shè)計(jì)、數(shù)據(jù)管理部分的設(shè)計(jì)、構(gòu)件部署設(shè)計(jì)。前4項(xiàng)不強(qiáng)調(diào)次序,每個(gè)部分均采用與OOA一致的概念、表示法及活動(dòng),但具有自己獨(dú)特的策略。進(jìn)行構(gòu)件部署設(shè)計(jì)要在其前面四個(gè)部分完成后進(jìn)行。2、 問(wèn)題域部分的設(shè)計(jì) 對(duì)OOA結(jié)果按實(shí)現(xiàn)條件進(jìn)行補(bǔ)充與調(diào)整就是問(wèn)題域部分。進(jìn)行問(wèn)題域部分設(shè)計(jì),要繼續(xù)運(yùn)用OOA的方法,包括概念、表示法及一部分策略。不但 要根據(jù)實(shí)現(xiàn)條件進(jìn)行OOD設(shè)計(jì),而且由于需求變化或新發(fā)現(xiàn)了錯(cuò)誤,也要對(duì)OOA的結(jié)果進(jìn)行修改。本章的重點(diǎn)是對(duì)OOA結(jié)果進(jìn)行
4、補(bǔ)充與調(diào)整,要強(qiáng)調(diào)的是這部分工作主要不是細(xì)化,但OOA未完成的細(xì)節(jié)定義要在OOD完成。 1、為復(fù)用類(lèi)而增加結(jié)構(gòu)2、提高性能3、增加一般類(lèi)以建立共同協(xié)議4、按編程語(yǔ)言調(diào)整繼承5、轉(zhuǎn)化復(fù)雜關(guān)聯(lián)決定關(guān)系的實(shí)現(xiàn)方式6、調(diào)整與完善屬性7、構(gòu)造及優(yōu)化算法8、決定對(duì)象間的可訪(fǎng)問(wèn)性9、定義對(duì)象實(shí)例10、其他如下針對(duì)一些主要的情況講述如何進(jìn)行問(wèn)題域的設(shè)計(jì) 1、為復(fù)用類(lèi)而增加結(jié)構(gòu)如果在 OOA識(shí)別和定義的類(lèi)是本次開(kāi)發(fā)中新定義的,而且沒(méi)有可復(fù)用的資源,則需要進(jìn)一步設(shè)計(jì)和編程。如果已存在一些可復(fù)用的類(lèi),而且這些類(lèi)既有分析、設(shè)計(jì)時(shí)的定義,又有源程序,那么,復(fù)用這些類(lèi)即可提高開(kāi)發(fā)效率與質(zhì)量。 可復(fù)用的類(lèi)可能只是與OOA模
5、型中的類(lèi)相似,而不是完全相同對(duì)二者進(jìn)行修改。1) 如果完全相同,就把可復(fù)用的類(lèi)直接加到問(wèn)題域,并用復(fù)用標(biāo)記所復(fù)用的類(lèi)。2) 如果大于,就把可復(fù)用的類(lèi)直接加到問(wèn)題域,并用復(fù)用標(biāo)記所復(fù)用的類(lèi),所需要的累再繼承它。3) 如果大于,就把可復(fù)用的類(lèi)直接加到問(wèn)題域,刪除可復(fù)用類(lèi)中的多余信息,并用復(fù)用標(biāo)記所復(fù)用的類(lèi)。4) 如果相似,按如下方法處理; ·把要復(fù)用的類(lèi)加到問(wèn)題域,標(biāo)以 “復(fù)用”。 ·劃掉(或標(biāo)出)不用的屬性與服務(wù)。 ·建立從復(fù)用類(lèi)到問(wèn)題域原有的類(lèi)之間的泛化關(guān)系。 ·由于問(wèn)題域的類(lèi)繼承了“復(fù)用”類(lèi)的特征,所以有些屬性和服務(wù)不需要了應(yīng) 該把它們劃掉。
6、3;考慮修改問(wèn)題域原有類(lèi)的結(jié)構(gòu)和連接,必要時(shí)移到“復(fù)用”類(lèi)。圖6-2問(wèn)題域中例題2、提高性能1) 調(diào)整對(duì)象的分布 把需要頻繁交換信息的對(duì)象,盡量地放在一臺(tái)處理機(jī)上。 2)增加保存中間結(jié)果的屬性或類(lèi) 避免以后重復(fù)計(jì)算。 3)提高或降低系統(tǒng)的并發(fā)度,可能要人為地增加或減少主動(dòng)對(duì)象。 4)合并通訊頻繁的類(lèi)5)用聚合關(guān)系描述復(fù)雜類(lèi) 如果一個(gè)所描述事物過(guò)于復(fù)雜,其操作也可能比較復(fù)雜,因?yàn)槠渲虚g可能要包多項(xiàng)工作內(nèi)容。對(duì)這種情況的處理,可考慮用聚合關(guān)系描述復(fù)雜類(lèi)。6) 細(xì)化對(duì)象的分類(lèi) 如果一個(gè)類(lèi)的概念范疇過(guò)于大,那么它所描述的對(duì)象的實(shí)際情況可能就有若干差異。解決的一個(gè)方法就是把類(lèi)劃分的更細(xì)一些,在原先較為一
7、般的類(lèi)之下定義一些針對(duì)不同具體情況的類(lèi)。在每個(gè)特殊類(lèi)中分別定義適合各自對(duì)象的操作。3、增加一般類(lèi)以建立共同協(xié)議 1)增加一個(gè)類(lèi),將所有具有相同操作和屬性的類(lèi)組織在一起,提供通用的協(xié)議。 2)增加一般的類(lèi),提供局部通用的協(xié)議。 3)對(duì)相似操作的處理。 通過(guò)對(duì)特征標(biāo)記做小的修改,以使他們相同,然后再把他們提升到一般類(lèi)中。4 、按編程語(yǔ)言調(diào)整繼承 由于在OOA強(qiáng)調(diào)如實(shí)地反映問(wèn)題域,OOD考慮實(shí)現(xiàn)問(wèn)題,所用語(yǔ)言不支持多繼承,甚至不支持繼承。 1)對(duì)多繼承的調(diào)整 方法一:采用聚合把多繼承轉(zhuǎn)換為單繼承因?yàn)榫酆虾头夯遣煌母拍睿@種方法并不是通用的(按定義)。在大多數(shù)情況下,需要考慮形成多繼承的原因,將本
8、來(lái)在特殊類(lèi)中顯式定義的信息離出來(lái),作為部分對(duì)象,以原來(lái)的一般類(lèi)作為整體對(duì)象。 圖6-3多繼承中的一個(gè)繼承換為聚合示例 圖6-4所示的模型中有一個(gè)多繼承,現(xiàn)假設(shè)編程語(yǔ)言不支持多繼承,僅支持單繼承。 圖6-4多繼承示例 圖6-5采用聚合的方式把多繼承轉(zhuǎn)換為單位繼承示例由于在圖6-4所示的模型是按人員身份對(duì)一本類(lèi)“人員”進(jìn)行分類(lèi),并形成了其下的兩個(gè)特殊類(lèi)“研究生”和“教職工”,現(xiàn)在用身份作為一個(gè)類(lèi),依據(jù)它對(duì)原模型進(jìn)行調(diào)整,如圖6-5所示。圖6-5用類(lèi)“人員”創(chuàng)建對(duì)象的用意不變。創(chuàng)建類(lèi)“研究生”的對(duì)象時(shí),使用類(lèi)“人員”和類(lèi)“身份”以及自身的信息,類(lèi)“教職工”也與此類(lèi)似。創(chuàng)建“在職研究生”的對(duì)象時(shí),使用
9、類(lèi)圖中的四個(gè)類(lèi)的信息。 方法二:采用壓平的方式 采用這種方法,使得類(lèi)“教職工”和“研究生”中的一些特征要在類(lèi)的“在職研究生”中重復(fù)出現(xiàn),導(dǎo)致信息冗余。圖6-6采用壓平的方式把多繼承轉(zhuǎn)換為單位繼承圖6-7采用壓平和聚合的方式把繼承轉(zhuǎn)換為單位繼承2) 取消繼承方法一:把繼承結(jié)構(gòu)展平圖6-8完全取消繼承示例方法二:采用聚合的方法圖6-9采用聚合的方式取消繼承3) 對(duì)多態(tài)性的調(diào)整 在繼承結(jié)構(gòu)中,具有相同名字的屬性和操作,在不同的類(lèi)中可以具有不同的類(lèi)型和行為。這種在繼承結(jié)構(gòu)中對(duì)同一命令具有不同的含義的機(jī)制,就是繼承的多態(tài)。如果編程的語(yǔ)言不支持多態(tài),就需要把多態(tài)有關(guān)的屬性和操作的名字分別賦不同的含義,也即
10、明確把他們是為不同的東西,不但如此,往往還要按實(shí)際要求,重新考慮對(duì)象的分類(lèi),并對(duì)屬性和操作進(jìn)行調(diào)整。 屬性“邊數(shù)”、“頂點(diǎn)坐標(biāo)”和操作“繪圖”不能被所有的特殊繼承或不參加修改的繼承,就說(shuō)明它們只能適合多邊形集合的一個(gè)子集,把這個(gè)子集定義為一個(gè)特殊的類(lèi)“不規(guī)則多邊形”,并把這些屬性和操作下降到該特殊類(lèi)中。這樣類(lèi)“正多邊形”和“矩形”也不能繼承那些不適合自己的屬性和操作,而是要自己進(jìn)行的定義。如圖6-1所示。圖6-10多態(tài)性的調(diào)整示例5、轉(zhuǎn)化復(fù)雜關(guān)聯(lián)決定關(guān)系的實(shí)現(xiàn)方式 (1)對(duì)復(fù)雜關(guān)聯(lián)的轉(zhuǎn)化 1)把多元關(guān)聯(lián)和N元關(guān)聯(lián)轉(zhuǎn)化為二元關(guān)聯(lián) 2)把多對(duì)多關(guān)聯(lián)類(lèi)轉(zhuǎn)化為一對(duì)多關(guān)聯(lián)圖6-11把多對(duì)關(guān)聯(lián)轉(zhuǎn)化為一對(duì)關(guān)
11、聯(lián) 在圖6-11中類(lèi)“供需合同”設(shè)立了兩個(gè)屬性“賣(mài)方”和“買(mǎi)方”在實(shí)例化后分別用于記錄類(lèi)“供貨商”和“客戶(hù)”的對(duì)象的標(biāo)識(shí)。若不僅僅需要從類(lèi)“供需合同”的對(duì)象訪(fǎng)問(wèn)其他對(duì)象,還存在著其他對(duì)象的訪(fǎng)問(wèn)。(2)關(guān)聯(lián)的實(shí)現(xiàn)方式 對(duì)關(guān)聯(lián)進(jìn)行調(diào)整后,要考慮關(guān)聯(lián)的實(shí)現(xiàn)方式。 A.聚合 決定在整體類(lèi)中指出部分類(lèi)時(shí),是用部分類(lèi)直接作為整體類(lèi)中的屬性的數(shù)據(jù)類(lèi)型,還是把部分類(lèi)用作指針或?qū)ο髽?biāo)識(shí)的基類(lèi)型,再用這樣的指針或?qū)ο髽?biāo)示定義整體類(lèi)的屬性。如果是組合,最好用第1種方式,否則就需要在程序中保證整體對(duì)象與部分對(duì)象的生命周期的一致性。 B.關(guān)聯(lián) 通常,通過(guò)在對(duì)象中設(shè)立指針或?qū)ο髽?biāo)識(shí)以指向或記錄另一端的對(duì)象的方法,來(lái)實(shí)現(xiàn)關(guān)
12、聯(lián)。如果是單向關(guān)聯(lián),就在源端的類(lèi)中設(shè)立屬性,用來(lái)標(biāo)記另一端的類(lèi)將來(lái)創(chuàng)建的對(duì)象。如果是雙向關(guān)聯(lián),就在兩端類(lèi)中各設(shè)立屬性,用來(lái)標(biāo)記對(duì)方將來(lái)創(chuàng)建的對(duì)象。如果關(guān)聯(lián)中對(duì)方類(lèi)的多重性是1,那么可在本方設(shè)立一個(gè)指向?qū)Ψ綄?duì)象的指針,或設(shè)立一個(gè)記錄對(duì)方對(duì)象引用的屬性。 如果對(duì)方類(lèi)的多重性大于1,那么可在本方設(shè)立一個(gè)指向?qū)Ψ綄?duì)象的指針集合或引用集合。 若關(guān)聯(lián)的某端有角色名,最好把其作為另一端類(lèi)的屬性名,以訪(fǎng)問(wèn)與角色名相鄰的類(lèi)。 6、調(diào)整完備與屬性 按照語(yǔ)法: 可見(jiàn)性 屬性名:類(lèi)型= 初始值 對(duì)屬性的定義進(jìn)行完善。每一個(gè)屬性或者包含單個(gè)值,或者包含作為一個(gè)整體的密切相關(guān)的一組值。圖6-12對(duì)編輯語(yǔ)言不支持的屬性類(lèi)型
13、進(jìn)行調(diào)整的示例 若要給出對(duì)屬性的性質(zhì)的約束,如“工齡<60”或“0英語(yǔ)成績(jī)100”等,也要看語(yǔ)言是否對(duì)其直接支持,否則要在算法上考慮如何實(shí)現(xiàn)。 為了維護(hù)數(shù)據(jù)的完整性,必須要考慮需要一起更新的多個(gè)相關(guān)聯(lián)的數(shù)據(jù)值。特別是,當(dāng)基本的數(shù)據(jù)發(fā)生變化時(shí),必須更新導(dǎo)出的屬性。通過(guò)下列方法可以做到這一點(diǎn): 1)顯式的代碼 因?yàn)槊恳粋€(gè)導(dǎo)出屬性是根據(jù)一個(gè)或多個(gè)基本對(duì)象屬性定義的,更新導(dǎo)出屬性的一種方法是,在更新基本對(duì)象屬性的操作中插入更新導(dǎo)出屬性的代碼。這種附加的代碼將明確地更新依賴(lài)基本對(duì)象屬性的導(dǎo)出屬性,使得基本屬性與導(dǎo)出屬性的值同步。 2)批處理性的重計(jì)算 當(dāng)基本數(shù)據(jù)以批處理的方式改變時(shí),可能在所有的基
14、本數(shù)值改變之后,再重新計(jì)算所有的導(dǎo)出屬性的值。 3)觸發(fā)器 凡是依賴(lài)基本屬性的屬性,都必須將它自己向基本屬性注冊(cè)。當(dāng)基本屬性的值被更新時(shí),由專(zhuān)門(mén)設(shè)置的觸發(fā)器更新導(dǎo)出屬性的值。7、構(gòu)造和優(yōu)化算法 對(duì)于需要設(shè)計(jì)的操作,要從如下幾方面進(jìn)行詳細(xì)地定義: 1)按照定義操作的格式: 可見(jiàn)性 操作名(參數(shù)列表):返回類(lèi)型 完善操作的定義。 2)從問(wèn)題域的角度,根據(jù)其責(zé)任,考慮實(shí)現(xiàn)操作的算法,即對(duì)象是怎樣提供操作的。 3)若操作有前后置條件或不變式,考慮編程語(yǔ)言是否予以支持。若不支持,在操作的方法中要予以實(shí)現(xiàn)。 4)建議進(jìn)一步地分析特定類(lèi)的對(duì)象相關(guān)的所有交互圖,找出其所有與之相關(guān)的消息。一個(gè)對(duì)象所要響應(yīng)的每個(gè)
15、消息都要由該對(duì)象的操作處理,其中的一個(gè)操作也可能要使用其他操作。如果類(lèi)擁有狀態(tài)圖,還可根據(jù)內(nèi)部轉(zhuǎn)換以及外部轉(zhuǎn)換上的動(dòng)作,設(shè)計(jì)算法的詳細(xì)邏輯。 可用自然語(yǔ)言或進(jìn)行了一定結(jié)構(gòu)化的自然語(yǔ)言描述算法,也可以使用程序框圖或活動(dòng)圖描述算法。 在算法中還要考慮對(duì)例外和特殊情況的處理。如考慮對(duì)輸入錯(cuò)誤、來(lái)自中間件或其它軟硬件的錯(cuò)誤的消息以及其它例外情況的處理。 在系統(tǒng)較為復(fù)雜或需要處理大批量的數(shù)據(jù)的情況下,若系統(tǒng)在性能上有要求,就要對(duì)系統(tǒng)的體系結(jié)構(gòu)和算法進(jìn)行優(yōu)化。8、決定對(duì)象間的可訪(fǎng)問(wèn)性 從類(lèi)A的對(duì)象到類(lèi)B的對(duì)象有4種訪(fǎng)問(wèn)性(1)屬性可見(jiàn)性:B是A的一個(gè)屬性(關(guān)聯(lián)、聚合) class A ;B b;(2)參數(shù)
16、可見(jiàn)性:B的對(duì)象是A的一個(gè)方法的參數(shù)(依賴(lài)) A.amethod(B b) /間接地找到一個(gè)對(duì)象,并賦給b(3)局部聲明可見(jiàn)性:B的對(duì)象是在A的一個(gè)方法中聲明的一個(gè)局部變量(依賴(lài)) class A:amethod ; B b;(4) 全局可見(jiàn)性:B的對(duì)象在某種程度上全局可見(jiàn)(依賴(lài))聲明B的全局實(shí)例變 量。 對(duì)于后三種情況而言,從類(lèi)A到類(lèi)B間存在著依賴(lài)關(guān)系,在程序運(yùn)行期間A的對(duì)象與B的對(duì)象存在著臨時(shí)性的連接(臨時(shí)鏈),而第一種情況中的鏈?zhǔn)怯蓮念?lèi)A到類(lèi)B間的關(guān)聯(lián)實(shí)例化而來(lái)的。 9、定義對(duì)象實(shí)例 在邏輯上,一個(gè)類(lèi)是對(duì)一組對(duì)象的抽象描述。在物理上,一個(gè)類(lèi)所創(chuàng)建的各對(duì)象,要么在內(nèi)存中,要么在外存中。在內(nèi)
17、存中創(chuàng)建的一個(gè)對(duì)象,用一個(gè)變量記錄它的標(biāo)識(shí)。在外存中的對(duì)象,可能保存在一個(gè)文件中,也可能保存在一個(gè)數(shù)據(jù)庫(kù)表中。 在OOD中,根據(jù)不同的實(shí)現(xiàn)條件和實(shí)現(xiàn)策略,可以按如下的方式定義對(duì)象: 1) 用相應(yīng)的類(lèi)定義內(nèi)存中的全局性對(duì)象,包括靜態(tài)聲明和動(dòng)態(tài)創(chuàng)建兩種方式??梢砸淮吾槍?duì)一個(gè)對(duì)象定義一個(gè)變量,也可以成批地定義對(duì)象。例如,可以定義一個(gè)數(shù)組,它的每個(gè)元素是一個(gè)對(duì)象變量,以此來(lái)成批地定義對(duì)象。 2)當(dāng)系統(tǒng)需要通過(guò)從外存讀取數(shù)據(jù)來(lái)創(chuàng)建一個(gè)對(duì)象時(shí) ,先創(chuàng)建該對(duì)象,再?gòu)耐獯嬷凶x取這個(gè)對(duì)象數(shù)據(jù),把數(shù)據(jù)賦值給對(duì)象的相應(yīng)屬性。按照一定的策略,內(nèi)存中的永久對(duì)象要保存到外存中,請(qǐng)參看數(shù)據(jù)管理部分。 無(wú)論那種方式,都需要在
18、在OOD文檔中加以說(shuō)明。按如下格式在類(lèi)描述模板的定義對(duì)象部分進(jìn)行描述:處理機(jī):<節(jié)點(diǎn)名>,<節(jié)點(diǎn)名>;內(nèi)存對(duì)象:<名稱(chēng)>(n元數(shù)組)<文字描述>;外存對(duì)象:<名稱(chēng)><文字描述>;10 、其他 在OOD的問(wèn)題域部分應(yīng)該根據(jù)具體問(wèn)題考慮使用設(shè)計(jì)模式。 在OOD的問(wèn)題域部分,根據(jù)情況,還有一些其它需要考慮的問(wèn)題。例如,考慮加入進(jìn)行輸入數(shù)據(jù)驗(yàn)證這樣的類(lèi);考慮對(duì)來(lái)自中間件或其它軟硬件的錯(cuò)誤進(jìn)行處理的類(lèi),以及對(duì)其它例外情況進(jìn)行處理的類(lèi)。 有些作法是在OOD階段不把這樣的讀寫(xiě)屬性的操作放在類(lèi)中,而認(rèn)為這是一種約定,編程人員能理解。 有些
19、作法也不把諸如創(chuàng)建和復(fù)制對(duì)象這樣的操作放在OOD模型中。 第7章 人機(jī)交互部分的設(shè)計(jì)1、 什么是人機(jī)交互部分人機(jī)交互部分是OOD模型的組成部分之一,突出人如何任命系統(tǒng)以及系統(tǒng)如何向用戶(hù)提交信息。設(shè)計(jì)人機(jī)交互就是要設(shè)計(jì)輸入與輸出,其中包含的對(duì)象以及其間的關(guān)系構(gòu)成了人機(jī)交互的模型。圖7-1設(shè)計(jì)員與用戶(hù)協(xié)作設(shè)計(jì)人機(jī)界面的工作過(guò)程把人機(jī)交互部分作為系統(tǒng)中一個(gè)獨(dú)立的組成部分,進(jìn)行分析和設(shè)計(jì),有利于隔離界面支持系統(tǒng)的變化對(duì)問(wèn)題域部分的影響。二、人機(jī)交互部分的需求分析對(duì)使用系統(tǒng)的人進(jìn)行分析以便設(shè)計(jì)出適合其特點(diǎn)的交互方式和界面表現(xiàn)形式;對(duì)人和機(jī)器的交互過(guò)程進(jìn)行分析核心問(wèn)題是人如何命令系統(tǒng),以及系統(tǒng)如何向人提交
20、信息。1、分析與系統(tǒng)交互的人人員參與者 人對(duì)界面的需求,不僅在于人機(jī)交互的內(nèi)容,而且在于他們對(duì)界面表現(xiàn)形式、風(fēng)格等方面的愛(ài)好。前者是客觀需求,對(duì)誰(shuí)都一樣;后者是主觀需求,因人而異。(1)列舉所有的人員參與者(2)對(duì)人員參與者進(jìn)行調(diào)查研究(3)區(qū)分人員類(lèi)型,并了解人員的主主觀需求(4)統(tǒng)計(jì)(或估算)各類(lèi)人員的比例(5) 按照一定的準(zhǔn)則進(jìn)行折中與均衡2、從用況(use case)分析人機(jī)交互 use case的構(gòu)成 (1)參與者的行為和系統(tǒng)行為按時(shí)序交替出現(xiàn),左右分明。形成交叉排列的段落。 (2)每個(gè)段落至少含有一個(gè)輸入語(yǔ)句或輸出語(yǔ)句; (3)有若干純屬參與者自身或系統(tǒng)自身的行為陳述; (4) 可
21、能包含一些控制語(yǔ)句或括號(hào)。 抽取方法:刪除所有與輸入、輸出無(wú)關(guān)的語(yǔ)句和不再包含任何內(nèi)容的控制語(yǔ)句與括號(hào),剩下的就是對(duì)一個(gè)參與者(人)使用一項(xiàng)系統(tǒng)功能時(shí)的人機(jī)交互描述。收款員收款(use case)輸入開(kāi)始本次收款的命令; 作好收款準(zhǔn)備,應(yīng)收款總數(shù) 置為0,輸出提示信息;for 顧客選購(gòu)的每種商品 do 輸入商品編號(hào); if 此種商品多于一件 then 輸入商品數(shù)量 end if; 檢索商品名稱(chēng)及單價(jià); 貨架商品數(shù)減去售出數(shù); if 貨架商品數(shù)低于下限 then 通知供貨員請(qǐng)求上貨 end if; 計(jì)算本種商品總價(jià)并打印編號(hào)、 名稱(chēng)、數(shù)量、單價(jià)、總價(jià); 總價(jià)累加到應(yīng)收款總數(shù);end for; 打
22、印應(yīng)收款總數(shù);輸入顧客交來(lái)的款數(shù); 計(jì)算應(yīng)找回的款數(shù), 打印以上兩個(gè)數(shù)目, 收款數(shù)計(jì)入賬冊(cè)。 (a)一個(gè)use case的例子收款員收款(人機(jī)交互)輸入開(kāi)始本次收款的命令; 輸出提示信息;for 顧客選購(gòu)的每種商品 輸入商品編號(hào); if 此種商品多于一件 then 輸入商品數(shù)量 end if; 打印商品編號(hào)、名稱(chēng)、 數(shù)量、單價(jià)、總價(jià);end for; 打印應(yīng)收款總數(shù) 輸入顧客交來(lái)的款數(shù) 打印交款數(shù)及找回款數(shù);(b)人機(jī)交互描述 從use case提取人機(jī)交互描述圖7-2從用況提取人機(jī)交互描述的示例三、如何設(shè)計(jì)人交互部分1、設(shè)計(jì)輸入與輸出(1)設(shè)計(jì)輸入1)確定輸入設(shè)備2)設(shè)計(jì)輸入界面3)輸入步驟
23、的細(xì)化輸入步驟的細(xì)化輸入設(shè)備的選擇輸入信息表現(xiàn)形式的選擇(命令,數(shù)據(jù))(2)設(shè)計(jì)輸出1)確定輸出設(shè)備2)確定輸出的內(nèi)容和形式3)輸出步驟的細(xì)化輸出設(shè)備的選擇輸出信息表現(xiàn)形式的選擇2、命令的組織 不受歡迎的命令組織方式:(1)一條命令含有大量的參數(shù)和任選項(xiàng)(2)系統(tǒng)有大量命令,不加任何組織和引導(dǎo)命令的組織措施分解與組合(1)分解:將一條含有許多參數(shù)和選項(xiàng)的命令分解為若干命令步(2)組合:將基本命令組織成高層命令,從高層命令引向基本命令基本命令:使用一項(xiàng)獨(dú)立的系統(tǒng)功能的命令。(提取后的用況)命令步:在執(zhí)行一條基本命令的交互過(guò)程中所包含的具體輸入步驟。高層命令:如果一條命令是在另一條命令的引導(dǎo)下被選
24、用的,則后者稱(chēng)作前者的高層命令。(a)線(xiàn)性結(jié)構(gòu) (b) 樹(shù)型結(jié)構(gòu)(d) 一般網(wǎng)狀結(jié)構(gòu)(c) 半序網(wǎng)狀結(jié)構(gòu) 圖7-3基本命令及其命令的結(jié)構(gòu)圖7-4高層命令及其結(jié)構(gòu) 高層命令按功能組織:如文件下有:創(chuàng)建、打開(kāi)、關(guān)閉、打印、刪除等。 按子系統(tǒng)組織:如文本編輯子系統(tǒng)、編譯自系統(tǒng)。 在兩個(gè)命令之間通常要輸出信息,如圖7-5所示。圖7-5a表示兩個(gè)命令步之間不存在這輸出信息結(jié)構(gòu)。圖7-4b表示連個(gè)命令步之間可能存在三種輸出信息結(jié)構(gòu)。第一種為反饋信息,在一個(gè)命令需要較長(zhǎng)的時(shí)間執(zhí)行時(shí),應(yīng)該向用戶(hù)顯示當(dāng)前命令的情況,給出一個(gè)進(jìn)度;第二中處理結(jié)果,當(dāng)前命令執(zhí)行的結(jié)果可能要向用戶(hù)顯示;第三種提示信息,即對(duì)下一步可輸
25、入的命令的提示。圖7-5c表示兩層命令之間的更為復(fù)雜的輸出信息結(jié)構(gòu)。圖7-5命令之間的輸出信息結(jié)構(gòu)在建立命令樹(shù)時(shí),應(yīng)遵循如下策略:a.把使用最頻繁的命令放在前面,按照用戶(hù)的工作步驟進(jìn)行排列。b.在命令中發(fā)現(xiàn)整體-部分模式,以幫助對(duì)命令的組織與分塊。c.每層命令的個(gè)數(shù)應(yīng)遵循7+2原則,命令的層次深度盡量要控制在三層以?xún)?nèi)。3、 用OO概念表達(dá)所有的界面成分 1)每一種窗口對(duì)應(yīng)于一個(gè)類(lèi)。2)在窗口中,按照命令的邏輯層次,部署所需要的元素,如菜單、工作區(qū)和對(duì)話(huà) 框等。窗口中的部件元素對(duì)應(yīng)窗口類(lèi)的部分類(lèi),部分類(lèi)與窗口類(lèi)形成聚合關(guān)系。 3)發(fā)現(xiàn)窗口類(lèi)間的共性以及部件類(lèi)間的共性,定義較一般的窗口類(lèi)和部件類(lèi),
26、分別形成窗口類(lèi)間以及部件 類(lèi)間的泛化關(guān)系。 4)用類(lèi)的屬性表示窗口或部件的靜態(tài)特征,如尺寸、位置、顏色和選項(xiàng)等。 5)用操作表示窗口或部件的動(dòng)態(tài)特征,如選中、移動(dòng)和滾屏等。有的操作要涉及到問(wèn)題域中的類(lèi)。6)發(fā)現(xiàn)界面類(lèi)之間的聯(lián)系,在其間建立關(guān)聯(lián)。必要時(shí),進(jìn)一步地繪制用戶(hù)與系統(tǒng)會(huì)話(huà)的順序圖。7)建立界面類(lèi)與問(wèn)題域類(lèi)之間的聯(lián)系。有些界面對(duì)象要與問(wèn)題域中的對(duì)象進(jìn)行通訊,故要對(duì)二者之間的通訊進(jìn)行設(shè)計(jì)。 在具體設(shè)計(jì)時(shí),設(shè)計(jì)人員應(yīng)該注意以下幾點(diǎn): (a)人機(jī)界面只負(fù)責(zé)輸入與輸出和窗口更新這樣的工作,并把所有面向問(wèn)題域部分的請(qǐng)求轉(zhuǎn)發(fā)給問(wèn)題域部分,即在界面對(duì)象中不應(yīng)該對(duì)業(yè)務(wù)邏輯進(jìn)行處理。 (b)一種常見(jiàn)的作法是,問(wèn)題域部分的對(duì)象不應(yīng)該主動(dòng)發(fā)起與界面部分對(duì)象之間的通訊,而只能對(duì)界面部分對(duì)象進(jìn)行響應(yīng),也就是說(shuō),只有界面部分的對(duì)象才能訪(fǎng)問(wèn)問(wèn)題域部分的對(duì)象。通常把界面對(duì)象向問(wèn)題域部分對(duì)象傳輸?shù)男畔⒒虬l(fā)布命令看作是“請(qǐng)求”,而把從問(wèn)題域部分對(duì)象向界面部分對(duì)象傳輸?shù)男畔⒖醋魇恰盎貞?yīng)”或“通知”。 (c)盡量減少界面部分與問(wèn)題域部分的耦合。由于界面是易變的,從易于維護(hù)和易于復(fù)用的角度出發(fā),問(wèn)題域部分和界面部分
溫馨提示
- 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è)用車(chē)借用協(xié)議范本3篇
- 2025年度文化旅游融合項(xiàng)目投資借款協(xié)議
- 買(mǎi)賣(mài)合同第三方保證擔(dān)保合同(2024版)
- 二零二五年度旅行社旅游培訓(xùn)合作合同4篇
- 2025年度女方婚內(nèi)出軌離婚財(cái)產(chǎn)分割及贍養(yǎng)費(fèi)協(xié)議
- 2025年度個(gè)人商鋪?zhàn)赓U合同能源消耗監(jiān)測(cè)與管理合同4篇
- 2025年度個(gè)人與企業(yè)間特殊用途車(chē)輛租賃合同3篇
- 二零二五年度農(nóng)民工勞動(dòng)保護(hù)補(bǔ)貼發(fā)放合同標(biāo)準(zhǔn)
- 2024苗木運(yùn)輸合同范本全面規(guī)范運(yùn)輸過(guò)程中的風(fēng)險(xiǎn)防控3篇
- 二零二五年度加油站LED廣告屏安裝裝修合同3篇
- 北師大版小學(xué)三年級(jí)上冊(cè)數(shù)學(xué)第五單元《周長(zhǎng)》測(cè)試卷(含答案)
- DB45T 1950-2019 對(duì)葉百部生產(chǎn)技術(shù)規(guī)程
- 資源枯竭型城市的轉(zhuǎn)型發(fā)展 課件 2024-2025學(xué)年高二上學(xué)期地理人教版選擇性必修2
- 2025屆河北省衡水市衡水中學(xué)高考仿真模擬英語(yǔ)試卷含解析
- 新修訂《保密法》知識(shí)考試題及答案
- 電工基礎(chǔ)知識(shí)培訓(xùn)課程
- 住宅樓安全性檢測(cè)鑒定方案
- 廣東省潮州市潮安區(qū)2023-2024學(xué)年五年級(jí)上學(xué)期期末考試數(shù)學(xué)試題
- 市政道路及設(shè)施零星養(yǎng)護(hù)服務(wù)技術(shù)方案(技術(shù)標(biāo))
- 選擇性必修一 期末綜合測(cè)試(二)(解析版)2021-2022學(xué)年人教版(2019)高二數(shù)學(xué)選修一
- 《論語(yǔ)》學(xué)而篇-第一課件
評(píng)論
0/150
提交評(píng)論