版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
圖:活動圖統(tǒng)一建模語言UML
活動圖反映系統(tǒng)中從一個活動到另一個活動的流程,強調(diào)對象間的控制流程活動圖的組成活動(Activity)轉(zhuǎn)移(Transition)泳道(Swimlane)分支(Branch)分叉和匯合(ForkandJoin)對象流(ObjectStream)圖:活動圖統(tǒng)一建模語言UML
活動圖反映系統(tǒng)中從一個活動到另一個活動的流程,強調(diào)對象間的控制流程圖:組件圖統(tǒng)一建模語言UML組件圖描述組件以及它們之間的關(guān)系,表示系統(tǒng)的靜態(tài)實現(xiàn)視圖圖:部署圖統(tǒng)一建模語言UML部署圖反映了系統(tǒng)中軟件和硬件的物理架構(gòu),表示系統(tǒng)運行時的處理節(jié)點以及節(jié)點中組件的配置圖:部署圖統(tǒng)一建模語言UML面向?qū)ο蟮脑O(shè)計面向?qū)ο笤O(shè)計的過程體系結(jié)構(gòu)設(shè)計說明詳細設(shè)計說明系統(tǒng)設(shè)計設(shè)計系統(tǒng)的體系結(jié)構(gòu)選擇合適的體系結(jié)構(gòu)策略,建立系統(tǒng)的總體結(jié)構(gòu)識別設(shè)計元素識別類和子系統(tǒng)識別子系統(tǒng)接口定義數(shù)據(jù)的存儲策略部署子系統(tǒng)選擇硬件配置和系統(tǒng)平臺,將子系統(tǒng)分配到相應(yīng)的物理節(jié)點檢查系統(tǒng)設(shè)計9什么是面向?qū)ο笤O(shè)計面向?qū)ο蟮脑O(shè)計(OOD)概述OOD——按實現(xiàn)條件對OOA模型進行調(diào)整,并補充幾個新的組成部分(也是由對象構(gòu)成)與實現(xiàn)有關(guān)的因素:圖形用戶界面系統(tǒng)硬件、操作系統(tǒng)及網(wǎng)絡(luò)數(shù)據(jù)管理系統(tǒng)其他——編程語言、可復用的類庫……OOA模型補充補充補充補充調(diào)整10OOA與OOD的關(guān)系:1、從OOA到OOD不是轉(zhuǎn)換;
——是調(diào)整和增補問題域部分OOA模型將OOA模型搬到OOD;進行必要的調(diào)整,作為OOD模型的問題域部分;人機交互部分數(shù)據(jù)管理部分構(gòu)件部署部分增補其它部分,成為完整的OOD模型??刂乞?qū)動部分112、采用一致的概念和表示法——不存在分析與設(shè)計之間的鴻溝分析設(shè)計數(shù)據(jù)流圖(DFD)模塊結(jié)構(gòu)圖(MSD)實體-關(guān)系圖(ERD)傳統(tǒng)方法分析與設(shè)計之間的鴻溝3、有不同的側(cè)重點和不同的策略
OOA主要針對問題域,識別有關(guān)的對象以及它們之間的關(guān)系,產(chǎn)生一個滿足用戶需求,獨立于實現(xiàn)的OOA模型。
OOD主要解決與實現(xiàn)有關(guān)的問題,基于OOA模型,針對具體的軟、硬件條件(如機器、網(wǎng)絡(luò)、OS、GUI、DBMS等)產(chǎn)生一個可實現(xiàn)的OOD模型。OOAOOD一致的概念一致的表示法OO模型面向?qū)ο蟮姆治雠c設(shè)計之間不存在鴻溝OO模型OOD模型——從兩個側(cè)面來描述 OOD模型和過程從另一側(cè)面觀察OOD模型每個部分如何用OO概念表達——采用OOA的概念及模型組織方式從一個側(cè)面觀察OOD模型包括幾個主要部分——一個核心部分加幾個外圍部分在輔助模型中要增加分別用于描述構(gòu)件模型和部署模型的構(gòu)件圖和部署圖13OOD過程模型問題域部分的設(shè)計人機交互部分的設(shè)計控制流管理部分的設(shè)計數(shù)據(jù)管理部分的設(shè)計構(gòu)件部署部分的設(shè)計前4項不強調(diào)次序每個部分均采用與OOA一致的概念、表示法及活動,但具有自己獨特的策略。進行構(gòu)件部署設(shè)計要在其前面四個部分完成后進行。
MiniLibrary:軟件體系結(jié)構(gòu)MiniLibrary:軟件體系結(jié)構(gòu)MiniLibrary:軟件體系結(jié)構(gòu)識別設(shè)計元素識別設(shè)計元素確定設(shè)計元素的基本原則如果一個“分析類”比較簡單,代表著單一的邏輯抽象,那么可以將其映射為“設(shè)計類”如果一個“分析類”的職責比較復雜,很難由單個“設(shè)計類”承擔,則應(yīng)該將其映射成“子系統(tǒng)接口”子系統(tǒng)的劃分應(yīng)該符合高內(nèi)聚低耦合的原則MiniLibrary:識別設(shè)計元素MiniLibrary:識別設(shè)計元素識別子系統(tǒng)接口在確定了設(shè)計元素之后,需要描述子系統(tǒng)的行為,也就是準確定義接口操作的集合。同時,還要確定“子系統(tǒng)接口”與其他設(shè)計元素之間的依賴關(guān)系數(shù)據(jù)文件
數(shù)據(jù)文件是由操作系統(tǒng)提供的存儲形式,應(yīng)用系統(tǒng)將數(shù)據(jù)按字節(jié)順序存儲,并定義如何以及何時檢索數(shù)據(jù)數(shù)據(jù)存儲策略關(guān)系數(shù)據(jù)庫
在關(guān)系數(shù)據(jù)庫中,數(shù)據(jù)是以表的形式存儲在預先定義好的稱為Schema的類型中面向?qū)ο髷?shù)據(jù)庫
與關(guān)系數(shù)據(jù)庫不同的是,面向?qū)ο髷?shù)據(jù)庫將對象和關(guān)系做為數(shù)據(jù)一起存儲何時選擇文件
存儲大容量數(shù)據(jù)、臨時數(shù)據(jù)、低信息密度數(shù)據(jù)數(shù)據(jù)存儲策略何時選擇數(shù)據(jù)庫
并發(fā)訪問要求高、系統(tǒng)跨平臺、多個應(yīng)用程序使用相同數(shù)據(jù)何時選擇關(guān)系數(shù)據(jù)庫
復雜的數(shù)據(jù)查詢
數(shù)據(jù)集規(guī)模大何時選擇面向?qū)ο髷?shù)據(jù)庫
數(shù)據(jù)集處于中等規(guī)模
對象間沒有規(guī)則聯(lián)系部署圖反映了系統(tǒng)中軟件和硬件的物理架構(gòu),表示系統(tǒng)運行時的處理節(jié)點以及節(jié)點中組件的配置部署子系統(tǒng)MiniLibrary系統(tǒng)的部署圖詳細設(shè)計需要細化分析和系統(tǒng)設(shè)計產(chǎn)生的模型,確定新的設(shè)計對象,消除問題域與實現(xiàn)域之間的差距詳細設(shè)計詳細設(shè)計的主要任務(wù)
精化類的屬性和操作
-明確定義操作的參數(shù)和基本的實現(xiàn)邏輯
-明確定義屬性的類型和可見性
明確類之間的關(guān)系
整理和優(yōu)化設(shè)計模型詳細設(shè)計模型可以分割成類的集合,通常由單個開發(fā)人員實現(xiàn)詳細設(shè)計邊界類的設(shè)計策略
用戶界面設(shè)計因素
-用戶界面的開發(fā)工具
-所創(chuàng)建的界面數(shù)量
外部系統(tǒng)接口類實體類的設(shè)計策略
考慮性能需求對實體對象的影響控制類的設(shè)計策略
是否真正需要?是否應(yīng)該繼續(xù)細化?
考慮復雜性、變化適應(yīng)性、分布性和性能、事務(wù)處理等要求定義操作定義操作的過程
找出滿足基本邏輯要求的操作
補充必要的輔助操作
-初始化類的實例
-驗證兩個實例是否等同
-……
完整地描述操作
-確定操作的名稱、參數(shù)、返回值、可見性等
-應(yīng)該遵從程序設(shè)計語言的命名規(guī)則
簡要說明操作的內(nèi)部實現(xiàn)邏輯定義操作舉例:BorrowerInfo類
構(gòu)造函數(shù)
<<class>>+new()
屬性賦值
+setName(name:String)
+setAddress(address:String)
其他
+addLoan(theLoan:Loan)
+removeLoan(theLoan:Loan)+isAllowed():Boolean
……定義屬性具體說明屬性的名稱、類型、缺省值、可見性等定義屬性基本原則
將所有屬性的可見性設(shè)置為private;
僅通過set方法更新屬性;
僅通過get方法訪問屬性;
在屬性的set方法中,實現(xiàn)簡單的有效性驗證,而在獨立的驗證方法中實現(xiàn)復雜的邏輯驗證。定義屬性在詳細設(shè)計階段,狀態(tài)建模一般只發(fā)生在依賴狀態(tài)展示不同行為的類上定義狀態(tài)在詳細設(shè)計階段,需要進一步確定詳細的關(guān)聯(lián)關(guān)系、依賴關(guān)系和聚合關(guān)系等定義關(guān)系不同對象之間的可能連接在有些情況下,關(guān)聯(lián)關(guān)系本身也可能具有屬性,可以使用“關(guān)聯(lián)類”將這種關(guān)系建模定義關(guān)聯(lián)類舉例:選課表Schedule與開始課程CourseOffering33
問題域部分的設(shè)計要對OOA結(jié)果按實現(xiàn)條件進行補充與調(diào)整。即,要繼續(xù)運用OOA的方法,包括概念、表示法及一部分策略。
問題域部分的設(shè)計問題域部分人機交互部分數(shù)據(jù)管理部分構(gòu)件部署部分控制驅(qū)動部分將OOA模型搬到OOD作為OOD的基礎(chǔ)OOA模型按實現(xiàn)條件(編程語言,網(wǎng)絡(luò)與操作系統(tǒng),復用支持等)進行必要的調(diào)整。
不但要根據(jù)實現(xiàn)條件進行OOD設(shè)計,而且由于需求變化或新發(fā)現(xiàn)了錯誤,也要對OOA的結(jié)果進行修改。34(1)為復用設(shè)計與編程的類而增加結(jié)構(gòu)如果OOA識別和定義的類是本次開發(fā)中新定義的,那么需要進行編程。如果已存在一些可復用的類,而且這些類既有分析、設(shè)計時的定義,又有源程序,那么,復用這些類即可提高開發(fā)效率與質(zhì)量??蓮陀玫念惪赡苤皇桥cOOA模型中的類相似,而不是完全相同,因此需對二者進行修改。目標:盡可能使復用成分增多,新開發(fā)的成分減少35不同程度的復用當前所需的類的信息比可復用類定義的信息= 直接復用< 通過繼承復用> 刪除可復用類的多余信息≈ 刪除多余信息,通過繼承而復用36車輛序號廠商式樣序號認證可復用的類序號顏色式樣出廠年月序號認證車輛問題域中的類步驟:(1)把要復用的類加到問題域,(2)標以“復用”,劃掉(或標出)不用的屬性與操作(3)建立從復用類到問題域原有的類之間的泛化關(guān)系(4)由于問題域的類繼承了“復用”類的特征,所以有些屬性和操作不需要了——劃掉。(復用)(復用)車輛序號廠商式樣序號認證可復用的類第四種情況的的具體處理:可復用類定義的信息
≈
當前所需的類的信息37把需要頻繁交換信息的對象,盡量地放在一臺處理機上。增加屬性或類,以保存中間結(jié)果提高或降低系統(tǒng)的并發(fā)度,可能要人為地增加或減少主動對象。合并通訊頻繁的類流速控制器指定流速當前流速……流速調(diào)節(jié)流速探測……流速調(diào)節(jié)器指定流速……流速調(diào)節(jié)……流速探測器當前流速……流速探測取當前流速……合并前合并后(2)提高性能38用聚合關(guān)系描述復雜類。。。。幀顯示幀顯示背景前景*111顯示顯示39為編程方便增加底層成分——細化對象的分類例:將幾何圖形分成多邊形、橢圓、扇形等特殊類幾何圖形繪圖多邊形扇形橢圓繪圖繪圖繪圖40(3)增加一般類以建立共同協(xié)議增加根類:將所有的具有相似協(xié)議的類組織在一起 提供通用的協(xié)議
例如:提供創(chuàng)建、刪除、復制等服務(wù)增加其他一般類:提供局部通用的協(xié)議 例如:提供永久存儲及恢復功能41(4)按編程語言調(diào)整繼承起因:OOA強調(diào)如實地反映問題域,OOD考慮實現(xiàn)問題, 所用語言不支持多繼承,甚至不支持繼承多繼承模式示例狹義菱形廣義菱形42BACBAC因為聚合和泛化是不同的概念,這種方法并不是通用的(按定義)。在大多數(shù)情況下,需要考慮形成多繼承的原因,將本來在特殊類中顯式定義的信息離出來,作為部分對象,以原來的一般類作為整體對象。
把多繼承調(diào)整為單繼承
43方法1:采用聚合公司人員雇主職員雇主職員公司人員身份雇主身份職員身份0..21創(chuàng)建“雇主”對象創(chuàng)建“職員”對象創(chuàng)建“雇主職員”對象44公司人員雇主身份職員身份10..1身份0..11公司人員雇主職員雇主職員45方法2:壓平公司人員顧主職員顧主職員問題:有什么缺點?顧主信息職員信息問題:改成繼承?46方法3:不支持泛化顧主職員顧主職員問題:有什么缺點?47對多態(tài)性的調(diào)整48供貨商客戶0..*1..*供需合同賣方買方…….11供貨商客戶0..*1..*把多對多關(guān)聯(lián)轉(zhuǎn)化為一對多關(guān)聯(lián)(5)對復雜關(guān)聯(lián)的轉(zhuǎn)化并決定關(guān)聯(lián)的實現(xiàn)方式49項目人員語言把多元關(guān)聯(lián)轉(zhuǎn)化為二元關(guān)聯(lián)語言項目人員任務(wù)項項目名人員語言……11..**11..*1..*公司雇員*1..*工作薪水把關(guān)聯(lián)類轉(zhuǎn)化為二元關(guān)聯(lián)*1..*工作薪水公司雇員1151對關(guān)聯(lián)進行調(diào)整后,要考慮關(guān)聯(lián)的實現(xiàn)方式。(1)聚合決定在整體類中指出部分類時,是用部分類直接作為整體類中的屬性的數(shù)據(jù)類型,還是把部分類用作指針或?qū)ο髽俗R的基類型,再用這樣的指針或?qū)ο髽耸径x整體類的屬性。如果是組合,最好用第1種方式,否則就需要在程序中保證整體對象與部分對象的生命周期的一致性。ClassAClassB{Aa;//組合
A*a;//聚合,B的對象管理A的對象——組合……voidcombination()……}(2)關(guān)聯(lián)通常,通過在對象中設(shè)立指針或?qū)ο髽俗R以指向或記錄另一端的對象的方法,來實現(xiàn)關(guān)聯(lián)。
(1)如果是單向關(guān)聯(lián),就在源端的類中設(shè)立屬性,用來標記另一端的類將來創(chuàng)建的對象
(2)如果是雙向關(guān)聯(lián),就在兩端類中各設(shè)立屬性,用來標記對方將來創(chuàng)建的對象。
(3)如果關(guān)聯(lián)中對方類的多重性是1,那么可在本方設(shè)立一個指向?qū)Ψ綄ο蟮闹羔?,或設(shè)立一個記錄對方對象引用的屬性。
(4)如果對方類的多重性大于1,那么可在本方設(shè)立一個指向?qū)Ψ綄ο蟮闹羔樇匣蛞眉稀?/p>
(5)若關(guān)聯(lián)的某端有角色名,最好把其作為另一端類的屬性名,以訪問與角色名相鄰的類。Provider1oldest1..*0..1ConsumerProvider*toProviderproviderSet*headstructproviderSet{Providerp;structproviderSet*next;}Consumeroldest……53(6)調(diào)整與完善屬性按照語法:[可見性]屬性名[‘:’類型][‘=’初始值]
對屬性的定義進行完善。每一個屬性或者包含單個值,或者包含作為一個整體的密切相關(guān)的一組值
若要給出對屬性的性質(zhì)的約束,如“工齡<60”或“0≤英語成績≤100”等,也要看語言是否對其直接支持,否則要在算法上考慮如何實現(xiàn)。
為了維護數(shù)據(jù)的完整性,必須要考慮需要一起更新的多個相關(guān)聯(lián)的數(shù)據(jù)值。特別是,當基本的數(shù)據(jù)發(fā)生變化時,需要更新導出屬性的值。通過下列方法可以做到這一點:
1)顯式的代碼在更新基本對象屬性的操作中插入更新導出屬性的代碼,使得基本屬性與導出屬性的值同步。
2)批處理性的重計算當基本數(shù)據(jù)以批處理的方式改變時,可能在所有的基本數(shù)值改變之后,再重新計算所有的導出屬性的值。
3)觸發(fā)器凡是依賴基本屬性的屬性,都必須將它自己向基本屬性注冊。當基本屬性的值被更新時,由專門設(shè)置的觸發(fā)器更新導出屬性的值?;緦傩宰员韺С鰧傩詫С鰧傩詫С鰧傩?5(7)構(gòu)造和優(yōu)化算法
對于需要設(shè)計的操作,要從如下幾方面進行詳細地定義:(1)按照操作格式:[可見性]操作名[‘(’參數(shù)列表‘)’][‘:’返回類型]
完善操作的定義。(2)從問題域的角度,根據(jù)其責任,考慮實現(xiàn)操作的算法,即對象是怎樣提供操作的。(3)若操作有前后置條件或不變式,考慮編程語言是否予以支持。若不支持,在操作的方法中要予以實現(xiàn)。(4)建議進一步地分析特定類的對象相關(guān)的所有交互圖,找出其所有與之相關(guān)的消息。一個對象所要響應(yīng)的每個消息都要由該對象的操作處理,其中的一個操作也可能要使用其他操作。如果類擁有狀態(tài)圖,還可根據(jù)內(nèi)部轉(zhuǎn)換以及外部轉(zhuǎn)換上的動作,設(shè)計算法的詳細邏輯??捎米匀徽Z言或進行了一定結(jié)構(gòu)化的自然語言描述算法,也可以使用程序框圖或活動圖描述算法。在算法中還要考慮對例外和特殊情況的處理。如考慮對輸入錯誤、來自中間件或其它軟硬件的錯誤的消息以及其它例外情況的處理。在系統(tǒng)較為復雜或需要處理大批量的數(shù)據(jù)的情況下,若系統(tǒng)在性能上有要求,就要對系統(tǒng)的體系結(jié)構(gòu)和算法進行優(yōu)化。56(8)決定對象間的可訪問性(M)
從類A的對象到類B的對象有4種訪問性
屬性可見性:B是A的一個屬性(關(guān)聯(lián)、聚合)
classA {…;Bb;…}
參數(shù)可見性:B的對象是A的一個方法的參數(shù)(依賴)
A.amethod(Bb)//間接地找到一個對象,并賦給b。
局部聲明可見性:B的對象是在A的一個方法中聲明的一個局部變量(依賴)
classA::amethod {…;Bb;…}
全局可見性:B的對象在某種程度上全局可見(依賴) 聲明B的全局實例變量對于后三種情況而言,從類A到類B間存在著依賴關(guān)系,在程序運行期間A的對象與B的對象存在著臨時性的連接(臨時鏈),而第一種情況中的鏈是由從類A到類B間的關(guān)聯(lián)實例化而來的。57(9)定義對象實例
在邏輯上,一個類是對一組對象的抽象描述。在物理上,一個類所創(chuàng)建的各對象,
——要么在內(nèi)存中(用一個變量記錄對象的標識);
——要么在外存中(把對象保存在一個文件中或一個數(shù)據(jù)庫表中)
根據(jù)不同的實現(xiàn)條件和實現(xiàn)策略,可以按如下的方式定義對象:(1)用相應(yīng)的類定義內(nèi)存中的全局性對象,包括靜態(tài)聲明和動態(tài)創(chuàng)建兩種方式??梢砸淮吾槍σ粋€對象定義一個變量,也可以成批地定義對象。例如,可以定義一個數(shù)組,它的每個元素是一個對象變量,以此來成批地定義對象。ClassAClassB{Aa[10];A*a[10];……}58
(2)當系統(tǒng)需要通過從外存讀取數(shù)據(jù)來創(chuàng)建一個對象時,先創(chuàng)建該對象,再從外存中讀取這個對象數(shù)據(jù),把數(shù)據(jù)賦值給對象的相應(yīng)屬性。
按照一定的策略,內(nèi)存中的永久對象要保存到外存中,請參看數(shù)據(jù)管理部分。無論那種方式,都需要在OOD文檔中加以說明。按如下格式在類描述模板的定義對象部分進行描述: 處理機:<節(jié)點名>{,<節(jié)點名>}; 內(nèi)存對象:{<名稱>[(n元數(shù)組)][<文字描述>]}; 外存對象:{<名稱>[<文字描述>]};對象屬性1…屬性n外存內(nèi)存59(10)其它在OOD的問題域部分應(yīng)該根據(jù)具體問題考慮使用設(shè)計模式。在OOD的問題域部分,還有一些其它需要考慮的問題:考慮加入進行輸入數(shù)據(jù)驗證這樣的類;考慮加入對來自中間件或其它軟硬件的錯誤進行處理的類;考慮加入對其它例外情況進行處理的類?!?/p>
有些作法是在OOD階段不把讀寫屬性的操作放在類中,而認為這是一種約定,編程人員能理解。有些作法也不把諸如創(chuàng)建和復制對象這樣的操作放在OOD模型中。
注意:包容器/集合類(如JAVA的Vector,Hashtable),是已經(jīng)預定義的類庫的一部分,一般不在類圖中重新定義,可進行引用或繼承。不要錯把包容器/集合類中方法(如JAVA的find),在其他類中重新定義,可進行引用或繼承。60控制接口部分問題域部分數(shù)據(jù)管理部分人機交互部分
OSF/Motif人機交互部分
X-Window人機交互部分
MS-Windows
把人機交互部分作為系統(tǒng)中一個獨立的組成部分,進行分析和設(shè)計,有利于隔離界面,支持系統(tǒng)的變化對問題域部分的影響.
什么是人機交互部分人機交互部分的設(shè)計人機交互部分的需求分析對使用系統(tǒng)的人進行分析——以便設(shè)計出適合其特點的交互方式和界面表現(xiàn)形式;對人和機器的交互過程進行分析——核心問題是人如何命令系統(tǒng),以及系統(tǒng)如何向人提交信息。1、分析與系統(tǒng)交互的人——人員參與者人對界面的需求,不僅在于人機交互的內(nèi)容,而且在于他們對界面表現(xiàn)形式、風格等方面的愛好。
——前者是客觀需求*,對誰都一樣;后者是主觀需求,因人而異。(1)列舉所有的人員參與者(2)調(diào)查研究(3)區(qū)分人員類型(4)統(tǒng)計(或估算)各類人員的比例(5)了解使用者的主觀需求(6)
按照一定的準則進行折中與均衡
2、對人和機器的交互過程進行分析
——從usecase分析人機交互usecase的構(gòu)成參與者的行為和系統(tǒng)行為按時序出現(xiàn),形成交叉排列的段落。每個段落至少含有一個輸入語句或輸出語句;有若干純屬參與者自身或系統(tǒng)自身的行為陳述;可能包含一些控制語句或括號。抽取方法:刪除所有與輸入、輸出無關(guān)的語句和不再包含任何內(nèi)容的控制語句與括號,剩下的就是對一個參與者(人)使用一項系統(tǒng)功能時的人機交互描述。63收款員收款(usecase)輸入開始本次收款的命令;作好收款準備,應(yīng)收款總數(shù)置為0,輸出提示信息;for
顧客選購的每種商品do
輸入商品編號;
if
此種商品多于一件then
輸入商品數(shù)量
endif;檢索商品名稱及單價;貨架商品數(shù)減去售出數(shù);if
貨架商品數(shù)低于下限then
通知供貨員請求上貨endif;計算本種商品總價并打印編號、名稱、數(shù)量、單價、總價;總價累加到應(yīng)收款總數(shù);endfor;打印應(yīng)收款總數(shù);輸入顧客交來的款數(shù);計算應(yīng)找回的款數(shù),打印以上兩個數(shù)目,收款數(shù)計入賬冊。(a)一個usecase的例子
從usecase提取人機交互描述收款員收款(人機交互)輸入開始本次收款的命令;輸出提示信息;for
顧客選購的每種商品輸入商品編號;
if
此種商品多于一件then
輸入商品數(shù)量
endif;打印商品編號、名稱、數(shù)量、單價、總價;endfor;打印應(yīng)收款總數(shù)輸入顧客交來的款數(shù)打印交款數(shù)及找回款數(shù);(b)人機交互描述人機界面的設(shè)計準則易學、易用、操作方便盡量保持一致性及時提供有意義的反饋使用戶的注意力集中在當前的任務(wù)上而不是界面上*盡量減少用戶的記憶具有語境敏感的幫助功能減少重復的輸入和操作*對用戶的操作具有容錯性,如UNDO防止災難性的錯誤*其它:如藝術(shù)性、趣味性、風格、視感等65一、輸入與輸出設(shè)計(1)輸入的細化①輸入步驟的細化②輸入設(shè)備的選擇③輸入信息表現(xiàn)形式的選擇(命令,數(shù)據(jù))(2)輸出的細化①輸出步驟的細化②輸出設(shè)備的選擇③輸出信息表現(xiàn)形式的選擇人機界面的OO設(shè)計66二、命令的組織不受歡迎的命令組織方式:(1)一條命令含有大量的參數(shù)和任選項(2)系統(tǒng)有大量命令,不加任何組織和引導基本命令:使用一項獨立的系統(tǒng)功能的命令——提取后的用況命令步:在執(zhí)行一條基本命令的交互過程中所包含的具體輸入步驟。高層命令:如果一條命令是在另一條命令的引導下被選用的,則后者稱作前者的高層命令。命令的組織措施——分解與組合(1)分解:將一條含有許多參數(shù)和選項的命令分解為若干命令步(2)組合:將基本命令組織成高層命令,從高層命令引向基本命令67(a)線性結(jié)構(gòu)(b)樹型結(jié)構(gòu)(c)半序網(wǎng)狀結(jié)構(gòu)(d)一般網(wǎng)狀結(jié)構(gòu)基本命令及其命令步的結(jié)構(gòu)68高層命令及其結(jié)構(gòu)按功能組織:如文件下有:創(chuàng)建、打開、關(guān)閉、打印、刪除等。按子系統(tǒng)組織:如文本編輯子系統(tǒng)、編譯自系統(tǒng)。69兩層命令之間的輸出信息結(jié)構(gòu)反饋信息處理結(jié)果提示信息反饋信息處理結(jié)果處理結(jié)果提示信息提示信息處理結(jié)果提示信息提示信息70反饋信息:需較長時間執(zhí)行命令*。處理結(jié)果,可能不需要。提示信息:對下一步可輸入的命令的提示。71在建立命令樹時,應(yīng)遵循如下策略:把使用最頻繁的命令放在前面,按照用戶的工作步驟進行排列。在命令中發(fā)現(xiàn)整體-部分模式,以幫助對命令的組織與分塊。每層命令的個數(shù)應(yīng)遵循7+2原則,命令的層次深度盡量要控制在三層以內(nèi)。72
1、選擇界面支持系統(tǒng)(窗口系統(tǒng)、圖形用戶界面、可視化編程環(huán)境)2、設(shè)計報表及報告.對要生成的報表和報告格式等進行設(shè)計。每一種報表或報告應(yīng)對應(yīng)于一個類。
3、設(shè)計諸如安全/登錄、設(shè)置和業(yè)務(wù)功能之類的窗口。
每一種窗口對應(yīng)于一個類。4、在窗口中,按照命令的邏輯層次,部署所需要的元素,如菜單、工作區(qū)和對話框等。窗口中的部
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024美發(fā)店與消防部門安全檢查合同
- 2025年度校園食堂廚師勞務(wù)派遣合同4篇
- 2025年度圖書代售及推廣服務(wù)合同4篇
- 2024碎石原料交易市場建設(shè)合同
- 2024裝修工程額外項目合同書一
- 2025年度智慧城市建設(shè)綜合解決方案承包合作協(xié)議4篇
- 2025年度SEO風險管理與合規(guī)性審核合同3篇
- 2025年度山林土地流轉(zhuǎn)與綜合開發(fā)承包合同4篇
- 2024正規(guī)商鋪買賣合同合同標的物權(quán)屬核實協(xié)議3篇
- 2024年教學專用高清晰度數(shù)碼集成背投行業(yè)發(fā)展趨勢報告
- 《呼吸衰竭的治療》
- 有余數(shù)的除法算式300題
- 2024年度醫(yī)患溝通課件
- 2024年中考政治總復習初中道德與法治知識點總結(jié)(重點標記版)
- 2024年手術(shù)室的應(yīng)急預案
- 五年級上冊小數(shù)除法豎式計算練習300題及答案
- 【外資便利店在我國的經(jīng)營策略分析案例:以日本羅森便利店為例11000字(論文)】
- 6061鋁合金退火工藝
- 教師職業(yè)素養(yǎng)與職業(yè)發(fā)展規(guī)劃
- 語言規(guī)劃講義
- Talent5五大職業(yè)性格測試技巧138答案
評論
0/150
提交評論